]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
9b0f6f5e
NC
12011-08-12 Nick Clifton <nickc@redhat.com>
2
3 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi
4 pattern.
5 * doc/md.texi (cmpstrn): Note that the comparison stops if both
6 fetched bytes are zero.
7 (cmpstr): Likewise.
8 (cmpmem): Note that the comparison does not stop if both of the
9 fetched bytes are zero.
10
6c32ee74
UB
112011-08-12 Uros Bizjak <ubizjak@gmail.com>
12
13 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
14 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
15 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
16 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
17 to integer_type_node.
18 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
19 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
20 * builtins.c (expand_builtin_in): Ditto.
21 (mathfn_built_in_1): Ditto.
22 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
23 BUILT_IN_IFLOOR.
24 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
25 BUILT_IN_IROUND.
26 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
27 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
28 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
29
d9fbc86e
RB
302011-08-12 Richard Guenther <rguenther@suse.de>
31
32 * tree-vrp.c (extract_range_from_unary_expr_1): Implement
33 -X as 0 - X.
34
352011-08-12 Romain Geissler <romain.geissler@gmail.com>
f895fc2a
RG
36
37 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
38
20fe71c2
RS
392011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
40
41 * config/arm/arm.c (get_label_padding): New function.
42 (create_fix_barrier, md_reorg): Likewise.
43
88b590c5
UB
442011-08-11 Uros Bizjak <ubizjak@gmail.com>
45
46 PR target/49781
47 * config/i386/i386.md (*lea_5_zext): New.
48 (*lea_6_zext): Ditto.
49 * config/i386/predicates.md (const_32bit_mask): New predicate.
50 (lea_address_operand): Reject AND.
51 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
52 const_32bit_mask immediate.
53 (ix86_print_operand_address): Handle AND.
54 (memory_address_length): Ditto.
55
4309e92c 562011-08-11 Romain Geissler <romain.geissler@gmail.com>
88b590c5 57 Brian Hackett <bhackett1024@gmail.com>
4309e92c
RG
58
59 * plugin.def: Add event for finish_decl.
60 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
61 * c-decl.c (finish_decl): Invoke callbacks on above event.
62 * doc/plugins.texi: Document above event.
63
25aa059e
RG
642011-08-11 Richard Guenther <rguenther@suse.de>
65
66 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
67 lookups, make looking through aggregate copies stronger.
68
6bfd73a6
RH
692011-08-11 Richard Henderson <rth@redhat.com>
70
71 PR bootstrap/50018
72 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
73
022676dc
RG
742011-08-11 Richard Guenther <rguenther@suse.de>
75
76 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
77 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
78 (vrp_visit_stmt): Likewise.
79
8d2b0410
RG
802011-08-11 Richard Guenther <rguenther@suse.de>
81
82 PR middle-end/50040
83 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
84 load of the other piece with TREE_NO_WARNING.
85 * tree-flow.h (warn_uninit): Adjust prototype.
86 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
87 the base variable and the expression that is used separately.
88 Properly query all TREE_NO_WARNING flags.
89 (struct walk_data): Remove.
90 (warn_uninitialized_var): Likewise.
91 (warn_uninitialized_vars): Do not walk gimple pieces but simply
92 look at all SSA uses of the statement. Handle unused memory
93 separately.
94 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
95
78926be1
KI
962011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
97
88b590c5 98 * config/rx/rx.md (movsicc): Allow register to register transfers.
78926be1
KI
99 (*movsicc): Likewise.
100 (*stcc): Restrict this pattern to EQ and NE compares.
101 (*stcc_reg): New pattern. Works for any comparison but only for
102 register transfers.
103
b9393656
DN
1042011-08-11 Diego Novillo <dnovillo@google.com>
105
106 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
107 Call stream_write_tree instead of output_record_start.
108 (lto_output_ts_binfo_tree_pointers): Likewise.
109
110 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
111 Convert it to a macro.
112 (stream_read_tree): Likewise.
113
114 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
115 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
116
117 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
118 and tree_read_bitfields.
119 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
120 (lto_write_tree): Call it.
121 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
122 * streamer-hooks.h (struct streamer_hooks): Remove fields
123 name, is_streamable and alloc_tree. Update all users.
124 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
125 (lto_materialize_tree): ... here.
126 Handle CALL_EXPR codes.
127 Remove call to lto_streamer_cache_append.
88b590c5 128 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
b9393656
DN
129 * tree-streamer.h (tree_read_bitfields): Declare.
130
131 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
132 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
133 * tree-streamer.h (stream_read_tree): New. Replace all calls
134 to lto_input_tree with it.
135 (stream_write_tree): New. Replace all calls to lto_output_tree,
136 lto_output_tree_ref and lto_output_tree_or_ref with it.
137 * lto-streamer-in.c (lto_read_tree): Inline code from
138 lto_streamer_read_tree.
139 (lto_input_tree): Move from tree-streamer-in.c.
140 * lto-streamer-out.c (lto_output_tree_ref): Make static.
141 Remove handling of NULL values for EXPR.
142 Do not handle EXPRs that are not indexable.
143 (lto_write_tree): Move from tree-streamer-out.c.
144 Inline lto_streamer_write_tree.
145 (lto_output_tree): Move from tree-streamer-out.c.
146 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
147 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
148 (lto_preload_common_nodes): Likewise.
149 Remove assertions and adjustments for nodes
150 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
151 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
88b590c5 152 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
b9393656
DN
153 * lto-streamer.h (lto_input_tree): Declare.
154 (lto_output_tree_ref): Remove.
155 * streamer-hooks.h (struct streamer_hooks): Remove fields
156 preload_common_nodes, indexable_with_decls_p,
157 pack_value_fields, unpack_value_fields and output_tree_header.
158 Update all users.
159 * tree-streamer-in.c (lto_materialize_tree): Make extern.
160 (lto_input_tree_pointers): Likewise.
161 (lto_read_tree): Move to lto-streamer-in.c.
162 (lto_input_integer_cst): Make extern.
163 (lto_get_pickled_tree): Likewise.
164 (lto_get_builtin_tree): Likewise.
165 (lto_input_tree): Move to lto-streamer-in.c.
166 * tree-streamer-out.c (pack_value_fields): Make extern.
167 (lto_output_tree_or_ref): Remove. Replace all callers with
168 calls to stream_write_tree.
169 (lto_output_builtin_tree): Make extern.
170 (lto_streamer_write_tree): Inline into lto_write_tree.
171 (lto_output_tree_pointers): Make extern.
172 (lto_output_tree_header): Likewise.
173 (lto_output_integer_cst): Likewise.
174 (lto_write_tree): Move to lto-streamer-out.c.
175 (lto_output_tree): Likewise.
88b590c5 176 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
b9393656
DN
177 (preload_common_nodes): Likewise.
178 (lto_streamer_cache_create): Call it.
179 * tree-streamer.h: Include streamer-hooks.h.
180 (stream_write_tree): New.
181 (stream_read_tree): New.
182 (lto_input_tree): Remove.
183 (lto_materialize_tree): Declare.
184 (lto_input_tree_pointers): Declare.
185 (lto_get_pickled_tree): Declare.
186 (lto_get_builtin_tree): Declare.
187 (lto_input_integer_cst): Declare.
188 (lto_output_tree_header): Declare.
189 (pack_value_fields): Declare.
190 (lto_output_tree_pointers): Declare.
191 (lto_output_integer_cst): Declare.
192 (lto_output_builtin_tree): Declare.
193
ca31ca94
SG
1942011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
195
196 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
197 only if producer writes to the register given by regno.
198
f0898307
SG
1992011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
200 Alexander Monakov <amonakov@ispras.ru>
201
202 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
203 (sched_get_condition_with_rev_uncached): ... this. Factor out
204 condition caching logic into ...
205 (sched_get_condition_with_rev): ... this. Reimplement. Do not
206 attempt to use cache for instructions with zero luid.
207 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
208 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
209
0d9439b0
SG
2102011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
211
212 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
213 get_seqno_for_a_jump. Update the caller.
214 (get_seqno_by_succs): New. Use it ...
215 (get_seqno_for_a_jump): ... here to find a seqno if looking at
216 predecessors was not sufficient.
217 (get_seqno_by_preds): Include head in iteration range, exclude insn.
218
5c416724
DM
2192011-08-11 Dmitry Melnik <dm@ispras.ru>
220
221 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
222
cf3d5824
SG
2232011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
224
225 * sel-sched-ir.h (register_unavailable_p): Declare.
226 * sel-sched-ir.c (register_unavailable_p): New. Use it...
227 (set_unavailable_target_for_expr): ... here to properly test
228 availability of a register.
229 (speculate_expr): Ditto.
230 * sel-sched.c (substitute_reg_in_expr): Ditto.
231 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
232
944499ed
SG
2332011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
234
235 * sel-sched.c (verify_target_availability): Fix usage of
236 hard_regno_nregs.
237
6bf2d156
DM
2382011-08-11 Dmitry Melnik <dm@ispras.ru>
239
240 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
241 recognized by cannot_copy_insn_p hook and volatile instructions.
242
bf3a40e9
DM
2432011-08-11 Dmitry Melnik <dm@ispras.ru>
244
245 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
246
f9bf5a8e
RS
2472011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
248
249 * doc/md.texi (define_bypass): Say that the instruction names can
250 be filename-style globs.
251 * Makefile.in (FNMATCH_H): Define.
252 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
253 * genattrtab.c: Include fnmatch.h.
254 (bypass_list): Change field name from "insn" to "pattern".
255 (gen_bypass_1): Update accordingly.
256 (process_bypasses): Use fnmatch to check for matches between
257 insn reservations and define_bypasses.
258 * genautomata.c: Include fnmatch.h.
259 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
260 and out_pattern respectively.
261 (gen_bypass, insert_bypass): Update accordingly.
262 (for_each_matching_insn, process_bypass_2, process_bypass_1)
263 (process_bypass): New functions.
264 (process_decls): Use process_bypass. Update after field name changes.
265
7ece3881 2662011-08-11 Georg-Johann Lay <avr@gjlay.de>
78926be1 267
7ece3881
GJL
268 PR target/49687
269 * config/avr/avr.md (smulqi3_highpart): New insn.
270 (umulqi3_highpart): New insn.
271 (*subqi3.ashiftrt7): New insn.
272 (smulhi3_highpart): New expander.
273 (umulhi3_highpart): Nex expander.
274 (*smulhi3_highpart_call): New insn.
275 (*umulhi3_highpart_call): New insn.
276 (extend_u): New code attribute.
277 (extend_prefix): Rename code attribute to extend_su.
278 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
279 widening QI/HI multiply.
280
fb2c2b16
IR
2812011-08-11 Ira Rosen <ira.rosen@linaro.org>
282
283 PR tree-optimization/50039
284 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
285 that DEF_STMT has a stmt_vec_info.
286
b126811e
RG
2872011-08-10 Richard Guenther <rguenther@suse.de>
288
289 * tree.h (can_trust_pointer_alignment): Remove.
290 * builtins.c (can_trust_pointer_alignment): Remove.
291
0e3a99ae
AS
2922011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
293
294 * c-typeck.c (scalar_to_vector): New function. Try scalar to
295 vector conversion.
296 (stv_conv): New enum for scalar_to_vector return type.
297 (build_binary_op): Adjust.
298 * doc/extend.texi: Description of scalar to vector expansion.
299
0eb77834
RG
3002011-08-10 Richard Guenther <rguenther@suse.de>
301
302 * tree.h (get_pointer_alignment): Remove max-align argument.
303 (get_object_alignment): Likewise.
304 * builtins.c (get_object_alignment_1): Adjust.
305 (get_object_alignment): Remove max-align argument.
306 (get_pointer_alignment): Likewise.
307 (expand_builtin_strlen): Adjust.
308 (expand_builtin_memcpy): Likewise.
309 (expand_builtin_mempcpy_args): Likewise.
310 (expand_builtin_strncpy): Likewise.
311 (expand_builtin_memset_args): Likewise.
312 (expand_builtin_memcmp): Likewise.
313 (expand_builtin_strcmp): Likewise.
314 (expand_builtin_strncmp): Likewise.
315 (get_builtin_sync_mem): Likewise.
316 (fold_builtin_memset): Likewise.
317 (fold_builtin_memory_op): Likewise.
318 (expand_builtin_memory_chk): Likewise.
319 * emit-rtl.c (get_mem_align_offset): Likewise.
320 (set_mem_attributes_minus_bitpos): Likewise.
321 * expr.c (expand_assignment): Likewise.
322 (expand_expr_real_1): Likewise.
323 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
324 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
325 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
326 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
327 * value-prof.c (gimple_stringops_transform): Likewise.
328
1c7836f0
PM
3292011-08-10 Paulo J. Matos <paulo.matos@csr.com>
330
331 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
332 * doc/tm.texi: Regenerate.
333
4ada410b 3342011-08-10 Georg-Johann Lay <avr@gjlay.de>
88b590c5 335
4ada410b
GJL
336 PR target/29560
337 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
338 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
339 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
340 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
341 shift target is unused.
342
d1f4e15f
RG
3432011-08-10 Richard Guenther <rguenther@suse.de>
344
345 PR tree-optimization/49937
346 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
347 using get_object_alignment_1.
348
2813f1b1
UB
3492011-08-09 Uros Bizjak <ubizjak@gmail.com>
350
351 * config/i386/i386.c (ix86_emit_i387_round): New function.
352 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
353 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
354 Use ix86_emit_i387_round to expand round function for i387 math.
355 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
356 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
357
c6412d86
RO
3582011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
359
360 * config/sync.c: Move to ../libgcc.
2813f1b1 361 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
c6412d86
RO
362 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
363 Remove.
364
6e9ee54c
AS
3652011-08-09 Anatoly Sokolov <aesok@post.ru>
366
367 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
368 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
369 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
370 Change 'from' and 'to' arguments type to reg_class_t.
371 (TARGET_REGISTER_MOVE_COST): Define.
372
394b1520
VM
3732011-08-09 Vladimir Makarov <vmakarov@redhat.com>
374
375 PR target/50026
376 Revert:
377 PR rtl-optimization/49990
378 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
379 ignore classes which can not change mode.
380 (find_costs_and_classes): Ditto.
381
4001900f
RG
3822011-08-09 Richard Guenther <rguenther@suse.de>
383
384 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
385 information for ranges with only negative values.
386 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
387 BIT_AND_EXPR handling to handle ranges with negative values.
388
6cf9eb27
KY
3892011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
390
88b590c5
UB
391 * config/i386/i386.c: Remove traling spaces.
392 * config/i386/sse.md: Likewise.
393 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
394 (*fma_fmsub_<mode>): Likewise.
395 (*fma_fnmadd_<mode>): Likewise.
396 (*fma_fnmsub_<mode>): Likewise.
6cf9eb27 397
d6257cf0
NC
3982011-08-09 Nick Clifton <nickc@redhat.com>
399
400 * config/rx/rx.md: Disable extender peepholes at -O3.
401
3968b050
UB
4022011-08-09 Uros Bizjak <ubizjak@gmail.com>
403
404 PR target/49781
405 * config/i386/i386.md (reload_noff_load): New.
406 (reload_noff_store): Ditto.
407 * config/i386/i386.c (ix86_secondary_reload): Use
408 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
409 double-word moves from/to non-offsetable addresses instead of
410 generating XMM temporary.
411
2292df60
AS
4122011-08-09 Anatoly Sokolov <aesok@post.ru>
413
414 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
415
1684ca6b
IR
4162011-08-09 Ira Rosen <ira.rosen@linaro.org>
417
418 PR tree-optimization/50014
419 * tree-vect-loop.c (vectorizable_reduction): Get def type before
420 calling vect_get_vec_def_for_stmt_copy ().
421
40118062
VM
4222011-08-08 Vladimir Makarov <vmakarov@redhat.com>
423
424 PR rtl-optimization/49990
425 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
426 ignore classes which can not change mode.
427 (find_costs_and_classes): Ditto.
428
8714c21f
RH
4292011-08-08 Richard Henderson <rth@redhat.com>
430
431 PR middle-end/49990
432 * config/i386/i386.c (ix86_expand_prologue): Call
433 for SEH target gen_prologue_use instead of gen_blockage
434 at prologue's end.
435
1ad663a8
MJ
4362011-08-08 Martin Jambor <mjambor@suse.cz>
437
438 PR middle-end/49923
439 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
440 memory alignment.
441
f0efc7aa
DN
4422011-08-08 Diego Novillo <dnovillo@google.com>
443
444 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
445 (DATA_STREAMER_H): New.
446 (GIMPLE_STREAMER_H): New.
447 (TREE_STREAMER_H): New.
448 (STREAMER_HOOKS_H): New.
449 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
450 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
451 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
452 (data-streamer.o): New.
453 (data-streamer-in.o): New.
454 (data-streamer-out.o): New.
455 (gimple-streamer-in.o): New.
456 (gimple-streamer-out.o): New.
457 (streamer-hooks.o): New.
458 (tree-streamer.o): New.
459 (tree-streamer-in.o): New.
460 (tree-streamer-out.o): New.
3968b050 461 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
462 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
463 GIMPLE_STREAMER_H and TREE_STREAMER_H.
464 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
465 GIMPLE_STREAMER_H and TREE_STREAMER_H.
466 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3968b050 467 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
468 (ipa-inline-analysis.o): Likewise.
469 (ipa-pure-const.o): Likewise.
470 * data-streamer-in.c: New.
471 * data-streamer-out.c: New.
472 * data-streamer.c: New.
473 * data-streamer.h: New.
474 * gimple-streamer-in.c: New.
475 * gimple-streamer-out.c: New.
476 * gimple-streamer.h: New.
477 * ipa-inline-analysis.c: Include data-streamer.h.
478 * ipa-prop.c: Include data-streamer.h.
479 * ipa-pure-const.c: Include data-streamer.h.
480 * lto-cgraph.c: Include data-streamer.h.
481 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
482 (lto_input_widest_uint_uleb128): Likewise.
483 (lto_input_sleb128): Likewise.
484 (bp_unpack_var_len_unsigned): Likewise.
485 (bp_unpack_var_len_int): Likewise.
486 * lto-section-out.c (lto_output_uleb128_stream): Move to
487 data-streamer-out.c.
488 (lto_output_widest_uint_uleb128_stream): Likewise.
489 (lto_output_sleb128_stream): Likewise.
490 (bp_pack_var_len_unsigned): Likewise.
491 (bp_pack_var_len_int): Likewise.
3968b050 492 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
f0efc7aa
DN
493 (struct string_slot): Remove. Update all users.
494 (lto_tag_check_set): Make extern.
495 (lto_tag_check_range): Move to lto-streamer.h.
496 (lto_tag_check): Likewise.
497 (hash_string_slot_node): Remove. Update all users.
498 (eq_string_slot_node): Remove. Update all users.
499 (string_for_index): Move to data-streamer-in.c
500 (input_string_internal): Likewise.
501 (input_string_cst): Move to tree-streamer-in.c.
502 (input_identifier): Likewise.
503 (lto_input_string): Move to data-streamer-in.c
504 (input_record_start): Move to data-streamer.h
505 (canon_file_name): Use new definition of struct string_slot
3968b050 506 from data-streamer.h. Set S_SLOT.LEN.
f0efc7aa
DN
507 (lto_input_location): Make extern.
508 (lto_input_chain): Move to tree-streamer-in.c.
509 (lto_init_eh): Make extern.
510 (input_phi): Move to gimple-streamer-in.c.
511 (input_gimple_stmt): Likewise.
512 (input_bb): Likewise.
513 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
514 (unpack_ts_real_cst_value_fields): Likewise.
515 (unpack_ts_fixed_cst_value_fields): Likewise.
516 (unpack_ts_decl_common_value_fields): Likewise.
517 (unpack_ts_decl_wrtl_value_fields): Likewise.
518 (unpack_ts_decl_with_vis_value_fields): Likewise.
519 (unpack_ts_function_decl_value_fields): Likewise.
520 (unpack_ts_type_common_value_fields): Likewise.
521 (unpack_ts_block_value_fields): Likewise.
522 (unpack_ts_translation_unit_decl_value_fields): Likewise.
523 (unpack_value_fields): Likewise.
524 (lto_materialize_tree): Likewise.
525 (lto_input_ts_common_tree_pointers): Likewise.
526 (lto_input_ts_vector_tree_pointers): Likewise.
527 (lto_input_ts_complex_tree_pointers): Likewise.
528 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
529 (lto_input_ts_decl_common_tree_pointers): Likewise.
530 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
531 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
532 (lto_input_ts_field_decl_tree_pointers): Likewise.
533 (lto_input_ts_function_decl_tree_pointers): Likewise.
534 (lto_input_ts_type_common_tree_pointers): Likewise.
535 (lto_input_ts_type_non_common_tree_pointers): Likewise.
536 (lto_input_ts_list_tree_pointers): Likewise.
537 (lto_input_ts_vec_tree_pointers): Likewise.
538 (lto_input_ts_exp_tree_pointers): Likewise.
539 (lto_input_ts_block_tree_pointers): Likewise.
540 (lto_input_ts_binfo_tree_pointers): Likewise.
541 (lto_input_ts_constructor_tree_pointers): Likewise.
542 (lto_input_ts_target_option): Likewise.
543 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
544 (lto_input_tree_pointers): Likewise.
545 (lto_get_pickled_tree): Likewise.
546 (lto_get_builtin_tree): Likewise.
547 (lto_read_tree): Likewise.
548 (lto_input_integer_cst): Likewise.
549 (lto_input_tree): Likewise.
550 * lto-streamer-out.c: Include data-streamer.h,
551 gimple-streamer.h and streamer-hooks.h.
552 (struct string_slot): Move to data-streamer.h.
553 (hash_string_slot_node): Likewise.
554 (eq_string_slot_node): Likewise.
555 (lto_string_index): Move to data-streamer-out.c.
556 (lto_output_string_with_length): Likewise.
557 (lto_output_string): Likewise.
558 (output_string_cst): Move to tree-streamer-out.c.
559 (output_identifier): Likewise.
560 (output_zero): Move to data-streamer-out.c
561 (output_uleb128): Likewise.
562 (output_sleb128): Likewise.
563 (output_record_start): Move to data-streamer.h
564 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
565 (pack_ts_real_cst_value_fields): Likewise.
566 (pack_ts_fixed_cst_value_fields): Likewise.
567 (pack_ts_decl_common_value_fields): Likewise.
568 (pack_ts_decl_wrtl_value_fields): Likewise.
569 (pack_ts_decl_with_vis_value_fields): Likewise.
570 (pack_ts_function_decl_value_fields): Likewise.
571 (pack_ts_type_common_value_fields): Likewise.
572 (pack_ts_block_value_fields): Likewise.
573 (pack_ts_translation_unit_decl_value_fields): Likewise.
574 (pack_value_fields): Likewise.
575 (lto_output_chain): Likewise.
576 (lto_output_ts_common_tree_pointers): Likewise.
577 (lto_output_ts_vector_tree_pointers): Likewise.
578 (lto_output_ts_complex_tree_pointers): Likewise.
579 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
580 (lto_output_ts_decl_common_tree_pointers): Likewise.
581 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
582 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
583 (lto_output_ts_field_decl_tree_pointers): Likewise.
584 (lto_output_ts_function_decl_tree_pointers): Likewise.
585 (lto_output_ts_type_common_tree_pointers): Likewise.
586 (lto_output_ts_type_non_common_tree_pointers): Likewise.
587 (lto_output_ts_list_tree_pointers): Likewise.
588 (lto_output_ts_vec_tree_pointers): Likewise.
589 (lto_output_ts_exp_tree_pointers): Likewise.
590 (lto_output_ts_block_tree_pointers): Likewise.
591 (lto_output_ts_binfo_tree_pointers): Likewise.
592 (lto_output_ts_constructor_tree_pointers): Likewise.
593 (lto_output_ts_target_option): Likewise.
594 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
595 (lto_output_tree_pointers): Likewise.
596 (lto_output_tree_header): Likewise.
597 (lto_output_builtin_tree): Likewise.
598 (lto_write_tree): Likewise.
599 (lto_output_integer_cst): Likewise.
600 (lto_output_tree): Likewise.
601 (output_phi): Move to gimple-streamer-out.c.
602 (output_gimple_stmt): Likewise.
603 (output_bb): Likewise.
604 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
605 (streamer_hooks): Move to streamer-hooks.c.
606 (check_handled_ts_structures): Move to tree-streamer.c
607 (lto_streamer_cache_add_to_node_array): Likewise.
608 (lto_streamer_cache_insert_1): Likewise.
609 (lto_streamer_cache_insert): Likewise.
610 (lto_streamer_cache_insert_at): Likewise.
611 (lto_streamer_cache_append): Likewise.
612 (lto_streamer_cache_lookup): Likewise.
613 (lto_streamer_cache_get): Likewise.
614 (lto_record_common_node): Likewise.
615 (lto_preload_common_nodes): Likewise.
616 (lto_streamer_cache_create): Likewise.
617 (lto_streamer_cache_delete): Likewise.
618 (streamer_hooks_init): Move to streamer-hooks.c.
619 * lto-streamer.h: Include diagnostic.h
620 (struct output_block, struct lto_input_block,
3968b050 621 struct data_in, struct bitpack_d): Remove forward declarations.
f0efc7aa
DN
622 (struct bitpack_d): Move to data-streamer.h.
623 (struct lto_streamer_cache_d): Move to tree-streamer.h.
624 (struct streamer_hooks): Move to streamer-hooks.h.
625 (bp_pack_var_len_unsigned): Move to data-streamer.h.
626 (bp_pack_var_len_int): Likewise.
627 (bp_unpack_var_len_unsigned): Likewise.
628 (bp_unpack_var_len_int): Likewise.
629 (lto_input_location): Declare.
630 (lto_tag_check_set): Declare.
631 (lto_init_eh): Declare.
632 (lto_output_tree_ref): Declare.
633 (lto_output_location): Declare.
634 (bitpack_create): Move to data-streamer.h.
635 (bp_pack_value): Likewise.
636 (lto_output_bitpack): Likewise.
637 (lto_input_bitpack): Likewise.
638 (bp_unpack_value): Likewise.
639 (lto_output_1_stream): Likewise.
640 (lto_input_1_unsigned): Likewise.
641 (lto_output_int_in_range): Likewise.
642 (lto_input_int_in_range): Likewise.
643 (bp_pack_int_in_range): Likewise.
644 (bp_unpack_int_in_range): Likewise.
645 (lto_output_enum): Likewise.
646 (lto_input_enum): Likewise.
647 (bp_pack_enum): Likewise.
648 (bp_unpack_enum): Likewise.
649 * streamer-hooks.c: New.
650 * streamer-hooks.h: New.
651 * tree-streamer-in.c: New.
652 * tree-streamer-out.c: New.
653 * tree-streamer.c: New.
654 * tree-streamer.h: New.
655
ddaad3c8
RO
6562011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
657
658 * gthr-posix95.h: Remove.
659 * gthr.h [_PTHREADS95]: Remove.
660 * configure.ac (enable_threads): Remove posix95.
661 * configure: Regenerate.
3968b050 662 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
ddaad3c8 663
3968b050 6642011-08-08 Uros Bizjak <ubizjak@gmail.com>
473b30ce
UB
665
666 PR target/49781
667 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
668 SImode addresses.
669 (ix86_print_operand_address): Handle zero-extended addresses.
670 (memory_address_length): Add length of addr32 prefix for
671 zero-extended addresses.
672 (ix86_secondary_reload): Handle moves to/from double-word general
673 registers from/to zero-extended addresses.
674 * config/i386/predicates.md (lea_address_operand): Reject
675 zero-extended operands.
676
cca2207a
L
6772011-08-08 H.J. Lu <hongjiu.lu@intel.com>
678
679 PR other/48007
473b30ce 680 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
cca2207a
L
681
682 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
683 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
684
685 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
686 (_Unwind_Context_Reg_Val): Likewise.
687 (_Unwind_Get_Unwind_Word): Likewise.
688 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
689 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
690 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
691 for EXTENDED_CONTEXT_BIT.
692 (__frame_state_for): Likewise.
693 (uw_init_context_1): Likewise.
694 (_Unwind_GetGR): Updated.
695 (_Unwind_SetGR): Likewise.
696 (_Unwind_GetGRPtr): Likewise.
697 (_Unwind_SetGRPtr): Likewise.
698 (_Unwind_SetGRValue): Likewise.
699 (_Unwind_GRByValue): Likewise.
700 (uw_install_context_1): Likewise.
701
702 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
703 ASSUME_EXTENDED_UNWIND_CONTEXT.
704 * doc/tm.texi: Regenerated.
705
b6ee5bef
RO
7062011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
707
708 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
709
46135ba7
RO
7102011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
711
712 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
713 Linux/GNU-specific.
714 (DEC Alpha Options, -mtune): Likewise.
715 (MIPS Options, -march): native is supported on IRIX.
716
e3b3fa45
RO
7172011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
718
719 * config/sparc/driver-sparc.c: New file.
720 * config/sparc/x-sparc: New file.
473b30ce
UB
721 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
722 * config/sparc/sparc.opt (native): New value for enum processor_type.
e3b3fa45
RO
723 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
724 * config/sparc/sparc.c (sparc_option_override): Abort if
725 PROCESSOR_NATIVE gets here.
726 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
727 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
728 DRIVER_SELF_SPECS): Define.
729 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
730 (SPARC Options, -mtune): Likewise.
731 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
732 Substitute result.
733 * configure: Regenerate.
734 * Makefile.in (EXTRA_GCC_LIBS): Set.
735 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
736 (cpp$(exeext)): Likewise.
737
ce6bfa50
RG
7382011-08-08 Richard Guenther <rguenther@suse.de>
739
740 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
741 split out from ...
742 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
743 by composition.
744
daae4650
MP
7452011-08-08 Mikael Pettersson <mikpe@it.uu.se>
746
747 PR tree-optimization/50005
748 * ipa-inline-analysis (remap_predicate): Add cast to
749 silence signed/unsigned comparison warning.
750
3e762578
RS
7512011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
752
753 * modulo-sched.c (get_sched_window): Use a table for the debug output.
754 Print the current ii.
755 (sms_schedule_by_order): Reduce whitespace in dump line.
756
fe43febc
RS
7572011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
758
759 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
760 and one loop for successors. Fix upper bound of memory range.
761
1e46eb2a
UB
7622011-08-06 Uros Bizjak <ubizjak@gmail.com>
763
764 PR target/50001
765 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
766 (TARGET_INSTANTIATE_DECLS): New define.
767
cc3801b0 7682011-08-06 Paolo Bonzini <bonzini@gnu.org>
473b30ce 769 Mikael Morin <mikael.morin@sfr.fr>
cc3801b0
PB
770
771 * Makefile.in (INCLUDES_FOR_TARGET): New.
772 (LIBGCC2_CFLAGS): Use it.
1e46eb2a 773 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
cc3801b0 774
f68c9aa8
UB
7752011-08-06 Uros Bizjak <ubizjak@gmail.com>
776
777 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
778 frame->save_regs_using_mov calculation.
779
cd7c6bc5
UB
7802011-08-06 Uros Bizjak <ubizjak@gmail.com>
781
782 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
783 * config/i386/sse.md (castmode): New mode attribute.
784 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
785 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
786
9911e25a
JH
7872011-08-05 Jan Hubicka <jh@suse.cz>
788
789 PR middle-end/49494
790 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
791
75d3e6e3
JH
7922011-08-05 Jan Hubicka <jh@suse.cz>
793
794 PR middle-end/49500
795 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
796 handle aliases.
797 (create_emultls_var):New function.
798 (ipa_lower_emutls): Handle aliases correctly.
799
f791d333
JH
8002011-08-05 Jan Hubicka <jh@suse.cz>
801
802 PR middle-end/49735
803 * ipa-inline.c (recursive_inlining): Look through aliases.
804
f93b21e2
JM
8052011-08-05 Jason Merrill <jason@redhat.com>
806
807 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
808 declarations to beginning of function.
809
2c331232
BS
8102011-08-05 Bernd Schmidt <bernds@codesourcery.com>
811
812 PR rtl-optimization/49900
813 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
814 ensure basic blocks stay in the same order.
815
44e95206
AH
8162011-08-05 Aldy Hernandez <aldyh@redhat.com>
817
818 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
819 store_bit_field.
820 (s390_expand_atomic): Same.
821
6fe818aa
RH
8222011-08-05 Richard Henderson <rth@redhat.com>
823
824 PR rtl-opt/49977
825 * dwarf2cfi.c (scan_insn_after): Split out of ...
826 (scan_trace): ... here. Correctly place notes wrt sequences.
827
7ac17442
KK
8282011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
829 Richard Henderson <rth@redhat.com>
830
831 PR rtl-opt/49982
832 * expr.c (fixup_args_size_notes): Look through no-op moves.
833
24911a50
UB
8342011-08-05 Uros Bizjak <ubizjak@gmail.com>
835
836 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
837 of "m" for operand 0. Add type and mode attribute.
838 (*pushxf_nointeger"): Use "<" constraint for operand 0.
839 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
840 constraint instead of "o" for opreand 1.
841 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
42443bdb
UB
842 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
843 operand 0, alternative 4.
844 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
24911a50
UB
845
8462011-08-05 Uros Bizjak <ubizjak@gmail.com>
847
848 * config/i386/predicates.md (lea_address_operand): Rename from
849 no_seg_address_operand.
850 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
851 (*lea_1_zext): Ditto.
852 (*lea_2): Ditto.
853 (*lea_2_zext): Ditto.
854
8552011-08-05 Uros Bizjak <ubizjak@gmail.com>
856
857 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
858 parts.base and parts.index.
859 * config/i386/predicates.md (aligned_operand): Ditto.
860 (cmpxchg8b_pic_memory_operand): Ditto.
861
aca0b0b3
RO
8622011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
863
864 * config/soft-fp: Move to ../libgcc.
865 * Makefile.in (SFP_MACHINE): Remove.
866 (libgcc-support): Remove $(SFP_MACHINE) dependency.
867 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
868 * config/arm/t-arm-softfp: Move to
869 ../libgcc/config/arm/t-softfp.
870 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
871 * config/c6x/t-c6x-softfp: Remove.
872 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
873 * config/i386/t-fprules-softfp: Move to
874 ../libgcc/config/t-softfp-tf.
875 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
876 * config/ia64/t-fprules-softfp: Remove.
877 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
878 * config/lm32/t-fprules-softfp: Remove.
879 * config/moxie/sfp-machine.h: Remove.
880 * config/moxie/t-moxie-softfp: Remove.
881 * config/rs6000/darwin-ldouble-format: Move to
882 ../libgcc/config/rs6000/ibm-ldouble-format.
883 * config/rs6000/darwin-ldouble.c: Move to
884 ../libgcc/config/rs6000/ibm-ldouble.c
885 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
886 * config/rs6000/libgcc-ppc64.ver: Likewise.
887 * config/rs6000/sfp-machine.h: Likewise.
888 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
889 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
890 (LIB2FUNCS_EXTRA): Remove.
891 (TARGET_LIBGCC2_CFLAGS): Remove.
892 * config/rs6000/t-aix52: Likewise
893 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
894 $(srcdir)/config/rs6000/darwin-ldouble.c.
895 (SHLIB_MAPFILES): Remove.
896 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
897 $(srcdir)/config/rs6000/darwin-ldouble.c.
898 * config/rs6000/t-fprules-softfp: Move to
899 ../libgcc/config/t-softfp-sfdf.
900 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
901 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
902 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
903 $(srcdir)/config/rs6000/darwin-ldouble.c.
904 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
905 * config/score/t-score-softfp: Remove.
906 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
907 soft-fp/t-softfp from tmake_file.
908 (arm*-*-uclinux*): Likewise.
909 (arm*-*-ecos-elf): Likewise.
910 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
911 (arm*-*-rtems*): Likewise.
912 (arm*-*-elf): Likewise.
913 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
914 tmake_file.
915 (moxie-*-uclinux*): Likewise.
916 (moxie-*-rtems*): Likewise.
917 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
918 tmake_file.
919 (lm32-*-rtems*): Likewise.
920 (lm32-*-uclinux*): Likewise.
921 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
922 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
923 (powerpc-*-linux*, powerpc64-*-linux*): Remove
924 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
925 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
926 tmake_file.
927 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
928 tmake_file.
929 (tic6x-*-uclinux): Likewise.
930 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
931 soft-fp/t-softfp from tmake_file.
932 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
933 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
934 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
24911a50 935 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
aca0b0b3
RO
936 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
937
569dc494
RO
9382011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
939
940 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
24911a50 941 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
569dc494
RO
942 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
943 TPBIT, TPBIT_FUNCS.
944 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
945 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
946 Remove.
947 * config/arm/t-vxworks: Likewise.
948 * config/arm/t-wince-pe: Likewise.
949 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
950 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
951 * config/bfin/t-bfin-elf: Likewise.
952 * config/bfin/t-bfin-linux: Likewise.
953 * config/bfin/t-bfin-uclinux: Likewise.
954 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
955 Remove.
956 * config/fr30/t-fr30: Likewise.
957 * config/frv/t-frv: Likewise.
958 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
959 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
960 * config/m32c/t-m32c: Likewise.
961 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
962 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
963 * config/mcore/t-mcore: Likewise.
964 * config/mep/t-mep: Likewise.
965 * config/microblaze/t-microblaze: Likewise.
966 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
967 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
968 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
969 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
970 * config/mn10300/t-linux: Remove.
971 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
972 * config/pdp11/t-pdp11: Likewise.
973 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
974 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
975 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
976 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
977 * config/rs6000/t-aix52: Likewise.
978 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
979 $(srcdir)/config/rs6000/ppc64-fp.c.
980 * config/rs6000/t-fprules-fpbit: Remove.
981 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
982 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
983 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
984 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
985 * config/sparc/t-elf: Likewise.
986 * config/sparc/t-leon: Likewise.
987 * config/sparc/t-leon3: Likewise.
988 * config/spu/t-spu-elf: Likewise.
989 (DPBIT_FUNCS): Remove.
990 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
991 * config/v850/t-v850: Likewise.
992 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
993 (avr-*-*): Likewise.
994 (h8300-*-rtems*): Set libgcc_tm_file.
995 (h8300-*-elf*): Likewise.
996 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
997 tmake_file.
998 (powerpc-*-eabisim*): Likewise.
999 (powerpc-*-elf*): Likewise.
1000 (powerpc-*-eabialtivec*): Likewise.
1001 (powerpc-xilinx-eabi*): Likewise.
1002 (powerpc-*-eabi*): Likewise.
1003 (powerpc-*-rtems*): Likewise.
1004 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
1005 (powerpcle-*-elf*): Likewise.
1006 (powerpcle-*-eabisim*): Likewise.
1007 (powerpcle-*-eabi*): Likewise.
1008 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
1009 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
1010 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
1011 Remove.
1012
201cdb74
RO
10132011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1014
1015 * Makefile.in (UNWIND_H): Remove.
1016 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
1017 ../libgcc/Makefile.in.
1018 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
1019 (LIBUNWINDDEP): Remove.
1020 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
1021 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
1022 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
1023 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
1024 Don't copy $(UNWIND_H).
24911a50 1025 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
201cdb74
RO
1026 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
1027 * aclocal.m4: Regenerate.
1028 * configure: Regenerate.
1029 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1030 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1031 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1032 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1033 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1034 * config/arm/libunwind.S, config/arm/pr-support.c,
1035 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1036 ../libgcc/config/arm.
1037 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1038 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1039 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1040 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1041 ($(T)frvend$(objext)): Likewise.
1042 * config/ia64/t-glibc (LIB2ADDEH): Remove.
1043 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1044 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1045 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1046 ../libgcc/config/ia64.
1047 * config/ia64/t-hpux (LIB2ADDEH): Remove.
1048 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1049 * config/ia64/t-vms (LIB2ADDEH): Remove.
1050 * config/ia64/vms.h (UNW_IVMS_MODE,
1051 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1052 * config/picochip/t-picochip (LIB2ADDEH): Remove.
1053 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1054 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1055 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1056 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1057 $(srcdir)/../libgcc to refer to unwinder sources.
1058 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1059 * config/t-darwin (LIB2ADDEH): Remove.
1060 * config/t-freebsd (LIB2ADDEH): Remove.
1061 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1062 * config/t-libunwind-elf: Move to ../libgcc/config.
1063 * config/t-linux (LIB2ADDEH): Remove.
1064 * config/t-sol2 (LIB2ADDEH): Remove.
1065 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1066 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1067
cee0d6d2
L
10682011-08-05 H.J. Lu <hongjiu.lu@intel.com>
1069
1070 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1071
1072 * doc/invoke.texi: Document core-avx-i.
1073
96c891b3
RO
10742011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1075
1076 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1077
2aacf3c3
IR
10782011-08-05 Ira Rosen <ira.rosen@linaro.org>
1079
1080 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1081 result of multiple results reduction when extracting the final
1082 value using scalar code.
1083
0f36b2da
RG
10842011-08-05 Richard Guenther <rguenther@suse.de>
1085
1086 PR tree-optimization/49984
1087 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1088
8b201bc5
RG
10892011-08-05 Richard Guenther <rguenther@suse.de>
1090
1091 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1092 return true for constant integer ranges.
1093 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1094 BIT_IOR_EXPR handling.
1095
c1ea7f07
KT
10962011-08-04 Kai Tietz <ktietz@redhat.com>
1097
1098 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1099 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1100
1107f3ae
IR
11012011-08-04 Ira Rosen <ira.rosen@linaro.org>
1102
1103 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1104 pattern def statement, and its access macro.
1105 (NUM_PATTERNS): Set to 5.
1106 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1107 pattern def statement.
1108 (vect_transform_loop): Likewise.
1109 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1110 function vect_recog_over_widening_pattern ().
1111 (vect_operation_fits_smaller_type): New function.
1112 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1113 Likewise.
1114 (vect_pattern_recog_1): Move the code that marks pattern
1115 statements to vect_mark_pattern_stmts (), and call it. Update
1116 documentation.
1117 * tree-vect-stmts.c (vect_supportable_shift): New function.
1118 (vect_analyze_stmt): Handle pattern def statement.
1119 (new_stmt_vec_info): Initialize pattern def statement.
1120
6394830f
RH
11212011-08-04 Richard Henderson <rth@redhat.com>
1122
1123 PR target/49964
1124 * config/i386/i386.c (ix86_expand_call): Don't create nested
1125 PARALLELs for TARGET_VZEROUPPER.
1126 (ix86_split_call_vzeroupper): Fix extraction of the original call.
1127 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1128 recognize nested PARALLELs.
1129 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1130 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1131 *sibcall_value_pop_vzeroupper): Likewise.
1132
faf7a23d
RH
11332011-08-04 Richard Henderson <rth@redhat.com>
1134
1135 PR middle-end/49968
1136 * calls.c (expand_call): Use fixup_args_size_notes for
1137 emit_stack_restore.
1138 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1139 in non-standard modes.
1140
84f405a1
JJ
11412011-08-04 Jakub Jelinek <jakub@redhat.com>
1142
1143 * gcc.c (self_spec): New variable.
1144 (static_specs): Add self_spec.
1145 (main): Call do_self_spec on "self_spec" specs after reading
1146 user specs files. Move compare_debug handling right after that.
1147
4d320da4
RG
11482011-08-04 Richard Guenther <rguenther@suse.de>
1149
1150 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1151 (value_range_nonnegative_p): New function.
1152 (ssa_name_nonnegative_p): Use it.
1153 (value_range_constant_singleton): New function.
1154 (op_with_constant_singleton_value_range): Use it.
1155 (extract_range_from_binary_expr_1): New function, split out from ...
1156 (extract_range_from_binary_expr): ... this. Remove fallback
1157 constant folding done here.
1158
7e29ba60
RG
11592011-08-04 Richard Guenther <rguenther@suse.de>
1160
1161 PR tree-optimization/49806
1162 * tree-vrp.c (op_with_boolean_value_range_p): New function.
1163 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
1164 a new statement for a final conversion to bool.
1165
f142b5bc
RG
11662011-08-04 Romain Geissler <romain.geissler@gmail.com>
1167
1168 * gengtype-state.c: Include "bconfig.h" if
1169 GENERATOR_FILE is defined, "config.h" otherwise.
1170 * gengtype.c: Likewise.
1171 * gengtype-lex.l: Likewise.
1172 * gengtype-parse.c: Likewise.
1173 * Makefile.in (gengtype-lex.o-warn): New variable.
1174 (plugin_resourcesdir): Likewise.
1175 (plugin_bindir): Likewise.
1176 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1177 (MOSTLYCLEANFILES): Add gengtype$(exeext).
1178 (native): Depend on gengtype$(exeext) is $enable_plugin
1179 is set to "yes".
1180 (gtype.state): Depend on s-gtype. Use temporary file.
1181 (gengtype-lex.o): New rule.
1182 (gengtype-parse.o): Likewise.
1183 (gengtype-state.o): Likewise.
1184 (gengtype$(exeext)): Likewise.
1185 (install-gengtype): Likewise.
1186 (gengtype.o): Likewise.
1187 (build/gengtype.o): Depend on version.h.
1188 (build/gengtype-state): Depend on double-int.h, version.h,
1189 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1190 (install-plugin): Depend on install-gengtype.
1191
8dd00781
JJ
11922011-08-04 Jakub Jelinek <jakub@redhat.com>
1193
1194 PR middle-end/49905
1195 * tree.h (init_attributes): New prototype.
1196 * attribs.c (init_attributes): No longer static.
1197
6eb9142a
RR
11982011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1199
1200 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1201 maybe_suffix.
1202
63a73071
DL
12032011-08-03 David Li <davidxl@google.com>
1204
1205 * tree-optimize.c (execute_fixup_cfg): Fix up entry
1206 outgoing edge counts after inlining.
1207
90037898
DL
12082011-08-03 David Li <davidxl@google.com>
1209
1210 * profile.c (compute_branch_probabilities): Compute
1211 function frequency after profile annotation.
1212
ea6c2b0e
AM
12132011-08-04 Alan Modra <amodra@gmail.com>
1214
1215 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1216 use_backchain_to_restore_sp initialisation.
1217 (rs6000_legitimate_offset_address_p): Simplify offset test.
1218
4b39813a
RH
12192011-08-03 Richard Henderson <rth@redhat.com>
1220
1221 * config/spu/spu.md: Use define_c_enum instead of define_constants.
1222 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1223 (UNSPECV_NOP): New.
1224
a6365e99
RH
12252011-08-03 Richard Henderson <rth@redhat.com>
1226
1227 PR target/34888
1228 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1229
cb3d2e33
JJ
12302011-08-03 Jakub Jelinek <jakub@redhat.com>
1231
1232 PR tree-optimization/49948
1233 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1234
35bdbc69
AS
12352011-08-03 Anatoly Sokolov <aesok@post.ru>
1236
1237 * config/m32c/m32c.c (class_sizes): Remove.
1238 (reduce_class): Change arguments and return type to reg_class_t.
1239 Change type cc var to HARD_REG_SET. Change type best var to
1240 reg_class_t. Change type best_size var to unsigned int. Remove
1241 initialization class_sizes var. Use reg_class_size array instead
1242 of class_sizes. Use reg_class_contents array instead
1243 of class_contents.
1244
a130fb24
RG
12452011-08-03 Richard Guenther <rguenther@suse.de>
1246
1247 PR middle-end/49958
1248 * fold-const.c (fold_binary_loc): Only associate
1249 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1250 overflow wraps.
1251
276e0224
AM
12522011-08-03 Alan Modra <amodra@gmail.com>
1253
1254 PR rtl-optimization/49941
1255 * jump.c (mark_jump_label): Comment.
1256 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1257 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1258 (mark_used_flags): Don't mark RETURN.
1259
eb723fa3
RG
12602011-08-03 Richard Guenther <rguenther@suse.de>
1261
1262 PR tree-optimization/49938
1263 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1264 deal with a POLYNOMIAL_CHREC.
1265
edc429ff
RE
12662011-08-03 Revital Eres <revital.eres@linaro.org>
1267
1268 * modulo-sched.c (calculate_stage_count,
1269 calculate_must_precede_follow, get_sched_window,
1270 try_scheduling_node_in_cycle, remove_node_from_ps): Add
1271 declaration.
1272 (update_node_sched_params, set_must_precede_follow, optimize_sc):
1273 New functions.
1274 (reset_sched_times): Call update_node_sched_params.
1275 (sms_schedule): Call optimize_sc.
1276 (get_sched_window): Change function arguments.
1277 (sms_schedule_by_order): Update call to get_sched_window.
1278 Call set_must_precede_follow.
1279 (calculate_stage_count): Add function argument.
1280
9a08d230
RH
12812011-08-02 Richard Henderson <rth@redhat.com>
1282
1283 PR target/49864
a3fef928 1284 PR target/49879
9a08d230
RH
1285 * reg-notes.def (REG_ARGS_SIZE): New.
1286 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1287 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1288 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1289 different stack levels.
1290 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1291 (maybe_move_args_size_note): New.
1292 (combine_stack_adjustments_for_block): Use it.
1293 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1294 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1295 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1296 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1297 (cur_cfa): New.
1298 (queued_args_size): Remove.
1299 (add_cfi_args_size): Assert size is non-negative.
1300 (stack_adjust_offset, dwarf2out_args_size): Remove.
1301 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1302 (notice_args_size, notice_eh_throw): New.
1303 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1304 (dwarf2out_frame_debug_adjust_cfa): Likewise.
1305 (dwarf2out_frame_debug_cfa_offset): Likewise.
1306 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
1307 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1308 (change_cfi_row): Don't emit args_size.
1309 (maybe_record_trace_start_abnormal): Split out from ...
1310 (maybe_record_trace_start): Here. Set args_size_undefined.
1311 (create_trace_edges): Update to match.
1312 (scan_trace): Handle REG_ARGS_SIZE.
1313 (connect_traces): Connect args_size between EH insns.
1314 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1315 * explow.c (suppress_reg_args_size): New.
1316 (adjust_stack_1): Split out from ...
1317 (adjust_stack): ... here.
1318 (anti_adjust_stack): Use it.
1319 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1320 * expr.c (mem_autoinc_base): New.
1321 (fixup_args_size_notes): New.
1322 (emit_single_push_insn_1): Rename from emit_single_push_insn.
1323 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
1324 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1325 * reload1.c (reload_as_needed): Likewise.
1326 * rtl.h (fixup_args_size_notes): Declare.
1327
9f813990
PC
13282011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
1329
1330 PR bootstrap/49914
1331 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1332 of abs.
1333 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1334 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1335
8f1594b2
RH
13362011-08-02 Richard Henderson <rth@redhat.com>
1337
1338 * config/h8300/h8300.c (push, pop): Return the insn.
1339 (h8300_swap_into_er6): Generate correct unwind info.
1340 (h8300_swap_out_of_er6): Likewise.
cde7b553
RH
1341 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1342 complex cfa expression.
1343 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8f1594b2 1344
3ed2c643
L
13452011-08-02 H.J. Lu <hongjiu.lu@intel.com>
1346
1347 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1348
f9b4f8c1
RH
13492011-08-02 Richard Henderson <rth@redhat.com>
1350
1351 PR target/49878
1352 * config/h8300/h8300.c (h8300_move_ok): New.
1353 * config/h8300/h8300-protos.h: Declare it.
1354 * config/h8300/h8300.md (P): New mode iterator.
1355 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1356 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1357 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1358 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1359 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1360 and pushqi1_h8300hs_normal; use PRE_MODIFY and
1361 register_no_sp_elim_operand.
1362 (*pushhi1_h8300hs_<P>): Similarly.
1363 (pushqi1, pushhi1, pushhi1_h8300): Remove.
1364 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1365
b7cef595
RH
13662011-08-02 Richard Henderson <rth@redhat.com>
1367
1368 PR target/49881
1369 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1370
20906c66
JJ
13712011-08-02 Jakub Jelinek <jakub@redhat.com>
1372
1373 * c-parser.c (enum c_parser_prec): New enum, moved from within
1374 c_parser_binary_expression.
1375 (c_parser_binary_expression): Add PREC argument. Stop parsing
1376 if operator has lower or equal precedence than PREC.
1377 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1378 callers.
1379 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1380 Adjust c_finish_omp_atomic caller.
1381 (c_parser_omp_taskyield): New function.
1382 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1383 (c_parser_omp_clause_name): Handle final and mergeable clauses.
1384 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1385 functions.
1386 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1387 and PRAGMA_OMP_CLAUSE_MERGEABLE.
1388 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1389 (c_parser_omp_clause_reduction): Handle min and max.
1390 * c-typeck.c (c_finish_omp_clauses): Don't complain about
1391 const qualified predetermined vars in firstprivate clause.
1392 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1393 Handle MIN_EXPR and MAX_EXPR.
1394 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1395 and OMP_CLAUSE_MERGEABLE.
1396 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1397 and OMP_ATOMIC_CAPTURE_NEW.
1398 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1399 OMP_CLAUSE_MERGEABLE.
1400 (omp_clause_code_name): Likewise.
1401 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1402 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1403 and OMP_CLAUSE_MERGEABLE.
1404 (OMP_CLAUSE_FINAL_EXPR): Define.
1405 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1406 OMP_CLAUSE_MERGEABLE.
1407 (expand_task_call): Likewise.
1408 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1409 (expand_omp_atomic_fetch_op): Handle cases where old or new
1410 value is needed afterwards.
1411 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1412 expand_omp_atomic_store.
1413 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1414 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1415 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1416 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1417 * tree-nested.c (convert_nonlocal_omp_clauses,
1418 convert_local_omp_clauses): Likewise.
1419 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1420 OMP_ATOMIC_CAPTURE_NEW): New.
1421 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1422 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1423 New inlines.
1424 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1425 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1426 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1427
9b80d091
KT
14282011-08-02 Kai Tietz <ktietz@redhat.com>
1429
1430 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1431 boolean-type.
1432 (ssa_forward_propagate_and_combine): Interprete result of
1433 forward_propagate_comparison.
1434 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1435 boolean-typed operands for comparisons.
1436
7ea56b23 14372011-08-02 Georg-Johann Lay <avr@gjlay.de>
276e0224 1438
7ea56b23
GJL
1439 * config/avr/libgcc.S: Gather related function in the
1440 same input section.
276e0224 1441 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7ea56b23
GJL
1442 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1443 references.
1444 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1445 __udivmodsi4, __divmodsi4, __prologue_saves__,
1446 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1447 __do_copy_data, __do_clear_bss, __do_global_ctors,
1448 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1449
643e867f
UB
14502011-08-02 Uros Bizjak <ubizjak@gmail.com>
1451
1452 PR target/47766
1453 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1454 (stack_protect_test): The pattern compares ptr_mode value.
1455
390fa588
AM
14562011-08-02 Alan Modra <amodra@gmail.com>
1457
1458 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1459 note for save_LR_around_toc_setup sequence.
1460
d4be16f6
L
14612011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1462
643e867f 1463 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 1464
3c67fd9c
SP
14652011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1466 Joseph Myers <joseph@codesourcery.com>
1467
1468 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1469 * hwint.c: Include diagnostic-core.h.
1470 (abs_hwi): New.
1471 (gcd): Moved here...
1472 (pos_mul_hwi): New.
1473 (mul_hwi): New.
1474 (least_common_multiple): Moved here...
1475 * hwint.h (gcd): ... from here.
1476 (least_common_multiple): ... from here.
1477 (HOST_WIDE_INT_MIN): New.
1478 (HOST_WIDE_INT_MAX): New.
1479 (abs_hwi): Declared.
1480 (gcd): Declared.
1481 (pos_mul_hwi): Declared.
1482 (mul_hwi): Declared.
1483 (least_common_multiple): Declared.
1484 * omega.c (check_pos_mul): Removed.
1485 (check_mul): Removed.
1486 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1487 mul_hwi instead of check_mul.
1488
172c08a5
RH
14892011-08-01 Richard Henderson <rth@redhat.com>
1490
1491 PR target/49881
1492 * config/avr/avr.h (PUSH_ROUNDING): New.
1493 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1494 (*pushhi, *pushsi, *pushsf): Remove.
1495 (MPUSH): New mode iterator.
1496 (push<MPUSH>1): New expander.
1497
0d5e496f
AS
14982011-08-01 Anatoly Sokolov <aesok@post.ru>
1499
1500 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1501 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1502 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1503 mmix_preferred_output_reload_class): Remove.
1504 * config/mmix/mmix.c (mmix_preferred_reload_class,
1505 mmix_preferred_output_reload_class): Make static. Change rclass
1506 argument and return type to reg_class_t.
1507 (TARGET_PREFERRED_RELOAD_CLASS,
1508 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1509
a44250f4
JR
15102011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1511
1512 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1513 handling.
1514
efd7630c
L
15152011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1516
1517 PR target/47766
1518 * config/i386/i386.md (PTR): New.
1519 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1520 (stack_protect_test): Likewise.
1521 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1522 (stack_tls_protect_set_<mode>): Likewise.
1523 (stack_tls_protect_test_<mode>): Likewise.
1524
03acddfe
UB
15252011-08-01 Uros Bizjak <ubizjak@gmail.com>
1526
1527 PR target/49927
1528 * config/i386/i386.c (ix86_address_subreg_operand): New.
1529 (ix86_decompose_address): Use ix86_address_subreg_operand.
1530 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1531 register_no_elim_operand in DImode.
1532
67f2d54f
IR
15332011-08-01 Ira Rosen <ira.rosen@linaro.org>
1534
1535 PR tree-optimization/49926
1536 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1537 in a chain doesn't have uses both inside and outside the loop.
1538
f2c308fa 15392011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 1540
f2c308fa
GJL
1541 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1542 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1543 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1544 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1545 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1546 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1547 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1548 to detect if XJMP must not be skipped.
1549
bd15e32c
AM
15502011-08-02 Alan Modra <amodra@gmail.com>
1551
03acddfe
UB
1552 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1553 Delete.
bd15e32c
AM
1554 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1555 (rs6000_emit_prologue): Don't prematurely return when
1556 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1557 save_toc_in_prologue case.
1558 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1559 calls_alloca.
1560
d80de9e1 15612011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 1562
d80de9e1
GJL
1563 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1564 * config/avr/predicates.md: Ditto.
1565 * config/avr/driver-avr.c: Ditto.
1566 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1567
ee222ce0
L
15682011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1569
1570 * calls.c (emit_library_call_value_1): Declare size only if
1571 BLOCK_REG_PADDING is defined.
1572
5fcafa60
KY
15732011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1574
1575 PR target/49547
03acddfe 1576 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
1577 (x86_64-*-*): Likewise.
1578 * config/i386/i386.opt (mlzcnt): New.
1579 * config/i386/abmintrin.h: File removed.
1580 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 1581 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
1582 (__lzcnt): Rename to ...
1583 (__lzcnt32): ... this.
1584 * config/i386/bmiintrin.h (head): Update copyright year.
1585 (__lzcnt_u16): Removed.
1586 (__lzcnt_u32): Likewise.
1587 (__lzcnt_u64): Likewise.
1588 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1589 is defined, remove abmintrin.h.
1590 * config/i386/cpuid.h (bit_LZCNT): New.
1591 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1592 LZCNT feature.
1593 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1594 __LZCNT__ if needed.
1595 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1596 (ix86_option_override_internal): Handle LZCNT option.
1597 (ix86_valid_target_attribute_inner_p): Likewise.
1598 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1599 * config/i386/i386.h (TARGET_LZCNT): New.
1600 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1601 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1602 (clz<mode>2_lzcnt): Likewise.
1603 * doc/invoke.texi: Mention -mlzcnt option.
1604 * doc/extend.texi: Likewise.
1605
655b30bf
JB
16062011-08-01 Julian Brown <julian@codesourcery.com>
1607
1608 * configure.ac (fixed-point): Add ARM support.
1609 * configure: Regenerate.
1610 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1611 (arm_set_fixed_optab_libfunc): New.
1612 (arm_set_fixed_conv_libfunc): New.
1613 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1614 ARM-specific names.
1615 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1616 return values in SImode.
1617 (arm_return_in_msb): Return fixed-point types in the msb.
1618 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1619 upwards.
1620 (arm_scalar_mode_supported_p): Support fixed-point modes.
1621 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1622 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1623 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1624 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1625 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1626 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1627 New mode iterators.
1628 (qaddsub_suf): New mode attribute.
1629 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1630 vector modes.
1631 * config/arm/predicates.md (sat_shift_operator): New predicate.
1632 * config/arm/arm-fixed.md: New.
1633 * config/arm/arm.md: Include arm-fixed.md.
1634 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1635
460b171d
JB
16362011-08-01 Julian Brown <julian@codesourcery.com>
1637
1638 * calls.c (emit_library_call_value_1): Support padding for libcall
1639 arguments and return values.
1640 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1641 downwards in big-endian mode.
1642
b6193c94
RO
16432011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1644
1645 PR debug/49887
1646 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1647 * config/sol2-protos.h: Likewise.
1648 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1649 solaris_code_end.
1650 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1651 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1652 solaris_file_end.
1653 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1654
0747aae4
JB
16552011-08-01 Julian Brown <julian@codesourcery.com>
1656
1657 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1658
848fac28
JB
16592011-08-01 Julian Brown <julian@codesourcery.com>
1660
1661 * final.c (output_addr_const): Print fixed-point constants as
1662 decimal not hex.
1663
e62a2b6e
RG
16642011-08-01 Richard Guenther <rguenther@suse.de>
1665
1666 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1667 bitsiztype TYPE_MAX_VALUE.
1668
f64398b5
JB
16692011-08-01 Julian Brown <julian@codesourcery.com>
1670
1671 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1672 comparison helpers.
1673
c469244e
RH
16742011-07-31 Richard Henderson <rth@redhat.com>
1675
1676 * config/h8300/crti.asm: Add flags to .section directive.
1677 * config/h8300/crtn.asm: Likewise.
1678
b87ac615
RH
16792011-07-31 Richard Henderson <rth@redhat.com>
1680
1681 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1682 * tree.c (build_common_tree_nodes): Likewise.
1683
05eb5cc3
KK
16842011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1685
1686 PR target/49880
1687 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1688 (divsi3_i1): Likewise.
1689
a3059635
BS
16902011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1691
1692 PR tree-optimization/49749
1693 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1694 (PHI_LOOP_BIAS): New macro.
1695 (phi_rank): New function.
1696 (loop_carried_phi): Likewise.
1697 (propagate_rank): Likewise.
1698 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 1699
3ee7be4c
L
17002011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1701
1702 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1703 of TARGET_64BIT.
1704 (PTRDIFF_TYPE): Likewise.
1705
deb1f617
UB
17062011-07-31 Uros Bizjak <ubizjak@gmail.com>
1707
1708 PR target/49920
1709 * config/i386/i386.md (strset): Do not expand strset_singleop
1710 when %eax or $edi are fixed.
1711 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1712 (*strsetsi_1): Ditto.
1713 (*strsethi_1): Ditto.
1714 (*strsetqi_1): Ditto.
1715 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1716 (*rep_stossi): Ditto.
1717 (*rep_stosqi): Ditto.
03acddfe 1718 (*strlenqi_1): Ditto.
deb1f617
UB
1719 (cmpstrnsi): Also fail when %ecx is fixed.
1720 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1721 (*cmpstrnqi_1): Ditto.
deb1f617
UB
1722 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1723 (*strmovsi_1): Ditto.
1724 (*strmovhi_1): Ditto.
1725 (*strmovqi_1): Ditto.
1726 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1727 (*rep_movsi): Ditto.
1728 (*rep_movqi): Ditto.
1729
03e69b12
MP
17302011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1731
1732 PR target/47908
1733 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1734 Disable instruction scheduling for non-ColdFire targets.
1735 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1736
dcaac07d
RE
17372011-07-31 Revital Eres <revital.eres@linaro.org>
1738
1739 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1740 of anti-dep edge from a branch.
1741 (add_cross_iteration_register_deps): Create anti-dep edge from
1742 a branch.
1743
413e50a2
RE
17442011-07-31 Revital Eres <revital.eres@linaro.org>
1745
1746 * modulo-sched.c: Change comment.
1747 (reset_sched_times): Fix print message.
1748 (print_partial_schedule): Add print info.
1749
f047e518
TV
17502011-07-31 Tom de Vries <tom@codesourcery.com>
1751
1752 PR middle-end/43513
1753 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1754 get_object_alignment and TYPE_ALIGN.
1755
b3421a06
TV
17562011-07-30 Tom de Vries <tom@codesourcery.com>
1757
1758 PR middle-end/43513
1759 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1760 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1761
cc822cc1
RO
17622011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1763
1764 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1765 <sys/sbd.h>.
1766 (cpu_types): New array.
1767 (cputype): New function.
1768 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1769 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1770 * config.host: Also use driver-native.o, mips/x-native on
1771 mips-sgi-irix*.
deb1f617 1772 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
1773 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1774 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1775
25142650
JJ
17762011-07-29 Jakub Jelinek <jakub@redhat.com>
1777
1778 PR middle-end/49897
1779 PR middle-end/49898
1780 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1781 in nested parallel and outer is a gimple_reg, mark it as addressable
1782 and set its bit in task_shared_vars bitmap too.
1783
89840058
UB
17842011-07-29 Uros Bizjak <ubizjak@gmail.com>
1785
1786 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1787
d2da41f5
RO
17882011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1789
1790 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1791 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1792 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1793 AMASK_LOCKPFTCHOK): Define.
1794 (host_detect_local_cpu): Remove buf, f, cpu_names.
1795 Define cpu_types, implver, amask.
1796 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1797 native CPU.
1798 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1799 alpha*-dec-osf*.
1800 * config/alpha/osf5.h [__alpha__ || __alpha]
1801 (host_detect_local_cpu): Declare.
1802 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1803 (DRIVER_SELF_SPECS): Define.
1804
dadecee2
UB
18052011-07-29 Uros Bizjak <ubizjak@gmail.com>
1806
1807 PR target/47715
1808 * config/i386/i386.md (*load_tp_x32): New.
1809 (*load_tp_x32_zext): Ditto.
1810 (*add_tp_x32): Ditto.
1811 (*add_tp_x32_zext): Ditto.
1812 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1813 (*add_tp_<mode>): Ditto.
1814 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1815 ptr_mode and convert to Pmode if needed.
1816
db7ccee2 18172011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 1818
db7ccee2
GJL
1819 PR target/49687
1820 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1821 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1822 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1823 Add X to register footprint: Clobber r26/r27.
1824
96d03496
RG
18252011-07-29 Richard Guenther <rguenther@suse.de>
1826
1827 * builtins.c (fold_builtin_signbit): Build the comparison
1828 with a proper type.
1829
64fb0d3a
RG
18302011-07-29 Richard Guenther <rguenther@suse.de>
1831
1832 PR tree-optimization/49893
1833 * tree-predcom.c (suitable_reference_p): Volatile references
1834 are not suitable.
1835
6130646b 18362011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 1837
6130646b
GJL
1838 PR target/49313
1839 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1840 (__ctzsi2): Result for 0 may be undefined.
1841 (__ctzhi2): Result for 0 may be undefined.
1842 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1843 (__popcountsi2): Ditto. And don't clobber r26.
1844 (__popcountdi2): Ditto. And don't clobber r27.
1845 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1846 (parityhi2): New expand.
1847 (paritysi2): New expand.
1848 (popcounthi2): New expand.
1849 (popcountsi2): New expand.
1850 (clzhi2): New expand.
1851 (clzsi2): New expand.
1852 (ctzhi2): New expand.
1853 (ctzsi2): New expand.
1854 (ffshi2): New expand.
1855 (ffssi2): New expand.
1856 (copysignsf3): New insn.
1857 (bswapsi2): New expand.
1858 (*parityhi2.libgcc): New insn.
1859 (*parityqihi2.libgcc): New insn.
1860 (*paritysihi2.libgcc): New insn.
1861 (*popcounthi2.libgcc): New insn.
1862 (*popcountsi2.libgcc): New insn.
1863 (*popcountqi2.libgcc): New insn.
1864 (*popcountqihi2.libgcc): New insn-and-split.
1865 (*clzhi2.libgcc): New insn.
1866 (*clzsihi2.libgcc): New insn.
1867 (*ctzhi2.libgcc): New insn.
1868 (*ctzsihi2.libgcc): New insn.
1869 (*ffshi2.libgcc): New insn.
1870 (*ffssihi2.libgcc): New insn.
1871 (*bswapsi2.libgcc): New insn.
1872
a9b332d4
RG
18732011-07-29 Richard Guenther <rguenther@suse.de>
1874
1875 * tree-vrp.c (get_value_range): Only set parameter default
1876 definitions to varying, leave others at undefined.
1877 (extract_range_from_binary_expr): Fix undefined handling.
1878 (vrp_visit_phi_node): Handle merged undefined state.
1879
154516d9
WG
18802011-07-29 Wei Guozhi <carrot@google.com>
1881
1882 PR rtl-optimization/49799
1883 * combine.c (make_compound_operation): Check if the bit field is valid
1884 before change it to bit field extraction.
1885
e40a0b69
BS
18862011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1887
1888 PR rtl-optimization/49891
1889 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1890 newly created returnjumps.
1891
13a23442
DD
18922011-07-28 DJ Delorie <dj@redhat.com>
1893
69135c94
DD
1894 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1895 local frame in a naked function, and produce a suitable error for
1896 that specific case.
1897
13a23442
DD
1898 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1899 registers to be reloaded in HI classes when the target is HI.
1900
6c6c79a9
SP
19012011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1902
1903 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1904 bound_one, bound_two.
1905
0c43dbaf
SP
19062011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1907
1908 PR middle-end/48648
1909 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1910 CLAST assignments.
1911 (translate_clast): Same.
1912 (translate_clast_assignment): New.
1913
60cf26cc
SP
19142011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1915
1916 PR tree-optimization/49876
1917 * sese.c (rename_uses): Do not return false on gloog_error: set
1918 the new_expr to integer_zero_node and continue code generation.
1919 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1920
4fe249e7
JJ
19212011-07-28 Jakub Jelinek <jakub@redhat.com>
1922
1923 PR debug/49846
1924 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1925 arguments also check if they aren't initialized with a MODE_INT
1926 mode of the same size.
1927
86f98641
AH
19282011-07-28 Aldy Hernandez <aldyh@redhat.com>
1929
1930 * expr.c (get_bit_range): Handle *MEM_REF's.
1931
dc0ff1c8
BS
19322011-07-28 Bernd Schmidt <bernds@codesourcery.com>
1933
1934 * rtlanal.c (tablejump_p): False for returns.
1935 * reorg.c (first_active_target_insn): New static function.
1936 (find_end_label): Set JUMP_LABEL for a new returnjump.
1937 (optimize_skip, get_jump_flags, rare_destination,
1938 mostly_true_jump, get_branch_condition,
1939 steal_delay_list_from_target, own_thread_p,
1940 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1941 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1942 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1943 * jump.c (delete_related_insns): Likewise.
1944 (jump_to_label_p): New function.
1945 (redirect_target): New static function.
1946 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
1947 (redirect_jump_1): Assert that the new label is nonnull.
1948 (redirect_jump): Likewise.
1949 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1950 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1951 exit block.
1952 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
1953 changed. Ensure that the right label is passed to redirect_jump.
1954 * function.c (emit_return_into_block,
1955 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1956 ret_rtx in their JUMP_LABEL.
1957 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1958 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1959 pass ret_rtx as label.
1960 * cfglayout.c (fixup_reorder_chain): Use
1961 force_nonfallthru_and_redirect rather than force_nonfallthru.
1962 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1963 * rtl.h (ANY_RETURN_P): New macro.
1964 (jump_to_label_p): Declare.
1965 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1966 JUMP_LABELs.
1967 (mark_target_live_regs): Likewise.
1968 * basic-block.h (force_nonfallthru_and_redirect): Declare.
1969 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1970 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1971 alpha_tablejump_best_label): Remove functions.
1972 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1973 alpha_tablejump_best_label): Remove declarations.
1974 * config/sh/sh.c (barrier_align, split_branches): Adjust for
1975 ret_rtx in JUMP_LABELs.
1976 * config/arm/arm.c (is_jump_table): Likewise.
1977
a2e49bb2
UB
19782011-07-28 Uros Bizjak <ubizjak@gmail.com>
1979
1980 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1981 special predicate. Remove explicit mode checks.
1982
64153cce
JJ
19832011-07-28 Jakub Jelinek <jakub@redhat.com>
1984
a2e49bb2
UB
1985 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1986 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 1987
64153cce
JJ
1988 PR debug/49871
1989 * dwarf2out.c (size_of_die, value_format, output_die): Use
1990 DW_FORM_udata instead of DW_FORM_data[48] for
1991 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1992
0465f4f8
L
19932011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1994
844bf05b
UB
1995 * config/i386/i386.md (*tls_global_dynamic_64): Update
1996 length attribute.
0465f4f8 1997
f51c4a8a
UB
19982011-07-28 Uros Bizjak <ubizjak@gmail.com>
1999
2000 PR target/47715
2001 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
2002 tls_symbolic_operand check. Update code sequence for TARGET_X32.
2003 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
2004 (tls_dynamic_gnu2_64): Ditto.
2005 (*tls_dynamic_gnu2_lea_64): Ditto.
2006 (*tls_dynamic_gnu2_call_64): Ditto.
2007 (*tls_dynamic_gnu2_combine_64): Ditto.
2008
5e9627ca
L
20092011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2010
2011 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
2012
40b9321d
L
20132011-07-28 H.J. Lu <hongjiu.lu@intel.com>
2014
2015 PR target/47364
2016 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
2017
95f89bb3
RR
20182011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2019
2020 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
2021 before the core constraints. Adjust attributes.
a2e49bb2 2022 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 2023
98958241
KT
20242011-07-28 Kai Tietz <ktietz@redhat.com>
2025
f51c4a8a 2026 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
2027 (simplify_truth_ops_using_ranges): Likewise.
2028 (build_assert_expr_for): Likewise.
2029 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2030 and handle BIT_NOT_EXPR for truth-operation.
2031
f627fef2 20322011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 2033
f627fef2
GJL
2034 PR target/49313
2035 Undo r176835 from trunk
2036 2011-07-27 Georg-Johann Lay
2037
296799ba 20382011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 2039
296799ba
GJL
2040 PR target/49687
2041 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2042 Add _muluhisi3, _mulshisi3, _usmulhisi3.
2043 * config/avr/libgcc.S (__mulsi3): Rewrite.
2044 (__mulhisi3): Rewrite.
2045 (__umulhisi3): Rewrite.
2046 (__usmulhisi3): New.
2047 (__muluhisi3): New.
2048 (__mulshisi3): New.
2049 (__mulohisi3): New.
2050 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2051 declare.
2052 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2053 (pseudo_register_or_const_int_operand): New.
2054 (combine_pseudo_register_operand): New.
2055 (u16_operand): New.
2056 (s16_operand): New.
2057 (o16_operand): New.
2058 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2059 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2060 (any_extend, any_extend2): New code iterators.
2061 (extend_prefix): New code attribute.
2062 (mulsi3): Rewrite. Turn insn to expander.
2063 (mulhisi3): Ditto.
2064 (umulhisi3): Ditto.
2065 (usmulhisi3): New expander.
2066 (*mulsi3): New insn-and-split.
2067 (mulu<mode>si3): New insn-and-split.
2068 (muls<mode>si3): New insn-and-split.
2069 (mulohisi3): New insn-and-split.
2070 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2071 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2072 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2073 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2074 insn-and-split.
2075 (*mulsi3_call): Rewrite.
2076 (*mulhisi3_call): Rewrite.
2077 (*umulhisi3_call): Rewrite.
2078 (*usmulhisi3_call): New insn.
2079 (*muluhisi3_call): New insn.
2080 (*mulshisi3_call): New insn.
2081 (*mulohisi3_call): New insn.
2082 (extendqihi2): Use combine_pseudo_register_operand as predicate
2083 for operand 1.
2084 (extendqisi2): Ditto.
2085 (zero_extendqihi2): Ditto.
2086 (zero_extendqisi2): Ditto.
2087 (zero_extendhisi2): Ditto.
2088 (extendhisi2): Ditto. Don't early-clobber operand 0.
2089
d8fa1b73
UB
20902011-07-28 Uros Bizjak <ubizjak@gmail.com>
2091
2092 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2093
3689198d
SP
20942011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2095
2096 PR tree-optimization/49471
2097 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2098 iv only when the largest type is unsigned. Do not call
2099 lang_hooks.types.type_for_size.
2100
27165edd
SP
21012011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2102
2103 PR middle-end/45450
2104 * graphite-poly.c (apply_poly_transforms): Disable legality check
2105 after an openscop read.
2106
bd4a54da
SP
21072011-07-27 Sebastian Pop <sebastian.pop@amd.com>
2108
2109 PR middle-end/47691
2110 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2111 copy_bb_and_scalar_dependences.
2112 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
2113 (graphite_copy_stmts_from_block): Update call to rename_uses.
2114 (copy_bb_and_scalar_dependences): Update call to
2115 graphite_copy_stmts_from_block.
2116 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2117
04c9ea12 21182011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 2119
04c9ea12
GJL
2120 PR target/49313
2121 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2122 (__ctzsi2): Result for 0 may be undefined.
2123 (__ctzhi2): Result for 0 may be undefined.
2124 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2125 (__popcountsi2): Ditto. And don't clobber r26.
2126 (__popcountdi2): Ditto. And don't clobber r27.
2127 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2128 (parityhi2): New expand.
2129 (paritysi2): New expand.
2130 (popcounthi2): New expand.
2131 (popcountsi2): New expand.
2132 (clzhi2): New expand.
2133 (clzsi2): New expand.
2134 (ctzhi2): New expand.
2135 (ctzsi2): New expand.
2136 (ffshi2): New expand.
2137 (ffssi2): New expand.
2138 (copysignsf3): New insn.
2139 (bswapsi2): New expand.
2140 (*parityhi2.libgcc): New insn.
2141 (*parityqihi2.libgcc): New insn.
2142 (*paritysihi2.libgcc): New insn.
2143 (*popcounthi2.libgcc): New insn.
2144 (*popcountsi2.libgcc): New insn.
2145 (*popcountqi2.libgcc): New insn.
2146 (*popcountqihi2.libgcc): New insn-and-split.
2147 (*clzhi2.libgcc): New insn.
2148 (*clzsihi2.libgcc): New insn.
2149 (*ctzhi2.libgcc): New insn.
2150 (*ctzsihi2.libgcc): New insn.
2151 (*ffshi2.libgcc): New insn.
2152 (*ffssihi2.libgcc): New insn.
2153 (*bswapsi2.libgcc): New insn.
2154
479a4921
UB
21552011-07-27 Uros Bizjak <ubizjak@gmail.com>
2156
2157 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2158 the mode of symbolic_opreand RTXes.
2159
7aecd4e8
UB
21602011-07-27 Uros Bizjak <ubizjak@gmail.com>
2161
a2e49bb2
UB
2162 * config/i386/predicates.md (x86_64_movabs_operand): Return false
2163 for pic_32bit_operand RTXes.
7aecd4e8
UB
2164 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2165 in DImode.
2166
eb9820c0
KT
21672011-07-27 Kai Tietz <ktietz@redhat.com>
2168
2fe83a0c
KT
2169 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2170 for 32-bit, too.
2171 (ix86_handle_abi_attribute): Allow function attributes
2172 ms_abi/sysv_abi in 32-bit mode, too.
2173 * doc/extend.texi: Adjust attribute documentation.
2174
eb9820c0
KT
2175 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2176 expression handling.
2177 (and_var_with_comparison_1): Likewise.
2178
1169e45d
AH
21792011-07-27 Aldy Hernandez <aldyh@redhat.com>
2180
2181 * params.h (ALLOW_STORE_DATA_RACES): New.
2182 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2183 * Makefile.in (expr.o): Depend on PARAMS_H.
2184 * machmode.h (get_best_mode): Add argument.
2185 * fold-const.c (optimize_bit_field_compare): Add argument to
2186 get_best_mode.
2187 (fold_truthop): Same.
2188 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2189 * expr.c (emit_group_store): Same.
2190 (copy_blkmode_from_reg): Same.
2191 (write_complex_part): Same.
2192 (optimize_bitfield_assignment_op): Add argument.
2193 Add argument to get_best_mode.
2194 (get_bit_range): New.
7aecd4e8 2195 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 2196 (store_field): New argument.
7aecd4e8 2197 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
2198 * expr.h (store_bit_field): New argument.
2199 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2200 into account maxbits.
2201 * calls.c (store_unaligned_arguments_into_pseudos): New argument
2202 to store_bit_field.
2203 * expmed.c (store_bit_field_1): New argument. Use it.
2204 (store_bit_field): Same.
2205 (store_fixed_bit_field): Same.
2206 (store_split_bit_field): Same.
2207 (extract_bit_field_1): Pass new argument to get_best_mode.
2208 (extract_bit_field): Same.
2209 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2210 * doc/invoke.texi: Document parameter allow-store-data-races.
2211
7bbdd4e9
JJ
22122011-07-27 Jakub Jelinek <jakub@redhat.com>
2213
7aecd4e8 2214 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 2215
aebf4828
KT
22162011-07-27 Kai Tietz <ktietz@redhat.com>
2217
2218 * tree-vrp.c (extract_range_from_binary_expr): Remove
2219 TRUTH-binary cases and add new bitwise-cases.
2220 (extract_range_from_assignment): Likewise.
2221 (register_edge_assert_for_1): Likeiwise.
2222 (register_edge_assert_for): Likewise.
2223 (simplify_truth_ops_using_ranges): Likewise.
2224 (simplify_stmt_using_ranges): Likewise.
2225
65ceed36
L
22262011-07-26 H.J. Lu <hongjiu.lu@intel.com>
2227
2228 PR target/47372
2229 * config/i386/i386.c (ix86_delegitimize_address): Call
2230 simplify_gen_subreg for PIC with mode of x only if modes of
2231 x and orig_x are different.
2232
b56bc05b
JJ
22332011-07-26 Jakub Jelinek <jakub@redhat.com>
2234
2235 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2236 to GC allocated copy of the string.
2237 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2238 before .debug_line, not after it.
2239
bce26def
SP
22402011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2241
2242 PR middle-end/47046
2243 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2244 evolution_function_is_affine_p on CHREC_RIGHT.
2245
5f72e02d
SP
22462011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2247
2248 * tree-data-ref.c (max_stmt_executions_tree): Do not call
2249 lang_hooks.types.type_for_size.
2250
cbc1994b
SP
22512011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2252
2253 PR middle-end/47653
2254 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2255 loops using wrapping semantics.
2256
4c7d6755
SP
22572011-07-26 Sebastian Pop <sebastian.pop@amd.com>
2258
2259 PR middle-end/48805
2260 * tree-scalar-evolution.c (instantiate_scev_r): Return
2261 chrec_dont_know for ADDR_EXPR.
2262
e207e41f
UB
22632011-07-26 Uros Bizjak <ubizjak@gmail.com>
2264 H.J. Lu <hongjiu.lu@intel.com>
2265
2266 PR target/47369
2267 PR target/49853
2268 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2269 if legitimize_tls_address returned operand in wrong mode. Allow
2270 SImode and DImode symbolic operand for PIC. Call convert_to_mode
2271 if legitimize_pic_address returned operand in wrong mode.
2272
842eeb9b
MJ
22732011-07-26 Martin Jambor <mjambor@suse.cz>
2274
2275 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2276 return false for invariants.
2277
98d2c0ad
UB
22782011-07-26 Uros Bizjak <ubizjak@gmail.com>
2279
2280 * config/i386/i386.md (add->lea splitter): Implement using SWI
2281 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
2282 (add->lea zext splitter): Change operand 2 predicate to
2283 x86_64_nonmemory_operand.
2284
c21510a9
RG
22852011-07-26 Richard Guenther <rguenther@suse.de>
2286
2287 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2288 frequency makes everything hot.
2289
9f61fd17
RG
22902011-07-26 Richard Guenther <rguenther@suse.de>
2291
2292 PR tree-optimization/49840
2293 * tree-vrp.c (range_fits_type_p): Properly handle full
2294 double-int precision.
2295
5bf3d50d
MJ
22962011-07-26 Martin Jambor <mjambor@suse.cz>
2297
2298 PR bootstrap/49786
2299 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2300 counts.
2301 (update_specialized_profile): Likewise.
2302
536e3f49
UB
23032011-07-26 Uros Bizjak <ubizjak@gmail.com>
2304 H.J. Lu <hongjiu.lu@intel.com>
2305
2306 PR target/47381
2307 PR target/49832
2308 PR target/49833
2309 * config/i386/i386.md (i): Change SImode attribute to "e".
2310 (g): Change SImode attribute to "rme".
2311 (di): Change SImode attribute to "nF".
2312 (general_operand): Change SImode attribute to x86_64_general_operand.
2313 (general_szext_operand): Change SImode attribute to
2314 x86_64_szext_general_operand.
2315 (immediate_operand): Change SImode attribute to
2316 x86_64_immediate_operand.
2317 (nonmemory_operand): Change SImode attribute to
2318 x86_64_nonmemory_operand.
2319 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2320 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
2321 (*lea_1): Use SWI48 mode iterator.
2322 (*lea_1_zext): New insn pattern.
2323 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2324 (*bt<mode>): Ditto.
2325 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2326 Update operand constraints.
2327 (addsi_1_zext): Ditto.
2328 (*add<mode>2): Ditto.
2329 (*addsi_3_zext): Ditto.
2330 (*subsi_1_zext): Ditto.
2331 (*subsi_2_zext): Ditto.
2332 (*subsi_3_zext): Ditto.
2333 (*addsi3_carry_zext): Ditto.
2334 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2335 (*mulsi3_1_zext): Ditto.
2336 (*andsi_1): Ditto.
2337 (*andsi_1_zext): Ditto.
2338 (*andsi_2_zext): Ditto.
2339 (*<any_or:code>si_1_zext): Ditto.
2340 (*<any_or:code>si_2_zext): Ditto.
2341 (*test<mode>_1): Use <general_operand> predicate for operand 1.
2342 (*and<mode>_2): Ditto.
2343 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
2344 (add->lea splitter): Check operand modes in insn constraint. Extend
2345 operands less than SImode wide to SImode.
2346 (add->lea zext splitter): Do not extend input operands to DImode.
2347 (*lea_general_1): Handle only QImode and HImode operands.
2348 (*lea_general_2): Ditto.
2349 (*lea_general_3): Ditto.
2350 (*lea_general_1_zext): Remove.
2351 (*lea_general_2_zext): Ditto.
2352 (*lea_general_3_zext): Ditto.
2353 (*lea_general_4): Check operand modes in insn constraint. Extend
2354 operands less than SImode wide to SImode.
2355 (ashift->lea splitter): Ditto.
2356 * config/i386/i386.c (ix86_print_operand_address): Print address
2357 registers with 'q' modifier on 64bit targets.
2358 * config/i386/predicates.md (pic_32bit_opreand): Define as special
2359 predicate. Reject non-SI and non-DI modes.
2360
0de204de
AP
23612011-07-25 Andrew Pinski <apinski@cavium.com>
2362
2363 PR tree-opt/49671
2364 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2365 TREE_THIS_NOTRAP into the inner most MEM_REF.
2366 Always copy TREE_THIS_VOLATILE.
2367 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2368 arguments are not volatile references.
2369
104fcc7a
RH
23702011-07-25 Richard Henderson <rth@redhat.com>
2371
2372 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2373 * final.c (final_scan_insn): Don't test for it.
2374 (rest_of_clean_state): Likewise.
2375
c24a6738
RH
23762011-07-25 Richard Henderson <rth@redhat.com>
2377
2378 PR debug/49841
2379 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2380 (emit_frame_save): Likewise.
2381 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2382 insn onto a dummy blockage insn after the join label.
2383
200e10dc
RH
23842011-07-25 Richard Henderson <rth@redhat.com>
2385
2386 * dwarf2cfi.c (dw_trace_info): Add ID member.
2387 (get_trace_index): Remove. Change users to use ID member.
2388 (before_next_cfi_note): New.
2389 (connect_traces): Remove unreachable traces before the main loop.
2390 Look across one trace and generate remember/restore_state if needed.
2391
a5d0ce89
RH
23922011-07-25 Richard Henderson <rth@redhat.com>
2393
2394 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2395
c344a866
JR
23962011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
2397
2398 * genattr.c (write_upcase, gen_attr <enum definition writing>):
2399 Move to ...
2400 * genattr-common.c ... here.
2401 (main): Call gen_attr.
2402 * optc-gen.awk: Make generated program include insn-attr-common.h .
2403 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2404
4645179e
AS
24052011-07-25 Anatoly Sokolov <aesok@post.ru>
2406
2407 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2408 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2409 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2410 m32c_print_operand, m32c_print_operand_address): Remove.
2411 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2412 Change return type to bool. Change argument type to bool.
2413 (m32c_print_operand, m32c_print_operand_address): Make static.
2414 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2415 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2416
8175c19c
RO
24172011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2418
2419 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2420 attributes): Document mmap.
2421
5057fa13
AS
24222011-07-25 Anatoly Sokolov <aesok@post.ru>
2423
2424 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2425 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2426 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2427 mmix_print_operand, mmix_print_operand_address): Remove.
2428 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2429 Change return type to bool. Change argument type to bool.
2430 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 2431 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
2432 to const_rtx.
2433 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2434 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2435
f4da258f 24362011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 2437
f4da258f
GJL
2438 PR target/39386
2439 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2440 shift counter for x << x and x >> x shifts.
2441
1500b428
RO
24422011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2443
2444 PR target/47124
2445 * config.gcc: Reject *-*-solaris2 configuration.
2446
59daeef4
RS
24472011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2448
2449 PR tree-optimization/49809
2450 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2451 gimple_get_lhs instead of gimple_assign_lhs.
2452
4d1c7421
RO
24532011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2454
2455 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2456
7fdab8d4
RG
24572011-07-25 Richard Guenther <rguenther@suse.de>
2458
2459 PR tree-optimization/49822
2460 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2461 more. Make sure to preserve stmts with side-effects. Properly
2462 handle virtual defs, follow a longer def chain.
2463
1baae426
RG
24642011-07-22 Romain Geissler <romain.geissler@gmail.com>
2465
2466 PR plugins/45348
2467 PR plugins/48425
2468 PR plugins/46577
2469 * Makefile.in: Do not flatten c-family directory when installing
2470 plugin headers.
2471
264b47b0
EB
24722011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2473
2474 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2475 original nodes if we are dealing with virtual clones.
2476
3d02ae65
BS
24772011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2478
2479 * common/config/c6x/c6x-common.c: New file.
2480
2eaa698b
RZ
24812011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2482
2483 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2484
ebeadd91
RG
24852011-07-25 Richard Guenther <rguenther@suse.de>
2486
2487 PR tree-optimization/49715
2488 * tree-vrp.c: Include expr.h and optabs.h.
2489 (range_fits_type_): New function.
2490 (simplify_float_conversion_using_ranges): Likewise.
2491 (simplify_stmt_using_ranges): Call it.
2492 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2493 * optabs.c (can_float_p): Export.
2494 * optabs.h (can_float_p): Declare.
2495
d9256277
RG
24962011-07-25 Richard Guenther <rguenther@suse.de>
2497
2498 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2499 (get_value_range): For out-of-range SSA names or names created
2500 after propagation return a read-only varying range.
2501 (dump_all_value_ranges): Adjust.
2502 (vrp_initialize): Likewise.
2503 (vrp_finalize): Likewise.
2504
149e741d
RH
25052011-07-24 Richard Henderson <rth@redhat.com>
2506
2507 PR debug/49831
2508 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2509 them entirely.
2510
981dc735
RH
25112011-07-24 Richard Henderson <rth@redhat.com>
2512
2513 PR debug/49825
2514 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2515 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2516
3382318a
RH
25172011-07-24 Richard Henderson <rth@redhat.com>
2518
2519 PR debug/49827
2520 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2521
2f23f97a
RH
25222011-07-24 Richard Henderson <rth@redhat.com>
2523
2524 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2525 Zero args_size for abnormal edges. Adjust all callers.
2526
2edb462e
RH
25272011-07-24 Richard Henderson <rth@redhat.com>
2528
2529 PR debug/49825
2530 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2531
96d5384b
L
25322011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2533
2534 PR bootstrap/49835
2535 * collect2.c (demangle_flag): Removed.
2536
df45fc34
SL
25372011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2538
2539 * configure.ac (demangler_in_ld): Default to yes.
2540 * configure: Regenerated.
2541 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2542 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2543 --no-demangle options straight through to ld. When
2544 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2545 way that has the intended effect on Windows.
2546
829bdd4b
RH
25472011-07-23 Richard Henderson <rth@redhat.com>
2548
2549 * dwarf2cfi.c: Include basic-block.h.
2550 (dw_label_info): Remove.
2551 (trace_work_list, trace_index): New.
2552 (remember_row, emit_cfa_remember): Remove.
2553 (dw_trace_info_hash, dw_trace_info_eq): New.
2554 (get_trace_index, get_trace_info): New.
2555 (save_point_p): New.
2556 (free_cfi_row): Remove.
2557 (add_cfi): Do not emit DW_CFA_remember_state.
2558 (cfa_row_equal_p): New.
2559 (barrier_args_size): Remove.
2560 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2561 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2562 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2563 (dwarf2out_cfi_begin_epilogue): Remove.
2564 (dwarf2out_frame_debug_restore_state): Remove.
2565 (connect_traces, create_pseudo_cfg): New.
2566 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2567 * Makefile.in (dwarf2cfi.o): Update.
2568
43215a89
RH
25692011-07-23 Richard Henderson <rth@redhat.com>
2570
2571 * dwarf2cfi.c (dw_trace_info): New.
2572 (dw_label_info): New.
2573 (cie_return_save): New.
2574 (cur_trace): New.
2575 (queued_args_size): Rename from args_size. Update all users.
2576 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2577 (def_cfa_1): Use cur_trace instead of cfa_*.
2578 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2579 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2580 (dwarf2out_frame_debug_expr): Likewise.
2581 (create_cie_data): Split out from ...
2582 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2583
6ffc63e1
RH
25842011-07-23 Richard Henderson <rth@redhat.com>
2585
2586 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2587 Update all users to match.
2588 (execute_dwarf2_frame): Free reg_saved_in_data.
2589
999646c1
RH
25902011-07-23 Richard Henderson <rth@redhat.com>
2591
2592 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2593 (queued_reg_saves): Don't GTY. Change to a VEC.
2594 (queue_reg_save): Update to match.
2595 (dwarf2out_flush_queued_reg_saves): Likewise.
2596 (clobbers_queued_reg_save): Likewise.
2597 (reg_saved_in): Likewise.
2598 (execute_dwarf2_frame): Free queued_reg_saves.
2599
ce363ef2
RH
26002011-07-23 Richard Henderson <rth@redhat.com>
2601
2602 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2603
57e16c96
RH
26042011-07-23 Richard Henderson <rth@redhat.com>
2605
2606 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2607 (dwarf2out_args_size): ... here.
2608 (add_cfi_restore): Split out from ...
2609 (dwarf2out_frame_debug_cfa_restore): ... here.
2610 (def_cfa_0): Split out from ...
2611 (def_cfa_1): ... here.
2612 (cfi_oprnd_equal_p, cfi_equal_p): New.
2613 (change_cfi_row): New.
2614 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2615 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2616 (output_cfis): Remove.
2617 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2618 (dwarf2out_switch_text_section): Don't call output_cfis.
2619 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2620 * dwarf2out.h: Update decls.
2621 (enum dw_val_class): Add dw_val_class_none.
2622
f1a0e830
RH
26232011-07-23 Richard Henderson <rth@redhat.com>
2624
2625 * dwarf2cfi.c (update_row_reg_save): New.
2626 (dwarf2out_frame_debug_cfa_expression): Use it.
2627 (dwarf2out_frame_debug_cfa_restore): Likewise.
2628 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2629
141618e2
RH
26302011-07-23 Richard Henderson <rth@redhat.com>
2631
2632 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2633
f17d3401
RH
26342011-07-23 Richard Henderson <rth@redhat.com>
2635
2636 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2637 (cie_cfi_row): New.
2638 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2639 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2640 (cur_row, remember_row): New.
2641 (def_cfa_1): Use cur_row instead of the old_* variables.
2642 (dwarf2out_frame_debug_restore_state): Similarly.
2643 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2644 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2645 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2646 (dwarf2out_frame_debug_cfa_offset): Likewise.
2647 (dwarf2out_frame_debug_expr): Likewise.
2648 (execute_dwarf2_frame): Set up cur_row.
2649 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2650
0be7e7a6
RH
26512011-07-23 Richard Henderson <rth@redhat.com>
2652
2653 * basic-block.h (EDGE_PRESERVE): New.
2654 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2655 * bb-reorder.c: Include except.h.
2656 (fix_up_crossing_landing_pad): New.
536e3f49 2657 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
2658 landing pads in the right partition. Duplicate as necessary.
2659 (partition_hot_cold_basic_blocks): Fix up DF info after
2660 duplicating landing pads.
2661 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2662 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2663 is set properly. Validate that EH edges are not CROSSING.
2664 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2665 (dw2_build_landing_pads): ... here.
2666 (convert_to_eh_region_ranges): Remove code to fixup crossing
2667 landing pads.
2668 * except.h (expand_dw2_landing_pad_for_region): Declare.
2669 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2670
e0170551
RE
26712011-07-23 Richard Earnshaw <rearnsha@arm.com>
2672
2673 PR target/49816
2674 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2675
15c2ccba
JM
26762011-07-22 Jason Merrill <jason@redhat.com>
2677
2678 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2679
295331a4
RH
26802011-07-22 Richard Henderson <rth@redhat.com>
2681
2682 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2683
5f93b30a
RH
26842011-07-22 Richard Henderson <rth@redhat.com>
2685
2686 * jump.c (maybe_propagate_label_ref): Split out of...
2687 (mark_all_labels): ... here. Do not attempt label_ref
2688 propagation while in cfglayout mode.
2689
e967adf4
JJ
26902011-07-22 Jakub Jelinek <jakub@redhat.com>
2691
520cda8c
JJ
2692 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2693 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2694 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2695 (dwarf2out_define): If the vector is empty and
2696 lineno is 0, emit a dummy entry first.
2697 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2698 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2699 optimize_macinfo_range): New functions.
2700 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2701 mergeable, optimize longer strings using
2702 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2703 optimize longer sequences of define/undef ops from headers
2704 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2705 emit a section headers.
2706 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2707 and macinfo_section_label to DEBUG_MACRO_SECTION
2708 resp. DEBUG_MACRO_SECTION_LABEL.
2709 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2710 instead of DW_AT_macro_info.
2711
e967adf4
JJ
2712 PR other/32998
2713 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2714 options.
2715 * dwarf2out.c: Include opts.h.
2716 (dchar_p): New typedef. Define heap VEC for it.
2717 (producer_string): New variable.
2718 (gen_producer_string): New function.
2719 (gen_compile_unit_die): Use it.
536e3f49 2720 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
2721 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2722 * doc/invoke.texi: Document -grecord-gcc-switches and
2723 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2724 to -frecord-gcc-switches description.
2725
3a636414
JM
27262011-07-22 Jason Merrill <jason@redhat.com>
2727
2728 PR c++/30112
2729 * c-decl.c (c_linkage_bindings): Define.
2730
8b9b2275
EB
27312011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2732
2733 PR debug/49815
2734 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2735
3de69514
L
27362011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2737
2738 * config/i386/i386.c (ix86_option_override_internal): Disallow
2739 MS ABI in x32 mode.
2740 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2741 only for TARGET_LP64.
536e3f49 2742 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 2743
49f6f4f7 27442011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
2745
2746 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2747 avoid warnings when GCC is built with a C++ compiler.
2748
b75d1e21
MJ
27492011-07-22 Martin Jambor <mjambor@suse.cz>
2750
2751 PR lto/49796
2752 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 2753 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 2754
63708bf5
UB
27552011-07-22 Uros Bizjak <ubizjak@gmail.com>
2756
e3c666fd 2757 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
2758 default_gnu_indirect_function to yes.
2759
27315aa6
RG
27602011-07-22 Richard Guenther <rguenther@suse.de>
2761
2762 PR tree-optimization/45819
2763 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2764 preserve volatile and notrap flags.
2765
5b6d595b
RO
27662011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2767 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2768
2769 PR bootstrap/49794
2770 * configure.ac: Test AM_ICONV with CXX.
2771 * configure: Regenerate.
2772 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2773
7e2fe488
RO
27742011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2775
2776 PR bootstrap/49797
2777 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2778 (set_cloog_options): Use it.
2779
d423df48
JJ
27802011-07-22 Jakub Jelinek <jakub@redhat.com>
2781
2782 PR c++/49756
2783 * gcc.c (main): Call stack_limit_increase (64MB).
2784 * toplev.c (toplev_main): Likewise.
2785
7fd72c6f
L
27862011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2787
2788 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2789 instead of force_reg.
2790
96f0b772
L
27912011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2792
2793 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2794 needed and use force_reg after convert.
2795 (ix86_expand_call): Likewise.
2796 (ix86_expand_special_args_builtin): Likewise.
2797 (ix86_expand_builtin): Likewise.
2798
ef74e2ba
SP
27992011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2800
2801 PR middle-end/47654
2802 PR middle-end/49649
2803 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2804 in parameter. Initialize v1 and v2 based on the values returned
2805 by clast_name_to_lb_ub.
2806 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2807 values.
2808 (type_for_clast_bin): Same.
2809 (type_for_clast_expr): Same.
2810 (type_for_clast_eq): Update calls to type_for_clast_expr.
2811 (type_for_clast_for): Same.
2812 (build_iv_mapping): Same.
2813 * graphite-ppl.h (value_min): New.
2814
84f2ffea
SP
28152011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2816
2817 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2818 types whenever possible.
2819
3d9784cb
SP
28202011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2821
2822 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2823 and ub fields.
2824 (new_clast_name_index): Add lb and ub parameters.
2825 (free_clast_name_index): New.
2826 (clast_name_to_lb_ub): New.
2827 (save_clast_name_index): Add lb and ub parameters.
2828 (compute_bounds_for_param): New.
2829 (type_for_level): Removed.
2830 (type_for_clast_for): Removed level parameter. Do not call
2831 type_for_level.
2832 (graphite_create_new_loop): Store the lb and ub for the clast_name
2833 of the iterator of the loop that has been generated.
2834 (graphite_create_new_loop_guard): Remove parameter level.
2835 (create_params_index): Store the lb and ub of each parameter.
2836 (gloog): Use free_clast_name_index. Pass to create_params_index
2837 the current scop.
2838
12b30e6d
SP
28392011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2840
2841 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2842 (max_precision_type): Inline max_signed_precision_type.
2843 (type_for_clast_red): Use max_precision_type.
2844 (type_for_clast_bin): Same.
2845 (type_for_clast_for): Same.
2846
0cdd9dcf
SP
28472011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2848
2849 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2850 type_for_interval.
2851 (gcc_type_for_value): Renamed type_for_value.
2852 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2853 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2854 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2855 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2856 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2857 (graphite_translate_clast_equation): Update calls.
2858 (compute_type_for_level): Renamed type_for_level.
2859 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2860 (build_iv_mapping): Update calls.
2861 (graphite_create_new_loop_guard): Same.
2862
8aab43a0
SP
28632011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2864
2865 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2866 comment.
2867
cf7eab7d
SP
28682011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2869
2870 * graphite-clast-to-gimple.c (struct ivs_params): New.
2871 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2872 (clast_to_gcc_expression): Same.
2873 (clast_to_gcc_expression_red): Same.
2874 (gcc_type_for_clast_term): Same.
2875 (gcc_type_for_clast_expr): Same.
2876 (gcc_type_for_clast_red): Same.
2877 (gcc_type_for_clast_bin): Same.
2878 (gcc_type_for_clast_eq): Same.
2879 (graphite_translate_clast_equation): Same.
2880 (graphite_create_guard_cond_expr): Same.
2881 (graphite_create_new_guard): Same.
2882 (graphite_create_new_loop): Same.
2883 (build_iv_mapping): Same.
2884 (translate_clast_user): Same.
2885 (graphite_create_new_loop_guard): Same.
2886 (translate_clast): Same.
2887 (translate_clast_for_loop): Same.
2888 (translate_clast_for): Same.
2889 (translate_clast_guard): Same.
2890 (initialize_cloog_names): Fix typo.
2891 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2892
7b1e9596
SP
28932011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2894
2895 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2896 (new_clast_name_index): Add level parameter.
2897 (clast_name_to_level): New.
2898 (save_clast_name_index): Add level parameter.
2899 (newivs_to_depth_to_newiv): Removed.
2900 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2901 (graphite_create_new_loop): Add level parameter. Pass level to
2902 save_clast_name_index.
2903 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2904 (create_params_index): Pass level to save_clast_name_index.
2905
6e6568db
SP
29062011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2907
2908 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2909 recompute type, lb, and ub. Get them from...
2910 (graphite_create_new_loop_guard): ...here. Pass in parameter
2911 pointers to type, lb, and ub.
2912 (translate_clast_for_loop): Update function calls.
2913 (translate_clast_for): Same.
2914
dff62090
SP
29152011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2916
2917 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2918 psct_dynamic_dim.
2919 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2920 (gcc_type_for_iv_of_clast_loop): Update use of level.
2921 (gloog): Start counting nesting level from 0.
2922 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2923 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2924 psct_dynamic_dim on level.
2925
628c1ac9
L
29262011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2927
2928 * config/i386/i386.c (ix86_legitimize_address): Convert to
2929 Pmode if needed.
2930
08a8923e
L
29312011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2932
2933 * config/i386/i386.c (function_value_64): Always return pointers
2934 in Pmode.
2935 (ix86_promote_function_mode): New.
2936 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2937
777a4e9a
BS
29382011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2939
2940 PR tree-optimization/49749
2941 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2942 remove no-longer-used maxrank variable.
63708bf5 2943
e9514725 29442011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 2945
e9514725
GJL
2946 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2947
9ca1483b
JM
29482011-07-21 Jason Merrill <jason@redhat.com>
2949
2950 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2951 * recog.h (struct insn_data_d): Check it instead of
2952 HAVE_DESIGNATED_INITIALIZERS.
2953 * genoutput.c (output_insn_data): Likewise.
2954
3ceaf2f5
RG
29552011-07-21 Richard Guenther <rguenther@suse.de>
2956
2957 PR tree-optimization/49770
2958 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2959 valueized any operand. Renamed from ...
2960 (valueize_refs): ... this. New wrapper around valueize_refs_1.
2961 (valueize_shared_reference_ops_from_ref): Return whether we
2962 valueized any operand.
2963 (vn_reference_lookup): Only when we valueized any operand
2964 use the valueized reference for alias analysis. Do not preserve
2965 the original reference tree in this case.
2966
7c53a140
UB
29672011-07-21 Uros Bizjak <ubizjak@gmail.com>
2968
2969 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 2970 register operands and subregs of DImode hard registers in index.
7c53a140 2971
7f3ff782
KT
29722011-07-21 Kai Tietz <ktietz@redhat.com>
2973
2974 * fold-const.c (fold_unary_loc): Preserve indirect
2975 comparison cast to none-boolean type.
2976 * tree-ssa.c (useless_type_conversion_p): Preserve cast
2977 from/to boolean-type.
7c53a140
UB
2978 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2979 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
2980 * tree-cfg.c (verify_gimple_comparison): Check result
2981 type of comparison expression.
7c53a140
UB
2982 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2983 of condition result and disallow type-cast sinking into comparison.
7f3ff782 2984
91bc6112
RG
29852011-07-21 Richard Guenther <rguenther@suse.de>
2986
2987 * tree-ssa-forwprop.c (combine_conversions): Return whether
2988 we have to run cfg-cleanup. Properly remove dead stmts.
2989 (ssa_forward_propagate_and_combine): Adjust.
2990
d6f23738
RS
29912011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
2992
2993 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2994
fec3cad3
KT
29952011-07-21 Kai Tietz <ktietz@redhat.com>
2996
2997 * tree-ssa-propagate.c (substitute_and_fold): Use
2998 do_dce flag to deside, if BB's statements are scanned
2999 in last to first, or first to last order.
3000
21f3ae2f 30012011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 3002
21f3ae2f
GJL
3003 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
3004
6025b127
L
30052011-07-20 H.J. Lu <hongjiu.lu@intel.com>
3006 Uros Bizjak <ubizjak@gmail.com>
3007 Richard Henderson <rth@redhat.com>
3008
3009 * config/i386/constraints.md (w): New.
3010
3011 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
3012 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
3013
3014 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
3015 instead of TARGET_64BIT.
3016
3017 * config/i386/i386.md (indirect_jump): Replace
3018 nonimmediate_operand with indirect_branch_operand.
3019 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
3020 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
3021 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
3022 (*tablejump_1): Replace nonimmediate_operand with
3023 indirect_branch_operand. Replace constraint "m" with "w".
3024 (*call_vzeroupper): Replace constraint "m" with "w".
3025 (*call): Likewise.
3026 (*call_rex64_ms_sysv_vzeroupper): Likewise.
3027 (*call_rex64_ms_sysv): Likewise.
3028 (*call_value_vzeroupper): Likewise.
3029 (*call_value): Likewise.
3030 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3031 (*call_value_rex64_ms_sysv): Likewise.
a4235495 3032 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
3033
3034 * config/i386/predicates.md (indirect_branch_operand): New.
3035 (call_insn_operand): Support x32.
3036
7f8925a1
ME
30372011-07-20 Michael Eager <eager@eagercon.com>
3038
3039 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3040
510a442a
RH
30412011-07-20 Richard Henderson <rth@redhat.com>
3042
3043 * cfg.c (dump_bb_info): Dump basic_block->flags.
3044 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3045
00b40d0d
UB
30462011-07-20 Uros Bizjak <ubizjak@gmail.com>
3047
3048 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3049 of DImode hard registers in index.
3050 (ix86_legitimate_address_p): Allow subregs of base and index to span
3051 more than a word. Assert that subregs of base and index satisfy
3052 register_no_elim_operand predicates. Reject addresses where
3053 base and index have different modes.
3054
87f53554
RM
30552011-07-20 Robert Millan <rmh@gnu.org>
3056
3057 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3058
742f29ab
UW
30592011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3060
3061 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3062 removing now-unnecessary assignment.
3063
d05f3564
UW
30642011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3065
3066 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3067 memory address space to the type's address space.
3068
8c352fa8 30692011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 3070
8c352fa8
GJL
3071 PR target/36467
3072 PR target/49687
00b40d0d
UB
3073 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3074 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
3075 (usmulqihi3): New insn.
3076 (*sumulqihi3): New insn.
3077 (*osmulqihi3): New insn.
3078 (*oumulqihi3): New insn.
3079 (*muluqihi3.uconst): New insn_and_split.
3080 (*muluqihi3.sconst): New insn_and_split.
3081 (*mulsqihi3.sconst): New insn_and_split.
3082 (*mulsqihi3.uconst): New insn_and_split.
3083 (*mulsqihi3.oconst): New insn_and_split.
3084 (*ashifthi3.signx.const): New insn_and_split.
3085 (*ashifthi3.signx.const7): New insn_and_split.
3086 (*ashifthi3.zerox.const): New insn_and_split.
3087 (mulsqihi3): New insn.
3088 (muluqihi3): New insn.
3089 (muloqihi3): New insn.
3090 * config/avr/predicates.md (const_2_to_7_operand): New.
3091 (const_2_to_6_operand): New.
3092 (u8_operand): New.
3093 (s8_operand): New.
3094 (o8_operand): New.
3095 (s9_operand): New.
3096 (register_or_s9_operand): New.
3097
be31603a
KT
30982011-07-20 Kai Tietz <ktietz@redhat.com>
3099
3100 * builtins.c (fold_builtin_expect): See through the cast
3101 from truthvalue_type_node to long.
3102
c36193c6
MM
31032011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
3104
3105 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3106 where we can use them from the standard and altivec instruction
3107 sets, instead of always using the 3 operand VSX forms that require
3108 the destination to overlap one of the inputs.
3109 (vsx_fms*): Ditto.
3110 (vsx_fnma*): Ditto.
3111 (vsx_fnms*): Ditto.
3112
3113 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3114 for DF types.
3115 (fmsdf4_fpr): Ditto.
3116 (nfmadf4_fpr): Ditto.
3117 (nfmsdf4_fpr): Ditto.
3118
02aec184
SL
31192011-07-20 Sandra Loosemore <sandra@codesourcery.com>
3120
3121 * genrecog.c (make_insn_sequence): Correct position numbering
3122 when filtering out match_scratch and match_dup.
3123
f8ecf734
RG
31242011-07-20 Richard Guenther <rguenther@suse.de>
3125
3126 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3127 against already removed statements.
3128 (forward_propagate_into_comparison): Remove dead defining stmts.
3129 (forward_propagate_into_gimple_cond): Likewise.
3130 (forward_propagate_into_cond): Simplify.
3131 (ssa_forward_propagate_and_combine): Handle changed cfg from
3132 forward_propagate_into_comparison.
3133 * tree-ssa-phiopt.c (conditional_replacement): Use proper
3134 locations for newly built statements.
3135
73451ae7
GJL
31362011-07-20 Georg-Johann Lay <avr@gjlay.de>
3137
3138 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3139
c4100a35
AK
31402011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3141
3142 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3143 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3144
dca412a1
RG
31452011-07-20 Richard Guenther <rguenther@suse.de>
3146
3147 PR middle-end/18908
3148 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3149 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3150 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
3151
73d7e266
VM
31522011-07-20 Vladimir Makarov <vmakarov@redhat.com>
3153
3154 * config/frv/frv.c (frv_register_move_cost): Define explicitly
3155 costs for subclasses of GR_REGS.
3156
5e27a6d4
UB
31572011-07-20 Uros Bizjak <ubizjak@gmail.com>
3158
3159 PR target/49780
3160 * config/i386/predicates.md (no_seg_addres_operand): No more special.
3161 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3162 of DImode hard registers in base.
3163 (ix86_legitimate_address_p): Allow SImode and DImode base and index
3164 registers.
3165
74d8fa44
RG
31662011-07-20 Richard Guenther <rguenther@suse.de>
3167
5e27a6d4 3168 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
3169 (unify_nodes): Deal with that.
3170 (solve_graph): Likewise.
3171
b0e43da8
CLT
31722011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
3173
3174 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3175 canonicalize left operand from ZERO_EXTEND to AND.
3176
a8c44c52
AS
31772011-07-20 Anatoly Sokolov <aesok@post.ru>
3178
3179 * target.def (class_max_nregs): New hook.
3180 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3181 * doc/tm.texi: Regenerate.
3182 * targhooks.c (default_class_max_nregs): New function.
3183 * targhooks.h (default_class_max_nregs): Declare.
3184 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3185 x_ira_reg_class_min_nregs arrays to unsigned char.
3186 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3187 hook instead of CLASS_MAX_NREGS macro.
3188 * reginfo.c (restore_register_info): Ditto.
3189 * ira-conflicts.c (process_regs_for_copy): Use
3190 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3191 Change type rclass and aclass vars to reg_class_t.
3192 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3193 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3194 reg_class_t.
3195 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3196 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3197
3198 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3199 * config/i386/i386.c (ix86_class_max_nregs): New function.
3200 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3201 instead of CLASS_MAX_NREGS macro.
3202 (TARGET_CLASS_MAX_NREGS): Define.
3203 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3204 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3205 * config/avr/avr.c (class_max_nregs): Remove function.
3206 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3207 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3208 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3209 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3210 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3211 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3212 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3213 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3214 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3215 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3216 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3217 * config/score/score.h (CLASS_MAX_NREGS): Remove.
3218 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3219 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3220 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3221
fd811f03
EB
32222011-07-19 Eric Botcazou <ebotcazou@adacore.com>
3223
3224 * cif-code.def (OVERWRITABLE): Fix typo and move around.
3225 (TARGET_OPTIMIZATION_MISMATCH): Delete.
3226 (EH_PERSONALITY): Fix typo.
3227 (NON_CALL_EXCEPTIONS): Fix message.
3228 (OPTIMIZATION_MISMATCH): Adjust message.
3229 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3230
78767fd9
ILT
32312011-07-19 Ian Lance Taylor <iant@google.com>
3232
3233 * doc/install.texi (Configuration): Document
3234 --enable-build-poststage1-with-cxx.
3235
0baeec1b
RM
32362011-07-19 Robert Millan <rmh@gnu.org>
3237
3238 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
3239 (GLIBC_DYNAMIC_LINKER): Remove.
3240
3241 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
3242 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3243 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3244 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3245 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3246 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3247
3248 * config/mips/linux.h: Remove everything except for ...
3249 (GLIBC_DYNAMIC_LINKER): ... this macro.
3250
3251 * config/mips/linux64.h: Remove everything except for ...
3252 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3253 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3254 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3255 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3256 (GNU_USER_LINK_EMULATIONN32): New macros.
3257
5e27a6d4
UB
3258 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3259 Use the new headers.
0baeec1b 3260
754c3d5d
RS
32612011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3262
3263 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3264 Add offset_known_p and size_known_p fields.
3265 (MEM_OFFSET_KNOWN_P): Update accordingly.
3266 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3267 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3268 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3269 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3270 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3271 (init_emit_regs): Likewise.
3272
527210c4
RS
32732011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3274
3275 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3276 (MEM_OFFSET): Change from returning an rtx to returning a
3277 HOST_WIDE_INT.
3278 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3279 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3280 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3281 (clear_mem_offset): Declare.
3282 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3283 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3284 MEM_OFFSET to get a HOST_WIDE_INT offset.
3285 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
3286 (adjust_offset_for_component_ref): Take a bool "known_p"
3287 parameter and a HOST_WIDE_INT "offset" parameter.
3288 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3289 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3290 than an rtx. Use clear_mem_offset to clear the offset.
3291 * cfgcleanup.c (merge_memattrs): Likewise.
3292 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3293 * function.c (assign_parm_find_stack_rtl): Likewise.
3294 (assign_parm_setup_stack): Likewise.
3295 * print-rtl.c (print_rtx): Likewise.
3296 * reload.c (find_reloads_subreg_address): Likewise.
3297 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3298 * var-tracking.c (INT_MEM_OFFSET): Likewise.
3299 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3300 (get_mem_align_offset): Likewise.
3301 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3302 (clear_mem_offset): New function.
3303 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3304 offset rather than an rtx. Assume both the expressio and offset
3305 are available.
3306 (r10k_needs_protection_p_1): Update accordingly, checking the
3307 expression and offset availability here instead.
3308
f5541398
RS
33092011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3310
3311 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3312 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3313 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3314 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3315 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3316 (clear_mem_size): Declare.
3317 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3318 (clear_mem_size): New function.
3319 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3320 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3321 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
3322 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
3323 to clear the size.
3324 (nonoverlapping_memrefs_p): Likewise.
3325 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3326 (expand_builtin_init_trampoline): Likewise.
3327 * calls.c (compute_argument_addresses): Likewise.
3328 * cfgcleanup.c (merge_memattrs): Likewise.
3329 * dce.c (find_call_stack_args): Likewise.
3330 * dse.c (record_store, scan_insn): Likewise.
3331 * dwarf2out.c (dw_sra_loc_expr): Likewise.
3332 * expr.c (emit_block_move_hints): Likewise.
3333 * function.c (assign_parm_find_stack_rtl): Likewise.
3334 * print-rtl.c (print_rtx): Likewise.
3335 * reload.c (find_reloads_subreg_address): Likewise.
3336 * rtlanal.c (may_trap_p_1): Likewise.
3337 * var-tracking.c (track_expr_p): Likewise.
3338 * varasm.c (assemble_trampoline_template): Likewise.
3339 * config/arm/arm.c (arm_print_operand): Likewise.
3340 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3341 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3342 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3343 (expand_constant_setmem_prologue): Likewise.
3344 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3345 * config/rs6000/rs6000.c (expand_block_move): Likewise.
3346 (adjacent_mem_locations): Likewise.
3347 * config/s390/s390.c (s390_expand_setmem): Likewise.
3348 (s390_expand_insv): Likewise.
3349 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3350 (*extendqi<mode>2_short_displ): Likewise.
3351 * config/sh/sh.c (expand_block_move): Likewise.
3352 * config/sh/sh.md (extv, extzv): Likewise.
3353
f12144dd
RS
33542011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3355
3356 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3357 (mem_attrs_htab_eq): ...here.
3358 (find_mem_attrs): Replace with...
3359 (set_mem_attrs): ...this function. Take a mem_attrs structure
3360 rather than individual fields.
3361 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3362 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3363 (set_mem_size, change_address, adjust_address_1, offset_address)
3364 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3365 Update accordingly.
3366
1c3f523e
RS
33672011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
3368
3369 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3370 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3371 Provide a dummy definition of MEM_ADDR_SPACE for generators.
3372 (target_rtl): Add x_mode_mem_attrs.
3373 (mode_mem_attrs): New macro.
3374 (get_mem_attrs): New function.
3375 * emit-rtl.c (get_mem_attrs): Rename to...
3376 (find_mem_attrs): ...this.
3377 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3378 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3379 (set_mem_size, change_address, adjust_address_1, offset_address)
3380 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3381 Update accordingly.
3382 (init_emit_regs): Initialize mode_mem_attrs.
3383
3046b1a9
RG
33842011-07-19 Richard Guenther <rguenther@suse.de>
3385
3386 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3387 TRUTH_*_EXPR handling.
3388 * tree-ssa-operands.c (get_expr_operands): Likewise.
3389 * tree-ssa-pre.c (fully_constant_expression): Likewise.
3390 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3391 Likewise.
3392 (is_and_or_or): Likewise.
3393 (is_norm_cond_subset_of): Likewise.
3394
5d49b6a7
RG
33952011-07-19 Richard Guenther <rguenther@suse.de>
3396
3397 * tree.h (fold_build_pointer_plus_loc): New helper function.
3398 (fold_build_pointer_plus_hwi_loc): Likewise.
3399 (fold_build_pointer_plus): Define.
3400 (fold_build_pointer_plus_hwi): Likewise.
3401 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3402 (fold_builtin_memory_op): Likewise.
3403 (fold_builtin_stpcpy): Likewise.
3404 (fold_builtin_memchr): Likewise.
3405 (fold_builtin_strstr): Likewise.
3406 (fold_builtin_strchr): Likewise.
3407 (fold_builtin_strrchr): Likewise.
3408 (fold_builtin_strpbrk): Likewise.
3409 (fold_builtin_strcat): Likewise.
3410 (expand_builtin_memory_chk): Likewise.
3411 (fold_builtin_memory_chk): Likewise.
3412 * c-typeck.c (build_unary_op): Likewise.
3413 * cgraphunit.c (thunk_adjust): Likewise.
3414 * fold-const.c (build_range_check): Likewise.
3415 (fold_binary_loc): Likewise.
3416 * omp-low.c (extract_omp_for_data): Likewise.
3417 (expand_omp_for_generic): Likewise.
3418 (expand_omp_for_static_nochunk): Likewise.
3419 (expand_omp_for_static_chunk): Likewise.
3420 * tree-affine.c (add_elt_to_tree): Likewise.
3421 * tree-data-ref.c (split_constant_offset_1): Likewise.
3422 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3423 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3424 * tree-predcom.c (ref_at_iteration): Likewise.
3425 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3426 (add_to_parts): Likewise.
3427 (create_mem_ref): Likewise.
3428 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3429 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3430 (number_of_iterations_le): Likewise.
3431 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3432 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3433 (vect_create_addr_base_for_vector_ref): Likewise.
3434 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3435 (vect_create_cond_for_alias_checks): Likewise.
3436 * tree-vrp.c (extract_range_from_assert): Likewise.
3437 * config/alpha/alpha.c (alpha_va_start): Likewise.
3438 (alpha_gimplify_va_arg_1): Likewise.
3439 * config/i386/i386.c (ix86_va_start): Likewise.
3440 (ix86_gimplify_va_arg): Likewise.
3441 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3442 * config/mep/mep.c (mep_expand_va_start): Likewise.
3443 (mep_gimplify_va_arg_expr): Likewise.
3444 * config/mips/mips.c (mips_va_start): Likewise.
3445 (mips_gimplify_va_arg_expr): Likewise.
3446 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3447 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3448 (rs6000_gimplify_va_arg): Likewise.
3449 * config/s390/s390.c (s390_va_start): Likewise.
3450 (s390_gimplify_va_arg): Likewise.
3451 * config/sh/sh.c (sh_va_start): Likewise.
3452 (sh_gimplify_va_arg_expr): Likewise.
3453 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3454 * config/spu/spu.c (spu_va_start): Likewise.
3455 (spu_gimplify_va_arg_expr): Likewise.
3456 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3457 Likewise.
3458 (xstormy16_gimplify_va_arg_expr): Likewise.
3459 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3460 (xtensa_gimplify_va_arg_expr): Likewise.
3461
d906fd7f
RG
34622011-07-19 Richard Guenther <rguenther@suse.de>
3463
3464 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3465 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3466 handling.
3467
3468 PR middle-end/18908
3469 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3470 result of BIT_*_EXPR to bitfield precision.
3471
1b14d815
RS
34722011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3473
3474 PR tree-optimization/49742
3475 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3476 as a potential write.
3477
d906fd7f
RG
34782011-07-19 Richard Guenther <rguenther@suse.de>
3479
3480 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3481 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3482 (forward_propagate_comparison): Simplify, remove obsolete code.
3483
53020648
RG
34842011-07-19 Richard Guenther <rguenther@suse.de>
3485
3486 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3487 BIT_XOR_EXPR, same as the RTL expander does.
3488 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3489 (verify_gimple_assign_unary): Likewise.
3490 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3491 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3492 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3493
b8b2b009
JJ
34942011-07-19 Jakub Jelinek <jakub@redhat.com>
3495
3496 PR tree-optimization/49768
3497 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3498 if offset is smaller than bitoffset, but offset+size is bigger
3499 than bitoffset.
3500
338f655d
IR
35012011-07-19 Ira Rosen <ira.rosen@linaro.org>
3502
3503 PR tree-optimization/49771
3504 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3505 zero step, set segment length to the size of the data-ref's type.
3506
310bc633
MJ
35072011-07-18 Martin Jambor <mjambor@suse.cz>
3508
3509 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3510 comments.
3511 (ipcp_values_pool): Declare.
3512 (ipcp_sources_pool): Likewise.
3513 (ipcp_lattice): Changed to forward declaration.
3514 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3515 cannot_devirtualize.
3516 (ipa_node_params): New fields descriptors, lattices, known_vals,
3517 clone_for_all_contexts and node dead, removed fields params and
3518 count_scale.
3519 (ipa_set_param_count): Removed.
3520 (ipa_get_param_count): Made to work with descriptors vector.
3521 (ipa_get_param): Updated.
3522 (ipa_param_cannot_devirtualize_p): Removed.
3523 (ipa_param_types_vec_empty): Likewise.
3524 (ipa_set_param_used): New function.
3525 (ipa_get_param_used): Updated to use descriptors vector.
3526 (ipa_func_list): Removed.
3527 (ipa_init_func_list): Removed declaration.
3528 (ipa_push_func_to_list_1): Likewise.
3529 (ipa_pop_func_from_list): Likewise.
3530 (ipa_push_func_to_list): Removed.
3531 (ipa_lattice_from_jfunc): Remove declaration.
3532 (ipa_get_jf_pass_through_result): Declare.
3533 (ipa_get_jf_ancestor_result): Likewise.
3534 (ipa_value_from_jfunc): Likewise.
3535 (ipa_get_lattice): Update.
3536 (ipa_lat_is_single_const): New function.
3537 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3538 (ipa_init_func_list): Likewise.
3539 (ipa_pop_func_from_list): Likewise.
3540 (ipa_get_param_decl_index): Fix coding style.
3541 (count_formal_params): Removed.
3542 (count_formal_params_1): Renamed to count_formal_params.
3543 (ipa_populate_param_decls): Update to use descriptors vector.
3544 (ipa_initialize_node_params): Likewise.
3545 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3546 (ipa_analyze_params_uses): Likewise.
3547 (ipa_free_node_params_substructures): Likewise and free also lattices
3548 and known values.
3549 (duplicate_array): Removed.
3550 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3551 clones.
3552 (ipa_node_duplication_hook): Update to use new lattices.
3553 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3554 (ipa_free_all_structures_after_iinln): Likewise.
3555 (ipa_write_node_info): Update to use new lattices.
3556 (ipa_read_node_info): Likewise.
3557 (ipa_get_jf_pass_through_result): New function.
3558 (ipa_get_jf_ancestor_result): Likewise.
3559 (ipa_value_from_jfunc): Likewise.
3560 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3561 * ipa-cp.c: Reimplemented.
3562 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3563 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3564 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3565 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3566 * doc/invoke.texi (devirt-type-list-size): Removed description.
3567 (ipa-cp-value-list-size): Added description.
3568
6774a66f
RH
35692011-07-18 Richard Henderson <rth@redhat.com>
3570
3571 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3572 before calling create_basic_block.
3573
8b316874
JJ
35742011-07-18 Jakub Jelinek <jakub@redhat.com>
3575
3576 PR middle-end/49675
3577 * tree.c (build_common_builtin_nodes): Register
3578 __builtin_return_address, __cyg_profile_func_enter
3579 and __cyg_profile_func_exit.
3580
9f68560b
RH
35812011-07-18 Richard Henderson <rth@redhat.com>
3582
3583 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3584 (add_labels_and_missing_jumps): ... here.
3585 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3586
03126412
UB
35872011-07-18 Uros Bizjak <ubizjak@gmail.com>
3588
3589 PR target/47744
3590 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3591 of DImode hard registers in PLUS address chains.
3592
fbf80ef7
RO
35932011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3594
3595 PR bootstrap/49769
3596 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3597 (alpha*-*-freebsd*): Likewise.
3598 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3599 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3600 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3601 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3602 (ia64*-*-elf*): Remove extra_parts.
3603 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3604 (sparc64-*-linux*): Likewise.
3605 (sparc64-*-freebsd*): Likewise.
3606
3607 Revert:
3608 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3609 (ia64*-*-linux*): Likewise.
3610 (mips64*-*-linux*): Likewise.
3611 (mips*-*-linux*): Likewise.
3612
daf633ba
DE
36132011-07-18 David Edelsohn <dje.gcc@gmail.com>
3614
3615 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3616
4b4455e5
RG
36172011-07-18 Richard Guenther <rguenther@suse.de>
3618
3619 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3620 when building new trees.
3621
e002c7cb
RG
36222011-07-18 Richard Guenther <rguenther@suse.de>
3623
3624 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3625 expansion result to bitfield precision if required.
3626
e44dbbe1
RO
36272011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3628
3629 * config.gcc (i[3456x]86-*-netware*): Remove.
3630
3631 * gthr-nks.h: Remove.
3632 * configure.ac (enable_threads): Remove nks.
3633 * configure: Regenerate.
3634
3635 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3636 reference.
3637 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3638 <netware.h> reference.
3639
3640 * config/i386/netware-libgcc.c,
3641 gcc/config/i386/netware-libgcc.def,
3642 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3643 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3644 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3645 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3646
3647 * doc/extend.texi (Function Attributes,
3648 callee_pop_aggregate_return): Remove i?86-netware reference.
3649 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3650
fd862017
JDA
36512011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3652
3653 PR target/49746
3654 Revert:
3655 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3656
3657 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3658 patterns.
3659
1ff24749
EB
36602011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3661
3662 PR middle-end/49732
3663 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3664
a4a2c37d
MK
36652011-07-16 Matthias Klose <doko@ubuntu.com>
3666
3667 * doc/install.texi: Document --enable-static-libjava.
3668
ea6136a2
RH
36692011-07-15 Richard Henderson <rth@redhat.com>
3670
3671 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3672 Replace all three arguments by returning a VEC of edges.
3673 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3674 pointers and counts.
3675 (fix_edges_for_rarely_executed_code): Merge ...
3676 (rest_of_handle_partition_blocks): ... into...
3677 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3678 any work was performed.
3679 (pass_partition_blocks): Clear todo_flags_finish.
3680
6545e33e
PC
36812011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3682 Jakub Jelinek <jakub@redhat.com>
3683 Jonathan Wakely <jwakely.gcc@gmail.com>
3684
3685 PR libstdc++/49745
3686 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3687 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3688
6feeed06
JM
36892011-07-15 Jason Merrill <jason@redhat.com>
3690
3691 PR testsuite/49741
3692 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3693 rather than --tool_opts.
3694
44762055
BS
36952011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3696
3697 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 3698 corresponding gtype.state.
44762055 3699
1be0310c
JDA
37002011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3701
3702 PR target/49723
3703 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3704
12c5ffe5
EB
37052011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3706
3707 PR target/48220
3708 * doc/md.texi (Standard Names): Document window_save.
3709 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3710 expand_debug_expr and expand_debug_source_expr. If the target has
3711 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3712 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3713 SSA_NAME_VAR is a parameter.
3714 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3715 * var-tracking.c (parm_reg_t): New type and associated vector type.
3716 (windowed_parm_regs): New variable.
3717 (adjust_insn): If the target has a window_save instruction and this
3718 is the instruction, make its effect on parameter registers explicit.
3719 (next_non_note_insn_var_location): New function.
3720 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3721 (vt_add_function_parameter): If the target has a window_save insn,
3722 adjust the incoming RTL and record that in windowed_parm_regs.
3723 (vt_finalize): Free windowed_parm_regs.
3724
bcead286
BS
37252011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3726
3727 * doc/invoke.texi (C6X Options): New section.
3728 * doc/md.texi (TI C6X family): New section.
3729 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3730 tic6x-*-uclinux.
3731 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3732 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3733 Provide C6X definitions.
3734 * config/c6x/c6x.md: New file.
3735 * config/c6x/constraints.md: New file.
3736 * config/c6x/predicates.md: New file.
3737 * config/c6x/c6x-sched.md.in: New file.
3738 * config/c6x/c6x-sched.md: New file.
3739 * config/c6x/gensched.sh: New file.
3740 * config/c6x/c6x-mult.md.in: New file.
3741 * config/c6x/genmult.sh: New file.
3742 * config/c6x/c6x-mult.md: New file.
3743 * config/c6x/sync.md: New file.
3744 * config/c6x/c6x-protos.h: New file.
3745 * config/c6x/sfp-machine.h: New file.
3746 * config/c6x/c6x.c: New file.
3747 * config/c6x/c6x.h: New file.
3748 * config/c6x/crti.s: New file.
3749 * config/c6x/crtn.s: New file.
3750 * config/c6x/lib1funcs.asm: New file.
3751 * config/c6x/c6x-modes.def: New file.
3752 * config/c6x/genopt.sh: New file.
3753 * config/c6x/c6x.opt: New file.
3754 * config/c6x/c6x-tables.opt: New file.
3755 * config/c6x/c6x-opts.h: New file.
3756 * config/c6x/c6x-isas.def: New file.
3757 * config/c6x/elf.h: New file.
3758 * config/c6x/elf-common.h: New file.
3759 * config/c6x/uclinux-elf.h: New file.
3760 * config/c6x/t-c6x: New file.
3761 * config/c6x/t-c6x-elf: New file.
3762 * config/c6x/t-c6x-uclinux: New file.
3763 * config/c6x/t-c6x-softfp: New file.
3764 * config/c6x/gtd.c: New file.
3765 * config/c6x/gtf.c: New file.
3766 * config/c6x/ltd.c: New file.
3767 * config/c6x/ltf.c: New file.
3768 * config/c6x/ged.c: New file.
3769 * config/c6x/gef.c: New file.
3770 * config/c6x/led.c: New file.
3771 * config/c6x/lef.c: New file.
3772 * config/c6x/eqd.c: New file.
3773 * config/c6x/eqf.c: New file.
3774 * config/c6x/libgcc-c6xeabi.ver: New file.
3775
aef0e7a8
BS
3776 Revert
3777 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3778 PR rtl-optimization/11320
3779 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3780 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3781 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3782 current_sched_info->compute_jump_reg_dependencies. Record which
3783 registers are used and which registers are set by the jump.
3784 Clear deps->reg_conditional_sets after a barrier.
3785 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3786 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3787 (init_deps): Initialize reg_conditional_sets.
3788 (free_deps): Clear reg_conditional_sets.
3789 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3790 Mark registers live on entry of the fallthrough block and conditionally
3791 set as set by the jump. Mark registers live on entry of non-fallthrough
3792 blocks as used by the jump.
3793 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3794 Mark new parameters as unused.
3795
9bed2f0d
AP
37962011-07-14 Andrew Pinski <pinskia@gmail.com>
3797
3798 PR tree-opt/49309
3799 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3800 Use fold_build2_loc instead of build2.
3801 Use the correct type for the new tree.
3802
1f88caaa
BS
38032011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3804
3805 PR rtl-optimization/11320
3806 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3807 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3808
d772f97c 38092011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 3810
d772f97c
GJL
3811 PR target/49487
3812 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3813 of REG.
3814 (*rotw<mode>): Use const_int_operand for operand2.
3815 Use match_scatch for operand3.
3816 (*rotb<mode>): Ditto
3817 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3818
1a5d20a4
RG
38192011-07-14 Richard Guenther <rguenther@suse.de>
3820
3821 PR tree-optimization/49651
3822 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3823 handle dereferences with subvariables.
3824
5fbcc0ed
RG
38252011-07-14 Richard Guenther <rguenther@suse.de>
3826
3827 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3828 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3829
fbf3fee2
RG
38302011-07-14 Richard Guenther <rguenther@suse.de>
3831
3832 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3833 not bool_var when folding bool_var != 1 or bool_var == 0.
3834
b953c2b8
BS
38352011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3836
3837 * haifa-sched.c (schedule_insns): Remove outdated comment.
3838 (schedule_block): When computing a known value for TODO_SPEC,
3839 just set it rather than using logical operations.
3840 (try_ready): Likewise. Use a local variable rather than a
3841 pointer to TODO_SPEC. Reorder an if statement to move the
3842 easy case to the then block.
3843 * sched-deps.c (dep_spec_p): New static function.
3844 (update_dep): Use it to decide whether to call
3845 change_spec_dep_to_hard.
3846 (get_back_and_forw_lists): Use it.
3847 (sd_resolve_dep): Likewise.
3848 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3849 (haifa_note_mem_dep): Likewise.
3850 (check_dep): Likewise.
3851 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3852 (sched_free_deps): Free in two passes.
3853
1f098f07
RS
38542011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
3855
3856 PR middle-end/49736
3857 * expr.c (all_zeros_p): Undo bogus part of last change.
3858
73059910
MK
38592011-07-14 Matthias Klose <doko@ubuntu.com>
3860
3861 * doc/extend.texi (optimize attribute): Fix typo.
3862
bd5d002e
RG
38632011-07-14 Richard Guenther <rguenther@suse.de>
3864
3865 * gimplify.c (gimplify_expr): Only do required conversions.
3866
eb1dcdff
GJL
38672011-07-14 Georg-Johann Lay <avr@gjlay.de>
3868
3869 PR target/43746
3870 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3871 i.e. use default_elf_select_section.
3872 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3873 (READONLY_DATA_SECTION_ASM_OP): Remove.
3874 (TARGET_ASM_NAMED_SECTION): Move from here...
3875 * config/avr/avr.c: ...to here.
03126412 3876 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
3877 (avr_asm_named_section): Make static.
3878
d31fb329
RO
38792011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3880
3881 PR bootstrap/49739
03126412
UB
3882 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3883 and crtfastmath.o for Linux/x86.
d31fb329 3884
26965010
BS
38852011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3886
3887 * haifa-sched.c: Include "hashtab.h"
3888 (sched_no_dce): New global variable.
3889 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3890 SHADOW_P): New macros.
3891 (last_clock_var, cycle_issued_insns): Move declarations.
3892 (must_backtrack): New static variable.
3893 (struct delay_pair): New structure.
3894 (delay_htab, delay_htab_i2): New static variables.
3895 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3896 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3897 functions.
3898 (dep_cost_1): If delay pairs exist, try to look up the insns and
3899 use the correct pair delay if we find them.
3900 (rank-for_schedule): Tweak priority for insns that must be scheduled
3901 soon to avoid backtracking.
3902 (queue_insn): Detect conditions which force backtracking.
3903 (ready_add): Likewise.
3904 (struct sched_block_state): Add member shadows_only_p.
3905 (struct haifa_save_data): New structure.
3906 (backtrack_queue): New static variable.
3907 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3908 unschedule_insns_until, restore_last_backtrack_point,
3909 free_topmost_backtrack_point, free_backtrack_queue,
3910 estimate_insn_tick, estimate_shadow_tick): New functions.
3911 (prune_ready_list): New arg shadows_only_p. All callers changed.
3912 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 3913 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
3914 (verify_shadows): New function.
3915 (schedule_block): Add machinery to enable backtracking.
3916 (sched_init): Take sched_no_dce into account when setting
3917 DF_LR_RUN_DCE.
3918 (free_delay_pairs): New function.
3919 (init_h_i_d): Initialize INSN_EXACT_TICK.
3920 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3921 * sched-deps.c (sd_unresolve_dep): New function.
3922 * sched-int. (struct haifa_sched_info): New fields save_state
3923 and restore_state.
3924 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3925 feeds_backtrack_insn and shadow_p.
3926 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3927 (sched_no_dce): Declare variable.
3928 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3929 sd_unresolve_dep): Declare functions.
3930 * modulo-sched.c (sms_sched_info): Clear the two new fields.
3931 * sched-rgn.c (rgn_const_sched_info): Likewise.
3932 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3933 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3934 (ebb_sched_info): Add them for the two new fields.
3935 (add_deps_for_risky_insns): Call add_delay_dependencies.
3936
1db75f6c
MM
39372011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3938
3939 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3940 Rename -mr11.
3941 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3942 (rs6000_call_indirect_aix): Ditto.
3943 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3944 (call_indirect_aix<ptrsize>_internal): Ditto.
3945 (call_indirect_aix<ptrsize>_nor11): Ditto.
3946 (call_indirect_aix<ptrsize>_internal2): Ditto.
3947 (call_value_indirect_aix<ptrsize>): Ditto.
3948 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3949 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3950 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3951 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3952
e2995714
JM
39532011-07-13 Jason Merrill <jason@redhat.com>
3954
3955 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3956
4dfe3ad5
UW
39572011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3958
3959 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3960 * config/spu/spu.md ("clrsb<mode>2"): New expander.
3961
dddc6762
TS
39622011-07-13 Thomas Schwinge <thomas@schwinge.name>
3963
3964 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3965 * configure: Regenerate.
3966
b4d80e56
UW
39672011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3968
3969 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3970 (asm_file_start): Remove.
3971 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3972 free_bb_for_insn around code that modifies insns before
3973 restarting df analysis.
3974
9e34e53f
RO
39752011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3976
3977 PR target/49541
03126412 3978 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
3979 (LINK_SPEC): ... here.
3980
51564684
BS
39812011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3982
3983 * haifa-sched.c (struct sched_block_state): New.
3984 (schedule_block): Move some local variables into such a structure.
3985
b3fe1584
RO
39862011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3987
3988 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3989 * config/i386/t-crtpc: Remove.
3990 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3991 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3992 tmake_file.
3993 (x86_64-*-darwin*): Likewise.
3994 (i[34567]86-*-linux*): Likewise.
3995 (x86_64-*-linux*): Likewise.
3996
3997 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3998 Handle -mpc32, -mpc64, -mpc80.
3999
35d8090d
RO
40002011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4001
4002 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
4003 * config/alpha/t-crtfm: Remove.
4004 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
4005 * config/i386/t-crtfm: Remove.
4006 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
4007 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
4008 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
4009 * config/sparc/t-crtfm: Remove.
4010
4011 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
4012 (alpha*-*-freebsd*): Likewise.
4013 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
4014 (x86_64-*-darwin*): Likewise.
4015 (i[34567]86-*-linux*): Likewise.
4016 (x86_64-*-linux*): Likewise.
4017 (x86_64-*-mingw*): Likewise.
4018 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
4019 (ia64*-*-freebsd*): Likewise.
4020 (ia64*-*-linux*): Likewise.
4021 (mips64*-*-linux*): Likewise.
4022 (mips*-*-linux*): Likewise.
4023 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
4024 (sparc64-*-linux*): Likewise.
4025 (sparc64-*-freebsd*): Likewise.
4026
e141542e
RO
40272011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4028
4029 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
4030 * config/darwin-crt3.c: Move to ../libgcc/config.
4031 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4032 ($(T)crt3$(objext)): Remove.
4033 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
4034 ($(T)crt2$(objext)): Remove.
4035 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
4036 (powerpc64-*-darwin*): Likewise.
4037
72fbc381
L
40382011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4039
03126412 4040 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
4041
4042 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4043 (addsi_1_zext): This.
4044
727a65e6
BS
40452011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4046
4047 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4048 * doc/tm.texi: Regenerate.
73451ae7 4049 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
4050 * varasm.c (mergeable_string_section, mergeable_constant_section):
4051 Use it. Allocate name with alloca.
4052
cb77b6cf
L
40532011-07-13 H.J. Lu <hongjiu.lu@intel.com>
4054
4055 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4056
36fc3799
RS
40572011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4058
4059 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4060 overlap check.
4061
953d0c90
RS
40622011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
4063
4064 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
4065 (count_type_elements): Delete.
4066 (complete_ctor_at_level_p): Declare.
4067 * expr.c (flexible_array_member_p): New function, split out from...
4068 (count_type_elements): ...here. Make static. Replace allow_flexarr
4069 parameter with for_ctor_p. When for_ctor_p is true, return the
4070 number of elements that should appear in the top-level constructor,
4071 otherwise return an estimate of the number of scalars.
4072 (categorize_ctor_elements): Replace p_must_clear with p_complete.
4073 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
4074 (complete_ctor_at_level_p): New function, borrowing union logic
4075 from old categorize_ctor_elements_1.
4076 (mostly_zeros_p): Return true if the constructor is not complete.
4077 (all_zeros_p): Update call to categorize_ctor_elements.
4078 * gimplify.c (gimplify_init_constructor): Update call to
4079 categorize_ctor_elements. Don't call count_type_elements.
4080 Unconditionally prevent clearing for variable-sized types,
4081 otherwise rely on categorize_ctor_elements to detect
4082 incomplete initializers.
4083
9111c715
RG
40842011-07-13 Richard Guenther <rguenther@suse.de>
4085
4086 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4087 the final type is integral.
4088
a19af9c4
BS
40892011-07-13 Bernd Schmidt <bernds@codesourcery.com>
4090
4091 * sched-int.h (struct _dep): Add member cost.
4092 (DEP_COST, UNKNOWN_DEP_COST): New macros.
4093 * sched-deps.c (init_dep_1): Initialize DEP_COST.
4094 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4095 (sched_change_pattern): Reset it for dependent insns.
4096
2d1efe2d
RO
40972011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4098
4099 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4100 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4101 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4102 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4103 (CRT0_S, MCRT0_S): Remove.
4104 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4105 Remove.
4106 (s-crt0): Remove.
4107 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4108
e84a58ff
EB
41092011-07-12 Eric Botcazou <ebotcazou@adacore.com>
4110
4111 * cse.c (insert_with_costs): Put semi-colon after empty loop body
4112 on the next line.
4113 * emit-rtl.c (push_to_sequence): Likewise.
4114 * haifa-sched.c (max_issue): Likewise.
4115 * matrix-reorg.c (add_allocation_site): Likewise.
4116 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4117 * reload.c (alternative_allows_const_pool_ref): Likewise.
4118 * sched-rgn.c (rgn_add_block): Likewise.
4119 (rgn_fix_recovery_cfg): Likewise.
4120 * tree.c (attribute_list_contained): Likewise.
4121
3a4ffde6
UB
41222011-07-12 Uros Bizjak <ubizjak@gmail.com>
4123
4124 * config/i386/i386.c: Tidy processor feature bitmasks.
4125 (m_P4_NOCONA): New.
4126
10b75750
AP
41272011-07-12 Andrew Pinski <pinskia@gmail.com>
4128
4129 PR rtl-opt/49474
4130 * cprop.c (find_implicit_sets): Correct the condition.
4131
4f42d714
RH
41322011-07-12 Richard Henderson <rth@redhat.com>
4133
4134 PR target/49713
4135 * dwarf2out.h (dwarf_frame_regnum): Remove.
4136 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
4137 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
4138 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4139 (execute_dwarf2_frame): Initialize them.
4140 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4141 users of the macros with the variables.
4142 (expand_builtin_dwarf_sp_column): Revert last change.
4143 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
4144 result of DWARF_FRAME_REGNUM into a local variable.
4145
3a5e4ad6
RH
41462011-07-12 Richard Henderson <rth@redhat.com>
4147
4148 PR target/49714
4149 * config/i386/i386.c (x86_output_mi_thunk): Use
4150 machopic_indirect_call_target instead of machopic_indirection_name
4151 directly.
4152
9e9bd455
LG
41532011-07-12 Laurent GUERBY <laurent@guerby.net>
4154 Eric Botcazou <ebotcazou@adacore.com>
4155
4156 * prefix.h: Wrap up in extern "C" block.
4157
4d652a18
HJ
41582011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
4159
4160 AMD bdver2 Enablement
4161 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4162 (case ${target}): Add bdver2.
4163 * config/i386/driver-i386.c (host_detect_local_cpu): Let
4164 -march=native recognize bdver2 processors.
4165 * config/i386/i386-c.c (ix86_target_macros_internal): Add
4166 bdver2 def_and_undef
4167 * config/i386/i386.c (struct processor_costs bdver2_cost): New
4168 bdver2 cost table.
4169 (m_BDVER2): New definition.
4170 (m_AMD_MULTIPLE): Includes m_BDVER2.
4171 (initial_ix86_tune_features): Add bdver2 tuning.
4172 (processor_target_table): Add bdver2 entry.
4173 (static const char *const cpu_names): Add bdver2 entry.
4174 (ix86_option_override_internal): Add bdver2 instruction sets.
4175 (ix86_issue_rate): Add bdver2.
4176 (ix86_adjust_cost): Add bdver2.
4177 (has_dispatch): Add bdver2.
4178 * config/i386/i386.h (TARGET_BDVER2): New definition.
4179 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4180 (enum processor_type): Add PROCESSOR_BDVER2.
4181 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4182 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4183 description.
4184
5756d08c
RH
41852011-07-12 Richard Henderson <rth@redhat.com>
4186
4187 PR target/49714
4188 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4189 destination address in memory on some paths.
4190
123148b5
BS
41912011-07-12 Bernd Schmidt <bernds@codesourcery.com>
4192
4193 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4194 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4195 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4196 * function.c (locate_and_pad_parm): Take it into account.
4197 * target.def (function_arg_round_boundary): New hook.
4198 * targhooks.c (default_function_arg_round_boundary): New function.
4199 * targhooks.h (default_function_arg_round_boundary): Declare.
4200 * doc/tm.texi: Regenerate.
4201
b7a83ad8
RG
42022011-07-12 Richard Guenther <rguenther@suse.de>
4203
4204 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4205 Do not perform no-op changes.
4206
12c4ecb1
RS
42072011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
4208
4209 * config/arm/predicates.md (neon_struct_operand): Make a normal
4210 predicate.
4211 (neon_struct_or_register_operand): New predicate.
4212 * config/arm/neon.md (movmisalign<mode>): Replace predicates
4213 with neon_struct_or_register_operand.
4214 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4215 neon_struct_operand instead of memory_operand.
4216
ab079773
MJ
42172011-07-12 Martin Jambor <mjambor@suse.cz>
4218
4219 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4220 * cgraph.c (cgraph_get_node_or_alias): Removed.
4221 (change_decl_assembler_name): Changed all calls to
4222 cgraph_get_node_or_alias to a call to cgraph_get_node.
4223 (cgraph_make_decl_local): Likewise.
4224 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4225 * varasm.c (default_binds_local_p_1): Likewise.
4226 (decl_binds_to_current_def_p): Likewise.
4227
d5fed62d
JJ
42282011-07-12 Jakub Jelinek <jakub@redhat.com>
4229
4230 PR tree-optimization/49712
4231 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4232
c0b6224a
BS
42332011-07-11 Bernd Schmidt <bernds@codesourcery.com>
4234
4235 * genautomata.c (add_arc): Return void. All callers changed.
4236 (make_automaton): Remove dead code.
4237
7263c6d7
RH
42382011-07-11 Richard Henderson <rth@redhat.com>
4239
4240 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4241 (DW_FRAME_POINTER_REGNUM): New.
4242 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4243 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4244 (dwf_regno): New.
4245 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4246 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4247 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4248 Use it.
4249 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4250 * dwarf2out.h (dwarf_frame_regnum): New.
4251 (struct cfa_loc): Document the domain of the reg member.
4252
f9610d20
UB
42532011-07-11 Uros Bizjak <ubizjak@gmail.com>
4254
4255 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4256 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
4257
96ae7458
JJ
42582011-07-11 Jakub Jelinek <jakub@redhat.com>
4259
4260 PR debug/49676
4261 * dwarf2out.c (int_shift_loc_descriptor): New function.
4262 (int_loc_descriptor): If shorter, emit i as
4263 (i >> shift), shift, DW_OP_shl for suitable shift value.
4264 Similarly, try to optimize large negative values using
4265 DW_OP_neg of a positive value if shorter.
4266 (size_of_int_shift_loc_descriptor): New function.
4267 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4268 changes.
4269 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4270 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4271 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4272 is shorter.
4273 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4274 addend as added DW_OP_plus if it is shorter.
4275
feffaec4
RO
42762011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4277
4278 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4279 (DTORS_SECTION_ASM_OP): Define.
4280
2d8d5935
RO
42812011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4282
4283 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4284 * config/t-dfprules: Move to ../libgcc/config.
4285 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4286 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4287 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4288 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4289 Likewise.
4290 (i[34567]86-*-cygwin*): Likewise.
4291 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
4292 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4293 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4294 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4295 D64PBIT_FUNCS, D128PBIT_FUNCS.
4296
dcc95c20
RG
42972011-07-11 Richard Guenther <rguenther@suse.de>
4298
4299 * tree-vrp.c (simplify_conversion_using_ranges): Manually
4300 translate the source value-range through the conversion chain.
4301
28164eed
RS
43022011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
4303
4304 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4305
f3054223
AL
43062011-07-11 Arthur Loiret <aloiret@debian.org>
4307
4308 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4309 a bi-arch compiler defaulting to 31-bit. In this case:
4310 (tmake_file): Add s390/t-linux64.
4311 * doc/install.texi: Add s390-linux to the list of targets supporting
4312 --enable-targets=all.
4313
bd5ab709
AL
43142011-07-11 Arthur Loiret <aloiret@debian.org>
4315 Matthias Klose <doko@debian.org>
4316
4317 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4318 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4319 (tm_file): Add mips/linux64.h.
4320 (tmake_file): Add mips/t-linux64.
4321 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4322 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4323 instead of hardcoded mabi=n32.
4324 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4325 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4326 convention.
4327
d3b7e946
AK
43282011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4329
4330 * passes.c (init_optimization_passes): Add invariant motion pass
4331 after induction variable optimization.
4332
7e4ec472 43332011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 4334
7e4ec472
GJL
4335 PR target/39633
4336 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4337 offsets 1..5 set cc0 in a usable way.
4338
0e65e631
RG
43392011-07-11 Romain Geissler <romain.geissler@gmail.com>
4340
4341 * tree.h (call_expr_arg): Remove.
4342 (call_expr_argp): Likewise.
4343
18970372
EB
43442011-07-11 Eric Botcazou <ebotcazou@adacore.com>
4345
4346 * config/sparc/sparc.md (save_register_window_1): Rename to...
4347 (window_save): ...this.
4348 * config/sparc/sparc.c (emit_save_register_window): Rename to...
4349 (emit_window_save): ...this.
4350 (sparc_expand_prologue): Adjust to above renaming.
4351
9e419e38
L
43522011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4353
4354 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4355 of movabs for x32.
4356
3db72de3
RH
43572011-07-10 Richard Henderson <rth@redhat.com>
4358
4359 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4360 run final, instead of emitting text directly.
4361
a1f91bca
L
43622011-07-10 H.J. Lu <hongjiu.lu@intel.com>
4363
4364 * config/i386/i386.c (ix86_option_override_internal): Turn on
4365 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
4366 small PIC models for TARGET_X32.
4367
a50023f9
HPN
43682011-07-10 Hans-Peter Nilsson <hp@axis.com>
4369
9a0b29f0
HPN
4370 PR target/49684
4371 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4372 $(LIBGCC2_CFLAGS).
4373
a50023f9
HPN
4374 PR bootstrap/49680
4375 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4376 stray notes and debug insns by using prev_nonnote_nondebug_insn
4377 instead of PREV_INSN.
4378
948d330e
RH
43792011-07-09 Richard Henderson <rth@redhat.com>
4380
4381 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4382 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4383 * dwarf2out.c: ... here.
4384 (output_all_cfis): Remove.
4385 (dwarf2out_switch_text_section): Use output_cfis directly.
4386 (size_of_locs): Export.
4387 (output_loc_sequence, output_loc_sequence_raw): Export.
4388 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4389 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4390 output_cfa_loc_raw): Move to ...
4391 * dwarfcfi.c: ... here.
4392 * dwarf2out.h: Update decls.
4393
db42e39d
RH
43942011-07-09 Richard Henderson <rth@redhat.com>
4395
4396 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4397 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4398 * dwarf2cfi.c: ... here.
4399 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4400 (DWARF_ROUND, DWARF_CIE_ID): Remove.
4401 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4402 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4403 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4404
a8e5c0e7
RH
44052011-07-09 Richard Henderson <rth@redhat.com>
4406
4407 * dwarf2cfi.c (cie_return_save): New.
4408 (queue_reg_save): Use compare_reg_or_pc.
4409 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4410 (dwarf2out_frame_debug_expr): Likewise.
4411 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4412 (initial_return_save): Likewise.
4413 (execute_dwarf2_frame): Save and restore initial return save from
4414 the cie to the fde.
4415 * config/mips/mips.c (mips_frame_set): Remove special case for
4416 DWARF_FRAME_RETURN_COLUMN.
4417
4a8ee122
RH
44182011-07-09 Richard Henderson <rth@redhat.com>
4419
4420 * dwarf2cfi.c (lookup_cfa): Remove.
4421 (execute_dwarf2_frame): Assert queues are empty on entry.
4422 Setup initial cfa directly, not via lookup_cfa.
4423 Don't clear args_size state here.
4424
3edb53aa
RH
44252011-07-09 Richard Henderson <rth@redhat.com>
4426
4427 * dwarf2cfi.c (add_cfi_vec): New.
4428 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
4429 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
4430 (execute_dwarf2_frame): Set add_cfi_vec.
4431
ded49a7f
RH
44322011-07-09 Richard Henderson <rth@redhat.com>
4433
4434 * defaults.h (ASM_COMMENT_START): Move here...
4435 * dwarf2asm.c: ... from here.
4436 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4437 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4438 * varasm.c: Likewise.
4439
45fba6d1
RH
44402011-07-09 Richard Henderson <rth@redhat.com>
4441
4442 PR debug/49686
4443 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4444 (create_cfi_notes): ... do it here instead.
4445
5b696ba2
JJ
44462011-07-09 Jakub Jelinek <jakub@redhat.com>
4447
4448 PR debug/49676
4449 * dwarf2out.c (size_of_int_loc_descriptor): New function.
4450 (address_of_int_loc_descriptor): Use it.
f9610d20 4451 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 4452
8662b2ba
RH
44532011-07-09 Richard Henderson <rth@redhat.com>
4454
4455 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4456 (prologue, epilogue): New.
4457 (return, *rts): New.
4458 (blockage, setd, seti): New.
4459 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4460 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4461 (pdp11_saved_regno): New.
4462 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4463 generate rtl instead of text.
4464 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4465 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
4466 * config/pdp11/pdp11-protos.h: Update.
4467
28b21ebb
RH
44682011-07-09 Richard Henderson <rth@redhat.com>
4469
4470 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4471 try to insert an rtl prologue here.
4472 (rs6000_output_function_epilogue): Similarly.
4473 * config/rs6000/rs6000.md (prologue): Emit a barrier to
4474 satisfy !TARGET_SCHED_PROLOG.
4475 (epilogue, sibcall_epilogue): Likewise.
4476
0a222ba7
EB
44772011-07-09 Eric Botcazou <ebotcazou@adacore.com>
4478
4479 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4480 (FP_REG_P): Delete.
4481 (IN_OR_GLOBAL_P): Likewise.
4482
2fda8e14
JM
44832011-07-08 Jason Merrill <jason@redhat.com>
4484
4063e61b
JM
4485 PR c++/45437
4486 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4487 compound assignment.
4488
2fda8e14
JM
4489 * cgraph.c (cgraph_add_to_same_comdat_group): New.
4490 * cgraph.h: Declare it.
4491 * ipa.c (function_and_variable_visibility): Make sure thunks
4492 have the right visibility.
4493
830f11fe
RH
44942011-07-08 Richard Henderson <rth@redhat.com>
4495
4496 PR bootstrap/49680
4497 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4498 any tablejump vector.
4499
965b2557
RH
4500 PR bootstrap/49680
4501 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4502 end of the prologue.
4503
70db9095
JJ
45042011-07-08 Jakub Jelinek <jakub@redhat.com>
4505
4506 PR target/49621
4507 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 4508 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
4509 * config/rs6000/vector.md (vector_select_<mode>,
4510 vector_select_<mode>_uns): Change second operand of NE to
4511 CONST0_RTX (<MODE>mode) instead of const0_rtx.
4512 * config/rs6000/altivec.md (*altivec_vsel<mode>,
4513 *altivec_vsel<mode>_uns): Expect second operand of NE to be
4514 zero_constant of the corresponding vector mode.
4515 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4516 Likewise.
4517
e92c5020
SP
45182011-07-08 Sebastian Pop <sebastian.pop@amd.com>
4519
4520 * graphite-dependences.c (build_alias_set_powerset): Remove
4521 continue from loop, add one more assert.
4522
3e4f8484 45232011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 4524
3e4f8484
GJL
4525 PR target/46779
4526 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4527 In particular, allow 8-bit values in r28 and r29.
4528 (avr_hard_regno_scratch_ok): Disallow any register that might be
4529 part of the frame pointer.
4530 (avr_hard_regno_rename_ok): Same.
4531 (avr_legitimate_address_p): Don't allow SUBREGs.
4532
0094f21b
JB
45332011-07-08 Julian Brown <julian@codesourcery.com>
4534
4535 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4536 big-endian mode.
4537 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4538 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4539 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4540 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4541 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4542 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4543 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4544 registers in big-endian mode.
4545
9ae60101
BS
45462011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4547
4548 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4549 in terms of another.
4550 (write_attr_value): Write a cast if necessary.
4551
c0a6a1ef
BS
4552 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4553 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4554 (REG_WORDS_BIG_ENDIAN): Document.
4555 * doc/tm.texi: Regenerate.
4556 * reload.c (operands_match_p): Take it into account.
4557 (reload_adjust_reg_for_mode): Likewise.
4558 * rtlanal.c (subreg_get_info): Likewise.
4559
b862187a
RG
45602011-07-08 Richard Guenther <rguenther@suse.de>
4561
4562 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4563 folding.
4564
e8e8c74b
KT
45652011-07-08 Kai Tietz <ktietz@redhat.com>
4566
4567 * fold-const.c (fold_truth_andor): Factored out truth_andor
4568 label from fold_binary as function.
4569 (fold_binary_loc): Replace truth_andor lable
4570 by function fold_truth_andor.
4571
6c3cb698
KY
45722011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
4573
4574 PR middle-end/49519
4575 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4576 check if address is stored in register. If so - give up.
4577 (check_sibcall_argument_overlap_1): Do not perform check of
4578 overlapping when it is call to address.
4579
7d8d6d73 45802011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 4581
7d8d6d73
GJL
4582 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4583 of magic '31'.
4584
69660a70
BS
45852011-07-08 Bernd Schmidt <bernds@codesourcery.com>
4586
4587 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4588 GET_MODE_BITSIZE where appropriate.
4589 (widen_leading, expand_parity, expand_ctz, expand_ffs,
4590 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4591 expand_float, expand_fix): Likewise.
4592 * expr.c (convert_move, convert_modes, expand_expr_real_2,
4593 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4594 * stor-layout.c (get_mode_bounds): Likewise.
4595 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4596 Likewise.
4597 * convert.c (convert_to_integer): Likewise.
4598 * expmed.c (expand_shift_1): Likewise.
4599
86cdf393
BS
4600 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4601 a bitsize.
4602
0d44736e
BS
4603 * optabs.c (expand_binop): Tighten conditions for doubleword
4604 expansions.
f9610d20 4605 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
4606 * stor-layout.c (get_best_mode): Skip modes that have lower
4607 precision than bitsize.
4608 * recog.c (simplify_while_replacing): Assert that bitsize and
4609 precision are the same.
4610
2c50b2c3
RO
46112011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4612
4613 * Makefile.in (LIBGCOV): Remove.
4614 (libgcc.mvars): Remove LIBGCOV.
4615 * libgov.c: Move to ../libgcc.
4616
a039d7c2
RO
46172011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4618
4619 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4620
e923ef41
MJ
46212011-07-08 Martin Jambor <mjambor@suse.cz>
4622
4623 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4624 is too big for total scalarization.
4625
b709e189
RH
46262011-07-07 Richard Henderson <rth@redhat.com>
4627
4628 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4629 (DBX_DEBUGGING_INFO): Undef.
4630
2867fa7c
RH
46312011-07-07 Richard Henderson <rth@redhat.com>
4632
4633 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
4634 Handle some opcodes specially for debugging.
4635 * print-rtl.c: Include dwarf2out.h
4636 (print_rtx): Handle NOTE_INSN_CFI.
4637 * Makefile.in (print-rtl.o): Update.
4638
7644b3c7
RH
46392011-07-07 Richard Henderson <rth@redhat.com>
4640
4641 * tree-pass.h (pass_dwarf2_frame): Declare.
4642 * passes.c (init_optimization_passes): Add it.
4643 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4644 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4645 make static, do not call add_cfis_to_fde.
4646 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4647 dwarf2out_frame_init): Merge into...
4648 (execute_dwarf2_frame): ... here. New function.
4649 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
4650 saved_do_cfi_asm to a tri-state variable.
4651 (gate_dwarf2_frame, pass_dwarf2_frame): New.
4652 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4653 if it has yet to be done. Don't call dwarf2cfi_function_init.
4654 * dwarf2out.h, debug.h: Update decls.
4655 * final.c (final_start_function): Don't call
4656 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4657 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4658 * toplev.c (lang_dependent_init): Likewise.
4659
a518b996
RH
46602011-07-07 Richard Henderson <rth@redhat.com>
4661
4662 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4663 FDE_TABLE_INCREMENT): Replace with...
4664 (fde_vec): ... this, a new vector.
4665 (current_fde): Remove. Replace all users with cfun->fde.
4666 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4667 (size_of_aranges, dwarf2out_finish): Likewise.
4668 (dwarf2out_alloc_current_fde): Break out from ...
4669 (dwarf2out_begin_prologue): ... here.
4670 (dwarf2out_frame_init): Remove.
4671 * dwarf2cfi.c: Update all users of current_fde.
4672 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4673 * dwarf2out.h: Update decls.
4674 (dw_fde_node): Add fde_index member.
4675 * function.h (struct function): Add fde member.
4676
89e25f95
BS
46772011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4678 Richard Henderson <rth@redhat.com>
4679
4680 * dwarf2cfi.c (add_cfi): Remove.
4681 (dwarf2out_cfi_label): Remove force argument. Only generate the
4682 label name.
4683 (add_fde_cfi): Simplify the different code paths.
4684 (add_cie_cfi): New.
4685 (old_cfa, old_cfa_remember): New.
4686 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
4687 (last_reg_save_label): Remove.
4688 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
4689 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4690 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4691 dwarf2out_frame_debug_cfa_expression,
4692 dwarf2out_frame_debug_cfa_restore,
4693 dwarf2out_frame_debug_cfa_window_save,
4694 dwarf2out_frame_debug_expr): Remove label parameter.
4695 (cfi_label_required_p, add_cfis_to_fde): New.
4696 (dwarf2out_frame_debug_after_prologue): New.
4697 (dwarf2cfi_frame_init): Initialize old_cfa.
4698 (dwarf2out_frame_debug_restore_state): Likewise.
4699 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
4700 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
4701 * final.c (final_start_function): Call
4702 dwarf2out_frame_debug_after_prologue.
4703
bc5612ed
BS
47042011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4705 Richard Henderson <rth@redhat.com>
4706
4707 * dwarf2cfi.c (cfi_insn): New.
4708 (dwarf2out_cfi_label): Don't emit cfi label here.
4709 (add_fde_cfi): Create a NOTE_INSN_CFI.
4710 (dwarf2out_frame_debug): Setup cfi_insn.
4711 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
4712 (dwarf2out_cfi_begin_epilogue): Make static.
4713 (dwarf2out_frame_debug_restore_state): Make static.
4714 * dwarf2out.c (output_cfi_directive): Make static.
4715 (dwarf2out_emit_cfi): New.
4716 * dwarf2out.h: Update.
4717 * final.c (final): Remove CFI notes.
4718 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
4719 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
4720 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
4721 * insn-notes.def (NOTE_INSN_CFI): New.
4722 (NOTE_INSN_CFI_LABEL): New.
4723 * rtl.h (union rtunion_def): Add rt_cfi member.
4724 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
4725
647a1567
RH
47262011-07-07 Richard Henderson <rth@redhat.com>
4727
4728 * dwarf2cfi.c: New file.
4729 * Makefile.in (OBJS): Add it.
4730 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
4731 * gengtype.c (open_base_files): Include dwarf2out.h.
4732 * coretypes.h (enum var_init_status): Move from ...
4733 * rtl.h: ... here.
4734 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
4735 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
4736 expand_builtin_dwarf_sp_column, init_return_column_size,
4737 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
4738 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
4739 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
4740 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
4741 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
4742 compute_barrier_args_size, dwarf2out_args_size,
4743 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
4744 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
4745 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
4746 queue_reg_save, dwarf2out_flush_queued_reg_saves,
4747 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
4748 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
4749 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
4750 dwarf2out_frame_debug_cfa_expression,
4751 dwarf2out_frame_debug_cfa_restore,
4752 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
4753 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
4754 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
4755 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
4756 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
4757 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
4758 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
4759 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
4760 dw_loc_descr_node): Move to dwarf2out.h.
4761 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
4762 mem_loc_descriptor): Export.
4763 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
4764 (dwarf2out_frame_init): Extract CIE generation code to
4765 dwarf2cfi_frame_init.
4766
b286d9ed
EB
47672011-07-07 Eric Botcazou <ebotcazou@adacore.com>
4768
4769 PR target/49660
4770 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
4771 MASK_V8PLUS, remove commented out flag and reorder.
4772
c4603e7c
JJ
47732011-07-07 Jakub Jelinek <jakub@redhat.com>
4774
4775 PR c/49644
4776 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
4777 one non-complex and one complex argument, call c_save_expr on both
4778 operands.
4779
81361831
MJ
47802011-07-07 Martin Jambor <mjambor@suse.cz>
4781
4782 PR middle-end/49495
4783 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
4784 (verify_cgraph_node): Some functinality moved to
4785 verify_edge_corresponds_to_fndecl, call it.
4786
1e4b2746
JM
47872011-07-07 Joseph Myers <joseph@codesourcery.com>
4788
4789 * config.gcc (*local*): Remove.
4790 * doc/install-old.texi: Don't mention local configurations.
4791
d7ff1e11
JJ
47922011-07-07 Jakub Jelinek <jakub@redhat.com>
4793
4794 PR debug/49522
4795 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
4796 referencing debug insns that have been reset.
4797 (dead_debug_insert_before): Don't assert reg is non-NULL,
4798 instead return immediately if it is NULL.
4799
2492731a
JM
48002011-07-07 Joseph Myers <joseph@codesourcery.com>
4801
f9610d20 4802 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 4803
9d9c740d
BS
48042011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4805
4806 * hw-doloop.c: New file.
4807 * hw-doloop.h: New file.
4808 * Makefile.in (OBJS): Add hw-doloop.o.
4809 (hw-doloop.o): New rule.
4810 ($(obj_out_file)): Add hw-doloop.h dependency.
4811 * config/bfin/bfin.c: Include "hw-doloop.h".
4812 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
4813 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
4814 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
4815 type changed to hwloop_info. Return bool, true if the loop was
4816 successfully optimized. Remove code that was moved to
4817 hw-doloop.c, and adjust other parts.
4818 (hwloop_fail): New static function, containing parts that used
4819 to be in bfin_optimize_loop.
4820 (bfin_discover_loop, bfin_discover_loops, free_loops,
4821 bfin_reorder_loops): Remove.
4822 (hwloop_pattern_reg): New static function.
4823 (bfin_doloop_hooks): New variable.
4824 (bfin_reorg_loops): Remove most code, call reorg_loops.
4825 * config/bfin/bfin.md (doloop_end splitter): Also enable if
4826 loop counter is a memory_operand.
4827
f0ea7581
L
48282011-07-07 H.J. Lu <hongjiu.lu@intel.com>
4829
f9610d20 4830 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
4831
4832 * configure.ac: Mention x86-64 for --with-multilib-list.
4833 * configure: Regenerated.
4834
4835 * config/i386/gnu-user64.h (SPEC_64): Support x32.
4836 (SPEC_32): Likewise.
4837 (ASM_SPEC): Likewise.
4838 (LINK_SPEC): Likewise.
4839 (TARGET_THREAD_SSP_OFFSET): Likewise.
4840 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
4841 (SPEC_X32): New.
4842
4843 * config/i386/i386.h (TARGET_X32): New.
4844 (TARGET_LP64): New.
4845 (LONG_TYPE_SIZE): Likewise.
4846 (POINTER_SIZE): Likewise.
4847 (POINTERS_EXTEND_UNSIGNED): Likewise.
4848 (OPT_ARCH64): Support x32.
4849 (OPT_ARCH32): Likewise.
4850
4851 * config/i386/i386.opt (mx32): New.
4852
4853 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
4854 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4855 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
4856 (GLIBC_DYNAMIC_LINKERX32): Likewise.
4857
4858 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
4859 (BIONIC_DYNAMIC_LINKERX32): Likewise.
4860 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
4861
4862 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
4863
f9610d20 4864 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
4865
4866 * doc/invoke.texi: Document -mx32.
4867
38460025
RS
48682011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4869
4870 * doc/invoke.texi (mwords-little-endian): Deprecate.
4871 * config/arm/arm.opt (mwords-little-endian): Likewise.
4872 * config/arm/arm.c (arm_option_override): Warn about the deprecation
4873 of -mwords-little-endian.
4874
3f125532
RS
48752011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
4876
4877 * reload1.c (choose_reload_regs): Use mode sizes to check whether
4878 an old reload register completely defines the required value.
4879
bbc210ab
RG
48802011-07-07 Richard Guenther <rguenther@suse.de>
4881
4882 * fold-const.c (fold_unary_loc): Do not strip sign-changes
4883 for NEGATE_EXPR.
4884
29c5134a
RG
48852011-07-07 Richard Guenther <rguenther@suse.de>
4886
4887 * tree-vrp.c (simplify_conversion_using_ranges): New function.
4888 (simplify_stmt_using_ranges): Call it.
4889
0816a42a
KT
48902011-07-07 Kai Tietz <ktietz@redhat.com>
4891
4892 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
4893 (lookup_logical_inverted_value): Likewise.
4894 (simplify_bitwise_binary_1): Likewise.
4895 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
4896
3ce9f090
JM
48972011-07-07 Joseph Myers <joseph@codesourcery.com>
4898
4899 * gcc.c (%[Spec]): Don't document.
4900 (struct spec_list): Update comment.
4901 (do_spec_1): Don't handle %[Spec].
4902 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
4903
41dfca87
JM
49042011-07-07 Joseph Myers <joseph@codesourcery.com>
4905
4906 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
4907 default based on TARGET_ASM_NAMED_SECTION.
4908 * common/common-target.def (have_named_sections): Default to true.
4909 * common/config/default-common.c: Don't include tm.h.
4910 * common/config/picochip/picochip-common.c
4911 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
4912 * common/config/m32c/m32c-common.c: Remove.
4913 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
4914 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4915 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4916 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 4917 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
4918 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
4919 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 4920
19c44640
JJ
49212011-07-07 Jakub Jelinek <jakub@redhat.com>
4922
4923 PR middle-end/49640
f9610d20
UB
4924 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
4925 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 4926
891a2e42
RO
49272011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4928
4929 PR libmudflap/49550
4930 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
4931
fbdd5d87
RO
49322011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4933
4934 PR target/39150
4935 * configure.ac (gcc_cv_as_hidden): Also accept
4936 x86_64-*-solaris2.1[0-9]*.
4937 (gcc_cv_as_cfi_directive): Likewise.
4938 (gcc_cv_as_comdat_group_group): Likewise.
4939 (set_have_as_tls): Likewise.
4940 * configure: Regenerate.
4941 * config.gcc (i[34567]86-*-solaris2*): Also handle
4942 x86_64-*-solaris2.1[0-9]*.
4943 * config.host (i[34567]86-*-solaris2*): Likewise.
4944 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
4945 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
4946 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
4947 (TARGET_LD_EMULATION): Use it.
4948 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
4949 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
4950 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
4951 (ASM_CPU64_DEFAULT_SPEC): Define.
4952 (ASM_CPU_SPEC): Use %(asm_cpu_default).
4953 (ASM_SPEC): Redefine.
4954 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
4955 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 4956 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
4957 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
4958 configuration.
4959 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
4960
fcf7471a
RO
49612011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4962
4963 * config/sol2.h (ASM_SPEC): Split into ...
4964 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
4965 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
4966 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
4967 (ASM_SPEC): Use ASM_SPEC_BASE.
4968 * config/sparc/sol2.h (ASM_SPEC): Redefine.
4969
1e6a67d1 49702011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 4971
1e6a67d1
GJL
4972 * config/avr/avr.md (*reload_insi): Change predicate #1 to
4973 const_int_operand. Ditto for peep2 producing this insn.
4974 Add argument to output_reload_insisf call.
4975 (*movsi,*movsf): Add argument to output_movsisf call.
4976 (*reload_insf): New insn and new peep2 to produce it.
4977 * config/avr/avr-protos.h (output_movsisf): Change prototype.
4978 (output_reload_insisf): Change prototype.
4979 * config/avr/avr.c (avr_asm_len): New function.
4980 (output_reload_insisf): Rewrite.
4981 (output_movsisf): Change prototype. output_reload_insisf for
4982 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
4983 (adjust_insn_length): Add argument to output_movsisf and
4984 output_reload_insisf call.
4985
6a4bdc79
BS
49862011-07-07 Bernd Schmidt <bernds@codesourcery.com>
4987
4988 * emit-rtl.c (paradoxical_subreg_p): New function.
4989 * rtl.h (paradoxical_subreg_p): Declare.
4990 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
4991 apply_distributive_law, simplify_comparison, simplify_set): Use it.
4992 * cse.c (record_jump_cond, cse_insn): Likewise.
4993 * expr.c (force_operand): Likewise.
4994 * rtlanal.c (num_sign_bit_copies1): Likewise.
4995 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
4996 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
4997 (push_reload): Use precision to check for paradoxical subregs.
4998 * expmed.c (extract_bit_field_1): Likewise.
4999
46c9550f
BS
5000 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
5001 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
5002 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
5003 simplify_set, simplify_logical, expand_compound_operation,
5004 make_extraction, force_to_mode, if_then_else_cond, extended_count,
5005 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
5006 record_value_for_reg): Likewise.
5007 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
5008 * simplify-rtx. c (simplify_unary_operation_1,
5009 simplify_binary_operation_1, simplify_const_relational_operation):
5010 Likewise.
5011
5511bc5a
BS
5012 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
5013 instead of GET_MODE_BITSIZE where appropriate.
5014 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
5015 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
5016 init_num_sign_bit_copies_in_rep): Likewise.
5017 * cse.c (fold_rtx, cse_insn): Likewise.
5018 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
5019 * simplify-rtx.c (simplify_unary_operation_1,
5020 simplify_const_unary_operation, simplify_binary_operation_1,
5021 simplify_const_binary_operation, simplify_ternary_operation,
5022 simplify_const_relational_operation, simplify_subreg): Likewise.
5023 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
5024 simplify_if_then_else, simplify_set, expand_compound_operation,
5025 expand_field_assignment, make_extraction, if_then_else_cond,
5026 make_compound_operation, force_to_mode, make_field_assignment,
5027 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
5028 extended_count, try_widen_shift_mode, simplify_shift_const_1,
5029 simplify_comparison, record_promoted_value, simplify_compare_const,
5030 record_dead_and_set_regs_1): Likewise.
5031
d58c1a38
BS
5032 Revert:
5033 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
5034 shift_truncation_mask hook instead of performing modulo by width.
5035 Compare against mode precision, not bitsize.
d58c1a38 5036 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 5037 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 5038
76594d53
MM
50392011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
5040
5041 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5042 declaration.
5043 (rs6000_save_toc_in_prologue_p): Ditto.
5044
5045 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5046 up the static chain (r11) during indirect function calls.
5047 (-msave-toc-indirect): New undocumented debug switch.
5048
5049 * config/rs6000/rs6000.c (struct machine_function): Add
5050 save_toc_in_prologue field to note whether the prologue needs to
5051 save the TOC value in the reserved stack location.
5052 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
5053 to save the TOC in the prologue, do so.
5054 (rs6000_trampoline_init): Don't allow creating AIX style
5055 trampolines if -mno-r11 is in effect.
5056 (rs6000_call_indirect_aix): New function to create AIX style
5057 indirect calls, adding support for -mno-r11 to suppress loading
5058 the static chain, and saving the TOC in the prologue instead of
5059 the call body.
5060 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5061 TOC in the prologue.
5062
5063 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5064 register numbers.
5065 (TOC_REGNUM): Ditto.
5066 (STATIC_CHAIN_REGNUM): Ditto.
5067 (ARG_POINTER_REGNUM): Ditto.
5068 (SFP_REGNO): Delete, unused.
5069 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5070 function descriptor offsets.
5071 (TOC_SAVE_OFFSET_64BIT): Ditto.
5072 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5073 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5074 (AIX_FUNC_DESC_SC_32BIT): Ditto.
5075 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
5076 (ptrload): New mode attribute for the appropriate load of a pointer.
5077 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
5078 (call_indirect_aix64): Ditto.
5079 (call_value_indirect_aix32): Ditto.
5080 (call_value_indirect_aix64): Ditto.
5081 (call_indirect_nonlocal_aix32_internal): Ditto.
5082 (call_indirect_nonlocal_aix32): Ditto.
5083 (call_indirect_nonlocal_aix64_internal): Ditto.
5084 (call_indirect_nonlocal_aix64): Ditto.
5085 (call): Rewrite AIX indirect function calls. Add support for
5086 eliminating the static chain, and for moving the save of the TOC
5087 to the function prologue.
5088 (call_value): Ditto.
5089 (call_indirect_aix<ptrsize>): Ditto.
5090 (call_indirect_aix<ptrsize>_internal): Ditto.
5091 (call_indirect_aix<ptrsize>_internal2): Ditto.
5092 (call_indirect_aix<ptrsize>_nor11): Ditto.
5093 (call_value_indirect_aix<ptrsize>): Ditto.
5094 (call_value_indirect_aix<ptrsize>_internal): Ditto.
5095 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5096 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5097 (call_nonlocal_aix32): Relocate in the rs6000.md file.
5098 (call_nonlocal_aix64): Ditto.
5099
5100 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5101 -mno-r11 documentation.
5102
49d6830d
JW
51032011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
5104
5105 PR other/49658
5106 * doc/extend.texi (Compound Literals): Fix typo.
5107
c884924f
JG
51082011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
5109
f9610d20 5110 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 5111
bf588455
BS
51122011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
5113
5114 * configure.ac (plugin-version.h): Generate
5115 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5116 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5117 macros.
5118
5119 * configure: Regenerate.
5120
5121 * doc/plugins.texi (Building GCC plugins): Mention
5122 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5123
d0edd768
BS
51242011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5125
5126 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5127 * combine.c (make_extraction, gen_lowpart_or_truncate,
5128 apply_distributive_law, simplify_comparison,
5129 reg_truncated_to_mode, record_truncated_value): Use it.
5130 * cse.c (notreg_cost): Likewise.
5131 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5132 * expr.c (convert_move, convert_modes): Likewise.
5133 * optabs.c (expand_binop, expand_unop): Likewise.
5134 * postreload.c (move2add_last_label): Likewise.
5135 * regmove.c (optimize_reg_copy_3): Likewise.
5136 * rtlhooks.c (gen_lowpart_general): Likewise.
5137 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5138
e5cabdfb
JM
51392011-07-06 Joseph Myers <joseph@codesourcery.com>
5140
5141 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5142
2d0c270f
BS
51432011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5144
5145 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5146 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5147 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5148 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
5149 simplify_const_binary_operation, simplify_const_relational_operation):
5150 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
5151 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5152 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5153 simplify_shift_const_1, simplify_comparison): Likewise.
5154 * expr.c (convert_modes): Likewise.
5155 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 5156 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
5157 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5158
f9c08345
BS
5159 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5160
6d6c9525
RG
51612011-07-06 Richard Guenther <rguenther@suse.de>
5162
5163 PR tree-optimization/49645
5164 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5165 register variables.
5166 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5167 in type qualification here ...
5168 (copy_reference_ops_from_ref): ... not here.
5169 (vn_reference_lookup_3): ... or here.
5170 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5171 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5172
d1a6ec10
ILT
51732011-07-06 Ian Lance Taylor <iant@google.com>
5174
5175 * doc/install.texi (Configuration): It's
5176 --enable-gnu-indirect-function, not --enable-indirect-function.
5177
ff3e08af
BS
51782011-07-06 Bernd Schmidt <bernds@codesourcery.com>
5179
5180 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
5181 shift_truncation_mask hook instead of performing modulo by width.
5182 Compare against mode precision, not bitsize.
ff3e08af 5183 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 5184 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 5185
a369b639
L
51862011-07-06 H.J. Lu <hongjiu.lu@intel.com>
5187
5188 PR middle-end/47383
5189 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5190 address computation and convert to address_mode if needed.
5191
1a072294
RG
51922011-07-06 Richard Guenther <rguenther@suse.de>
5193
5194 * tree.c (build_common_tree_nodes_2): Merge with
5195 build_common_tree_nodes.
5196 * tree.h (build_common_tree_nodes): Adjust prototype.
5197 (build_common_tree_nodes_2): Remove.
5198 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5199 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5200
f2c3a8ce
JJ
52012011-07-05 Jakub Jelinek <jakub@redhat.com>
5202
5203 PR tree-optimization/49618
5204 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5205 t recurse on the decl.
5206 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5207 return true if expr isn't known to be defined in current
5208 TU or some other LTO partition.
5209
3aa439ed
MM
52102011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5211
5212 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5213 override CASE_VALUES_THRESHOLD.
5214
5215 * stmt.c (toplevel): Include params.h.
5216 (case_values_threshold): Use the --param case-values-threshold
5217 value if non-zero, otherwise use machine dependent value.
5218 (expand_case): Use case_values_threshold.
5219
5220 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5221
5222 * doc/invoke.texi (--param case-values-threshold): Document.
5223
49956667
RH
52242011-07-05 Richard Henderson <rth@redhat.com>
5225
5226 * dwarf2out.c (dwarf2out_cfi_label): Make static.
5227 (dwarf2out_flush_queued_reg_saves): Make static.
5228 (dwarf2out_reg_save): Remove.
5229 (dwarf2out_return_save): Remove.
5230 (dwarf2out_return_reg): Remove.
5231 (dwarf2out_reg_save_reg): Remove.
5232 (dwarf2out_def_cfa): Merge into ...
5233 (dwarf2out_frame_init): ... here.
5234 * dwarf2out.h, tree.h: Remove declarations as necessary.
5235
9f2ff8e5
RH
52362011-07-05 Richard Henderson <rth@redhat.com>
5237
c2b40eba
RH
5238 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5239 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5240 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5241 the alloc insn.
5242
7d3c6cd8
RH
5243 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5244 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5245 (process_epilogue): Don't call dwarf2out_def_cfa.
5246
5f740973
RH
5247 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5248 indicate the return address save.
5249 (process_cfa_register): Likewise.
5250
a1880147
RH
5251 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5252 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5253
9f2ff8e5
RH
5254 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5255 for ar.pfs save at alloc insn.
5256
ddc6e7d6
RH
52572011-07-05 Richard Henderson <rth@redhat.com>
5258
5259 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5260 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5261 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5262 stack pointer save.
5263 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5264 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
5265 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5266 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5267
a3515605
RH
52682011-07-05 Richard Henderson <rth@redhat.com>
5269
5270 * config/vax/vax.md (define_c_enum unspecv): New. Define the
5271 VUNSPEC_* constants here instead of via define_constants.
5272 (VUNSPEC_PEM): New constant.
5273 (procedure_entry_mask): New insn.
5274 (prologue): New expander.
5275 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5276 (vax_expand_prologue): Rename from vax_output_function_prologue;
5277 emit rtl instead of text.
5278 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5279 (print_operand): Add 'x' prefix.
5280
a7adbbcb
L
52812011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5282
5283 PR middle-end/47715
5284 * calls.c (precompute_register_parameters): Promote the function
5285 argument before checking non-legitimate constant.
5286
cec11ec4
SP
52872011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5288
5289 PR tree-optimization/47654
5290 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5291 (lst_do_strip_mine_loop): Return an int.
5292 (lst_do_strip_mine): Same.
5293 (scop_do_strip_mine): Same.
5294 (scop_do_block): Loop blocking should strip-mine at least two loops.
5295 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5296 (scop_do_interchange): Same.
5297 * graphite-poly.h (scop_do_interchange): Update declaration.
5298 (scop_do_strip_mine): Same.
5299
9b0d314a
SP
53002011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5301
5302 * graphite-clast-to-gimple.c (precision_for_value): Removed.
5303 (precision_for_interval): Removed.
5304 (gcc_type_for_interval): Use mpz_sizeinbase.
5305
81d6d080
SP
53062011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5307
5308 * graphite-ppl.h (value_max): Correct computation of max.
5309
369e3430
SP
53102011-07-05 Sebastian Pop <sebastian.pop@amd.com>
5311
5312 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5313
fce5dddd
RG
53142011-07-05 Richard Guenther <rguenther@suse.de>
5315
5316 * c-decl.c (c_init_decl_processing): Defer building common
5317 tree nodes to c_common_nodes_and_builtins.
5318
12037899
RL
53192011-07-05 Razya Ladelsky <razya@il.ibm.com>
5320
5321 PR tree-optimization/49580
f9610d20 5322 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 5323 the loop's number of iterations.
f9610d20
UB
5324 * tree-parloops.c (transform_to_exit_first_loop): Add the
5325 handling of the loop's number of iterations before the call
12037899 5326 to gimple_duplicate_sese_tail.
28b21ebb 5327 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
5328 condition stmt to the preheader instead of iters_bb.
5329
509a31f8
L
53302011-07-05 H.J. Lu <hongjiu.lu@intel.com>
5331
5332 PR rtl-optimization/47449
5333 * fwprop.c (forward_propagate_subreg): Don't propagate hard
5334 register nor zero/sign extended hard register.
5335
39becbac
RG
53362011-07-05 Richard Guenther <rguenther@suse.de>
5337
5338 PR tree-optimization/49518
5339 PR tree-optimization/49628
5340 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5341 irrelevant and invariant data-references.
5342 (vect_analyze_data_ref_access): For invariant loads clear the
5343 group association.
5344
15923c25
JJ
53452011-07-04 Jakub Jelinek <jakub@redhat.com>
5346
af421d9c
JJ
5347 PR rtl-optimization/49619
5348 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5349 pass VOIDmode as op0_mode to recursive call, and return temp even
5350 when different from tor, just if it is not IOR of the original
5351 PLUS arguments.
5352
707f9919
JJ
5353 PR rtl-optimization/49472
5354 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5355 negating MULT, negate the second operand instead of first.
5356 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
5357 a NEG and the other is MULT, don't attempt to optimize by negation
5358 of the MULT operand if it only moves the NEG operation around.
707f9919 5359
15923c25
JJ
5360 PR debug/49602
5361 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5362 get_current_def return value if it can't be trusted to be
5363 the current value of the variable in the current bb.
5364
0d5e0c1b
UB
53652011-07-04 Uros Bizjak <ubizjak@gmail.com>
5366
5367 PR target/49600
5368 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5369 general register to memory for !TARGET_INTER_UNIT_MOVES.
5370
db297e20
GJL
53712011-07-04 Georg-Johann Lay <avr@gjlay.de>
5372
5373 PR target/44643
5374 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5375 instead of TREE_READONLY.
5376
f451d14d
GJL
53772011-07-04 Georg-Johann Lay <avr@gjlay.de>
5378
5379 * doc/extend.texi (AVR Built-in Functions): Update documentation
5380 of __builtin_avr_fmul*.
0d5e0c1b 5381 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
5382 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5383 * config/avr/avr.md (fmul): Rename to fmul_insn.
5384 (fmuls): Rename to fmuls_insn.
5385 (fmulsu): Rename to fmulsu_insn.
5386 (fmul,fmuls,fmulsu): New expander.
5387 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5388 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5389 * config/avr/libgcc.S (__fmul): New function.
5390 (__fmuls): New function.
5391 (__fmulsu,__fmulsu_exit): New function.
5392
30f1e6de
RG
53932011-07-04 Richard Guenther <rguenther@suse.de>
5394
5395 PR tree-optimization/49615
5396 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5397 basic-block index check.
5398
6dab9931
GJL
53992011-07-04 Georg-Johann Lay <avr@gjlay.de>
5400
5401 * longlong.h (count_leading_zeros, count_trailing_zeros,
5402 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5403 resp. 64.
5404
b5066d8b
IR
54052011-07-03 Ira Rosen <ira.rosen@linaro.org>
5406
5407 PR tree-optimization/49610
5408 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5409 a basic block.
5410
bc712852
EB
54112011-07-02 Eric Botcazou <ebotcazou@adacore.com>
5412 Olivier Hainque <hainque@adacore.com>
5413 Nicolas Setton <setton@adacore.com>
5414
5415 * tree.h (TYPE_ARTIFICIAL): New flag.
5416 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5417 the DIE of the type if it is artificial.
5418 (gen_array_type_die): Likewise.
5419 (gen_enumeration_type_die): Likewise.
5420 (gen_struct_or_union_type_die): Likewise.
5421 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5422 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5423
8b1bdcc5
JJ
54242011-07-01 Jakub Jelinek <jakub@redhat.com>
5425
5426 * tree-object-size.c (pass_through_call): Handle
5427 BUILT_IN_ASSUME_ALIGNED.
5428
06e88d73
MJ
54292011-07-01 Martin Jambor <mjambor@suse.cz>
5430
5431 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5432
6bbec3e1
L
54332011-07-01 H.J. Lu <hongjiu.lu@intel.com>
5434
5435 PR middle-end/48016
5436 * explow.c (update_nonlocal_goto_save_area): Use proper mode
5437 for stack save area.
5438 * function.c (expand_function_start): Likewise.
5439
e8fdf1cd
RG
54402011-07-01 Richard Guenther <rguenther@suse.de>
5441
5442 PR middle-end/49596
5443 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5444 may have unknown refs.
5445
80d3dd38
KT
54462011-07-01 Kai Tietz <ktietz@redhat.com>
5447
5448 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5449
179fc656
RO
54502011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5451
5452 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5453 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5454 (Specific, mips-sgi-irix6): Likewise.
5455
14a393a3
RO
54562011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5457
5458 PR libmudflap/49549
5459 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5460
3aecd443
JJ
54612011-07-01 Jakub Jelinek <jakub@redhat.com>
5462
5463 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5464 [idx]= and [idx1 ... idx2]= before initializers if needed for
5465 array initializers.
5466
7474f719
CL
54672011-07-01 Chen Liqin <liqin.gcc@gmail.com>
5468
5469 * config.gcc (score-*-elf): Remove score7.o.
5470 * config/score/t-score-elf: Likewise.
5471 * config/score/score.c: Merge score7 to score.c and
5472 remove forwarding functions.
5473 * config/score/score7.c: Deleted.
5474 * config/score/score7.h: Deleted.
5475
ab70d825
RG
54762011-07-01 Richard Guenther <rguenther@suse.de>
5477
5478 PR tree-optimization/49603
0d5e0c1b 5479 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 5480
1ac93f10
MJ
54812011-06-30 Martin Jambor <mjambor@suse.cz>
5482
5483 * tree-sra.c (struct access): Rename total_scalarization to
5484 grp_total_scalarization
5485 (completely_scalarize_var): New function.
5486 (sort_and_splice_var_accesses): Set total_scalarization in the
5487 representative access.
5488 (analyze_access_subtree): Propagate total scalarization accross the
5489 tree, no holes in totally scalarized trees, simplify coverage
5490 computation.
5491 (analyze_all_variable_accesses): Call completely_scalarize_var instead
5492 of completely_scalarize_record.
5493
97f309c3
RH
54942011-06-30 Richard Henderson <rth@redhat.com>
5495
5496 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5497 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5498 * config/i386/i386.c: Don't include dwarf2out.h.
5499 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5500 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5501 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
5502 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5503 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5504
ef284364
RH
55052011-06-30 Richard Henderson <rth@redhat.com>
5506
5507 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5508 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5509 * final.c (final_scan_insn): Look for it, and invoke
5510 dwarf2out_frame_debug before the insn if found.
5511
c8412f97
RH
55122011-06-30 Richard Henderson <rth@redhat.com>
5513
5514 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5515 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5516
e3f903d8
RH
55172011-06-30 Richard Henderson <rth@redhat.com>
5518
5519 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5520 Define a vector of this type.
5521 (regs_saved_in_regs): Use a VEC.
5522 (num_regs_saved_in_regs): Remove.
5523 (compare_reg_or_pc): New.
5524 (record_reg_saved_in_reg): Split out from...
5525 (dwarf2out_flush_queued_reg_saves): ... here.
5526 (clobbers_queued_reg_save): Update for VEC.
5527 (reg_saved_in): Likewise.
5528 (dwarf2out_frame_debug_init): Likewise.
5529 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5530 (dwarf2out_frame_debug_cfa_register): Likewise.
5531
e2c9010a
EB
55322011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5533
5534 PR tree-optimization/49572
5535 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5536 type of the RHS instead of that of the LHS for the expression type.
5537
dbb07bbc
EB
55382011-06-30 Eric Botcazou <ebotcazou@adacore.com>
5539
5540 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5541 unconditionally.
5542
1565af08
RG
55432011-06-30 Richard Guenther <rguenther@suse.de>
5544
5545 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5546 * tree-ssa-structalias.c (create_variable_info_for): Do not
5547 add initial constraints for non-var-decls. Properly handle
5548 globals in other ltrans partitions.
5549 (intra_create_variable_infos): Manually create constraints for
5550 the fake no-alias parameter.
5551 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5552 and assert there are no clones.
5553
42373e0b
RG
55542011-06-30 Richard Guenther <rguenther@suse.de>
5555
5556 PR tree-optimization/46787
5557 * tree-data-ref.c (dr_address_invariant_p): Remove.
5558 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 5559 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
5560 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5561 invariant loads.
5562
7aa62ea1
MJ
55632011-06-30 Martin Jambor <mjambor@suse.cz>
5564
5565 PR tree-optimization/49094
5566 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5567 (build_accesses_from_assign): Use it.
5568
f60f32b3
JJ
55692011-06-30 Jakub Jelinek <jakub@redhat.com>
5570
d9048d16
JJ
5571 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5572 handling of BUILT_IN_ASSUME_ALIGNED.
5573
f60f32b3
JJ
5574 PR debug/49364
5575 * dwarf2out.c (output_abbrev_section): Don't return early
5576 if abbrev_die_table_in_use is 1.
5577 (dwarf2out_finish): Instead don't call output_abbrev_section
5578 nor emit abbrev_section_label in that case.
5579
7cce15d4
NC
55802011-06-30 Nick Clifton <nickc@redhat.com>
5581
5582 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5583 for the V850E.
5584
ce7e54ff
JJ
55852011-06-30 Jakub Jelinek <jakub@redhat.com>
5586
5587 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5588 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5589
83197f37
IR
55902011-06-30 Ira Rosen <ira.rosen@linaro.org>
5591
5592 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5593 both pattern and original statements if necessary.
5594 (vect_transform_loop): Likewise.
5595 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5596 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5597 Mark the pattern statement only if the original statement doesn't
5598 have its own uses.
5599 (process_use): Call vect_mark_relevant with additional parameter.
5600 (vect_mark_stmts_to_be_vectorized): Likewise.
5601 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5602 (vect_analyze_stmt): Handle both pattern and original statements
5603 if necessary.
5604 (vect_transform_stmt): Don't store vectorized pattern statement
5605 in the original statement.
5606 (vect_is_simple_use_1): Use related pattern statement only if the
5607 original statement is irrelevant.
5608 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5609
dbb07bbc 56102011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 5611
dbb07bbc
EB
5612 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5613 option.
5614 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5615 entry.
5c0d88e6
CF
5616 (TARGET_AVX128_OPTIMAL): New definition.
5617 * config/i386/i386.c (initial_ix86_tune_features): Initialize
5618 X86_TUNE_AVX128_OPTIMAL entry.
5619 (ix86_option_override_internal): Enable the generation
5620 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5621 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5622 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5623
931050d0
EB
56242011-06-29 Eric Botcazou <ebotcazou@adacore.com>
5625
5626 PR tree-optimization/49539
5627 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5628 names by means of stmt_references_abnormal_ssa_name.
5629 (associate_plusminus): Call can_propagate_from before propagating
5630 from definition statements.
5631 (ssa_forward_propagate_and_combine): Remove superfluous newline.
5632
dfedbe40
RG
56332011-06-29 Richard Guenther <rguenther@suse.de>
5634
5635 * doc/invoke.texi: Document -scev dump modifier.
5636 * tree-pass.h (TDF_SCEV): New dump flag.
5637 * tree-dump.c (dump_option_value_in): Add scev.
5638 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5639 * tree-scalar-evolution.c: Likewise.
5640
3a86cfeb
NS
56412011-06-29 Nathan Sidwell <nathan@codesourcery.com>
5642
5643 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5644 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
5645 (__gnu_unwind_pr_common): Reconstruct additional indirection
5646 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 5647
f3678bfb
UW
56482011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5649
5650 PR rtl-optimization/49114
5651 * reload.c (struct replacement): Remove SUBREG_LOC member.
5652 (push_reload): Do not set it.
5653 (push_replacement): Likewise.
5654 (subst_reload): Remove dead code.
5655 (copy_replacements): Remove assertion.
5656 (copy_replacements_1): Do not handle SUBREG_LOC.
5657 (move_replacements): Likewise.
5658 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
5659 Detect subregs via recursive descent instead of via SUBREG_LOC.
5660
433ba0a5 56612011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 5662
433ba0a5
GJL
5663 * config/avr/avr.c (avr_encode_section_info): Dispatch to
5664 default_encode_section_info.
5665
73f6eabc
RS
56662011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
5667
5668 PR tree-optimization/49545
5669 * builtins.c (get_object_alignment_1): Update function comment.
5670 Do not use DECL_ALIGN for functions, but test
5671 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5672 * fold-const.c (get_pointer_modulus_and_residue): Don't check
5673 for functions here.
5674 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5675
a0f33d3a
JJ
56762011-06-29 Jakub Jelinek <jakub@redhat.com>
5677
5678 PR debug/49567
0d5e0c1b
UB
5679 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5680 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 5681
946c8b23 56822011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 5683
946c8b23 5684 PR target/34734
0d5e0c1b 5685 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
5686 about uninitialized data attributed 'progmem' from here...
5687 (avr_encode_section_info): ...to this new function.
5688 (TARGET_ENCODE_SECTION_INFO): New define.
5689 (avr_section_type_flags): For data in ".progmem.data", remove
5690 section flag SECTION_WRITE.
5691
9a63dee4 56922011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 5693
9a63dee4
GJL
5694 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
5695 _xmulhisi3_exit.
5696 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
5697 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
5698 (__umulhisi3): Ditto.
5699 * config/avr/avr.md (mulhisi3): New insn expender.
5700 (umulhisi3): New insn expender.
5701 (*mulhisi3_call): New insn.
5702 (*umulhisi3_call): New insn.
5703
4374ce45
JM
57042011-06-28 Joseph Myers <joseph@codesourcery.com>
5705
5706 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
5707
94759030
RH
57082011-06-28 Richard Henderson <rth@redhat.com>
5709
5710 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
5711 all code and arguments that handled pushes. Update all callers.
5712
d018b46e
RH
57132011-06-28 Richard Henderson <rth@redhat.com>
5714
5715 * config/arm/arm.c (arm_output_function_prologue): Don't call
5716 thumb1_output_function_prologue.
5717 (arm_expand_prologue): Avoid dead store.
5718 (number_of_first_bit_set): Use ctz_hwi.
5719 (thumb1_emit_multi_reg_push): New.
5720 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
5721 to emit the entire prologue as rtl.
5722 (thumb1_output_interwork): Split out from
5723 thumb1_output_function_prologue.
5724 (thumb1_output_function_prologue): Remove.
5725 (arm_attr_length_push_multi): Handle thumb1.
5726 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
5727 (prologue_thumb1_interwork): New.
5728 (*push_multi): Allow thumb1; use push_mult_memory_operand.
5729 * config/arm/predicates.md (push_mult_memory_operand): New.
5730
97269a23
EB
57312011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5732
5733 * config/sparc/sync.md (*stbar): Delete.
5734 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
5735
4a9206ce
EB
57362011-06-28 Eric Botcazou <ebotcazou@adacore.com>
5737
5738 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
5739
6138f9bd
RO
57402011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5741
5742 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
5743 (TARGET_64BIT_DEFAULT): Define.
5744 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
5745 of tm_file.
5746 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
5747
a7d0d30f
JM
57482011-06-28 Joseph Myers <joseph@codesourcery.com>
5749
5750 * common.opt (in_lto_p): New Variable entry.
5751 * flags.h (in_lto_p): Move to common.opt.
5752 * gcc.c: Include params.h.
5753 (set_option_handlers): Also use common_handle_option and
5754 target_handle_option.
0d5e0c1b 5755 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
5756 * opts.c (debug_type_names): Move from toplev.c.
5757 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
5758 (common_handle_option): Return early in the driver for some options.
5759 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
5760 opts pointer.
a7d0d30f
JM
5761 * toplev.c (in_lto_p): Move to common.opt.
5762 (debug_type_names): Move to opts.c.
5763 * Makefile.in (OBJS): Remove opts.o.
5764 (OBJS-libcommon-target): Add opts.o.
5765 (gcc.o): Update dependencies.
5766
420863a9
KT
57672011-06-28 Kai Tietz <ktietz@redhat.com>
5768
0d5e0c1b 5769 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 5770
0498a2be
RR
57712011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5772
5773 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
5774 with '=' constraint modifier.
5775 (*divdf3_vfp): Likewise.
5776 ("*mulsf3_vfp"): Likewise.
5777 ("*muldf3_vfp"): Likewise.
5778 ("*mulsf3negsf_vfp"): Likewise.
5779 ("*muldf3negdf_vfp"): Likewise.
5780
4a68b724
NC
57812011-06-28 Nick Clifton <nickc@redhat.com>
5782
5783 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
5784 relaxation when performing an incremental link.
5785
72a32729
KT
57862011-06-28 Kai Tietz <ktietz@redhat.com>
5787
5788 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
5789 within BB from last to first.
5790
88a00ef7
JM
57912011-06-28 Joseph Myers <joseph@codesourcery.com>
5792
5793 * genattr-common.c: New. Based on genattr.c.
5794 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
5795 (MOSTLYCLEANFILES): Add insn-attr-common.h.
5796 (opts.o): Update dependencies.
5797 (.PRECIOUS): Add insn-attr-common.h.
5798 (simple_rtl_generated_h): Add insn-attr-common.h.
5799 (build/genattr-common.o): New.
5800 (genprogrtl): Add attr-common.
5801 * genattr.c (main): Include insn-attr-common.h. Don't generate
5802 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 5803 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 5804
880962ac
GJL
58052011-06-28 Georg-Johann Lay <avr@gjlay.de>
5806
4a68b724 5807 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 5808 avr-*-* and avr-*-rtems* targets.
4a68b724 5809
880962ac
GJL
5810 * config/avr/elf.h: New file.
5811 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
5812 (TARGET_ASM_SELECT_SECTION): Define.
5813 (INIT_SECTION_ASM_OP): Undefine.
5814 (FINI_SECTION_ASM_OP): Undefine.
5815 (READONLY_DATA_SECTION_ASM_OP): Undefine.
5816 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
5817 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
5818 * config/avr/avr.h:
5819 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
5820 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
5821 (MAX_OFILE_ALIGNMENT): Move to elf.h.
5822 (STRING_LIMIT): Move to elf.h.
5823 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
5824 (ASM_DECLARE_OBJECT_NAME): Remove.
5825 (ESCAPES): Remove.
5826 (ASM_OUTPUT_SKIP): Remove.
5827 (DWARF2_DEBUGGING_INFO): Remove.
5828 (OBJECT_FORMAT_ELF): Remove.
5829 (USER_LABEL_PREFIX): Remove.
5830 (ASM_OUTPUT_EXTERNAL): Remove.
5831 (ASM_OUTPUT_ASCII): Remove.
5832 (TYPE_ASM_OP): Remove.
5833 (SIZE_ASM_OP): Remove.
5834 (WEAK_ASM_OP): Remove.
5835 (STRING_ASM_OP): Remove.
5836 (SET_ASM_OP): Remove.
5837 (ASM_WEAKEN_LABEL): Remove.
5838 (TYPE_OPERAND_FMT): Remove.
5839 (ASM_DECLARE_FUNCTION_SIZE): Remove.
5840 (ASM_FINISH_DECLARE_OBJECT): Remove.
5841 (NO_DOLLAR_IN_LABEL): Remove.
5842 (ASM_GENERATE_INTERNAL_LABEL): Remove.
5843 (ASM_OUTPUT_CASE_LABEL): Remove.
5844 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
5845 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
5846 (gas_output_ascii): Remove.
5847 (gas_output_limited_string): Remove.
5848 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
5849 * config/avr/avr-protos.h
5850 (gas_output_ascii): Remove prototye.
5851 (gas_output_limited_string): Remove prototype.
5852
a1b5eb93
RE
58532011-06-27 Richard Earnshaw <rearnsha@arm.com>
5854
5855 PR target/48637
5856 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
5857 asm operands.
5858
310e71a8
JH
58592011-06-27 Jan Hubicka <jh@suse.cz>
5860
4a9206ce
EB
5861 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
5862 node instead of references in node.
310e71a8 5863
171da07a
RH
58642011-06-27 Richard Henderson <rth@redhat.com>
5865
5866 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
5867 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
5868 inside ifdef.
5869
dc2a58da
JJ
58702011-06-27 Jakub Jelinek <jakub@redhat.com>
5871
56300785
JJ
5872 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
5873
45d439ac
JJ
5874 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
5875 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
5876 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
5877 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
5878 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
5879 (evaluate_stmt, execute_fold_all_builtins): Handle
5880 BUILT_IN_ASSUME_ALIGNED.
5881 * tree-ssa-dce.c (propagate_necessity): Likewise.
5882 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5883 call_may_clobber_ref_p_1): Likewise.
5884 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
5885 (expand_builtin_assume_aligned): New function.
5886 * doc/extend.texi (__builtin_assume_aligned): Document.
5887
dc2a58da
JJ
5888 PR debug/49544
5889 * cselib.c (promote_debug_loc): If cselib_preserve_constants
5890 and l has two DEBUG_INSN owned locs instead of just one, adjust
5891 the second location's setting_insn too.
5892
0d72f628
RO
58932011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5894
5895 PR libmudflap/38738
5896 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
5897
bebd619e
NC
58982011-06-27 Nick Clifton <nickc@redhat.com>
5899
0d5e0c1b
UB
5900 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
5901 bit position of highest bit set into a count of the high zero bits.
bebd619e 5902
353b39fa
EB
59032011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5904
5905 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
5906
a7af037b
EB
59072011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5908
5909 PR lto/48492
5910 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
5911 to a NULL parent.
5912
1c86160a
RG
59132011-06-27 Richard Guenther <rguenther@suse.de>
5914
5915 PR tree-optimization/49394
5916 * passes.c (execute_one_pass): Restore current_pass after
5917 applying IPA transforms.
5918
5da49a9d
KT
59192011-06-27 Kai Tietz <ktietz@redhat.com>
5920
5921 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
5922 out of type precision after operation.
0d5e0c1b
UB
5923 (find_bswap): Take for limit value the integer auto-promotion
5924 into account.
5da49a9d 5925
9242213f
EB
59262011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5927
5928 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
5929 forward scan as well.
5930
db8b22ef
TG
59312011-06-27 Tristan Gingold <gingold@adacore.com>
5932
5933 PR target/44241
5934 * config/vms/vms-protos.h: New file.
5935 * config/vms/vms-crtlmap.map: New file.
5936 * config/vms/vms.c: New file.
5937 * config/vms/make-crtlmap.awk: New file.
5938 * config/vms/vms-crtl.h: File removed.
5939 * config/vms/vms-crtl-64.h: File removed.
5940 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
5941 * config/alpha/vms64.h: Do not include vms-crtl-64.h
5942 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
5943 clear some builtins on VMS. Calls vms_patch_builtins.
5944 (avms_asm_output_external): Remove.
5945 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
5946 (struct crtl_name_spec): Remove
5947 (DO_CTRL_NAMES): Remove.
5948 * config/ia64/vms.h (struct crtl_name_spec): Remove
5949 (DO_CTRL_NAMES): Remove.
5950 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
5951 clear some builtins on VMS. Calls vms_patch_builtins.
5952 (ia64_asm_output_external): Remove DO_CRTL_NAME.
5953 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 5954 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 5955
b213221d
TG
59562011-06-27 Tristan Gingold <gingold@adacore.com>
5957
5958 * config/alpha/alpha.c (alpha_end_function): Always generate .end
5959 directive on VMS.
5960
157b9300
EB
59612011-06-27 Eric Botcazou <ebotcazou@adacore.com>
5962
5963 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
5964 the function receives nonlocal gotos.
5965
ccbf5bb4
RG
59662011-06-27 Richard Guenther <rguenther@suse.de>
5967
5968 PR tree-optimization/49536
5969 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
5970 For non-scalar inner types use a scalar type according to
5971 the scalar inner mode.
5972
fe4cd14b
RG
59732011-06-27 Richard Guenther <rguenther@suse.de>
5974
5975 PR tree-optimization/49365
5976 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
5977
afc3f22f
RS
59782011-06-27 Richard Guenther <rguenther@suse.de>
5979
5980 PR tree-optimization/49169
5981 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
5982 the alignment of function decls.
5983
92590751 59842011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
5985
5986 PR target/47997
5987 * config/darwin.c (darwin_mergeable_string_section): Place string
5988 constants in '.cstring' rather than '.const' when CF/NSStrings are
5989 active.
5990
605354f3
EB
59912011-06-26 Eric Botcazou <ebotcazou@adacore.com>
5992
5993 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
5994 (emit_save_register_window): Likewise.
5995 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
5996 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
5997 Swap back %o7/%i7 in register naming.
5998
0e9197f5
IS
59992011-06-25 Iain Sandoe <iains@gcc.gnu.org>
6000
6001 PR driver/49371
6002 * config/darwin.c (darwin_override_options): Improve warning when
6003 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
6004 is given with fpie/fPIE.
6005 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
6006 * config/darwin9.h (PIE_SPEC): New.
53461199 6007
605354f3 60082011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
6009
6010 * timevar.c (timevar_print): Increase width for display of timevar
6011 name.
6012
f796c438
JJ
60132011-06-24 Jakub Jelinek <jakub@redhat.com>
6014
6015 PR c++/46400
6016 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
6017 instead of TYPE_CHAIN for chain_next for types.
6018
a7289eaf
RH
60192011-06-24 Richard Henderson <rth@redhat.com>
6020
6021 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
6022 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
6023 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
6024 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
6025 (sparc_flat_expand_prologue): Emit individual instructions
6026 instead of one of the above.
6027
c4b9a87e
ER
60282011-06-24 Easwaran Raman <eraman@google.com>
6029
6030 PR rtl-optimization/49429
6031 PR target/49454
6032 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
6033 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
6034 used to copy y into x.
6035 * calls.c (initialize_argument_information): Mark
6036 an argument addressable if it is passed by invisible reference.
6037 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
6038 if it is passed by reference.
6039
5ac6c59e
L
60402011-06-24 H.J. Lu <hongjiu.lu@intel.com>
6041
6042 PR rtl-optimization/49504
6043 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
6044 subtraction of a pointer in Pmode if pointers extend unsigned.
6045 (num_sign_bit_copies1): Likewise.
5ac6c59e 6046
b807e627
MJ
60472011-06-24 Martin Jambor <mjambor@suse.cz>
6048
6049 PR tree-optimizations/49516
6050 * tree-sra.c (sra_modify_assign): Choose the safe path for
6051 aggregate copies if we also did scalar replacements.
6052
9a1ea4b9
RR
60532011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6054
6055 PR target/49335
6056 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 6057 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 6058
949cfd0a
AK
60592011-06-24 Andi Kleen <ak@linux.intel.com>
6060
6061 * tree-sra.c (type_internals_preclude_sra_p): Add msg
6062 parameter. Split up ifs and report reason in *msg.
6063 (reject): Add.
6064 (find_var_candiate): Add msg variable.
6065 Split up ifs and report reason to reject.
6066 (find_param_candidates): Add msg variable.
6067 Pass msg to type_internals_preclude_sra_p.
6068
49e9c661 60692011-06-23 Jeff Law <law@redhat.com>
ad3577df 6070
b0c11403
JL
6071 PR middle-end/48770
6072 * reload.h (reload): Change to return a bool.
6073 * ira.c (ira): If requested by reload, run a fast DCE pass after
6074 reload has completed. Fix comment typo.
6075 * reload1.c (need_dce): New file scoped static.
6076 (reload): Set reload_completed here. Return whether or not a DCE
6077 pass after reload is needed.
6078 (delete_dead_insn): Set need_dce as needed.
6079
ad3577df
JL
6080 PR middle-end/49465
6081 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6082 to detect threading through joiner block. If there was already
6083 an edge to the new target, then do not change the PHI nodes.
6084
7cf64710
JJ
60852011-06-23 Jakub Jelinek <jakub@redhat.com>
6086
6087 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6088 get_pointer_alignment to see if base isn't sufficiently aligned.
6089
febb1302
JH
60902011-06-23 Jan Hubicka <jh@suse.cz>
6091
6092 PR tree-optimize/49373
6093 * tree-pass.h (all_late_ipa_passes): Declare.
6094 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
6095 (cgraph_optimize): Execute late passes; remove unreachable funcions
6096 after materialization.
6097 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6098 LTOing.
febb1302
JH
6099 * passes.c (all_late_ipa_passes): Declare.
6100 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
6101 (init_optimization_passes): Move ipa_pta to late passes; schedule
6102 fixup_cfg at beggining of all_passes.
febb1302
JH
6103 (apply_ipa_transforms): New function.
6104 (execute_one_pass): When doing simple ipa pass, apply all transforms.
6105
4c77620d
JM
61062011-06-23 Joseph Myers <joseph@codesourcery.com>
6107
6108 * params.c: Include common/common-target.h. Don't include tm.h.
6109 (lang_independent_params): Move from toplev.c.
6110 (global_init_params): New.
6111 * params.h (global_init_params): Declare.
6112 * target.def (default_params): Move to common-target.def.
6113 * toplev.c (lang_independent_options): Remove.
6114 (lang_independent_params): Move to params.c.
6115 (general_init): Use global_init_params.
6116 * common/common-target.def (option_default_params): Move from
6117 target.def.
6118 * common/config/ia64/ia64-common.c: Include params.h.
6119 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6120 from ia64.c.
6121 * common/config/rs6000/rs6000-common.c: Include params.h.
6122 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6123 from rs6000.c.
6124 * common/config/sh/sh-common.c: Include params.h.
6125 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6126 from sh.c.
6127 * common/config/spu/spu-common.c: Include params.h.
6128 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6129 from spu.c.
6130 * config/ia64/ia64.c (ia64_option_default_params,
6131 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6132 * config/rs6000/rs6000.c (rs6000_option_default_params,
6133 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6134 * config/sh/sh.c (sh_option_default_params,
6135 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6136 * config/spu/spu.c (spu_option_default_params,
6137 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6138 * Makefile.in (OBJS): Remove params.o.
6139 (OBJS-libcommon-target): Add params.o.
6140 (params.o, $(common_out_object_file)): Update dependencies.
6141 * doc/tm.texi: Regenerate.
6142
6aad1e38
AM
61432011-06-23 Alan Modra <amodra@gmail.com>
6144
6145 PR bootstrap/49383
6146 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6147 invocation for 2011-06-09 changes.
6148
4fb489e7
JJ
61492011-06-22 Jakub Jelinek <jakub@redhat.com>
6150
fb79f500
JJ
6151 PR libgomp/49490
6152 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
6153 use n ceil/ nthreads size for the first n % nthreads threads in the
6154 team instead of all threads except for the last few ones which
fb79f500
JJ
6155 get less work or none at all.
6156
4fb489e7
JJ
6157 PR debug/49496
6158 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6159 uses.
6160
9c7c9f10
RG
61612011-06-22 Richard Guenther <rguenther@suse.de>
6162
6163 PR tree-optimization/49493
6164 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6165 Refer to the alias target of variables.
6166 (associate_varinfo_to_alias_1): Remove.
6167 (ipa_pta_execute): Do not associate aliases with anything.
6168 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6169 (cgraph_function_node): Likewise.
6170 (cgraph_function_or_thunk_node): Likewise.
6171 (varpool_variable_node): Likewise.
6172
7cf13d1f
NS
61732011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6174
0d5e0c1b 6175 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
6176 * config.gcc (arm*-*-linux*): Default to gnu tls.
6177 (arm*-*-*): Add --with-tls option.
6178 (all_defaults): Add 'tls'.
6179
78a8eb4e
RH
61802011-06-22 Richard Henderson <rth@redhat.com>
6181
6182 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6183 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6184 (dwarf2out_frame_debug_cfa_window_save): Rename from
6185 dwarf2out_window_save; make static.
6186 * tree.h (dwarf2out_window_save): Don't declare.
6187
6188 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6189 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6190 (emit_save_register_window): Rename from gen_save_register_window;
6191 emit the insn and add REG_CFA_* notes.
6192 (sparc_expand_prologue): Update to match.
6193 * config/sparc/sparc.md (save_register_window_1): Simplify from
6194 save_register_window<P:mode>.
6195
3b4c46d7
L
61962011-06-22 H.J. Lu <hongjiu.lu@intel.com>
6197
6198 PR target/49497
6199 * config/i386/i386.md (*lea_general_2): Always allow SImode.
6200 (*lea_general_2_zext): Likewise.
6201 (imul to lea peepholes): Use const359_operand and check
6202 TARGET_PARTIAL_REG_STALL.
6203
6204 * config/i386/predicates.md (const359_operand): New.
6205
4399cf59
MM
62062011-06-22 Michael Matz <matz@suse.de>
6207
6208 * cgraphunit.c (assemble_thunk): Use correct return type.
6209
31a0c825 62102011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 6211 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
6212
6213 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6214 (neon_output_shift_immediate): Ditto.
6215 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6216 prototype.
6217 (neon_output_shift_immediate): Ditto.
6218 * config/arm/neon.md (vashl<mode>3): Modified constraint.
6219 (vashr<mode>3_imm): New insn pattern.
6220 (vlshr<mode>3_imm): Ditto.
6221 (vashr<mode>3): Modified constraint.
6222 (vlshr<mode>3): Ditto.
6223 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6224 predicate.
6225 (imm_for_neon_rshift_operand): Ditto.
6226 (imm_lshift_or_reg_neon): Ditto.
6227 (imm_rshift_or_reg_neon): Ditto.
6228
6229 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6230
ddb555ed
JJ
62312011-06-22 Jakub Jelinek <jakub@redhat.com>
6232
36dc1a88
JJ
6233 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6234 builtin calls even if likelyvalue is not CONSTANT.
6235 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6236 Return get_value_for_expr of first operand
6237 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6238 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6239 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6240 their non-checking counterparts.
6241 (call_may_clobber_ref_p_1): Likewise.
6242 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6243 like their non-checking counterparts.
6244 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6245 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6246 like their non-checking counterparts.
6247 (find_func_clobbers): Likewise.
6248 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6249 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6250
41cd4957
JJ
6251 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6252 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6253 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6254 of base type reference as argument.
6255 (resolve_addr_in_expr): Likewise. Fix keep computation.
6256 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
6257 (convert_descriptor_to_mode): ... this. For wider types convert to
6258 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
6259 (typed_binop): New function.
6260 (scompare_loc_descriptor, ucompare_loc_descriptor,
6261 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6262 default to unsigned type instead of signed.
6263
ddb555ed
JJ
6264 PR debug/47858
6265 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6266 (gimple_build_debug_source_bind_stat): New prototype.
6267 (gimple_build_debug_source_bind): Define.
6268 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6269 gimple_debug_source_bind_get_value,
6270 gimple_debug_source_bind_get_value_ptr,
6271 gimple_debug_source_bind_set_var,
6272 gimple_debug_source_bind_set_value): New inlines.
6273 * gimple.c (gimple_build_debug_source_bind_stat): New function.
6274 * gimple-pretty-print.c (dump_gimple_debug): Handle
6275 GIMPLE_DEBUG_SOURCE_BIND.
6276 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6277 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6278 * tree-parloops.c (eliminate_local_variables,
6279 separate_decls_in_region): Likewise.
6280 (separate_decls_in_region_debug): Renamed from
6281 separate_decls_in_region_debug_bind. Handle
6282 gimple_debug_source_bind_p.
6283 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6284 prototypes.
6285 (DECL_HAS_DEBUG_ARGS_P): Define.
6286 (struct tree_function_decl): Add has_debug_args_flag field.
6287 * tree.c (debug_args_for_decl): New variable.
6288 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6289 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6290 (rewrite_debug_stmt_uses): New function.
6291 (rewrite_stmt): Use it to rewrite debug stmt uses.
6292 * rtl.def (DEBUG_PARAMETER_REF): New.
6293 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6294 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6295 DEBUG_PARAMETER_REF.
6296 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6297 * print-rtl.c (print_rtx): Likewise.
6298 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6299 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6300 debug stmts in the first bb.
6301 * tree-inline.c (remap_ssa_name): If remapping default def
6302 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6303 a source bind debug stmt.
6304 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6305 (maybe_move_debug_stmts_to_successors): Likewise.
6306 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
6307 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6308 debug args vector from old_decl to new_decl.
6309 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6310 or modified parameters, add debug bind stmts before call
0d5e0c1b 6311 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
6312 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6313 on DECL_DEBUG_EXPRs from debug args vector.
6314 (expand_debug_source_expr): New function.
6315 (expand_debug_locations): Use it for source bind insns.
6316 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6317 * var-tracking.c (prepare_call_arguments): Add debug args
6318 to call_arguments if any.
6319 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
6320 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6321 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
6322 (get_ref_die_offset, parameter_ref_descriptor): New functions.
6323 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6324 (gen_subprogram_die): Handle parameters identified by
6325 DEBUG_PARAMETER_REF.
6326
ccdc2164
NS
63272011-06-22 Nathan Sidwell <nathan@codesourcery.com>
6328
6329 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6330 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
6331 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6332 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6333 (arm_tls_descseq_addr): New.
6334 (legitimize_tls_address): Add tlsdesc support.
6335 (arm_cannot_copy_insn_p): Check for tlscall.
6336 (arm_emit_tls_decoration): Likewise.
6337 * config/arm/arm.h (TARGET_GNU2_TLS): New.
6338 (OPTION_DEFAULT_SPECS): Add with-tls support.
6339 * config/arm/arm.md (R1_REGNUM): Define.
6340 (tlscall): New.
6341 * config/arm/arm.opt (tls_type): New enumeration type and values.
6342 (mtls-dialect): New switch.
6343 * config/arm/arm-opts.h (enum tls_type): New.
6344
70e41a6a
NP
63452011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
6346
6347 * attribs.c (register_attribute): Added assert to check that all
6348 attribute specs are registered with a name that is not empty and
6349 does not start with '_'.
6350 (decl_attributes): Avoid the lookup of the "naked" attribute spec
6351 if the function has no attributes.
6352 * tree.c (is_attribute_with_length_p): Removed.
6353 (is_attribute_p): Removed.
0d5e0c1b 6354 (private_is_attribute_p): New.
70e41a6a
NP
6355 (private_lookup_attribute): New.
6356 (lookup_attribute): Removed.
6357 (lookup_ident_attribute): New.
6358 (remove_attribute): Require the first argument to be in the form
6359 'text', not '__text__'. Updated asserts.
6360 (merge_attributes): Use lookup_ident_attributes instead of
6361 lookup_attribute.
6362 (merge_dllimport_decl_attributes): Use remove_attribute.
6363 (attribute_list_contained): Likewise.
6364 (attribute_list_equal): Immediately return 1 if the arguments are
6365 identical pointers.
6366 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
6367 'int'. Require the first argument to be in the form 'text', not
6368 '__text__'. Require the second argument to be an identifier.
6369 (lookup_attribute): Made inline. Require the first argument to be
6370 in the form 'text', not '__text__'.
6371 (private_is_attribute_p, private_lookup_attribute): New.
6372 Updated comments.
0d5e0c1b 6373
e0a8ecf2
AM
63742011-06-21 Andrew MacLeod <amacleod@redhat.com>
6375
6376 * builtins.c: Add sync_ or SYNC__ to builtin names.
6377 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6378 * omp-low.c: Add sync_ or SYNC__ to builtin names.
6379
663827d3 63802011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 6381
663827d3
GJL
6382 PR target/33049
6383 * config/avr/avr.md (extzv): New expander.
6384 (*extzv): New insn.
6385 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6386 * config/avr/constraints.md (C04): New constraint.
6387 * doc/md.texi (Machine Constraints): Document it.
6388
146aef0b
JJ
63892011-06-21 Jakub Jelinek <jakub@redhat.com>
6390
6391 PR middle-end/49489
6392 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6393 unsignedp argument instead of 1 for clrsb_optab.
6394 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6395 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
6396 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6397 * optabs.c (widen_leading): Call widen_operand and expand_unop
6398 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 6399 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 6400
c0503294
GJL
64012011-06-21 Georg-Johann Lay <avr@gjlay.de>
6402
6403 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6404
3801c801
BS
64052011-06-21 Bernd Schmidt <bernds@codesourcery.com>
6406
0bddee8e
BS
6407 * gensupport.c (add_define_attr): New static function.
6408 (is_predicable): Allow multi-alternative lists for the "predicable"
6409 attribute.
6410 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6411 (process_one_cond_exec): Call alter_attrs_for_insn.
6412 * doc/md.texi (Defining Attributes): Mention some standard names.
6413 (Conditional Execution): Update documentation for "predicable".
6414
3801c801
BS
6415 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6416 __builtin_clrsbll): Document.
6417 * doc/rtl.texi (clrsb): New entry.
6418 * optabs.c (widen_leading): Renamed from widen_clz. New argument
6419 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
6420 (expand_unop): Handle clrsb_optab.
6421 (init_optabs): Initialize it.
6422 * optabs.h (enum optab_index): New entry OTI_clrsb.
6423 (clrsb_optab): Define.
6424 * genopinit.c (optabs): Add an entry for it.
6425 * builtins.c (expand_builtin): Handle clrsb builtin functions.
6426 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6427 BUILT_IN_CLRSBLL): New.
6428 * rtl.def (CLRSB): New code.
6429 * dwarf2out.c (mem_loc_descriptor): Handle it.
6430 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6431 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6432 and popcount.
6433 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6434 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6435 (__ctzDI2): Move declaration.
6436 * config/bfin/bfin.md (clrsbsi2): New expander.
6437 (signbitssi2): Use the CLRSB rtx.
6438 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
6439 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6440
55f01229
RG
64412011-06-21 Richard Guenther <rguenther@suse.de>
6442
637c11bd 6443 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 6444
5181cd6a
IR
64452011-06-21 Ira Rosen <ira.rosen@linaro.org>
6446
6447 PR tree-optimization/49478
6448 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6449 with constant operand.
6450
e4ee3d70
RG
64512011-06-21 Richard Guenther <rguenther@suse.de>
6452
6453 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 6454
7b7ec6c5
RG
64552011-06-21 Richard Guenther <rguenther@suse.de>
6456
6457 PR tree-optimization/49483
6458 * tree-vect-stmts.c (vectorizable_assignment): Also handle
6459 VIEW_CONVERT_EXPR conversions.
6460
1b916ca6
JM
64612011-06-21 Joseph Myers <joseph@codesourcery.com>
6462
6463 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6464 * config/avr/avr-tables.opt: New file (generated).
6465 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6466 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6467 avr-mcus.def.
6468 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6469 (avr_option_override): Don't process -mmcu= argument here. Set
6470 avr_current_device using avr_mcu_index.
637c11bd 6471 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
6472 * config/avr/avr.opt (mmcu=): Use Enum.
6473 * config/avr/t-avr (avr-devices.o): Update dependencies.
6474 ($(srcdir)/config/avr/avr-tables.opt): New.
6475 * target.def (help): Remove.
6476 * doc/tm.texi.in (TARGET_HELP): Remove.
6477 * doc/tm.texi: Regenerate.
6478 * opts.c: Don't include target.h.
6479 (common_handle_option): Don't call targetm.help.
6480 * system.h (TARGET_HELP): Poison.
6481 * Makefile.in (opts.o): Update dependencies.
6482
7ecfa34f
RO
64832011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6484
6485 * config/usegld.h: New file.
6486 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6487 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 6488 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
6489 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6490 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
6491 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6492 Define.
7ecfa34f
RO
6493 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6494 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6495 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6496 (STACK_CHECK_STATIC_BUILTIN): Define.
6497 * config/sol2.opt (compat-bsd): Remove.
6498 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6499 * config/sol2-bi.h: New file.
6500 * config/sol2-gld.h: Remove.
6501 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6502 (NO_DBX_BNSYM_ENSYM): Remove.
6503 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6504 (STACK_CHECK_STATIC_BUILTIN): Remove.
6505 Test USE_GLD instead of TARGET_GNU_LD.
6506 * config/i386/sol2-10.h: Rename to ...
6507 * config/i386/sol2-bi.h .. this.
6508 (SUBTARGET_EXTRA_SPECS): Redefine.
6509 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6510 (MULTILIB_DEFAULTS): Remove.
6511 (DEFAULT_ARCH32_P): Define.
6512 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6513 (ARCH64_SUBDIR): Define.
6514 Test USE_GLD instead of TARGET_GNU_LD.
6515 (I386_EMULATION): Rename to ...
6516 (ARCH32_EMULATION): ... this.
6517 (X86_64_EMULATION): Rename to ...
6518 (ARCH64_EMULATION): ... this.
6519 (TARGET_LD_EMULATION): Remove.
6520 (LINK_ARCH_SPEC): Remove.
6521 * config/i386/sol2-gas.h: Remove.
6522 * config/i386/t-sol2-10: Rename to ...
6523 * config/i386/t-sol2-64: ... this.
6524 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6525 (AS_SPARC64_FLAG): Define.
6526 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6527 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6528 depending on TARGET_CPU_DEFAULT.
6529 (CPP_CPU_SPEC): Redefine.
6530 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6531 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6532 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6533 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6534 ASM_ARCH_DEFAULT_SPEC): Redefine.
6535 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6536 LINK_ARCH_DEFAULT_SPEC.
6537 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6538 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6539 (ARCH64_SUBDIR): Define.
6540 (LINK_ARCH64_SPEC): Redefine.
6541 (CC1_SPEC): Redefine.
6542 (OPTION_DEFAULT_SPECS): Redefine.
6543 (MULTILIB_DEFAULTS): Define.
6544 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6545 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6546 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6547 (NO_DBX_BNSYM_ENSYM): Remove.
6548 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6549 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6550 (TARGET_ASM_NAMED_SECTION): Likewise.
6551 (STACK_CHECK_STATIC_BUILTIN): Remove.
6552 * config/sparc/sol2-bi.h: Remove.
6553 * config/sparc/sol2-gas-bi.h: Remove.
6554 * config/sparc/sol2-gas.h: Remove.
6555 * config/sparc/sol2-gld-bi.h: Remove.
6556 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6557 common parts ...
6558 (*-*-solaris2*): ... here.
6559
4b583c43 65602011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 6561
4b583c43 6562 PR other/43564
637c11bd
UB
6563 * ipa-inline.c (can_inline_edge_p): Check
6564 !DECL_DISREGARD_INLINE_LIMITS.
6565
3bb556ad 65662011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 6567
3bb556ad
CB
6568 PR middle-end/49139
6569 * cgraphunit.c (process_function_and_variable_attributes): warn when
6570 always_inline functions that are not inline.
637c11bd
UB
6571 * ipa-inline-transform.c (inline_transform): Always call
6572 optimize_inline.
6573 * tree-inline.c (tree_inlinable_function_p): Use error instead
6574 of sorry.
3bb556ad 6575 (expand_call_inline): Likewise.
637c11bd 6576
f1ee724c
JJ
65772011-06-21 Jakub Jelinek <jakub@redhat.com>
6578
6579 * Makefile.in (dg_target_exps): Set.
6580 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6581 instead of 7, try to divide it more evenly.
6582
65832011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 6584
931050d0 6585 PR target/49089
97ef5ae6
CF
6586 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6587 (avx256_split_unaligned_store): New definition.
6588 (ix86_option_override_internal): Enable avx256 unaligned load/store
6589 splitting only when avx256_split_unaligned_load/store is set.
6590
998c75b6
BS
65912011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6592
6593 * regrename.c (scan_rtx_reg): Handle the case where we write to an
6594 open chain in a smaller mode without failing the entire block.
6595
3a769784
AM
65962011-06-21 Alan Modra <amodra@gmail.com>
6597
6598 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6599 CONST high part large-toc address.
6600 (rs6000_tls_referenced_p): Make static.
6601 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6602
c2954af9
RR
66032011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6604
6605 PR target/49385
6606 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6607 one of the operands is a register.
6608
a95015b6
KT
66092011-06-20 Kai Tietz <ktietz@redhat.com>
6610
637c11bd
UB
6611 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6612 operations in combination with binary and.
a95015b6 6613
49a30d00
BS
66142011-06-20 Bernd Schmidt <bernds@codesourcery.com>
6615
6616 * regrename.c (do_replace): Don't update notes.
6617
3bae1d98
AM
66182011-06-20 Alan Modra <amodra@gmail.com>
6619
6620 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6621 of toc-relative address in CONST.
6622 (rs6000_delegitimize_address): Recognize changed address.
6623 (rs6000_legitimize_reload_address): Likewise.
6624 (rs6000_emit_move): Don't force these constants to memory.
6625 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6626 toc-relative address in CONST.
6627 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6628 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6629
10937b0c
L
66302011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6631
637c11bd 6632 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
6633 (count_trailing_zeros): Likewise.
6634
0c587260
L
66352011-06-18 H.J. Lu <hongjiu.lu@intel.com>
6636
6637 PR other/49325
6638 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6639 .init_array can be used with .ctors on targets.
6640 * configure: Regenerated.
6641
c020c92b
EB
66422011-06-18 Eric Botcazou <ebotcazou@adacore.com>
6643
6644 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6645 if the element type is volatile.
6646
cd35bcf7
JH
66472011-06-18 Jan Hubicka <jh@suse.cz>
6648
6649 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6650 extra name aliases.
6651 (lto_symtab_resolve_can_prevail_p): Likewise.
6652 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6653 * cgraphbuild.c (record_reference): Remove extra body alias code.
6654 (mark_load): Likewise.
6655 (mark_store): Likewise.
6656 * cgraph.h (varpool_node): Remove extra_name filed;
6657 add alias_of and extraname_alias.
6658 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6659 (varpool_alias_aliased_node): New inline function.
6660 (varpool_variable_node): New function.
6661 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6662 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6663 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6664 (input_varpool_node): Likewise.
6665 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6666 (varpool_externally_visible_p): Remove extra body alias code.
6667 (function_and_variable_visibility): Likewise.
6668 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6669 (ipa_pta_execute): Use it.
6670 * varpool.c (varpool_remove_node): Remove extra name alias code.
6671 (varpool_mark_needed_node): Likewise.
6672 (varpool_analyze_pending_decls): Analyze aliases.
6673 (assemble_aliases): New functoin.
6674 (varpool_assemble_decl): Use it.
6675 (varpool_create_variable_alias): New function.
6676 (varpool_extra_name_alias): Rewrite.
6677 (varpool_for_node_and_aliases): New function.
6678
c96b4102
JJ
66792011-06-18 Jakub Jelinek <jakub@redhat.com>
6680
6681 PR target/49411
6682 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
6683 last_arg_constant and last argument doesn't match its predicate,
6684 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
6685 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
6686 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
6687 spelling of error message.
6688 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
6689 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
6690 const_0_to_255_operand instead of const_int_operand.
6691
6692 Revert:
6693 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
6694
6695 * config/i386/sse.md (blendbits): Remove mode attribute.
6696 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
6697 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
6698 Check integer value of operand 3 in insn constraint.
6699
9a2091cd
HPN
67002011-06-17 Hans-Peter Nilsson <hp@axis.com>
6701
6702 PR rtl-optimization/48542
6703 * reload.c (find_equiv_reg): Stop looking when finding a
6704 setjmp-type call.
6705 * reload1.c (reload_as_needed): Invalidate all reload
6706 registers when crossing a setjmp-type call.
6707
361b51c0
JL
67082011-06-16 Jeff Law <law@redhat.com>
6709
6710 * tree-ssa-threadupdate.c (struct redirection_data): New field
6711 intermediate_edge.
6712 (THREAD_TARGET2): Define.
637c11bd 6713 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
6714 (lookup_redirection_data): Drop useless argument. Extract the
6715 outgoing_edge and intermediate edge from E. Callers updated.
6716 (copy_phi_args, update_destination_phis): New functions.
6717 (fix_duplicate_block_edges): Likewise.
6718 (create_edge_and_update_destination_phis): Duplicate all the edges
6719 hung off e->aux. Use copy_phi_args.
6720 (create_duplicates): Use fix_duplicate_block_edges.
6721 (fixup_template_block): Likewise.
6722 (redirect_edges): If necessary, redirect the joiner block's incoming
6723 edge to the duplicate of the joiner block.
6724 (thread_block): Don't muck up loops when threading through a joiner
6725 block.
637c11bd 6726 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
6727 (mark_threaded_blocks, register_jump_thread): Likewise.
6728 * tree-flow.h (register_jump_thread): Add new argument. Callers
6729 updated.
6730 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
6731 (thread_across_edge): Handle threading through a joiner block.
637c11bd 6732
ee460e75
MJ
67332011-06-16 Martin Jambor <mjambor@suse.cz>
6734
6735 PR tree-optimization/49343
6736 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
6737 calculate offset, provide 2nd operand for the new COMPONENT_REF.
6738
a285ba2e
IS
67392011-06-16 Iain Sandoe <iains@gcc.gnu.org>
6740
6741 * config/darwin-protos.h (machopic_select_rtx_section): Move to
6742 inside RTX_CODE ifdef.
6743
0703f020
TV
67442011-06-16 Tom de Vries <tom@codesourcery.com>
6745
6746 PR target/45098
637c11bd
UB
6747 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
6748 Disallow NULL pointer for pointer arithmetic.
0703f020 6749
900c07da
RR
67502011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
6751
6752 PR target/49398
6753 Revert.
6754 2011-06-10 Wei Guozhi <carrot@google.com>
6755
6756 PR target/45335
6757 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
6758 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
6759 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
6760 related peephole2.
6761 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
6762 related peephole2.
6763 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
6764 (arm_legitimate_ldrd_p): New prototype.
6765 (arm_output_ldrd): New prototype.
6766 * config/arm/arm.c (arm_check_ldrd_operands): New function.
6767 (arm_legitimate_ldrd_p): New function.
6768 (arm_output_ldrd): New function.
6769
c020c92b 67702011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
6771
6772 PR middle-end/46500
6773 * doc/tm.texi.in: Update Copyright date.
6774 * doc/tm.texi: Regenerate.
6775 * targhooks.c (default_setup_incoming_varargs): Replace
6776 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6777 (default_pretend_outgoing_varargs_named): Likewise.
6778 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6779 (hook_callee_copies_named): Likewise.
6780 (default_function_arg_advance): Likewise.
6781 (default_function_arg): Likewise.
6782 (default_function_incoming_arg): Likewise.
6783 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6784 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6785 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6786 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6787 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6788 * targhooks.h (default_setup_incoming_varargs): Likewise.
6789 (default_pretend_outgoing_varargs_named): Likewise.
6790 (hook_pass_by_reference_must_pass_in_stack): Likewise.
6791 (hook_callee_copies_named): Likewise.
6792 (default_function_arg_advance): Likewise.
6793 (default_function_arg): Likewise.
6794 (default_function_incoming_arg): Likewise.
6795 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
6796 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
6797 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
6798 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
6799 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
6800 * target.def (pass_by_reference): Likewise.
6801 (setup_incoming_varargs, strict_argument_naming): Likewise.
6802 (pretend_outgoing_varargs_named, callee_copies): Likewise.
6803 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
6804 (function_incoming_arg): Likewise.
6805 * target.h: Don't include "tm.h" .
6806 (cumulative_args_t): New typedef.
6807 [GCC_TM_H] (get_cumulative_args): New static inline function.
6808 [GCC_TM_H] (pack_cumulative_args): Likewise.
6809 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
6810 argument type with cumulative_args_t.
6811 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
6812 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
6813 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
6814 (frv_arg_partial_bytes, frv_function_arg): Likewise.
6815 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
6816 (frv_function_arg_1): Likewise.
6817 * config/s390/s390.c (s390_pass_by_reference): Likewise.
6818 (s390_function_arg_advance, s390_function_arg): Likewise.
6819 * config/m32c/m32c.c (m32c_function_arg): Likewise.
6820 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
6821 (m32c_strict_argument_naming): Likewise.
6822 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
6823 (spu_function_arg_advance): Likewise.
6824 (spu_setup_incoming_varargs): Likewise. Make static.
6825 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
6826 Remove prototype.
6827 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
6828 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6829 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
6830 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
6831 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
6832 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
6833 (mep_pass_by_reference, mep_function_arg): Likewise.
6834 (mep_function_arg_advance): Likewise.
6835 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
6836 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
6837 (m32r_function_arg, m32r_function_arg_advance): Likewise.
6838 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
6839 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
6840 (ix86_function_arg, ix86_pass_by_reference): Likewise.
6841 (ix86_setup_incoming_varargs): Likewise.
6842 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
6843 (sh_strict_argument_naming): Likewise.
6844 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
6845 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
6846 (sh_function_arg_advance, sh_function_arg): Likewise.
6847 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
6848 (pdp11_function_arg_advance): Likewise.
6849 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
6850 Likewise.
6851 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
6852 * config/avr/avr.c (avr_function_arg): Likewise.
6853 (avr_function_arg_advance): Likewise.
6854 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
6855 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
6856 (xtensa_function_arg_1): Likewise.
637c11bd
UB
6857 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
6858 Likewise.
d5cc9181
JR
6859 (xstormy16_function_arg): Likewise.
6860 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
6861 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
6862 (fr30_function_arg_advance): Likewise.
6863 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
6864 (lm32_function_arg, lm32_function_arg_advance): Likewise.
6865 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
6866 (moxie_function_arg, moxie_function_arg_advance): Likewise.
6867 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
6868 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
6869 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
6870 (cris_function_arg, cris_function_incoming_arg): Likewise.
6871 (cris_function_arg_advance, cris_function_arg_1): Likewise.
6872 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
6873 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
6874 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
6875 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
6876 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
6877 (mn10300_arg_partial_bytes): Likewise.
6878 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
6879 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
6880 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
6881 (ia64_function_arg_1): Likewise.
6882 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
6883 (m68k_function_arg): Likewise.
6884 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
6885 (rs6000_function_arg, setup_incoming_varargs): Likewise.
6886 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
6887 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
6888 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
6889 (picochip_arg_advance): Likewise.
6890 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
6891 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
6892 (mcore_function_arg_advance): Likewise.
6893 * config/score/score.c (score_pass_by_reference): Likewise.
6894 (score_function_arg_advance): Likewise.
6895 (score_arg_partial_bytes): Likewise. Make static.
6896 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
6897 * config/arm/arm.c (arm_arg_partial_bytes): Replace
6898 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6899 (arm_function_arg, arm_function_arg_advance): Likewise.
6900 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
6901 * config/pa/pa.c (pa_pass_by_reference): Likewise.
6902 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
6903 (pa_function_arg): Likewise.
6904 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
6905 (mips_function_arg, mips_function_arg_advance): Likewise.
6906 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
6907 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
6908 * config/vax/vax.c (vax_function_arg): Likewise.
6909 (vax_function_arg_advance): Likewise.
6910 * config/h8300/h8300.c (h8300_function_arg): Likewise.
6911 (h8300_function_arg_advance): Likewise.
6912 * config/v850/v850.c (v850_pass_by_reference): Likewise.
6913 (v850_strict_argument_naming, v850_function_arg): Likewise.
6914 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
6915 (v850_setup_incoming_varargs): Likewise.
6916 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
6917 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
6918 (mmix_function_arg, mmix_pass_by_reference): Likewise.
6919 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
6920 with const void *.
6921 * config/bfin/bfin.c (setup_incoming_varargs): Replace
6922 CUMULATIVE_ARGS* argument type with cumulative_args_t.
6923 (bfin_function_arg_advance, bfin_function_arg): Likewise.
6924 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
6925 * calls.c (emit_call_1): Change type of args_so_far to
6926 cumulative_args_t. Changed all callers.
6927 (initialize_argument_information): Likewise.
6928 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
6929 * dse.c (get_call_args): Likewise.
6930 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
6931 * function.c (pass_by_reference, reference_callee_copied): Likewise.
6932 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
6933 New member args_so_far_v. Changed all users.
6934 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
6935 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
6936 * config/mips/mips.c (mips_output_args_xfer): Likewise.
6937 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
6938 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
6939 * config/microblaze/microblaze.c (microblaze_expand_prologue):
6940 Likewise.
d5cc9181
JR
6941 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
6942 m32r_pass_by_reference.
6943
51312233
IR
69442011-06-16 Ira Rosen <ira.rosen@linaro.org>
6945
6946 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
6947 argument to be a VEC of statements.
637c11bd
UB
6948 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
6949 assert that pattern statements have to have their vector type set.
51312233
IR
6950 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
6951 Change the first argument to be a VEC of statements. Update
6952 documentation.
6953 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
6954 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
6955 (vect_recog_widen_mult_pattern): Change the first argument to be a
6956 VEC of statements. Update documentation. Check that the constant is
6957 INTEGER_CST. Support multiplication by a constant that fits an
6958 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
6959 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
6960 call. Handle additional pattern statements if necessary.
6961
fd4df33d
NC
69622011-06-16 Nick Clifton <nickc@redhat.com>
6963
6964 PR target/49427
6965 * config.gcc: Set cpu_type to v850 for any V850 architecture.
6966 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
6967 md_file, extra_modes, out_file and extra_options are these are all
6968 deduced from cpu_type.
6969
fbd05da0
GJL
69702011-06-16 Georg-Johann Lay <avr@gjlay.de>
6971
6972 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
6973 truncation mask to 63.
6974
0ad8bb3b
GJL
69752011-06-16 Georg-Johann Lay <avr@gjlay.de>
6976
6977 PR target/49313
6978 PR target/29524
6979 * longlong.h: Add AVR support:
6980 (count_leading_zeros): New macro.
6981 (count_trailing_zeros): New macro.
6982 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
6983 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
6984 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
6985 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
6986 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
6987 (LIB2FUNCS_EXCLUDE): Add _clz.
6988 * config/avr/libgcc.S (XCALL): Move up in file.
6989 (XJMP): New C Macro.
6990 (DEFUN): New asm macro.
6991 (ENDF): New asm macro.
6992 (__ffssi2): New function.
6993 (__ffshi2): New function.
6994 (__loop_ffsqi2): New function.
6995 (__ctzsi2): New function.
6996 (__ctzhi2): New function.
6997 (__clzdi2): New function.
6998 (__clzsi2): New function.
6999 (__clzhi2): New function.
7000 (__paritydi2): New function.
7001 (__paritysi2): New function.
7002 (__parityhi2): New function.
59c1e10b 7003 (__parityqi2): New function.
0ad8bb3b
GJL
7004 (__popcounthi2): New function.
7005 (__popcountsi2): New function.
7006 (__popcountdi2): New function.
7007 (__popcountqi2): New function.
7008 (__bswapsi2): New function.
7009 (__bswapdi2): New function.
7010 (__ashldi3): New function.
7011 (__ashrdi3): New function.
7012 (__lshrdi3): New function.
7013 Fix suspicous lines.
7014
12430896
RG
70152011-06-16 Richard Guenther <rguenther@suse.de>
7016
7017 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
7018 the same as x != 0.
637c11bd
UB
7019 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
7020 to (bool) X & 1.
12430896
RG
7021 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
7022 equality compares against zero for the lower bit.
7023
09302442
JJ
70242011-06-16 Jakub Jelinek <jakub@redhat.com>
7025
7026 PR tree-optimization/49419
7027 * tree-vrp.c (execute_vrp): Call init_range_assertions
7028 before estimate_numbers_of_iterations, call
7029 free_number_of_iterations_estimates before calling
7030 remove_range_assertions.
7031
81c41166
RE
70322011-06-16 Revital Eres <revital.eres@linaro.org>
7033
7034 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
7035 (struct partial_schedule): Add rows_length field.
7036 (verify_partial_schedule): Check rows_length.
7037 (ps_insert_empty_row): Handle rows_length.
7038 (create_partial_schedule): Likewise.
7039 (free_partial_schedule): Likewise.
7040 (reset_partial_schedule): Likewise.
7041 (create_ps_insn): Remove rest_count argument.
7042 (remove_node_from_ps): Update rows_length.
7043 (add_node_to_ps): Update rows_length and call create_ps_insn
7044 without passing row_rest_count.
7045 (rotate_partial_schedule): Update rows_length.
7046
d24dc7b3
RE
70472011-06-16 Revital Eres <revital.eres@linaro.org>
7048
7049 * ddg.c (add_intra_loop_mem_dep): New function.
7050 (build_intra_loop_deps): Call it.
7051
361b51c0 70522011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
7053
7054 * df-problems.c (df_lr_local_compute): Manually CSE
7055 PIC_OFFSET_TABLE_REGNUM.
7056 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7057 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7058
85ce9375
JH
70592011-06-13 Jan Hubicka <jh@suse.cz>
7060
7061 * cgraphunit.c (handle_alias_pairs): New function.
7062 (cgraph_finalize_compilation_unit): Use it.
7063 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7064 as externally visible.
7065
a577c405
RG
70662011-06-15 Richard Guenther <rguenther@suse.de>
7067
7068 * expr.c (expand_expr_real_2): Reduce all integral types to
7069 bitfield precision.
7070 (expand_expr_real_1): Likewise.
7071
93536c97
MJ
70722011-06-15 Martin Jambor <mjambor@suse.cz>
7073
7074 PR tree-optimization/48613
7075 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7076 ipa_node_params_vector is NULL.
fd4df33d 7077
ba45cfc4
JJ
70782011-06-15 Jakub Jelinek <jakub@redhat.com>
7079
7080 PR debug/49382
7081 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
7082 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7083 location in the list, even if it is modified before first real insn.
ba45cfc4 7084 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 7085 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 7086
6fc5966f
AM
70872011-06-15 Alexander Monakov <amonakov@ispras.ru>
7088
7089 PR target/49349
7090 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7091 (fence_to_rewind). Use it to notice when bookkeeping will be placed
7092 above a fence. Update comments.
7093 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7094 placed just above it. Do not allow NULL place_to_insert.
7095
9d5e7640
IR
70962011-06-15 Ira Rosen <ira.rosen@linaro.org>
7097
7098 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7099 (slpeel_tree_peel_loop_to_edge): Don't call
7100 remove_dead_stmts_from_loop.
7101 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7102 remove irrelevant pattern statements. For irrelevant statements
7103 check if it is the last statement of a detected pattern, use
7104 corresponding pattern statement instead.
7105 (destroy_loop_vec_info): No need to remove pattern statements,
7106 only free stmt_vec_info.
7107 (vect_transform_loop): For irrelevant statements check if it is
7108 the last statement of a detected pattern, use corresponding
7109 pattern statement instead.
7110 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7111 pattern statements. Set basic block for the new statement.
7112 (vect_pattern_recog): Update documentation.
7113 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7114 operands of pattern statements.
7115 (vectorizable_call): Fix printing. In case of a pattern statement
7116 use the lhs of the original statement when creating a dummy
7117 statement to replace the original call.
7118 (vect_analyze_stmt): For irrelevant statements check if it is
7119 the last statement of a detected pattern, use corresponding
7120 pattern statement instead.
7121 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7122 statements use gsi of the original statement.
7123
677f3fa8
JM
71242011-06-14 Joseph Myers <joseph@codesourcery.com>
7125
7126 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7127 common/common-target-def.h.
7128 * target.def (default_target_flags, handle_option,
7129 supports_split_stack, optimization_table, init_struct,
7130 except_unwind_info, unwind_tables_default, have_named_sections):
7131 Move to common/common-target.def.
7132 * target.h (enum opt_levels, struct default_options): Move to
7133 common/common-target.h.
7134 * targhooks.c (default_except_unwind_info,
7135 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7136 default_target_handle_option, empty_optimization_table): Move to
7137 common/common-targhooks.c.
7138 * targhooks.h (default_except_unwind_info,
7139 dwarf2_except_unwind_info, sjlj_except_unwind_info,
7140 default_target_handle_option, empty_optimization_table): Move to
7141 common/common-targhooks.h.
7142 * common/common-target-def.h: Include common/common-targhooks.h.
7143 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7144 defined.
7145 * common/common-target.def (handle_option, option_init_struct,
7146 option_optimization_table, default_target_flags,
7147 except_unwind_info, supports_split_stack, unwind_tables_default,
7148 have_named_sections): Move from target.def.
7149 (HOOK_PREFIX): Undefine at end of file.
7150 * common/common-target.h: Include input.h.
7151 (enum opt_levels, struct default_options): Move from target.h.
7152 * common/common-targhooks.c, common/common-targhooks.h: New.
7153 * config.gcc (target_has_targetm_common): Default to yes.
7154 (moxie*): Set target_has_targetm_common=no.
7155 (hppa*-*-*): Don't set target_has_targetm_common=yes.
7156 * doc/tm.texi: Regenerate.
7157 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7158 (C_TARGET_DEF_H): Add common/common-targhooks.h.
7159 (GCC_OBJS): Remove vec.o.
7160 (OBJS): Remove hooks.o and vec.o.
7161 (OBJS-libcommon-target): Add vec.o, hooks.o and
7162 common/common-targhooks.o.
7163 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7164 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7165 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7166 cfglayout.o, $(out_object_file), $(common_out_object_file)):
7167 Update dependencies.
7168 (common/common-targhooks.o): New.
637c11bd 7169 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
7170 * common/config/pa/pa-common.c: Include more headers. Take
7171 copyright dates from pa.c.
7172 (pa_option_optimization_table, pa_handle_option,
7173 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7174 TARGET_HANDLE_OPTION): Move from pa.c.
7175 * common/config/alpha/alpha-common.c,
7176 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7177 common/config/bfin/bfin-common.c,
7178 common/config/cris/cris-common.c,
7179 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7180 common/config/h8300/h8300-common.c,
7181 common/config/i386/i386-common.c,
7182 common/config/ia64/ia64-common.c,
7183 common/config/iq2000/iq2000-common.c,
7184 common/config/lm32/lm32-common.c,
7185 common/config/m32c/m32c-common.c,
7186 common/config/m32r/m32r-common.c,
7187 common/config/m68k/m68k-common.c,
7188 common/config/mcore/mcore-common.c,
7189 common/config/mep/mep-common.c,
7190 common/config/microblaze/microblaze-common.c,
7191 common/config/mips/mips-common.c,
7192 common/config/mmix/mmix-common.c,
7193 common/config/mn10300/mn10300-common.c,
7194 common/config/pdp11/pdp11-common.c,
7195 common/config/picochip/picochip-common.c,
7196 common/config/rs6000/rs6000-common.c,
7197 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7198 common/config/score/score-common.c, common/config/sh/sh-common.c,
7199 common/config/sparc/sparc-common.c,
7200 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7201 common/config/vax/vax-common.c,
7202 common/config/xstormy16/xstormy16-common.c,
7203 common/config/xtensa/xtensa-common.c: New.
7204 * config/alpha/alpha.c: Include common/common-target.h.
7205 (alpha_option_optimization_table, alpha_handle_option,
7206 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7207 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7208 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7209 * config/arm/arm.c (arm_option_optimization_table,
7210 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7211 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7212 arm-common.c.
7213 * config/avr/avr.c (avr_option_optimization_table,
7214 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7215 to avr-common.c.
7216 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7217 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7218 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7219 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7220 * config/cris/cris.c (cris_option_optimization_table,
7221 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7222 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7223 cris-common.c.
7224 * config/fr30/fr30.c (fr30_option_optimization_table,
7225 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7226 to fr30-common.c.
7227 * config/frv/frv.c (frv_option_optimization_table,
7228 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7229 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7230 * config/h8300/h8300.c (h8300_option_optimization_table,
7231 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7232 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7233 * config/i386/i386-protos.h (ix86_handle_option): Declare.
7234 * config/i386/i386.c: Include common/common-target.h.
7235 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7236 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7237 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7238 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7239 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7240 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7241 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7242 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7243 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7244 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7245 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7246 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7247 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7248 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7249 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7250 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7251 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7252 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7253 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7254 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7255 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7256 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7257 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7258 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7259 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7260 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7261 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7262 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7263 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7264 ix86_option_optimization_table, ix86_option_init_struct,
7265 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7266 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7267 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7268 i386-common.c.
7269 * config/i386/t-i386 (i386.o): Update dependencies.
7270 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7271 * config/ia64/ia64.c (ia64_option_optimization_table,
7272 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7273 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7274 ia64_handle_option): Move to ia64-common.c.
7275 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7276 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7277 * config/lm32/lm32.c (lm32_option_optimization_table,
7278 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7279 to lm32-common.c.
7280 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7281 m32c-common.c.
7282 * config/m32r/m32r.c (m32r_option_optimization_table,
7283 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7284 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7285 m32r_handle_option): Move to m32r-common.c.
7286 (m32r_memory_move_cost): Remove comment referring to
7287 TARGET_HANDLE_OPTION.
7288 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7289 Move to m68k-common.c.
7290 * config/mcore/mcore.c (mcore_option_optimization_table,
7291 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7292 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7293 * config/mep/mep.c (mep_option_optimization_table,
7294 mep_handle_option, TARGET_HANDLE_OPTION,
7295 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7296 Move to mep-common.c.
7297 * config/microblaze/microblaze.c
7298 (microblaze_option_optimization_table,
7299 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7300 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7301 * config/mips/mips.c (mips_handle_option,
7302 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7303 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7304 mips-common.c.
7305 * config/mmix/mmix.c (mmix_option_optimization_table,
7306 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7307 Move to mmix-common.c.
7308 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7309 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7310 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7311 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7312 * config/pa/pa.c: Include common/common-target.h.
7313 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7314 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7315 pa_handle_option): Move to pa-common.c.
7316 (pa_option_override): Use targetm_common.except_unwind_info.
7317 (pa_asm_output_mi_thunk, pa_function_section): Use
7318 targetm_common.have_named_sections.
7319 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7320 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7321 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7322 pdp11_handle_option, pdp11_option_init_struct): Move to
7323 pdp11-common.c.
7324 * config/picochip/picochip.c (picochip_option_optimization_table,
7325 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7326 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7327 * config/rs6000/rs6000.c: Include common/common-target.h.
7328 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7329 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7330 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7331 rs6000_handle_option): Move to rs6000-common.c.
7332 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7333 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7334 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7335 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7336 * config/s390/s390.c (processor_flags_table,
7337 s390_option_optimization_table, s390_option_init_struct,
7338 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7339 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7340 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7341 * config/s390/s390.h (processor_flags_table): Declare.
7342 * config/score/score.c (score_option_optimization_table,
7343 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7344 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7345 score_handle_option): Move to score-common.c.
7346 * config/sh/sh.c (sh_option_optimization_table,
7347 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7348 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7349 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7350 * config/sparc/sparc.c: Include common/common-target.h.
7351 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7352 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7353 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7354 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7355 spu_option_init_struct): Move to spu-common.c.
7356 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7357 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7358 * config/v850/v850.c (small_memory_physical_max,
7359 v850_handle_memory_optionn v850_handle_option,
7360 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7361 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7362 v850-common.c.
637c11bd 7363 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
7364 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7365 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7366 Move to xtensa-common.c.
7367 * cfglayout.c: Include common/common-target.h.
7368 (fixup_reorder_chain): Use targetm_common.have_named_sections.
7369 * cfgrtl.c: Include common/common-target.h.
7370 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7371 targetm_common.have_named_sections.
7372 * dbxout.c: Include common/common-target.h.
7373 (dbxout_function_end): Use targetm_common.have_named_sections.
7374 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7375 targetm_common.except_unwind_info.
7376 * dwarf2out.c: Include common/common-target.h.
7377 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7378 dwarf2out_begin_prologue, dwarf2out_frame_init,
7379 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7380 targetm_common.except_unwind_info.
7381 * except.c: Include common/common-target.h.
7382 (init_eh, finish_eh_generation,
7383 output_one_function_exception_table): Use
7384 targetm_common.except_unwind_info.
637c11bd 7385 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
7386 * explow.c: Include common/common-target.h.
7387 * expr.c: Include common/common-target.h.
637c11bd 7388 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
7389 * function.c: Include common/common-target.h.
7390 (expand_function_end): Use targetm_common.except_unwind_info.
7391 * haifa-sched.c: Include common/common-target.h.
637c11bd 7392 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
7393 * lto-opts.c: Include common/common-target.h instead of target.h.
7394 (lto_reissue_options): Use targetm_common.handle_option.
7395 * opts.c: Include common/common-target.h.
7396 (target_handle_option): Use targetm_common.handle_option.
7397 (init_options_struct): Update comment referring to
7398 targetm.target_option.optimization. Use
7399 targetm_common.default_target_flags,
7400 targetm_common.unwind_tables_default and
7401 targetm_common.option_init_struct.
7402 (default_options_optimization): Use
7403 targetm_common.option_optimization_table.
7404 (finish_options): Use targetm_common.except_unwind_info,
7405 targetm_common.unwind_tables_default,
7406 targetm_common.have_named_sections and
7407 targetm_common.supports_split_stack.
7408 * toplev.c: Include common/common-target.h.
7409 (process_options): Use targetm_common.have_named_sections.
7410 * tree-tailcall.c: Include common/common-target.h.
637c11bd 7411 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 7412 * tree.c: Include common/common-target.h.
637c11bd 7413 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
7414 * varasm.c: Include common/common-target.h.
7415 (resolve_unique_section, hot_function_section,
7416 default_function_section): Use targetm_common.have_named_sections.
7417
d26c7090
ER
74182011-06-14 Easwaran Raman <eraman@google.com>
7419
7420 PR rtl-optimization/44194
7421 * dse.c: Include tree-flow.h
7422 (insn_info): Add new field non_frame_wild_read.
7423 (group_info): Add new fields escaped_n and escaped_p.
7424 (kill_on_calls): New variable.
7425 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7426 (dse_step0): Initialize kill_on_calls.
7427 (can_escape): New function.
7428 (set_usage_bits): Add additional parameter; record information
7429 about escaped locations.
637c11bd 7430 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
7431 (dse_step2_nospill): Set kill_on_calls based on
7432 group->escaped_n and group->escaped_n.
7433 (add_wild_read): Refactor into...
7434 (reset_active_stores): ... New function, and
7435 (free_read_records): ... New function.
7436 (add_non_frame_wild_read): New function.
7437 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 7438 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
7439 (dse_step5_nospill): Call scan_reads_nospill for instructions
7440 marked as non_frame_wild_read.
637c11bd 7441 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 7442
c49a6962
JM
74432011-06-14 Joseph Myers <joseph@codesourcery.com>
7444
7445 * common/common-target-def.h, common/common-target.def,
7446 common/common-target.h, common/config/default-common.c,
7447 common/config/pa/pa-common.c: New files.
7448 * Makefile.in (common_out_file, common_out_object_file,
7449 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7450 (OBJS-libcommon-target): Include $(common_out_object_file).
7451 (prefix.o): Update dependencies.
7452 ($(common_out_object_file), common/common-target-hooks-def.h,
7453 s-common-target-hooks-def-h): New.
7454 (s-tm-texi): Also check timestamp on common-target.def.
7455 (build/genhooks.o): Update dependencies.
7456 * config.gcc (common_out_file, target_has_targetm_common): Define.
7457 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7458 TARGET_ALWAYS_STRIP_DOTDOT.
7459 * configure.ac (common_out_object_file): Define.
7460 (common_out_file, common_out_object_file): Substitute.
7461 (common): Create directory.
7462 * configure: Regenerate.
7463 * doc/tm.texi.in (targetm_common): Document.
7464 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7465 * doc/tm.texi: Regenerate.
7466 * genhooks.c (hook_array): Also include common/common-target.def.
7467 * prefix.c (tm.h): Don't include.
7468 (common/common-target.h): Include.
7469 (ALWAYS_STRIP_DOTDOT): Don't define.
7470 (update_path): Use targetm_common.always_strip_dotdot instead of
7471 ALWAYS_STRIP_DOTDOT.
7472 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7473
22c5fa5f
DL
74742011-06-14 David Li <davidxl@google.com>
7475
7476 * passes.c (execute_function_todo): Remove TODO_dump_func.
7477 (execute_one_pass): Remove TODO_dump_func.
7478 (execute_function_dump): New function.
7479 * tree-vrp.c: Remove TODO_dump_func.
7480 * regrename.c: Remove TODO_dump_func.
7481 * fwprop.c: Remove TODO_dump_func.
7482 * tree-into-ssa.c: Remove TODO_dump_func.
7483 * tree-complex.c: Remove TODO_dump_func.
7484 * tracer.c: Remove TODO_dump_func.
7485 * tree-loop-distribution.c: Remove TODO_dump_func.
7486 * postreload-gcse.c: Remove TODO_dump_func.
7487 * postreload.c: Remove TODO_dump_func.
7488 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7489 * tree-tailcall.c: Remove TODO_dump_func.
7490 * ipa-cp.c: Remove TODO_dump_func.
7491 * final.c: Remove TODO_dump_func.
7492 * tree-emutls.c: Remove TODO_dump_func.
7493 * omp-low.c: Remove TODO_dump_func.
7494 * tree-ssa-dse.c: Remove TODO_dump_func.
7495 * tree-ssa-uncprop.c: Remove TODO_dump_func.
7496 * auto-inc-dec.c: Remove TODO_dump_func.
7497 * reorg.c: Remove TODO_dump_func.
7498 * tree-ssa-copyrename.c: Remove TODO_dump_func.
7499 * tree-ssa-ccp.c: Remove TODO_dump_func.
7500 * compare-elim.c: Remove TODO_dump_func.
7501 * mode-switching.c: Remove TODO_dump_func.
7502 * modulo-sched.c: Remove TODO_dump_func.
7503 * tree-call-cdce.c: Remove TODO_dump_func.
7504 * cse.c: Remove TODO_dump_func.
7505 * web.c: Remove TODO_dump_func.
7506 * tree-stdarg.c: Remove TODO_dump_func.
7507 * lto-streamer-out.c: Remove TODO_dump_func.
7508 * tree-ssa-math-opts.c: Remove TODO_dump_func.
7509 * tree-ssa-dom.c: Remove TODO_dump_func.
7510 * tree-nrv.c: Remove TODO_dump_func.
7511 * loop-init.c: Remove TODO_dump_func.
7512 * gimple-low.c: Remove TODO_dump_func.
7513 * ipa-inline.c: Remove TODO_dump_func.
7514 * tree-ssa-sink.c: Remove TODO_dump_func.
7515 * jump.c: Remove TODO_dump_func.
7516 * ifcvt.c: Remove TODO_dump_func.
7517 * tree-ssa-loop.c: Remove TODO_dump_func.
7518 * recog.c: Remove TODO_dump_func.
7519 * dse.c: Remove TODO_dump_func.
7520 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7521 * matrix-reorg.c: Remove TODO_dump_func.
7522 * tree-eh.c: Remove TODO_dump_func.
7523 * regmove.c: Remove TODO_dump_func.
7524 * function.c: Remove TODO_dump_func.
7525 * tree-vectorizer.c: Remove TODO_dump_func.
7526 * ipa-split.c: Remove TODO_dump_func.
7527 * gcse.c: Remove TODO_dump_func.
7528 * tree-if-conv.c: Remove TODO_dump_func.
7529 * init-regs.c: Remove TODO_dump_func.
7530 * tree-ssa-phiopt.c: Remove TODO_dump_func.
7531 * implicit-zee.c: Remove TODO_dump_func.
7532 * lower-subreg.c: Remove TODO_dump_func.
7533 * bt-load.c: Remove TODO_dump_func.
7534 * tree-dfa.c: Remove TODO_dump_func.
7535 * except.c: Remove TODO_dump_func.
7536 * emit-rtl.c: Remove TODO_dump_func.
7537 * store-motion.c: Remove TODO_dump_func.
7538 * cfgexpand.c: Remove TODO_dump_func.
7539 * tree-cfgcleanup.c: Remove TODO_dump_func.
7540 * cfgcleanup.c: Remove TODO_dump_func.
7541 * tree-ssa-pre.c: Remove TODO_dump_func.
7542 * tree-sra.c: Remove TODO_dump_func.
7543 * tree-mudflap.c: Remove TODO_dump_func.
7544 * tree-ssa-copy.c: Remove TODO_dump_func.
7545 * cfglayout.c: Remove TODO_dump_func.
7546 * tree-ssa-forwprop.c: Remove TODO_dump_func.
7547 * tree-ssa-dce.c: Remove TODO_dump_func.
7548 * ira.c: Remove TODO_dump_func.
7549 * tree-ssa.c: Remove TODO_dump_func.
7550 * integrate.c: Remove TODO_dump_func.
7551 * tree-optimize.c: Remove TODO_dump_func.
7552 * tree-ssa-phiprop.c: Remove TODO_dump_func.
7553 * tree-object-size.c: Remove TODO_dump_func.
7554 * combine.c: Remove TODO_dump_func.
7555 * bb-reorder.c: Remove TODO_dump_func.
7556 * cprop.c: Remove TODO_dump_func.
7557 * var-tracking.c: Remove TODO_dump_func.
7558 * tree-profile.c: Remove TODO_dump_func.
7559 * tree-vect-generic.c: Remove TODO_dump_func.
7560 * reg-stack.c: Remove TODO_dump_func.
7561 * sched-rgn.c: Remove TODO_dump_func.
7562 * tree-ssa-structalias.c: Remove TODO_dump_func.
7563 * tree-switch-conversion.c: Remove TODO_dump_func.
7564 * tree-cfg.c: Remove TODO_dump_func.
7565 * tree-ssa-reassoc.c: Remove TODO_dump_func.
7566 * combine-stack-adj.c: Remove TODO_dump_func.
7567 * dce.c: Remove TODO_dump_func.
7568 * tree-ssanames.c: Remove TODO_dump_func.
7569 * regcprop.c: Remove TODO_dump_func.
7570
fa465762
L
75712011-06-14 H.J. Lu <hongjiu.lu@intel.com>
7572
7573 PR middle-end/47364
7574 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7575 and properly handle result not in Pmode.
7576
7d8d16c3
RM
75772011-06-14 Robert Millan <rmh@gnu.org>
7578
7579 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7580 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7581 `config/linux.h'.
7582
7583 * config/i386/kfreebsd-gnu64.h: New file.
7584 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7585 with `i386/kfreebsd-gnu64.h'.
7586
7587 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7588 (GNU_USER_LINK_EMULATION64): New macros.
7589 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7590 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7591 of hardcoding `elf_i386' and `elf_x86_64'.
7592
0ccef3d2
NC
75932011-06-14 Nick Clifton <nickc@redhat.com>
7594
7595 PR target/49403
7596 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7597
7598 PR target/49402
7599 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7600
8a76c4a0
JJ
76012011-06-14 Jakub Jelinek <jakub@redhat.com>
7602
1ace6185
JJ
7603 PR fortran/49103
7604 * tree.h (DECL_NONSHAREABLE): Define.
7605 (struct tree_decl_common): Change decl_common_unused to
7606 decl_nonshareable_flag.
7607 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7608 Ignore vars with DECL_NONSHAREABLE bit set.
7609 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7610 on stores to automatic aggregate vars.
7611
8a76c4a0
JJ
7612 PR rtl-optimization/49390
7613 Revert:
7614 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
7615
7616 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7617 MEM_ALIAS_SET.
7618
b4a9343c
ZD
76192011-06-14 Zdenek Dvorak <ook@ucw.cz>
7620 Tom de Vries <tom@codesourcery.com>
7621
7622 PR target/45098
7623 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7624 Document changed semantics.
7625 (max_stmt_executions, max_stmt_executions_int): Declare.
7626 * tree-data-ref.c (estimated_loop_iterations)
7627 (estimated_loop_iterations_int): Move functions...
7628 * tree-ssa-loop-niter.c (estimated_loop_iterations)
7629 (estimated_loop_iterations_int): here.
7630 (record_estimate): Change nb_iterations_upper_bound and
7631 nb_iterations_estimate semantics.
7632 (max_stmt_executions, max_stmt_executions_int): New function.
7633 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7634 (max_stmt_executions_tree): this.
7635 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7636 estimated_loop_iterations_tree.
7637 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7638 max_stmt_executions_int instead of estimated_loop_iterations_int.
7639 * predict.c (predict_loops): Idem.
7640 * tree-parloops.c (parallelize_loops): Idem.
7641 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7642 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7643 (init_omega_for_ddr_1): Idem.
7644 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7645 (loop_prefetch_arrays): Idem
7646 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7647 max_stmt_executions instead of estimated_loop_iterations.
7648 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7649 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7650 instead of nb_iterations_upper_bound.
7651
d2640c43
JH
76522011-06-13 Jan Hubicka <jh@suse.cz>
7653
7654 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7655
40873cdd
RH
76562011-06-14 Richard Henderson <rth@redhat.com>
7657
7658 PR debug/48459
7659 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7660 (based_loc_descr): Assert it's true.
7661 (compute_frame_pointer_to_fb_displacement): Set it, rather than
7662 aborting immediately.
7663
73e8cb24
SL
76642011-06-14 Sanjin Liu <scliu@faraday-tech.com>
7665 Mingfeng Wu <mingfeng@faraday-tech.com>
7666
7667 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7668
f835f0a7
JH
76692011-06-13 Jan Hubicka <jh@suse.cz>
7670
7671 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7672
ee6f1177
JH
76732011-06-13 Jan Hubicka <jh@suse.cz>
7674
7675 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7676 similarly to DECL_COMDAT.
7677 * cgraphunit.c (cgraph_analyze_function): Likewise.
7678 * ipa.c (function_and_variable_visibility): Likewise.
7679
618abf9a
JH
76802011-06-13 Jan Hubicka <jh@suse.cz>
7681
7682 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
7683 BINFO_VIRTUALS when streaming for ltrans unit.
7684
a45fe02f
DE
76852011-06-13 David Edelsohn <dje.gcc@gmail.com>
7686
7687 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
7688 (movdi_internal64): Same.
7689
76902011-06-13 Edmar Wienskoski <edmar@freescale.com>
7691
e641e495 7692 PR target/44618
7d8d16c3
RM
7693 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
7694 a set of similar patterns, where the MATCH_OPERAND for the function
7695 argument is replaced with individual references to hardware registers.
a45fe02f
DE
7696 (save_fpregs_<mode>): Ditto
7697 (restore_gpregs_<mode>): Ditto
7698 (return_and_restore_gpregs_<mode>): Ditto
7699 (return_and_restore_fpregs_<mode>): Ditto
7700 (return_and_restore_fpregs_aix_<mode>): Ditto
7701
8775a18b
JH
77022011-06-13 Jan Hubicka <jh@suse.cz>
7703
7704 * ipa-utils.c (postorder_stack): New structure.
7705 (ipa_reverse_postorder): Handle aliases.
7706
77072011-06-13 Jan Hubicka <jh@suse.cz>
7708
7709 * ipa-inline.c (reset_edge_caches): Walk aliases.
7710 (update_caller_keys): Do not test inlinability of aliases.
7711 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
7712 (do_estimate_growth): Fix typo.
7713
6c69a029
JH
77142011-06-13 Jan Hubicka <jh@suse.cz>
7715
7716 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
7717 (can_remove_node_now_p): ... here; handle same comdat groups.
7718 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
7719 (inline_call): Update use of can_remove_node_now_p.
7720
10c63ba4 77212011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 7722
10c63ba4 7723 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
7724 condition to disallow non-identical memory locations.
7725 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
7726 preference to bit manipulation instructions.
495f8c14 7727
9aa3f5c5
JH
77282011-06-13 Jan Hubicka <jh@suse.cz>
7729
7730 * cgraph.c (cgraph_for_node_thunks_and_aliases,
7731 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
7732 (nonremovable_p): New function.
7733 (cgraph_can_remove_if_no_direct_calls_p): New function.
7734 (used_from_object_file_p): New functoin.
10c63ba4
EB
7735 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
7736 references from aliases.
9aa3f5c5
JH
7737 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
7738 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
7739 (want_inline_function_called_once_p): Use it; accept aliases called
7740 once, too.
9aa3f5c5
JH
7741 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
7742
30cecf17
RR
77432011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7744
7745 PR target/48454
7746 * config/arm/neon.md (vec_pack_trunc): Set the lengths
7747 correctly for the case with Quad vectors.
7748
29f85237
JJ
77492011-06-13 Jakub Jelinek <jakub@redhat.com>
7750 Ira Rosen <ira.rosen@linaro.org>
7751
7752 PR tree-optimization/49352
7753 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
7754 all, make sure loop_use_stmt after the loop is a def stmt of a used
7755 SSA_NAME that is the only one defined inside of the loop. Don't
7756 check for COND_EXPR and GIMPLE_BINARY_RHS.
7757 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
7758 check_reduction is true.
7759
c3e3f090
JH
77602011-06-11 Jan Hubicka <jh@suse.cz>
7761
7762 PR middle-end/49373
7763 * ipa.c (cgraph_externally_visible_p): Check resolution info.
7764
516e0768
JH
77652011-06-11 Jan Hubicka <jh@suse.cz>
7766
7767 PR middle-end/48836
7768 * ipa-inline-transform.c: Include tree-pass.h
7769 (inline_transform): Set TODO_update_ssa_only_virtuals.
7770 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
7771
903b0a8b
JH
77722011-06-11 Jan Hubicka <jh@suse.cz>
7773
7774 PR middle-end/49378
7775 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
7776 aliases and thunks.
7777
44542f8e
IR
77782011-06-12 Ira Rosen <ira.rosen@linaro.org>
7779
7780 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
7781 Take number of iterations to peel into account for equally frequent
7782 misalignment values.
7783
ea89702b
JH
77842011-06-11 Jan Hubicka <jh@suse.cz>
7785
637c11bd
UB
7786 * lto-streamer-out.c (produce_symtab): Stream out the newly
7787 represented aliases.
ea89702b 7788
380ed5ed
JH
77892011-06-11 Jan Hubicka <jh@suse.cz>
7790
637c11bd
UB
7791 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
7792 varying args.
380ed5ed
JH
7793 (ipa_update_after_lto_read): Likewise.
7794 (ipa_write_node_info): Do not sream call_with_var_arguments.
7795 (ipa_read_node_info): Likewise.
7796
00cfc363
JH
77972011-06-11 Jan Hubicka <jh@suse.cz>
7798
7799 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
7800
39e2db00
JH
78012011-06-11 Jan Hubicka <jh@suse.cz>
7802
7803 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
7804 (lto_symtab_resolve_can_prevail_p): Likewise.
7805 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
7806 * cgraph.c (same_body_aliases_done): New global var.
7807 (cgraph_same_body_alias_1): Rename to ...
7808 (cgraph_create_function_alias): ... this one; reorg to new
7809 representation.
7810 (cgraph_same_body_alias): Use cgraph_create_function_alias;
7811 record references when asked to.
7812 (cgraph_add_thunk): Fix formating.
7813 (cgraph_get_node): Kill same body alias code.
7814 (cgraph_node_for_asm): Likewise.
7815 (cgraph_remove_same_body_alias): Remove.
7816 (cgraph_remove_node): Kill same body alias code.
7817 (cgraph_mark_address_taken_node): Mark also the aliased function
7818 as having address taken.
7819 (dump_cgraph_node): Dump same body aliases.
7820 (cgraph_for_node_thunks_and_aliases): Update for new alias
7821 representation.
7822 (cgraph_for_node_and_aliases): Likewise.
7823 * cgraph.h (same_body): Kll pointer.
7824 (same_body_alias): Update comment.
7825 (same_body_aliases_done): Declare.
7826 (cgraph_remove_same_body_alias): Remove declaration.
7827 (cgraph_create_function_alias): Declare.
7828 (cgraph_process_same_body_aliases): Declare.
7829 (cgraph_function_with_gimple_body_p): Check for alias.
7830 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
7831 (cgraph_alias_aliased_node): New function.
7832 (cgraph_function_node): Update for new aliases.
7833 (cgraph_function_or_thunk_node): Likewise.
7834 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
7835 (inline_call): Remove dead aliases.
10c63ba4
EB
7836 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
7837 name hack for same body aliases.
39e2db00
JH
7838 (clone_of_p): Look through aliases.
7839 (verify_cgraph_node): Verify aliases.
7840 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
7841 (cgraph_process_same_body_aliases): New function.
7842 (process_function_and_variable_attributes): Disable weakref warning on
7843 alias.
7844 (cgraph_analyze_functions): Handle aliases.
7845 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
7846 (assemble_thunks): Rename to ...
7847 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
7848 (cgraph_expand_function): Remove alias output code.
7849 (cgraph_output_in_order): Skip aliases.
7850 (cgraph_preserve_function_body_p): Aliases don't need preserving.
7851 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
7852 (ipa_record_reference): Do not assert on alias references.
7853 (ipa_ref_has_aliases_p): New function.
7854 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
7855 (ipa_ref_has_aliases_p): Declare.
7856 * lto-cgraph.c (lto_output_node): Handle aliases.
7857 (input_node): Likewise.
7858 * lto-streamer-out.c (lto_output): Skip aliases.
7859 (produce_symtab): Kill same_body_alias code.
7860 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
7861 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
7862 * ipa-inline.c (update_caller_keys): Walk aliases.
7863 (inline_small_functions): Fix thinko in previous patch.
7864 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
7865 (function_and_variable_visibility): Do not walk same body aliases.
7866 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
7867 (ipa_pta_execute): Use it.
7868
9ee65b55
UB
78692011-06-11 Uros Bizjak <ubizjak@gmail.com>
7870
7871 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
7872 (*vec_dupv2df): Rename from vec_dupv2df.
7873 (vec_dupv2df): New expander.
7874
78752011-06-11 Uros Bizjak <ubizjak@gmail.com>
7876
7877 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
7878
78792011-06-11 Uros Bizjak <ubizjak@gmail.com>
7880
7881 * config/i386/i386.md: Use default value in "isa" attribute.
7882 * config/i386/sse.md: Ditto.
7883 * config/i386/mmx.md: Ditto.
7884
ba68a139
WG
78852011-06-10 Wei Guozhi <carrot@google.com>
7886
7887 PR target/45335
7888 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7889 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7890 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7891 related peephole2.
7892 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
7893 related peephole2.
7894 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
7895 (arm_legitimate_ldrd_p): New prototype.
7896 (arm_output_ldrd): New prototype.
7897 * config/arm/arm.c (arm_check_ldrd_operands): New function.
7898 (arm_legitimate_ldrd_p): New function.
7899 (arm_output_ldrd): New function.
7900
deced1e2
XDL
79012011-06-10 David Li <davidxl@google.com>
7902
7903 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
7904 * passes.c (passr_eq): New function.
7905 (create_pass_tab): New function.
7906 (pass_traverse): New function.
7907 (dump_one_pass): New function.
7908 (dump_pass_list): New function.
7909 (dump_passes): New function.
7910
71fb4f92
JH
79112011-06-10 Jan Hubicka <jh@suse.cz>
7912
7913 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
7914 setting the nothrow flag.
7915 * ipa-reference.c (propagate): Skip aliases.
7916 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
7917 (propagate_nothrow): Skip aliases; do not update cgraph.
7918 (local_pure_const): Do not update cgraph.
7919 * tree-profile.c (tree_profiling): Do fixup_cfg.
7920
41817394
JH
79212011-06-10 Jan Hubicka <jh@suse.cz>
7922
7923 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
7924 (cgraph_local_node_p): ... here; handle aliases.
7925 (has_addr_references_p): Break out from ...;
7926 (cgraph_remove_unreachable_nodes) ... here.
7927
fb37c1de
JH
79282011-06-10 Jan Hubicka <jh@suse.cz>
7929
7930 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
7931 * common.opt (flag_inline_functions_called_once): Do not
7932 initialize to 1.
fb37c1de 7933
0818c24c
JH
79342011-06-10 Jan Hubicka <jh@suse.cz>
7935
7936 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
7937 (ipcp_initialize_node_lattices): Do not deal with aliases;
7938 Do not try to propagate through thunks.
0818c24c
JH
7939 (ipcp_change_tops_to_bottom): Do not deal with aliases.
7940
c8246dbe
JH
79412011-06-10 Jan Hubicka <jh@suse.cz>
7942
9ee65b55
UB
7943 * ipa-prop.c (ipa_write_node_info): Stream jump functions
7944 for indirect calls.
c8246dbe
JH
7945 (ipa_read_node_info): Likewise.
7946
d7e2a1c1
BS
79472011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7948
7949 PR lto/49302
7950 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
7951 (build_and_insert_call): Likewise.
7952 (build_and_insert_ref): New.
7953 (gimple_expand_builtin_pow): Minor cleanup.
7954 (gimple_expand_builtin_cabs): New.
7955 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 7956
749f25d8
JH
79572011-06-10 Jan Hubicka <jh@suse.cz>
7958
7959 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
7960 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
7961 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
7962 (ipcp_propagate_stage): Skip aliases when propagating.
7963 (ipcp_need_redirect_p): Skip aliases.
7964 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
7965 collect_callers_of_node.
7966 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
7967 for aliases.
7968 (ipa_compute_jump_functions): Look through aliases.
7969
8340fbd7
RO
79702011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7971
7972 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
7973
9aaa7e47
HPN
79742011-06-10 Hans-Peter Nilsson <hp@axis.com>
7975
7976 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
7977 Adjust comments.
7978 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
7979
f1724940
JH
79802011-06-10 Jan Hubicka <jh@suse.cz>
7981
7982 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
7983 Update call of gimple_get_virt_method_for_binfo.
7984 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
7985 refuse_thunks parameter.
7986 (gimple_fold_call): Update.
7987 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
7988
a6f834c5
JH
79892011-06-10 Jan Hubicka <jh@suse.cz>
7990
7991 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
7992 (not_all_callers_have_enough_arguments_p): ... this one; turn into
7993 worker for cgraph_for_node_and_aliases.
7994 (convert_callers_for_node): Break out from ...
7995 (convert_callers): ... here.
7996 (modify_function): Use collect_callers_of_node.
7997 (ipa_early_sra): Use cgraph_for_node_and_aliases.
7998
7871eee3
RG
79992011-06-10 Richard Guenther <rguenther@suse.de>
8000
8001 PR tree-optimization/49361
8002 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
8003 when not already in gimple form.
8004
dae957ae
RG
80052011-06-10 Richard Guenther <rguenther@suse.de>
8006
8007 PR bootstrap/49344
8008 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
8009 FOR_EACH_PHI_OR_STMT_USE.
8010
a5b1779f
JH
80112011-06-10 Jan Hubicka <jh@suse.cz>
8012
8013 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
8014 (clone_inlined_nodes): ... here.
8015 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
8016 to real destination prior inlining.
8017 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
8018 can_early_inline_edge_p, want_early_inline_function_p,
8019 want_early_inline_function_p, want_inline_small_function_p,
8020 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
8021 edge_badness, update_all_callee_keys, lookup_recursive_calls,
8022 add_new_edges_to_heap, inline_small_functions, flatten_function,
8023 inline_always_inline_functions, early_inline_small_functions): Use
8024 cgraph_function_or_thunk_node.
8025 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
8026 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
8027 (do_estimate_edge_growth_1): Break out from ...
8028 (do_estimate_growth) ... here; walk aliases.
8029 (inline_generate_summary): Skip aliases.
8030
c1ae3ca5
RG
80312011-06-10 Richard Guenther <rguenther@suse.de>
8032
9ee65b55
UB
8033 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
8034 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 8035
b504a918
PC
80362011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
8037
8038 * tree.h (error_operand_p): Add.
8039 * dbxout.c (dbxout_type_fields): Use the latter.
8040 * c-decl.c (add_stmt): Likewise.
8041 * gimplify.c (omp_add_variable, omp_notice_variable,
8042 gimplify_scan_omp_clauses): Likewise.
8043
3f5ea9dc 80442011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 8045
3f5ea9dc
GJL
8046 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8047 when a value is actually passed in regs.
8048
b11b0904 80492011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 8050 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
8051
8052 * doc/invoke.texi (SPARC options): Add -mflat.
8053 * config/sparc/sparc.opt: Likewise.
8054 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8055 (sparc_flat_expand_prologue): Declare.
8056 (sparc_flat_expand_epilogue): Likewise.
8057 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8058 (CPP_ENDIAN_SPEC): Replace with...
8059 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
8060 (CPP_SPEC): Adjust to above change.
8061 (EXTRA_SPECS): Likewise.
8062 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8063 (INCOMING_REGNO): Likewise.
8064 (OUTGOING_REGNO): Likewise.
8065 (LOCAL_REGNO): Likewise.
8066 (SETUP_FRAME_ADDRESSES): Likewise.
8067 (FIXED_REGISTERS): Set 0 for %fp.
8068 (CALL_USED_REGISTERS): Likewise.
8069 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8070 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8071 (RETURN_ADDR_REGNUM): Define.
8072 (RETURN_ADDR_RTX): Use it.
8073 (INCOMING_RETURN_ADDR_REGNUM): Define.
8074 (INCOMING_RETURN_ADDR_RTX): Use it.
8075 (DWARF_FRAME_RETURN_COLUMN): Likewise.
8076 (EH_RETURN_REGNUM): Define.
8077 (EH_RETURN_STACKADJ_RTX): Use it.
8078 (EH_RETURN_HANDLER_RTX): Delete.
8079 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8080 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8081 Delete.
8082 (struct machine_function): Add frame_size, apparent_frame_size,
8083 frame_base_reg, frame_base_offset, n_global_fp_regs and
8084 save_local_in_regs_p fields.
8085 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8086 sparc_frame_base_offset, sparc_n_global_fp_regs,
8087 sparc_save_local_in_regs_p): New macros.
8088 (sparc_option_override): Error out if -fcall-saved-REG is specified
8089 for Out registers.
8090 (eligible_for_restore_insn): Fix formatting.
8091 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
8092 (eligible_for_sibcall_delay): Likewise.
8093 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8094 (sparc_legitimate_address_p): Adjust to above change.
8095 (save_global_or_fp_reg_p): New predicate.
8096 (return_addr_reg_needed_p): Likewise.
8097 (save_local_or_in_reg_p): Likewise.
8098 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
8099 (SORR_SAVE, SORR_RESTORE): Delete.
8100 (sorr_pred_t): New typedef.
8101 (sorr_act_t): New enum.
8102 (save_or_restore_regs): Rename to...
8103 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
8104 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8105 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
8106 mechanism. Add CFI information for double-word saves in 32-bit mode.
8107 (emit_adjust_base_to_offset): New function extracted from...
8108 (emit_save_or_restore_regs): ...this. Rename the rest to...
8109 (emit_save_or_restore_regs_global_fp_regs): ...this.
8110 (emit_save_or_restore_regs_local_in_regs): New function.
8111 (gen_create_flat_frame_[123]): New functions.
8112 (sparc_expand_prologue): Use SIZE local variable. Adjust.
8113 (sparc_flat_expand_prologue): New function.
8114 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8115 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
8116 (sparc_flat_expand_epilogue): New function.
8117 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8118 (output_return): Likewise.
8119 (output_sibcall): Likewise.
8120 (sparc_output_mi_thunk): Likewise.
8121 (sparc_frame_pointer_required): Likewise.
8122 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8123 function optimization.
8124 * config/sparc/sparc.md (flat): New attribute.
8125 (prologue): Add TARGET_FLAT handling.
8126 (save_register_window): Disable if TARGET_FLAT.
8127 (create_flat_frame_[123]): New patterns.
8128 (epilogue): Add TARGET_FLAT handling.
8129 (sibcall_epilogue): Likewise.
8130 (eh_return): New expander.
8131 (eh_return_internal): New insn and splitter.
8132 (return_internal): Add TARGET_FLAT handling.
8133 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8134 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8135 (nonlocal_goto): Add TARGET_FLAT handling.
8136 * config/sparc/t-elf: Add -mflat multilib.
8137 * config/sparc/t-leon: Likewise.
8138
fede8efa
JH
81392011-06-10 Jan Hubicka <jh@suse.cz>
8140
8141 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8142 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8143 (self_recursive_p): Use cgraph_function_node.
8144 (propagate_pure_const): Likewise.
8145 (propagate_nothrow): Likewise.
8146 * ipa-reference.c (ipa_reference_get_not_read_global): Use
8147 cgraph_function_node.
8148 (propagate_bits): Likewise.
8149 (propagate): Likewise.
8150
0127c76f
RR
81512011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8152 Richard Earnshaw <rearnsha@arm.com>
8153
9ee65b55 8154 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
8155 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8156 (*thumb2_movdi_vfp): Delete.
8157 (*arm_movdi_vfp_cortexa8): Delete.
8158 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8159 (*movdi_vfp_cortexa8): Likewise.
8160
f93fe5a0
RG
81612011-06-10 Richard Guenther <rguenther@suse.de>
8162
8163 * stor-layout.c (initialize_sizetypes): Give names to all
8164 sizetype kinds.
8165
f2164f87
IR
81662011-06-10 Ira Rosen <ira.rosen@linaro.org>
8167
8168 PR tree-optimization/49318
8169 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8170 irrelevant pattern statements.
8171
3f91c962
HPN
81722011-06-10 Hans-Peter Nilsson <hp@axis.com>
8173
3d223145
HPN
8174 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8175
3f91c962
HPN
8176 PR bootstrap/49354
8177 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8178 to last assignment.
8179
b125ad45
JH
81802011-06-09 Jan Hubicka <jh@suse.cz>
8181
8182 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8183 do not recompute reachable flag.
8184 (cgraph_finalize_function, cgraph_analyze_functions): Set
8185 redefined_extern_inline here.
8186
be330ed4
JH
81872011-06-09 Jan Hubicka <jh@suse.cz>
8188
8189 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8190 (cgraph_only_called_directly_p): ... this one; bring offline.
8191 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8192 varpool_used_from_object_file_p): Drop names from the declaratoin.
8193 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8194 collect_callers_of_node): New.
8195 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8196 (cgraph_edge_recursive_p): Use cgraph_function_node.
8197 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8198 (cgraph_node_cannot_be_local_p_1): Break out from ...
8199 (cgraph_node_can_be_local_p): ... here; walk aliases.
8200 (cgraph_for_node_thunks_and_aliases): New function.
8201 (cgraph_for_node_and_aliases): New function.
8202 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
8203 (cgraph_make_node_local) ... here; use
8204 cgraph_for_node_thunks_and_aliases.
be330ed4 8205 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
8206 (cgraph_set_nothrow_flag) ... here;
8207 use cgraph_for_node_thunks_and_aliases.
be330ed4 8208 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
8209 (cgraph_set_const_flag) ... here;
8210 use cgraph_for_node_thunks_and_aliases.
be330ed4 8211 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
8212 (cgraph_set_pure_flag) ... here;
8213 use cgraph_for_node_thunks_and_aliases.
be330ed4 8214 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
8215 (cgraph_propagate_frequency) ... here; use
8216 cgraph_for_node_thunks_and_aliases.
be330ed4 8217 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
8218 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8219 New functions.
be330ed4
JH
8220 (collect_callers_of_node_1, collect_callers_of_node): New functions.
8221
2ea91d6b
HPN
82222011-06-10 Hans-Peter Nilsson <hp@axis.com>
8223
8224 PR rtl-optimization/49154
8225 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8226 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8227 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8228 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8229 * config/cris/cris.h (cris_register_move_cost): Remove
8230 !TARGET_V32 code. Tweak comments.
8231
9cf4fb5a
JH
82322011-06-09 Jan Hubicka <jh@suse.cz>
8233
8234 * cgraphbuild.c (record_eh_tables): Mark personality function as having
8235 address taken.
8236
6049a4c8
HPN
82372011-06-10 Hans-Peter Nilsson <hp@axis.com>
8238
c577822e 8239 PR rtl-optimization/49154
9ee65b55
UB
8240 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8241 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 8242
54e1e4f7 8243 PR rtl-optimization/49154
6049a4c8
HPN
8244 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8245 register classes.
8246 * doc/tm.texi: Regenerate.
8247
3be68b64
KK
82482011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
8249
8250 PR target/49307
8251 * config/sh/sh.md (UNSPEC_CHKADD): New.
8252 (chk_guard_add): New define_insn_and_split.
8253 (symGOT_load): Use chk_guard_add instead of blockage.
8254
bf806a90
KT
82552011-06-09 Kai Tietz <ktietz@redhat.com>
8256
8257 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8258
d5a9738b
EB
82592011-06-09 Eric Botcazou <ebotcazou@adacore.com>
8260
8261 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8262
527e82c2
WG
82632011-06-09 Wei Guozhi <carrot@google.com>
8264
8265 PR target/46975
8266 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8267 (peephole2 for conditional move): Generate 16 bit instructions.
8268
b8bc3a43
UB
82692011-06-09 Uros Bizjak <ubizjak@gmail.com>
8270
8271 * config/i386/i386.md (*movdi_internal_rex64): Merge
8272 alternatives 6 and 8.
8273
4745da6e
DL
82742011-06-09 David Li <davidxl@google.com>
8275
8276 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8277 * passes.c (passr_eq): New function.
8278 (create_pass_tab): New function.
8279 (pass_traverse): New function.
8280 (dump_one_pass): New function.
8281 (dump_pass_list): New function.
8282 (dump_passes): New function.
8283
bdf67bcb
DL
82842011-06-09 David Li <davidxl@google.com>
8285
8286 * tree-complex.c (tree_lower_complex): Gate cleanup.
8287 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8288 (execute_optimize_stdarg): Ditto.
8289 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8290 (execute_cleanup_eh_1): Ditto.
8291 (execute_cleanup_eh): Ditto.
8292 * gcse.c (gate_rtl_pre): Ditto.
8293 (execute_rtl_pre): Ditto.
8294 * except.c (finish_eh_generation): Ditto.
8295 (convert_to_eh_region_ranges): Ditto.
8296 * cprop.c (one_cprop_pass): Ditto.
8297
547fdef8
BS
82982011-06-09 Bernd Schmidt <bernds@codesourcery.com>
8299
8300 PR target/48673
8301 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8302 in all basic blocks.
8303
10e48e39
RO
83042011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8305
8306 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8307 (HAVE_ENABLE_EXECUTE_STACK): Define.
8308 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8309 (HAVE_ENABLE_EXECUTE_STACK): Define.
8310 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8311 (HAVE_ENABLE_EXECUTE_STACK): Define.
8312 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8313 (ENABLE_EXECUTE_STACK): Remove.
8314 (HAVE_ENABLE_EXECUTE_STACK): Define.
8315 [IN_LIBGCC2]: Don't include <windows.h>.
8316 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8317 (HAVE_ENABLE_EXECUTE_STACK): Define.
8318 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8319 (HAVE_ENABLE_EXECUTE_STACK): Define.
8320 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8321 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8322 (HAVE_ENABLE_EXECUTE_STACK): Define.
8323 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8324 (HAVE_ENABLE_EXECUTE_STACK): Define.
8325 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8326 (HAVE_ENABLE_EXECUTE_STACK): Define.
8327 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8328 (HAVE_ENABLE_EXECUTE_STACK): Define.
8329 * config/alpha/alpha.c (alpha_trampoline_init): Test
8330 HAVE_ENABLE_EXECUTE_STACK.
8331 * config/i386/i386.c (ix86_trampoline_init): Likewise.
8332 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8333 (sparc64_initialize_trampoline): Likewise.
8334 * libgcc2.c [L_enable_execute_stack]: Remove.
8335 * system.h (ENABLE_EXECUTE_STACK): Poison.
8336 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8337 * doc/tm.texi: Regenerate.
8338 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8339
8ced31fe
JJ
83402011-06-09 Jakub Jelinek <jakub@redhat.com>
8341
8342 PR middle-end/49308
8343 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8344 variable. After resetting and rescanning insn continue with previous
8345 statement.
8346
ee610fcd
RO
83472011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8348
8349 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8350 (gcc_cv_ld_hidden): Likewise.
8351 * configure: Regenerate.
8352 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8353 (ix86_stack_protect_fail): Mark unused.
8354 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8355 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8356 [TARGET_MACHO]: Don't define.
8357 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8358 (TARGET_STACK_PROTECT_FAIL): Likewise.
8359 (rs6000_stack_protect_fail): Mark unused.
8360 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 8361 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 8362
8f2e22ff
AK
83632011-06-08 Andi Kleen <ak@linux.intel.com>
8364
8365 * varasm.c (get_section): Print location of other conflict
8366 for section conflicts.
8367
815cecbe
AK
83682011-06-08 Andi Kleen <ak@linux.intel.com>
8369
8370 * config/i386/driver-i386.c (host_detect_local_cpu):
8371 Add model 0x2d Intel CPU.
8372
1460ec5c
AK
83732011-06-08 Andi Kleen <ak@linux.intel.com>
8374
8375 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
8376 (globalize_reg): Add decl parameter. Compute location. Pass location
8377 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
8378 * rtl.h (globalize_reg): Update prototype.
8379 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8380
df17530a
MX
83812011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
8382
8383 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8384
409fed48
KK
83852011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8386
8387 PR target/49305
8388 * config/sh/predicates.md (general_movsrc_operand): Check
8389 mode for memory with indexed address for QI and HImode.
8390 (general_movdst_operand): Likewise.
8391
87c16a45
NP
83922011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
8393
b8bc3a43 8394 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 8395
49931fcb
AO
83962011-06-08 Alexandre Oliva <aoliva@redhat.com>
8397
8398 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8399 (num_ssa_operands): Likewise.
8400 (op_iter_init_phiuse): Forward-declare.
8401 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8402
29494d1f
NC
84032011-06-08 Nick Clifton <nickc@redhat.com>
8404
8405 * doc/invoke.texi (ARM Options): Update description of
8406 -mthumb-interwork.
8407
4ffae7ff
L
84082011-06-08 H.J. Lu <hongjiu.lu@intel.com>
8409
8410 * config/i386/driver-i386.c (host_detect_local_cpu): Support
8411 unknown Intel family 0x6 CPUs.
8412
d9c77712
MJ
84132011-06-08 Martin Jambor <mjambor@suse.cz>
8414
8415 * tree-sra.c (mark_rw_status): Removed.
8416 (analyze_access_subtree): New parameter parent instead of
8417 mark_read and mark_write, propagate from that.
8418
b1def36c
JB
84192011-06-08 Julian Brown <julian@codesourcery.com>
8420
8421 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8422 for double-precision helper functions in hard-float mode if only
8423 single-precision arithmetic is supported in hardware.
8424
6c8e9fc9
AM
84252011-06-08 Alexander Monakov <amonakov@ispras.ru>
8426
8427 PR rtl-optimization/49303
8428 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
8429 code_motion_path_driver returned 0 or 1.
8430 (sel_region_finish): Clear h_d_i_d.
8431
c2bbcb0d
KK
84322011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
8433
8434 * config/sh/sh.c (prepare_move_operands): Set pic register
8435 appropriately for global and local dynamic tls models even
8436 if flag_pic is unset.
8437
6976ae51
JM
84382011-06-07 Jason Merrill <jason@redhat.com>
8439
8440 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8441
bb5b1f5e
XDL
84422011-06-07 Xinliang David Li <davidxl@google.com>
8443 * passes.c (enable_disable_pass): Handle assembler name.
8444 (is_pass_explicitly_enabled_or_disabled): Ditto.
8445
91ffe356
RO
84462011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8447
8448 PR tree-optimization/48497
8449 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8450
06bc3ec7
BS
84512011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8452
8453 PR tree-optimization/46728
8454 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8455 to use gimple_val_nonnegative_real_p.
8456 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8457 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 8458
c074d740
L
84592011-06-07 H.J. Lu <hongjiu.lu@intel.com>
8460
8461 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8462
8973b112
SG
84632011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
8464
8465 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8466 constant vectors.
8467
67b88453
RG
84682011-06-07 Richard Guenther <rguenther@suse.de>
8469
8470 * stor-layout.c (initialize_sizetypes): Initialize all
8471 sizetypes based on target definitions.
8472 (set_sizetype): Remove.
8473 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8474 * tree.h (set_sizetype): Remove.
8475
1dcad079
NC
84762011-06-07 Nick Clifton <nickc@redhat.com>
8477
8478 * config.gcc: Unify V850 architecture options and add support for
8479 newer V850 architectures.
8480 * config/v850/t-v850e: Delete.
8481
009db074
RG
84822011-06-07 Richard Guenther <rguenther@suse.de>
8483
8484 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8485 Call set_sizetype from here.
8486
f373314f
AS
84872011-06-07 Andrew Stubbs <ams@codesourcery.com>
8488
8489 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8490 (*maddhisi4tb, *maddhisi4tt): New define_insns.
8491
c536876e
AS
84922011-06-07 Bernd Schmidt <bernds@codesourcery.com>
8493 Andrew Stubbs <ams@codesourcery.com>
8494
8495 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8496 multiplies.
8497 * doc/md.texi (Canonicalization of Instructions): Document widening
8498 multiply canonicalization.
8499
308dc890
JJ
85002011-06-07 Jakub Jelinek <jakub@redhat.com>
8501
8502 PR gcov-profile/49299
b8bc3a43 8503 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 8504
383d9c83
IR
85052011-06-07 Ira Rosen <ira.rosen@linaro.org>
8506
8507 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8508 a pointer.
8509 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8510 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8511 vect_recog_pow_pattern): Likewise.
8512 (vect_pattern_recog_1): Remove declaration.
8513 (widened_name_p): Remove declaration. Add new argument to specify
8514 whether to check that both types are either signed or unsigned.
8515 (vect_recog_widen_mult_pattern): Update documentation. Handle
8516 unsigned patterns and multiplication by constants.
8517 (vect_pattern_recog_1): Update vect_recog_func references. Use
8518 statement information from the statement returned from pattern
8519 detection functions.
8520 (vect_pattern_recog): Update vect_recog_func reference.
8521 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8522 multiplication by a constant use the type of the other operand.
8523
4de4b0f2
RS
85242011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
8525
8526 PR rtl-optimization/49145
8527 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8528
a9d24544
JJ
85292011-06-06 Jakub Jelinek <jakub@redhat.com>
8530
99a5e049
JJ
8531 PR debug/49262
8532 * dwarf2out.c (native_encode_initializer): Decrement count in each
8533 iteration.
8534
04902d4c
JJ
8535 PR debug/49294
8536 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8537 non-MODE_INT modes.
8538
a9d24544
JJ
8539 PR c++/49264
8540 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8541 if stmt folded into nothing.
b8bc3a43
UB
8542 * tree-inline.c (fold_marked_statements): If a builtin at the end of
8543 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
8544 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8545 to be NULL. Don't compute count and frequency if new_call is NULL.
8546
47c79d56
DN
85472011-06-04 Diego Novillo <dnovillo@google.com>
8548
8549 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8550 (cgraph.o): Likewise.
8551 (cgraphunit.o): Likewise.
8552 * cgraphunit.c: Include lto-streamer.h
8553 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8554 if LTO is enabled.
8555 * lto-streamer-in.c (unpack_value_fields): Call
8556 streamer_hooks.unpack_value_fields if set.
8557 (lto_materialize_tree): For unhandled nodes, first try to
8558 call lto_streamer_hooks.alloc_tree, if it exists.
8559 (lto_input_ts_decl_common_tree_pointers): Move reading of
8560 DECL_INITIAL to lto_streamer_read_tree.
8561 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8562 (lto_streamer_read_tree): New.
8563 (lto_reader_init): Rename from lto_init_reader.
8564 Move initialization code to lto/lto.c.
8565 * lto-streamer-out.c (pack_value_fields): Call
8566 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
8567 (lto_output_tree_ref): For tree nodes that are not normally indexable,
8568 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 8569 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
8570 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8571 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8572 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
8573 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
8574 (lto_streamer_write_tree): New.
8575 (lto_output): Call lto_streamer_init directly.
8576 (lto_writer_init): Remove.
8577 * lto-streamer.c (streamer_hooks): New.
8578 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8579 instead of lto_preload_common_nodes.
8580 (lto_is_streamable): Move from lto-streamer.h
8581 (lto_streamer_hooks_init): New.
8582 (streamer_hooks): New.
8583 (streamer_hooks_init): New.
8584 * lto-streamer.h (struct output_block): Forward declare.
8585 (struct lto_input_block): Likewise.
8586 (struct data_in): Likewise.
8587 (struct bitpack_d): Likewise.
8588 (struct streamer_hooks): Declare.
8589 (streamer_hooks): Declare.
8590 (lto_streamer_hooks_init): Declare.
8591 (lto_streamer_write_tree): Declare.
8592 (lto_streamer_read_tree): Declare.
8593 (streamer_hooks_init): Declare.
8594 (lto_is_streamable): Move to lto-streamer.c
8595
22afe143
AK
85962011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8597
8598 * longlong.h (smul_ppmm): The resulting register pair contains the
8599 higher order word first.
8600
3906ea1b
BS
86012011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8602
8603 PR tree-optimization/46728
8604 * builtins.c (powi_table): Remove.
8605 (powi_lookup_cost): Remove.
8606 (powi_cost): Remove.
8607 (expand_powi_1): Remove.
8608 (expand_powi): Remove.
8609 (expand_builtin_pow_root): Remove.
8610 (expand_builtin_pow): Remove.
8611 (expand_builtin_powi): Eliminate handling of constant exponent.
8612 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 8613
3598cabd
AO
86142011-06-06 Alexandre Oliva <aoliva@redhat.com>
8615
8616 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8617
a7a110bb
AO
86182011-06-06 Alexandre Oliva <aoliva@redhat.com>
8619
8620 * dce.c (reset_unmarked_insns_debug_uses): New.
8621 (delete_unmarked_insns): Skip debug insns.
8622 (prescan_insns_for_dce): Likewise.
8623 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8624 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8625 active reg can be found.
8626 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
8627 (convert_regs_1): Use it.
8628
6d8402ac
AO
86292011-06-06 Alexandre Oliva <aoliva@redhat.com>
8630
8631 * tree-pretty-print.c (dump_function_header): Add flags.
8632 Don't dump decl_uid with nouid.
8633 * tree-pretty-print.h (dump_function_header): Adjust.
8634 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8635 * passes.c (pass_init_dump_file): Pass dump_flags on.
8636 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8637
f75e1f1e
AO
86382011-06-06 Alexandre Oliva <aoliva@redhat.com>
8639
8640 PR bootstrap/49270
8641 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8642
275311c4
MP
86432011-06-06 Mikael Pettersson <mikpe@it.uu.se>
8644
8645 PR tree-optimization/49243
8646 * calls.c (setjmp_call_p): Also check if fndecl has the
8647 returns_twice attribute.
8648
aa4203e7
RO
86492011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8650
8651 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8652 -ffast-math etc.
8653
48f9d59a
RH
86542011-06-06 Richard Henderson <rth@redhat.com>
8655 Georg-Johann Lay <avr@gjlay.de>
8656
8657 PR target/42210
8658 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8659 New predicates.
8660 * config/avr/avr.md ("insv"): New insn expander.
8661 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8662 "*insv.not.io", "*insv.reg"): New insns.
8663
11494830
HPN
86642011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
8665
8666 PR target/49285
b8bc3a43
UB
8667 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8668 to nonimmediate_operand from memory_operand for the operand that is to
8669 be forced to memory by the expander. Lose the constraints.
11494830 8670
679e70df
EB
86712011-06-05 Eric Botcazou <ebotcazou@adacore.com>
8672
8673 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8674 EH return when delayed branches are disabled.
8675
4d3d7f15
UB
86762011-06-05 Uros Bizjak <ubizjak@gmail.com>
8677
8678 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8679 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
8680 calculation.
8681 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
8682 Simplify MODE_V1DF and MODE_V2SF handling.
8683 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
8684 Simplify MODE_SF handling.
8685
a45c0557
JH
86862011-06-04 Jan Hubicka <jh@suse.cz>
8687
8688 PR tree-optimization/48893
8689 PR tree-optimization/49091
8690 PR tree-optimization/49179
8691 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
8692 Bounds check.
8693
26740835
JH
86942011-06-04 Jan Hubicka <jh@suse.cz>
8695
8696 PR lto/48954
b8bc3a43
UB
8697 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
8698 bitmaps.
26740835 8699
014ab419
JW
87002011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
8701
8702 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
8703
407bcba7
JJ
87042011-06-04 Jakub Jelinek <jakub@redhat.com>
8705
8706 PR target/49281
8707 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
8708 to be strictly smaller than 1 << shiftcount.
8709
e3195c52
JH
87102011-06-04 Jan Hubicka <jh@suse.cz>
8711
8712 PR tree-optimize/48929
8713 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
8714 of empty predicate.
8715
047d33a0
AO
87162011-06-04 Alexandre Oliva <aoliva@redhat.com>
8717
8718 PR debug/48333
8719 * calls.c (emit_call_1): Prefer the __builtin declaration of
8720 builtin functions.
8721
dc587809
DN
87222011-06-03 Diego Novillo <dnovillo@google.com>
8723
8724 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
8725 (lto_input_tree_pointers): Likewise.
8726 * lto-streamer-out.c (pack_value_fields): Likewise.
8727 (lto_output_tree_pointers): Likewise.
8728 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
8729 and OPTIMIZATION_NODE.
8730
58cd1d70
RO
87312011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8732
8733 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
8734 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
8735 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
8736 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
8737 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
8738 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
8739 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
8740 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
8741 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
8742 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
8743 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
8744 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
8745 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
8746 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
8747 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
8748 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
8749 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
8750 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
8751 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
8752 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
8753 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
8754 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
8755 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
8756 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
8757 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
8758 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
8759 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
8760 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
8761 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
8762 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
8763 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
8764 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
8765 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
8766 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
8767 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
8768 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
8769 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
8770 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
8771 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
8772 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
8773 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
8774 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
8775 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
8776 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
8777 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
8778 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
8779 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
8780 * system.h (MD_UNWIND_SUPPORT): Poison.
8781 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
8782 * doc/tm.texi: Regenerate.
8783 * unwind-dw2.c: Include md-unwind-support.h instead of
8784 MD_UNWIND_SUPPORT.
8785 * config/ia64/unwind-ia64.c: Likewise.
8786 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
8787
10c63ba4 87882011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
8789
8790 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
8791
1b7a0148
RH
87922011-06-03 Richard Henderson <rth@redhat.com>
8793 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8794
8795 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
8796 (sigill_hdlr): Correct insn, insn size.
8797 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
8798
737346fa
RO
87992011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8800
8801 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
8802 t-slibgcc-dummy.
8803 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
8804 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
8805 * config/mips/t-iris: Remove.
8806 * config/mips/t-irix6: New file.
8807 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
8808
c192cee6
RO
88092011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8810
8811 * Makefile.in (LIB2ADDEHDEP): Remove.
8812 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
8813 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
8814 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
8815 * config/t-darwin (LIB2ADDEHDEP): Remove.
8816 * config/t-freebsd (LIB2ADDEHDEP): Remove.
8817 * config/t-linux (LIB2ADDEHDEP): Remove.
8818
d5828cc7
DN
88192011-06-03 Diego Novillo <dnovillo@google.com>
8820
8821 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
8822 (lto_register_var_decl_in_symtab): Likewise.
8823 (lto_register_function_decl_in_symtab): Likewise.
8824 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 8825 logic to uniquify_nodes.
d5828cc7 8826
ee33b5f0
RO
88272011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8828
8829 * config/alpha/t-osf5: Remove.
8830 * config/alpha/t-osf-pthread: Remove.
8831 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
8832 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
8833
16868d84
JB
88342011-06-03 Julian Brown <julian@codesourcery.com>
8835
8836 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
8837 (strongarm1110): Use strongarm tuning.
4d3d7f15 8838 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
8839 * config/arm/arm.c (arm_strongarm_tune): New.
8840 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8841 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
8842 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
8843 setting, using previous defaults or 1 for Cortex-A5.
8844 (arm_option_override): Set max_insns_skipped from current tuning.
8845
1cec1285
NS
88462011-06-03 Nathan Sidwell <nathan@codesourcery.com>
8847
8848 * doc/install.texi (Options specification): Document --with-specs.
8849
eed55426
RR
88502011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8851
8852 * config/arm/neon.md (orndi3_neon): Actually split it.
8853
d5b6cc25
AO
88542011-06-02 Alexandre Oliva <aoliva@redhat.com>
8855
8856 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
8857 * var-tracking.c (reverse_op): Limite recurse depth to 5.
8858
2ba42841
AO
88592011-06-02 Alexandre Oliva <aoliva@redhat.com>
8860
8861 PR debug/47590
8862 * target.def (delay_sched2, delay_vartrack): New.
8863 * doc/tm.texi.in: Update.
8864 * doc/tm.texi: Rebuild.
8865 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
8866 * var-tracking.c (gate_handle_var_tracking): Likewise.
8867 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
8868 (bfin_flag_var_tracking): Drop.
8869 (output_file_start): Don't save and override flag_var_tracking.
8870 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
8871 (bfin_reorg): Test original variables.
8872 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8873 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
8874 (ia64_flag_var_tracking): Drop.
8875 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8876 (ia64_file_start): Don't save and override flag_var_tracking.
8877 (ia64_override_options_after_change): Ditto
8878 flag_schedule_insns_after_reload.
8879 (ia64_reorg): Test original variables.
8880 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
8881 (picochip_flag_var_tracking): Drop.
8882 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
8883 (picochip_option_override): Don't save and override
8884 flag_schedule_insns_after_reload.
8885 (picochip_asm_file_start): Ditto flag_var_tracking.
8886 (picochip_reorg): Test original variables.
8887 * config/spu/spu.c (spu_flag_var_tracking): Drop.
8888 (TARGET_DELAY_VARTRACK): Define.
8889 (spu_var_tracking): New.
8890 (spu_machine_dependent_reorg): Call it.
8891 (asm_file_start): Don't save and override flag_var_tracking.
8892
a700b5f0
KK
88932011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
8894
8895 PR target/49163
8896 * config/sh/predicates.md (general_movsrc_operand): Return 0
8897 for memory and memory subreg of which address is an invalid
8898 indexed address for QI and HImode.
8899 (general_movdst_operand): Likewise.
8900
76015c34
EB
89012011-06-02 Eric Botcazou <ebotcazou@adacore.com>
8902
8903 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
8904 edges only, when there is a non-local label in the function.
8905 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
8906
4e76acd2
UB
89072011-06-02 Uros Bizjak <ubizjak@gmail.com>
8908
8909 * config/i386/constraints.md (Y3): New register constraint.
8910 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
8911 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
8912 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
8913 *sse2_interleave_lowv2df.
8914
288f605f
JB
89152011-06-02 Julian Brown <julian@codesourcery.com>
8916
8917 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
8918 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
8919 (arm_cortex_a5_tune): New.
8920
7ec70105
JB
89212011-06-02 Julian Brown <julian@codesourcery.com>
8922
153668ec
JB
8923 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
8924 * config/arm/arm.c (arm_default_branch_cost): New.
8925 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
8926 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
8927 (arm_fa726_tune): Set branch_cost field using
8928 arm_default_branch_cost.
8929 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
8930 current_tune structure.
8931 * dojump.c (tm_p.h): Include file.
8932
89332011-06-02 Julian Brown <julian@codesourcery.com>
8934
8935 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
8936 tuning.
7ec70105
JB
8937 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
8938 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
8939 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
8940 field.
8941 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
8942 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
8943 (arm_fa726te_tune): Add prefer_constant_pool setting.
8944 (arm_v6t2_tune, arm_cortex_tune): New.
8945 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
8946 prefer_constant_pool setting.
8947
aad61732
UB
89482011-06-02 Uros Bizjak <ubizjak@gmail.com>
8949
4e76acd2
UB
8950 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
8951 switch statement.
aad61732
UB
8952 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
8953 (*movdf_internal) <case 6,7,8>: Ditto.
8954
4e76acd2 8955 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
8956 * config/i386/sse.md (vec_set<mode>_0): Merge with
8957 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
8958 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
8959 *vec_extractv2di_1_sse.
8960 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
8961 and *vec_concatv2di_rex64_sse.
8962
6e588138
SH
89632011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
8964
8965 PR target/48807
8966 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
8967 of cgraph_local_info for null before attempting to use it.
8968
bc6d3f91
EB
89692011-06-02 Eric Botcazou <ebotcazou@adacore.com>
8970
8971 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
8972 (current_function_dynamic_alloc_count): Delete.
8973 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
8974 (expand_builtin_nonlocal_goto): Remove obsolete comment.
8975 (expand_builtin_update_setjmp_buf): Remove dead code.
8976 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
8977 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
8978 support.
8979 * function.c (instantiate_virtual_regs): Likewise.
8980 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
8981 for a block with a single abnormal incoming edge.
8982 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 8983 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
8984 * config/sparc/sparc-protos.h (load_got_register): Declare.
8985 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
8986 (load_got_register): Make global.
8987 (sparc_frame_pointer_required): Add 'static'.
8988 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
8989 (sparc_builtin_setjmp_frame_value): New function.
8990 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
8991 (save_stack_nonlocal): New expander.
8992 (restore_stack_nonlocal): Likewise.
8993 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
8994 (nonlocal_goto_internal): New insn.
8995 (goto_handler_and_restore): Delete.
8996 (builtin_setjmp_setup): Likewise.
8997 (do_builtin_setjmp_setup): Likewise.
8998 (setjmp): Likewise.
8999 (builtin_setjmp_receiver): New expander.
9000
69282fee
DL
90012011-06-01 David Li <davidxl@google.com>
9002
9003 PR middle-end/49261
9004 * tree-pretty-print.c (dump_function_header): Format cleanup.
9005
e95873dd
KK
90062011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
9007
9008 PR target/49238
9009 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
9010 needed when original operands are used for msw_skip comparison.
9011
88c15821
JJ
90122011-06-01 Jakub Jelinek <jakub@redhat.com>
9013
9014 PR debug/49250
9015 * var-tracking.c (add_uses, add_stores): Don't call
9016 cselib_subst_to_values on ENTRY_VALUE.
9017
07233947
DN
90182011-06-01 Diego Novillo <dnovillo@google.com>
9019
9020 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
9021 output_record_start with LTO_null instead of output_zero.
9022 (lto_output_ts_binfo_tree_pointers): Likewise.
9023 (lto_output_tree): Likewise.
9024 (output_eh_try_list): Likewise.
9025 (output_eh_region): Likewise.
9026 (output_eh_lp): Likewise.
9027 (output_eh_regions): Likewise.
9028 (output_bb): Likewise.
9029 (output_function): Likewise.
9030 (output_unreferenced_globals): Likewise.
9031 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
9032 instead of NUM_TREE_CODES.
9033 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
9034 (lto_output_int_in_range): Change << to >> when shifting VAL.
9035
4ee3537a
DN
90362011-06-01 Diego Novillo <dnovillo@google.com>
9037
9038 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9039 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9040
02972eaf
RS
90412011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9042
9043 PR target/45074
9044 * optabs.h (valid_multiword_target_p): Declare.
9045 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9046 doing multi-word operations.
9047 * optabs.c (expand_binop): Likewise.
9048 (expand_doubleword_bswap): Likewise.
9049 (expand_absneg_bit): Likewise.
9050 (expand_unop): Likewise.
9051 (expand_copysign_bit): Likewise.
9052 (multiword_target_p): New function.
9053
4d41c2d1
RS
90542011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
9055
9056 PR rtl-optimization/48830
9057 PR rtl-optimization/48808
9058 PR rtl-optimization/48792
9059 * reload.c (push_reload): Check contains_reg_of_mode.
9060 * reload1.c (strip_paradoxical_subreg): New function.
9061 (gen_reload_chain_without_interm_reg_p): Use it to handle
9062 paradoxical subregs.
9063 (emit_output_reload_insns, gen_reload): Likewise.
9064
5f57dccb
DL
90652011-06-01 David Li <davidxl@google.com>
9066
9067 * predict.c : Change pass name
9068 * ipa.c: Ditto.
9069 * dce.c: Ditto.
9070 * tree-profile.c: Ditto.
9071 * except.c: Ditto.
9072
ea6cf778
DL
90732011-06-01 David Li <davidxl@google.com>
9074
9075 * tree-pretty-print.c (dump_function_header): New function.
9076 * final.c (rest_of_clean_state): Use header dumper.
9077 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9078 * passes.c (pass_init_dump_file): Use header dumper.
9079
ebdc0d4b
JJ
90802011-06-01 Jakub Jelinek <jakub@redhat.com>
9081
eeeb9b49
JJ
9082 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9083 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9084 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9085 New functions.
9086 (mem_loc_descriptor): Use them.
9087
ebdc0d4b
JJ
9088 * var-tracking.c (create_entry_value): New function.
9089 (vt_add_function_parameter): Use it.
9090
0699e415
RO
90912011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9092
9093 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9094 Include <signal.h>, <ucontext.h>.
9095 (sigill_caught): Define.
9096 (sigill_hdlr): New function.
9097 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9098 insns can be executed.
aad61732 9099 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
9100 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9101
ca24c5ad
RO
91022011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9103
9104 * config/t-slibgcc-darwin: Move to ...
aad61732 9105 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
9106 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9107 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9108 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 9109 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
9110 Remove i386/t-crtstuff from tmake_file.
9111 (i[34567]86-*-solaris2*): Remove t-svr4,
9112 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9113 t-slibgcc-dummy.
9114 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9115 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9116 sparc/t-crtfm from tmake_file.
9117 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9118 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9119 Remove extra_parts.
9120 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9121 * config/i386/t-nwld (SHLIB_LINK): Remove.
9122 * config/i386/t-rtems-i386: Rename to ...
9123 * config/i386/t-rtems: ... this.
9124 ($(T)crti.o, $(T)crtn.o): Remove.
9125 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9126 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9127 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9128 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9129 EXTRA_MULTILIB_PARTS): Remove.
9130 * config/sparc/t-sol2-64: Likewise.
9131 * config/sparc/t-sol2: Remove.
9132 * config/sparc/t-crtin: Remove.
9133 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9134 * config/i386/gmon-sol2.c: Remove.
9135 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9136 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9137 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9138 * config/i386/sol2-gc1.asm: Remove.
9139 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9140 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9141 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9142 * config/t-slibgcc-sld: Remove.
9143
a78d13c3
JJ
91442011-06-01 Jakub Jelinek <jakub@redhat.com>
9145
9146 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9147 base_type_for_mode with op_mode instead of mode.
9148
572070ef
PB
91492011-06-01 Paul Brook <paul@cpodesourcery.com>
9150
9151 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
9152 Cortex-A15.
9153 * config/arm/arm-tune.md: Regenerate.
9154 * config/arm/arm-tables.opt: Regenerate.
9155 * config/arm/arm.c (FL_DIV): Rename...
9156 (FL_THUMB_DIV): ... to this.
9157 (FL_ARM_DIV): Define.
9158 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9159 (arm_arch_hwdiv): Remove.
9160 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9161 (arm_issue_rate): Add cortexr5.
9162 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9163 __ARM_ARCH_EXT_IDIV__.
9164 (TARGET_IDIV): Define.
9165 (arm_arch_hwdiv): Remove.
9166 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9167 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9168 (divsi3, udivsi3): New patterns.
9169 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9170 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9171
11026b51
MJ
91722011-06-01 Martin Jambor <mjambor@suse.cz>
9173
9174 * ipa-utils.c (ipa_dfs_info): New field scc_no.
9175 * ipa-utils.c (searchc): Set scc_no.
9176
b6156cf2
MJ
91772011-06-01 Martin Jambor <mjambor@suse.cz>
9178
9179 * ipa-utils.c (searchc_env): New field allow_overwritable.
9180 (searchc): do not ignore edges to overwritable nodes if indicated
9181 by env->allow_overwritable.
9182 (ipa_reduced_postorder): Set env.allow_overwritable.
9183
6807da97
RG
91842011-06-01 Richard Guenther <rguenther@suse.de>
9185
9186 * tree.c (free_lang_data): Do not reset boolean_type_node nor
9187 char_type_node.
9188 * lto-streamer.c (lto_record_common_node): Take node pointer,
9189 do not register types.
9190 (lto_preload_common_nodes): Explicitly skip preloading nodes
9191 that differ between frontends.
9192
66bd20e7 91932011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
9194
9195 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9196 NON_FLOAT_REGS.
9197
66bd20e7 91982011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
9199
9200 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9201 parameter value for dump. Dump cost on outermost call only.
9202 (rs6000_memory_move_cost): Dump cost on outermost call only.
9203
7351d8da
JJ
92042011-05-31 Jakub Jelinek <jakub@redhat.com>
9205
ead7c399
JJ
9206 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9207 DW_OP_GNU_convert ops.
9208
509f4495
JJ
9209 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9210 cselib_preserve_constants.
9211 (cselib_lookup_1): If cselib_preserve_constants,
9212 a new VALUE is being created for REG and there is a VALUE for the
9213 same register in wider mode, add another loc with lowpart SUBREG of
9214 the wider VALUE.
9215 (cselib_subst_to_values): Handle ENTRY_VALUE.
9216 * var-tracking.c (replace_expr_with_values): Return NULL for
9217 ENTRY_VALUE too.
9218 * dwarf2out.c (convert_descriptor_to_signed): New function.
9219 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9220 instead of two shifts.
9221 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9222 the right mode if needed.
9223 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9224 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9225 convert_descriptor_to_signed.
9226 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9227 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9228
7351d8da
JJ
9229 PR target/48688
9230 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9231
5cc93ee0
UB
92322011-05-31 Uros Bizjak <ubizjak@gmail.com>
9233
9234 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9235 of X87MODEI12 and SWI48x instead of SSEMODEI24.
9236 (SWI248x): New mode iterator, rename from X87MODEI.
9237 (X87MODEI): Remove mode iterator.
9238 (X87MODEI12): Ditto.
9239 (SSEMODEI24): Ditto.
9240
f0686e78
AO
92412011-05-31 Alexandre Oliva <aoliva@redhat.com>
9242
9243 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9244 * doc/invoke.texi: Document max-vartrack-expr-depth.
9245 * var-tracking.c (EXPR_DEPTH): New.
9246 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9247
f3308413
AO
92482011-05-31 Alexandre Oliva <aoliva@redhat.com>
9249
9250 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9251 * config/i386/sse.md: Add n to negated FMA pattern names.
9252
28c14a04
AO
92532011-05-31 Alexandre Oliva <aoliva@redhat.com>
9254
9255 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9256
70efc82d
AO
92572011-05-31 Alexandre Oliva <aoliva@redhat.com>
9258
5cc93ee0 9259 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 9260
6ba5d856
UB
92612011-05-31 Uros Bizjak <ubizjak@gmail.com>
9262
9263 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9264 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9265
92662011-05-31 Uros Bizjak <ubizjak@gmail.com>
9267
9268 * config/i386/i386.md (*movtf_internal): Avoid allocating general
9269 registers. Penalize F*r->o alternative to prevent partial memory
9270 stalls. Slightly penalize *roF->*r alternative. Generate SSE
9271 CONST_DOUBLE immediates when optimizing function for size. Do not move
9272 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9273 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9274 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9275 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9276 alternatives.
9277 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9278
9279 (fp_register_operand splitters): Use fp_register_operand
9280 constraint. Do not use FP_REG_P in insn condition.
9281 (any_fp_register_operand splitters): Use any_fp_register_operand
9282 constraint. Do not use ANY_FP_REG_P in insn condition.
9283
533c07c5
JH
92842011-05-31 Jan Hubicka <jh@suse.cz>
9285
9286 * cgraph.h (cgraph_inline_failed_t): Give enum a name
9287 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9288 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9289 (lto_output_edge): Use output_enum and var_len_unsigned.
9290 (lto_output_varpool_node): Likewise.
9291 (input_overwrite_node): Do not take resolution parameter;
9292 extract it from a bitpack.
9293 (input_node): Do not read resolution; use input_enum and
9294 var_len_unsigned.
9295 (input_varpool_node): Likewise.
9296 (input_edge): Likewise.
9297 (input_cgraph_1): Likewise.
9298
2611db71
RG
92992011-05-31 Richard Guenther <rguenther@suse.de>
9300
9301 * gimple.c (gimple_register_canonical_type): Do not register
9302 any types via gimple_register_type.
9303
b9e57365
JH
93042011-05-31 Jan Hubicka <jh@suse.cz>
9305
9306 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9307 of thunks.
9308
35979cc2
JJ
93092011-05-31 Jakub Jelinek <jakub@redhat.com>
9310
9311 PR rtl-optimization/49235
9312 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9313 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9314
8f7de592
IR
93152011-05-31 Ira Rosen <ira.rosen@linaro.org>
9316
9317 PR tree-optimization/49093
9318 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9319 data references.
9320
8d8a3bda
DS
93212011-05-31 Dodji Seketeli <dodji@redhat.com>
9322
9323 PR debug/49047
9324 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 9325 for concrete functions containing the code of cloned functions.
8d8a3bda 9326
2e87621c
RG
93272011-05-31 Richard Guenther <rguenther@suse.de>
9328
9329 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9330 to ...
9331 (forward_propagate_into_comparison_1): ... this.
9332 (forward_propagate_comparison): Rename to ...
9333 (forward_propagate_into_comparison): ... this. Split out
9334 real forward propagation code to ...
9335 (forward_propagate_comparison): ... this.
9336 (forward_propagate_into_gimple_cond): Remove looping.
9337 (forward_propagate_into_cond): Likewise.
9338 (simplify_not_neg_expr): Return whether we have done something.
9339 (simplify_gimple_switch): Likewise.
9340 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9341 (ssa_forward_propagate_and_combine): ... this. Re-structure
9342 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 9343 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
9344 (pass_forwprop): Adjust.
9345
5a880d5d
ILT
93462011-05-30 Ian Lance Taylor <iant@google.com>
9347
9348 * godump.c (go_format_type): Correct length of name added to
9349 obstack for anonymous field.
9350
5f133038
KK
93512011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
9352
9353 PR target/49186
9354 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9355 part of the second operand is 0.
9356
b17d5426
UB
93572011-05-30 Uros Bizjak <ubizjak@gmail.com>
9358
9359 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9360 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
9361 to memory for !TARGET_MEMORY_MISMATCH_STALL.
9362 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 9363 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
9364 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
9365 when optimizing function for size. Do not move CONST_DOUBLEs
9366 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
9367 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
9368 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
9369 check for ANY_FP_REGNO_P instead.
9370 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9371 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9372 function for speed.
9373 * config/i386/i386.c (ix86_option_override_internal): Do not
9374 set TARGET_INTEGER_DFMODE_MOVES here.
9375
a0cd843f
L
93762011-05-30 H.J. Lu <hongjiu.lu@intel.com>
9377
9378 PR target/49168
aad61732 9379 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 9380
006a5f38
JJ
93812011-05-30 Jakub Jelinek <jakub@redhat.com>
9382
9383 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9384 DW_TAG_rvalue_reference_type even for
9385 -gdwarf-4 -fno-debug-types-section.
9386
6e96f98a
BS
93872011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9388
9389 PR tree-optimization/46728
9390 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9391 (build_and_insert_binop): New.
9392 (gimple_expand_builtin_pow): Reorder args for
9393 build_and_insert_call; use build_and_insert_binop; add more
9394 optimizations for fractional exponents.
b17d5426 9395
4f60111f
NF
93962011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
9397
9398 PR bootstrap/49190
9399
9400 Revert:
9401 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9402
9403 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9404 tree_common.
9405 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9406 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9407 TS_BASE instead of TS_COMMON.
9408 * varasm.c (assemble_name): Remove assert.
9409
3fd7879d
RS
94102011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
9411
9412 * config.gcc: Keep obselete list sorted.
9413
80060f7a
JJ
94142011-05-30 Jakub Jelinek <jakub@redhat.com>
9415 Eric Botcazou <ebotcazou@adacore.com>
9416
9417 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9418 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9419 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9420 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9421 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9422
17e99cdb
RG
94232011-05-30 Richard Guenther <rguenther@suse.de>
9424
9425 * gimple.c (gimple_types_compatible_p_1): Compare record
9426 and union type members properly.
9427
42b05b6e
RG
94282011-05-30 Richard Guenther <rguenther@suse.de>
9429
9430 PR tree-optimization/49210
6ba5d856
UB
9431 * ipa-split.c (split_function): Care for the case where the call
9432 result is not trivially convertible to the result holding variable.
42b05b6e 9433
f3321158
RG
94342011-05-30 Richard Guenther <rguenther@suse.de>
9435
9436 PR tree-optimization/49218
9437 * tree-vrp.c (adjust_range_with_scev): Properly check whether
9438 overflow occured.
9439
d12d8efe
RG
94402011-05-30 Richard Guenther <rguenther@suse.de>
9441
9442 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9443 New function split out from ...
9444 (forward_propagate_into_gimple_cond): ... here. Adjust.
9445 (forward_propagate_into_cond): Likewise.
9446 (forward_propagate_comparison): Also propagate into
9447 comparisons on assignment RHS. Change return value to
9448 behave similar to forward_propagate_into_cond.
9449 (tree_ssa_forward_propagate_single_use_vars): Handle
9450 strict-overflow warnings properly for forward_propagate_comparison.
9451
df33b41f
RO
94522011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9453
9454 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9455 from plugin linker.
9456 * configure: Regenerate.
9457
69940d4d
IR
94582011-05-30 Ira Rosen <ira.rosen@linaro.org>
9459
9460 PR tree-optimization/49199
9461 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 9462 non-reduction operands are either defined in the loop or by induction.
69940d4d 9463
226c52aa
XDL
94642011-05-29 Xinliang David Li <davidxl@google.com>
9465
9466 * opts-global.c (handle_common_deferred_options): Handle new options.
9467 * passes.c (register_one_dump_file): Call register_pass_name.
9468 (execute_one_pass): Check explicit enable/disable flag.
9469 (passr_hash): New function.
9470 (passr_eq): Ditto.
9471 (register_pass_name): Ditto.
9472 (get_pass_by_name): Ditto.
9473 (pass_hash): Ditto.
9474 (pass_eq): Ditto.
9475 (enable_pass): Ditto.
9476 (disable_pass): Ditto.
9477 (is_pass_explicitly_enabled_or_disabled): Ditto.
9478
491d8eed
UB
94792011-05-29 Uros Bizjak <ubizjak@gmail.com>
9480
9481 * config/i386/i386.md (*movoi_internal_avx): Use
9482 standard_sse_constant_opcode for alternative 0.
9483 (*movti_internal_sse): Ditto.
9484 (*movti_internal_rex64): Use standard_sse_constant_opcode for
9485 alternative 2.
9486 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9487 sselog1 type moves.
9488 (*movsi_internal): Ditto.
9489 (*movdi_internal): Ditto. Add ssecvt type moves.
9490
eb93b31f
EB
94912011-05-29 Eric Botcazou <ebotcazou@adacore.com>
9492
9493 PR target/48830
9494 * rtlanal.c (simplify_subreg_regno): Adjust comment.
9495
3f831b7d
JJ
94962011-05-29 Jakub Jelinek <jakub@redhat.com>
9497
9498 PR rtl-optimization/49095
9499 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9500 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9501
ee3ee488
RS
95022011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9503
9504 PR target/43995
9505 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9506 recurse_p argument. Only follow register copies if it is set,
9507 and prevent mips_find_pic_call_symbol from recursing.
9508 (mips_find_pic_call_symbol): Add a recurse_p argument.
9509 Pass it to mips_pic_call_symbol_from_set.
9510 (mips_annotate_pic_calls): Update accordingly.
9511
65f3dedb
RS
95122011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
9513
9514 * emit-rtl.c (try_split): Use a loop to search for
9515 NOTE_INSN_CALL_ARG_LOCATIONs.
9516
61e374ab
RG
95172011-05-29 Richard Guenther <rguenther@suse.de>
9518
9519 PR tree-optimization/49217
9520 * ipa-pure-const.c (propagate_pure_const): Fix typos.
9521
fac009a8
JH
95222011-05-28 Jan Hubicka <jh@suse.cz>
9523
9524 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9525 length.
9526 (string_slot_free): Remove
9527 (create_output_block): Initialize obstack.
9528 (destroy_output_block): Free obstack.
9529 (lto_string_index): Add PERSISTENT parameter; do not duplicate
9530 the string unless it needs to be added into the hash.
9531 (lto_output_string_with_length): Add persistent attribute;
9532 handle NULL strings.
9533 (lto_output_string): Add PERSISTENT parameter.
9534 (output_string_cst, output_identifier): Simplify.
9535 (lto_output_location_bitpack): Update.
9536 (lto_output_builtin_tree): Update.
9537 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
9538 (lto_output_string, lto_output_string_with_length): Remove
9539 declarations; functions are static now.
fac009a8 9540
fa766006
JH
95412011-05-28 Jan Hubicka <jh@suse.cz>
9542
9543 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9544 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9545 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9546 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9547 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9548 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9549 unpack_ts_decl_with_vis_value_fields,
9550 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9551 lto_get_builtin_tree): Use enum and variable length i/o.
9552 * basic-block.h (profile_status_d): Add PROFILE_LAST.
9553 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9554 New functions.
9555 (bp_pack_enum, bp_unpack_enum): New macros.
9556
e092158b
RS
95572011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9558
9559 * genrecog.c: Remove redundant forward declarations.
9560
7ca2afa0
RS
95612011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9562
9563 * config.gcc: Deprecate mips*-*-openbsd*.
9564
a601a53a
RS
95652011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
9566
9567 PR bootstrap/49195
9568 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9569 for match_op_dup.
9570
fc64b448
AP
95712011-05-27 Andrew Pinski <pinskia@gmail.com>
9572
9573 PR middle-end/48981
9574 * gengtype.c (vec_prefix_type): New function.
9575 (note_def_vec): Use vec_prefix_type and change the length
9576 attribute to be based on the prefix.
9577 * vec.c: Include coretypes.h before vec.h.
9578 (struct vec_prefix): Remove.
9579 (vec_gc_p_reserve): Change the offsetof to sizeof.
9580 (vec_gc_p_reserve_exact): Likewise.
9581 (vec_heap_p_reserve): Likewise.
9582 (vec_heap_p_reserve_exact): Likewise.
9583 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9584 (vec_stack_p_reserve): Change the offsetof to sizeof.
9585 (vec_stack_p_reserve_exact): Likewise.
9586 * vec.h (struct vec_prefix): New struct definition.
9587 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9588 (VEC_T_GTY(T,B)): Likewise.
9589 (DEF_VEC_FUNC_P(T)): Use prefix field.
9590 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9591 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9592
ba869341
BS
95932011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9594
9595 PR tree-optimization/46728
9596 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9597 (powi_as_mults): Add gimple_set_location.
9598 (build_and_insert_call): New.
9599 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9600 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 9601
d296760d
AM
96022011-05-27 Alexander Monakov <amonakov@ispras.ru>
9603
9604 * doc/contrib.texi: Update copyright years.
9605 (Contributors): Add Zdenek Sojka.
9606
38e01f9e
NF
96072011-05-27 Nathan Froyd <froydnj@codesourcery.com>
9608
9609 * c-decl.c (c_push_function_context): Copy the current statement
9610 list stack.
9611 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9612 (finish_struct): Call building_stmt_list_p instead of checking
9613 cur_stmt_list.
9614 * c-parser.c (c_parser_postfix_expression): Likewise.
9615 * c-typeck.c (c_end_compound_stmt): Likewise.
9616 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9617 * tree-iterator.c (stmt_list_cache): Change to a VEC.
9618 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9619 (free_stmt_list): Likewise.
9620 * tree.h (struct tree_statement_list): Include typed_tree instead
9621 of tree_common.
9622 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9623 as TS_TYPED instead of TS_COMMON.
9624
8950516e 96252011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 9626 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
9627
9628 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9629 (HAVE_AS_IX86_TLSGDPTL): Define.
9630 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9631 (HAVE_AS_IX86_TLSLDMPLT): Define.
9632 * configure: Regenerate.
9633 * config.in: Regenerate.
9634 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9635 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9636 TARGET_SUN_TLS, use @tlsgdplt or @plt.
9637 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9638 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9639 @tlsldmplt or @plt.
9640 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9641
b0bd15f7
BS
96422011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9643
9644 * sched-int.h (struct _haifa_deps_insn_data): New members cond
9645 and reverse_cond.
9646 (INSN_COND, INSN_REVERSE_COND): New macros.
9647 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9648 once.
9649 (sched_get_condition_with_rev): Cache the results, and look them up
9650 if possible.
9651 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9652 are clobbered by the current insn.
9653 * target.def (exposed_pipline): New sched data hook.
9654 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9655 * doc/tm.texi: Regenerate.
9656
fa65a9cf
BS
96572011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9658
9659 PR tree-optimization/49170
9660 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
9661 sincos or cexp.
b0bd15f7 9662
c2299dfe
RG
96632011-05-27 Richard Guenther <rguenther@suse.de>
9664
9665 PR middle-end/49189
9666 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9667 of comparisons.
9668
a95b23b4
BS
96692011-05-27 Bernd Schmidt <bernds@codesourcery.com>
9670
9671 * haifa-sched.c (sched_scan_info): Remove.
9672 (schedule_block): Call sched_extend_luids rather than sched_init_luids
9673 with NULL args.
9674 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9675 Remove functions.
9676 (sched_scan): Remove.
9677 (sched_extend_luids): Renamed from luids_extend_insn and no longer
9678 static. All callers changed.
9679 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9680 static. All callers changed.
9681 (sched_init_luids): Remove all arguments except the first. All
9682 callers changed. Don't use sched_scan.
9683 (haifa_init_h_i_d): Likewise.
9684 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
9685 manually rather than using sched_init_luids. Likewise with
9686 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
9687 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
9688 rather than sched_init_luids with NULL args.
9689 * sel-sched-ir.c (new_insns): Remove variable.
9690 (sched_scan): New static function, previously in haifa-sched.c. Remove
9691 all arguments but the first two; all callers changed.
9692 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
9693 rather than sched_init_luids.
9694 (sel_init_bbs): Remove second argument. All callers changed.
9695 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
9696 with NULL arguments.
9697 (create_insn_rtx_from_pattern): Likewise.
9698 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
9699 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
9700 (sched_init_insn_luid, sched_extend_luids): Declare.
9701 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
9702 declarations.
9703
f8f972fc
RB
97042011-05-27 Richard Guenther <rguenther@suse.de>
9705
9706 PR middle-end/49177
9707 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
9708 A CMP B ? (T) true : (T) false for non-integral types T again.
9709
51a9ed47
JH
97102011-05-27 Jan Hubicka <jh@suse.cz>
9711
9712 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
9713 so 0 means NULL string.
9714 (lto_output_string_with_length): ... here.
f8f972fc
RB
9715 (lto_output_string, output_string_cst, output_identifier): Update
9716 handling of NULL strings.
51a9ed47
JH
9717 (lto_output_location_bitpack): New function.
9718 (lto_output_location): Use it.
9719 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
9720 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
9721 len values.
9722 * lto-streamer-in.c (string_for_index): Break out from ...; offset
9723 values by 1.
491d8eed 9724 (input_string_internal): ... here;
f8f972fc
RB
9725 (input_string_cst, input_identifier, lto_input_string): Update handling
9726 of NULL strings.
51a9ed47
JH
9727 (lto_input_location_bitpack): New function
9728 (lto_input_location): Use it.
f8f972fc
RB
9729 (unpack_ts_type_common_value_fields): Pack align & alias in var len
9730 values.
51a9ed47
JH
9731 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
9732 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
9733 (bp_pack_value): Sanity check the value range.
9734 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
9735 New functions.
9736 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
9737 New functions.
9738
66bd20e7 97392011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
9740
9741 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
9742 call_arg_location instructions down the floor.
9743
574e418a
VM
97442011-05-26 Vladimir Makarov <vmakarov@redhat.com>
9745
9746 PR rtl-optimization/49154
9747 * ira.c (setup_pressure_classes): Process class without sublcasses
9748 as a candidate for pressure classes.
9749
6a1a787e
RS
97502011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
9751
9752 PR rtl-optimization/48575
9753 * genrecog.c (position_type): New enum.
9754 (position): New structure.
9755 (decision): Use position structure instead of a string.
9756 (root_pos, peep2_insn_pos_list): New variables.
9757 (next_position, compare_positions): New functions.
9758 (new_decision): Use position structures instead of strings.
9759 (maybe_both_true): Likewise.
9760 (change_state): Likewise.
9761 (write_tree): Likewise.
9762 (make_insn_sequence): Likewise.
9763
92e948a8
NF
97642011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9765
9766 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
9767 TS_BASE instead of TS_COMMON.
9768 (find_decls_types_r): Check for TS_TYPED structure before looking at
9769 TREE_TYPE.
9770 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
9771 Add chain field.
9772 (BLOCK_CHAIN): Use new chain field.
9773
66bd20e7 97742011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
9775
9776 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
9777 moves expensive on Power7 also.
9778
1f498652
RG
97792011-05-26 Richard Guenther <rguenther@suse.de>
9780
9781 * fold-const.c (fold_unary_loc): Remove bogus code.
9782
a2fc3e63
NF
97832011-05-26 Nathan Froyd <froydnj@codesourcery.com>
9784
9785 * tree.h (struct tree_identifier): Inherit from tree_typed, not
9786 tree_common.
9787 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9788 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9789 TS_BASE instead of TS_COMMON.
9790 * varasm.c (assemble_name): Remove assert.
9791
d11bf18f
BS
97922011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9793
9794 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
9795 substituted first.
9796 * libgcc-std.ver: Delete file.
9797
ac8e1875
RG
97982011-05-26 Richard Guenther <rguenther@suse.de>
9799
9800 PR tree-optimization/48702
9801 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
9802 only when we know the base address is within bounds.
9803 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
9804 assume the base address of TARGET_MEM_REFs is in bounds.
9805
7e32e652
RO
98062011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9807
9808 PR target/49099
9809 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
9810 declaration in TARGET_SOLARIS.
9811
66bd20e7 98122011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
9813
9814 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 9815 The instruction is then expanded explicitly.
43660e0b
HS
9816 (supported_compare): Callable instruction.
9817 (compare): Likewise.
9818
1537737f
JJ
98192011-05-26 Jakub Jelinek <jakub@redhat.com>
9820
9821 PR c++/49165
9822 * gimplify.c (shortcut_cond_r): Don't special case
9823 COND_EXPRs if they have void type on one of their arms.
9824
7b1ac803
BS
98252011-05-26 Bernd Schmidt <bernds@codesourcery.com>
9826
9827 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
9828 to reduce duplication, and to achieve a slightly more logical order
9829 of operations.
9830
1aa9438f
JJ
98312011-05-26 Jakub Jelinek <jakub@redhat.com>
9832
9833 PR tree-optimization/49161
9834 * tree-vrp.c (struct case_info): New type.
9835 (compare_case_labels): Sort case_info structs instead of
9836 trees, and not primarily by CASE_LABEL uids but by
9837 label_for_block indexes.
9838 (find_switch_asserts): Put case labels into struct case_info
9839 array instead of TREE_VEC, adjust sorting, compare label_for_block
9840 values instead of CASE_LABELs.
9841
50fed7bf
RR
98422011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9843
9844 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
9845 ("orndi3_neon"): Likewise.
9846 ("bic<mode>3_neon"): Likewise.
9847
48df3fa6
IR
98482011-05-26 Ira Rosen <ira.rosen@linaro.org>
9849
9850 PR tree-optimization/49038
9851 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
9852 Ensure at least one epilogue iteration if required by data
9853 accesses with gaps.
9854 * tree-vectorizer.h (struct _loop_vec_info): Add new field
9855 to mark loops that require peeling for gaps.
9856 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
9857 (vect_get_known_peeling_cost): Take peeling for gaps into
9858 account.
9859 (vect_transform_loop): Generate epilogue if required by data
9860 access with gaps.
9861 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
9862 loop as requiring an epilogue if there are gaps in the end of
9863 the strided group.
9864
53febcba
ILT
98652011-05-25 Ian Lance Taylor <iant@google.com>
9866
9867 * godump.c (go_format_type): Output the first field with a usable
9868 Go type, if any.
9869
dbbc4d4c
ILT
98702011-05-25 Ian Lance Taylor <iant@google.com>
9871
9872 * godump.c (go_format_type): Check for invalid type names, pointer
9873 target types, and struct field types.
9874
f03a5402
JM
98752011-05-25 Jason Merrill <jason@redhat.com>
9876
9877 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
9878
c497c412
UB
98792011-05-25 Uros Bizjak <ubizjak@gmail.com>
9880
9881 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
9882
e470affe
L
98832011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9884
9885 * config/i386/i386.md (*movqi_extv_1)): Put back
9886 "register_operand" check in "type" calculation.
9887 (*movqi_extzv_2): Likewise.
9888
6c81b2bc
L
98892011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9890
c497c412 9891 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 9892
0c007eb2
BS
98932011-05-25 Bernd Schmidt <bernds@codesourcery.com>
9894
9895 PR bootstrap/49160
9896 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
9897 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
9898 __divxc3, __divtc3): Wrap definitions in #ifndef.
9899
521ca78e
L
99002011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9901
9902 PR target/49142
9903 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
9904 "register_operand" check and replace q_regs_operand with
9905 QIreg_operand in "type" calculation.
9906 (*movqi_extv_1): Likewise.
9907 (*movqi_extzv_2_rex64): Likewise.
9908 (*movqi_extzv_2): Likewise.
9909
9910 * config/i386/predicates.md (QIreg_operand): New.
9911
29f8b844
RG
99122011-05-25 Richard Guenther <rguenther@suse.de>
9913
9914 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
9915 type-based offset disambiguation, streamline MEM_REF and
9916 TARGET_MEM_REF handling.
9917
74838de3
L
99182011-05-25 H.J. Lu <hongjiu.lu@intel.com>
9919
9920 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
9921 (bdesc_special_args): Add pause intrinsic.
9922
9923 * config/i386/i386.md (UNSPEC_PAUSE): New.
9924 (pause): Likewise.
9925 (*pause): Likewise.
9926 * config/i386/ia32intrin.h (__pause): Likewise.
9927
9928 * doc/extend.texi (X86 Built-in Functions): Add documentation for
9929 pause intrinsic.
9930
d24ad7d6
BS
99312011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9932
9933 PR tree-optimization/46728
9934 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
9935 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 9936
d9f8303f
NF
99372011-05-25 Nathan Froyd <froydnj@codesourcery.com>
9938
9939 * tree.h (struct tree_exp): Inherit from struct tree_typed.
9940 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
9941 instead of TS_COMMON.
9942
cdbf4541
BS
99432011-05-25 Bernd Schmidt <bernds@codesourcery.com>
9944
9945 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
9946 LIBGCC2_GNU_PREFIX is defined.
9947 (__N): New macro.
9948 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
9949 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
9950 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
9951 __clz_tab): Define using __N.
9952 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
9953 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
9954 * target.def (libfunc_gnu_prefix): New hook.
9955 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
9956 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
9957 * doc/tm.texi: Regenerate.
9958 * system.h (LIBGCC2_GNU_PREFIX): Poison.
9959 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
9960 account.
9961 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
9962 (init_optabs): Likewise for the bswap libfuncs.
9963 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
9964 and divide.
9965 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
9966 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
9967 * libgcc-std.ver: Remove.
9968 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
9969 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
9970 libgcc-std.ver.
9971 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9972 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
9973 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
9974 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
9975 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
9976 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9977 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
9978 * config/fixed-bit.h (FIXED_OP): Define differently depending on
9979 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
9980 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
9981
f242c0a5
JH
99822011-05-25 Jan Hubicka <jh@suse.cz>
9983
9984 * lto-streamer-out.c (output_record_start): Use lto_output_enum
9985 (lto_output_tree): Use output_record_start.
9986 * lto-streamer-in.c (input_record_start): Use lto_input_enum
9987 (lto_get_pickled_tree): Use input_record_start.
9988 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
9989 (lto_value_range_error): New function.
9990 * lto-streamer.h (lto_value_range_error): Declare.
9991 (lto_output_int_in_range, lto_input_int_in_range): New functions.
9992 (lto_output_enum, lto_input_enum): New macros.
9993
a11e0df4
EB
99942011-05-25 Eric Botcazou <ebotcazou@adacore.com>
9995
9996 * common.opt (flag_stack_usage_info): New variable.
9997 (-Wstack-usage): New option.
9998 * doc/invoke.texi (Warning options): Document -Wstack-usage.
9999 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
10000 <OPT_fstack_usage>: Likewise.
10001 * toplev.c (output_stack_usage): Handle -Wstack-usage.
10002 * calls.c (expand_call): Test flag_stack_usage_info variable instead
10003 of flag_stack_usage.
10004 (emit_library_call_value_1): Likewise.
10005 * explow.c (allocate_dynamic_stack_space): Likewise.
10006 * function.c (instantiate_virtual_regs ): Likewise.
10007 (prepare_function_start): Likewise.
10008 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
10009 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
10010 * config/arm/arm.c (arm_expand_prologue): Likewise.
10011 (thumb1_expand_prologue): Likewise.
10012 * config/avr/avr.c (expand_prologue): Likewise.
10013 * config/i386/i386.c (ix86_expand_prologue): Likewise.
10014 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10015 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
10016 * config/mips/mips.c (mips_expand_prologue): Likewise.
10017 * config/pa/pa.c (hppa_expand_prologue): Likewise.
10018 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10019 * config/s390/s390.c (s390_emit_prologue): Likewise.
10020 * config/sh/sh.c (sh_expand_prologue): Likewise.
10021 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
10022 * config/spu/spu.c (spu_expand_prologue): Likewise.
10023
e7cfe241
RG
100242011-05-25 Richard Guenther <rguenther@suse.de>
10025
10026 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
10027 (gimple_canonical_types_compatible_p): Likewise.
10028
c5235f4c
JH
100292011-05-25 Jan Hubicka <jh@suse.cz>
10030
10031 PR middle-end/49062
10032 * ipa.c (function_and_variable_visibility): Only add to same
10033 comdat group list if DECL_ONE_ONLY.
10034
8242a0f6
AB
100352011-05-25 Andrey Belevantsev <abel@ispras.ru>
10036
10037 PR rtl-optimization/49014
10038 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10039
642a011d
JJ
100402011-05-25 Jakub Jelinek <jakub@redhat.com>
10041
10042 PR target/49128
10043 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10044
30a435d8
VM
100452011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10046
10047 PR rtl-optimization/48757
10048 * ira-build.c (loop_with_eh_edge_p): Rename to
10049 loop_with_complex_edge_p, check edges on complexity, make function
10050 conditional.
10051 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10052 conditional.
10053
24d1bbc7
EB
100542011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10055
10056 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10057 force flag_ira_share_save_slots to 0.
10058
65773087
EB
100592011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10060
10061 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10062 (vt_initialize): Set PROLOGUE_BB unconditionally.
10063 Add block comment about CFA_BASE_RTX machinery.
10064 Reset FP_CFA_OFFSET to -1 on all invalid paths.
10065 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10066
4e26ba90
NP
100672011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
10068
10069 PR objc/48187
10070 * c-parser.c (c_parser_objc_class_instance_variables): More robust
10071 parsing of syntax error in ObjC instance variable lists. In
10072 particular, avoid an infinite loop if there is a stray ']'.
10073 Updated error message.
10074
936fd13c
ILT
100752011-05-24 Ian Lance Taylor <iant@google.com>
10076
10077 * godump.c (go_define): Don't accept a string immediately after
10078 another operand.
10079
f17333e3
ILT
100802011-05-24 Ian Lance Taylor <iant@google.com>
10081
10082 * godump.c (struct godump_container): Add invalid_hash field.
10083 (go_format_type): Return false if type is found in invalid_hash.
10084 (go_output_typedef): Add invalid type to invalid_hash.
10085 (go_finish): Create and delete invalid_hash.
10086
d24ad7d6 100872011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 10088
78be79d5
BS
10089 PR tree-optimization/46728
10090 * tree-ssa-math-opts.c (powi_table): New.
10091 (powi_lookup_cost): New.
10092 (powi_cost): New.
10093 (powi_as_mults_1): New.
10094 (powi_as_mults): New.
10095 (gimple_expand_builtin_powi): New.
10096 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10097 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 10098
caee412b
RO
100992011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10100
10101 PR target/3746
10102 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10103 mips-tdump native.
10104 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10105 * mips-tdump.c: Likewise.
10106
5eed4f27
L
101072011-05-24 H.J. Lu <hongjiu.lu@intel.com>
10108
10109 PR target/49128
10110 * config/i386/driver-i386.c (host_detect_local_cpu): Always
10111 add -mno-XXX. Handle FMA.
10112
8c5fdaae
VM
101132011-05-24 Vladimir Makarov <vmakarov@redhat.com>
10114
10115 PR rtl-optimization/48633
10116 * ira-build.c (loop_with_eh_edge_p): New function.
10117 (mark_loops_for_removal): Use it.
10118
101192011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
10120
10121 PR rtl-optimization/48971
10122 * ira.c (setup_pressure_classes): Don't check register move cost
10123 for classes with one registers. Don't add pressure class if there
10124 is a pressure class with the same available hard registers.
10125 Check contains_reg_of_mode. Fix a typo in collecting
10126 temp_hard_regset. Ignore hard registers not belonging to a class.
10127
df1f7315
UB
101282011-05-24 Uros Bizjak <ubizjak@gmail.com>
10129
10130 PR target/49133
10131 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10132
ee0cb37c
EB
101332011-05-24 Eric Botcazou <ebotcazou@adacore.com>
10134 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10135
10136 PR gcov-profile/48845
10137 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10138
6a20ce76
RG
101392011-05-24 Richard Guenther <rguenther@suse.de>
10140
10141 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10142 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10143 (gimple_types_compatible_p_1): Adjust.
10144 (iterative_hash_canonical_type): Do not bother about complete vs.
10145 incomplete types.
10146 (gimple_canonical_types_compatible_p): Likewise.
10147
2fcb858c
RO
101482011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10149
10150 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10151
96d91dcf
RG
101522011-05-24 Richard Guenther <rguenther@suse.de>
10153
10154 PR bootstrap/49078
10155 * gimple.c (gimple_register_canonical_type): Revert
10156 previous change.
10157 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10158 does not for a tree for the case where it matters. Cache
10159 pointer-type alias-sets.
10160
1ed1641d
JM
101612011-05-24 Joseph Myers <joseph@codesourcery.com>
10162
10163 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10164 (OBJS): Remove options.o, opts-common.o and prefix.o.
10165 (OBJS-libcommon-target): New.
10166 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10167 (BACKEND): Include libcommon-target.a.
10168 (MOSTLYCLEANFILES): Include libcommon-target.a.
10169 (libcommon-target.a): New.
10170 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10171 prefix.o.
10172
57dfdff0
JM
101732011-05-23 Joseph Myers <joseph@codesourcery.com>
10174
10175 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
10176 parts of output shared with the driver.
10177 * optc-gen.awk: Don't generate parts of output not shared with the
10178 driver.
10179 * opth-gen.awk: Remove GCC_DRIVER conditionals.
10180 * doc/options.texi (SourcerInclude): Mention options-save.c.
10181 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10182 (OBJS): Add options-save.o.
10183 (options-save.c, options-save.o): New.
10184 (options.o): Update dependencies.
10185 (gcc-options.o): Remove.
10186 (mostlyclean): Remove options-save.c.
10187
0e0d82a7
JJ
101882011-05-23 Jakub Jelinek <jakub@redhat.com>
10189
9166988f
JJ
10190 PR debug/49032
10191 * dbxout.c: Include cgraph.h.
10192 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10193 and without value expr, return NULL if no varpool node exists for
10194 it or if it is not needed.
10195 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10196
0e0d82a7
JJ
10197 PR c/49120
10198 * c-decl.c (start_decl): Convert expr to void_type_node.
10199
65712d5c
RS
102002011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
10201
10202 PR rtl-optimization/48826
10203 * emit-rtl.c (try_split): When splitting a call that is followed
10204 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10205
9025085e
JJ
102062011-05-23 Jakub Jelinek <jakub@redhat.com>
10207
10208 * cfgexpand.c (expand_debug_expr): For unused non-addressable
10209 parameters passed in memory prefer using DECL_INCOMING_RTL over
10210 the pseudos it will be copied into.
10211
34a061be
L
102122011-05-23 H.J. Lu <hongjiu.lu@intel.com>
10213
10214 PR target/47315
10215 * config/i386/i386.c (ix86_option_override_internal): Save the
10216 initial options after checking vzeroupper.
10217
c375a3a4
DL
102182011-05-23 David Li <davidxl@google.com>
10219
10220 PR tree-optimization/48988
10221 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10222 Initialize has_valid_pred for each pred chain.
10223
e1caba18
RG
102242011-05-23 Richard Guenther <rguenther@suse.de>
10225
10226 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10227 (iterative_hash_gimple_type): Always hash type names.
10228
dde05067
NF
102292011-05-23 Nathan Froyd <froydnj@codesourcery.com>
10230
10231 * c-typeck.c (build_function_call_vec): Tweak call to
10232 check_function_arguments.
10233
094f6ab3
RG
102342011-05-23 Richard Guenther <rguenther@suse.de>
10235
10236 PR tree-optimization/49115
10237 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10238 is not necessarily carried out, do not claim it kills the ref.
10239 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10240
9a9822e1
RG
102412011-05-23 Richard Guenther <rguenther@suse.de>
10242
10243 PR middle-end/15419
10244 * builtins.c (fold_builtin_memory_op): Be less restrictive about
10245 what pointer types we accept for folding.
10246
c8028650
RO
102472011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10248
10249 * gthr-gnat.c: Remove.
10250 * gthr-gnat.h: Remove.
10251 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10252 * config/t-freebsd (LIB2ADDEH): Likewise.
10253 * config/t-linux (LIB2ADDEH): Likewise.
10254 * config/t-sol2 (LIB2ADDEH): Likewise.
10255 * config/ia64/t-vms (LIB2ADDEH): Likewise.
10256 * configure.ac (target_thread_file): Remove gnat handling.
10257 * configure: Regenerate.
10258 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10259
15882fe9
TG
102602011-05-23 Tristan Gingold <gingold@adacore.com>
10261 Eric Botcazou <ebotcazou@adacore.com>
10262
10263 * gcov.c (create_file_names): If no object directory is specified,
10264 keep the directory of the file.
10265
da90c957
RO
102662011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10267
10268 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10269 * configure: Regenerate.
10270
7bba408b
JJ
102712011-05-23 Jakub Jelinek <jakub@redhat.com>
10272
10273 PR middle-end/48973
10274 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10275 failed and the comparison has a single bit signed type, use
10276 constm1_rtx instead of const1_rtx for true value.
10277 (do_store_flag): If ops->type is single bit signed type, disable
10278 signel bit test optimization and pass -1 instead of 1 as last
10279 parameter to emit_store_flag_force.
10280
bc69f7ff
TV
102812011-05-23 Tom de Vries <tom@codesourcery.com>
10282
10283 PR target/45098
10284 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10285 function.
10286 (infer_loop_bounds_from_undefined): Use new function.
10287
29cedf8e
RS
102882011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10289
10290 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10291 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
10292 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10293 and -O0 otherwise.
10294 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10295
afe8b6ec
EB
102962011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10297
10298 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10299 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10300 returns true.
10301
872dab53
RS
103022011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
10303
10304 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10305
145f6c5b
EB
103062011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10307
10308 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10309 UNSPEC_MOVE_PIC pattern.
10310
8ac79835
EB
103112011-05-22 Eric Botcazou <ebotcazou@adacore.com>
10312
10313 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10314 (sparc-*-rtems*): Likewise.
10315 (sparc64-*-elf*): Likewise.
10316 (sparc64-*-rtems*): Likewise.
10317 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
10318 * config/sparc/t-crtin: New file.
10319 * config/sparc/t-sol2 (crti.o): Delete rule.
10320 (crtn.o): Likewise.
10321 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10322 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10323 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10324 (ENDFILE_SPEC): Add crtn.o.
10325
5fb43dd8
TV
103262011-05-22 Tom de Vries <tom@codesourcery.com>
10327
10328 PR middle-end/48689
10329 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10330 CODE_CONTAINS_STRUCT (TS_COMMON).
10331
ccb1b17b
JJ
103322011-05-22 Jakub Jelinek <jakub@redhat.com>
10333
10334 PR middle-end/49029
10335 * expmed.c (extract_fixed_bit_field): Test whether target can be used
10336 only after deciding which mode to use.
10337
50ad7db2
TV
103382011-05-22 Tom de Vries <tom@codesourcery.com>
10339
10340 PR target/45098
dc0a3366 10341 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
10342 for call to get_shiftadd_cost.
10343
ef230b38
UB
103442011-05-22 Uros Bizjak <ubizjak@gmail.com>
10345
10346 PR target/49104
10347 * config/i386/cpuid.h (bit_MMXEXT): New define.
10348
15f072f9
NC
103492011-05-22 Nick Clifton <nickc@redhat.com>
10350
10351 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10352 initialisation of non-existant args[2] element. Use args[] array
10353 not arg[] array to pass arguments to build_function_type_list.
10354
e38fdc94
IR
103552011-05-22 Ira Rosen <ira.rosen@linaro.org>
10356
10357 PR tree-optimization/49087
ef230b38 10358 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 10359
5b018c65
JM
103602011-05-21 Jason Merrill <jason@redhat.com>
10361
10362 PR c++/49092
10363 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10364 static storage duration.
10365
abd9a770
EB
103662011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10367
10368 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10369 frame pointer.
10370
bd9a3248
EB
103712011-05-21 Eric Botcazou <ebotcazou@adacore.com>
10372
10373 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10374 false if there are call-saved registers here...
10375 (sparc_can_use_return_insn_p): ...but here instead.
10376 (save_or_restore_regs): Fix thinko.
10377 (sparc_expand_prologue): Use current_function_is_leaf.
10378 (sparc_frame_pointer_required): Likewise.
10379
a5dfec9a
NC
103802011-05-21 Nick Clifton <nickc@redhat.com>
10381
10382 PR target/49098
10383 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10384
555c3771
NP
103852011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
10386
10387 * gengtype.c (walk_type): Implemented "atomic" GTY option.
10388 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10389
86fa5de4
JM
103902011-05-21 Joseph Myers <joseph@codesourcery.com>
10391
10392 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
10393 * optc-gen.awk: Move common code to opt-read.awk.
10394 * opth-gen.awk: Likewise.
ef230b38 10395 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 10396
bce33ab2
NF
103972011-05-20 Nathan Froyd <froydnj@codesourcery.com>
10398
10399 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10400
e6450c11
TV
104012011-05-20 Tom de Vries <tom@codesourcery.com>
10402
10403 PR target/45098
10404 * tree-ssa-loop-ivopts.c: Include expmed.h.
10405 (get_shiftadd_cost): New function.
10406 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
10407
0e8b84ec
JJ
104082011-05-20 Jakub Jelinek <jakub@redhat.com>
10409
10410 PR bootstrap/49086
10411 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10412 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10413
946bdf67
JM
104142011-05-20 Joseph Myers <joseph@codesourcery.com>
10415
10416 * Makefile.in: Update comment referring to $(OBJS-common).
10417
c53aafdf
ILT
104182011-05-20 Ian Lance Taylor <iant@google.com>
10419
10420 * godump.c (go_output_typedef): Put enum constants in the macro
10421 hash table to avoid duplicate Go const definitions.
10422
2691e6d7
JM
104232011-05-20 Joseph Myers <joseph@codesourcery.com>
10424
10425 * Makefile.in (LIBDEPS): Add libcommon.a.
10426 (LIBS): Likewise.
10427 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10428 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10429 pretty-print.o and version.o.
10430 (OBJS-libcommon): New.
10431 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10432 (BACKEND): Add libcommon.a.
10433 (MOSTLYCLEANFILES): Likewise.
10434 (libcommon.a): New.
10435 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10436 (cpp$(exeext)): Likewise.
10437 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10438 pretty-print.o and input.o.
10439 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10440 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10441 (errors.o): Remove.
10442 (mips-tfile): Don't explicitly use version.o.
10443 (mips-tdump): Likewise.
10444 (gcov.o): Depend on $(DIAGNOSTIC_H).
10445 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10446 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10447 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10448 * gcov-dump.c: Include intl.h and diagnostic.h.
10449 (main): Initialize diagnostics.
10450 * gcov.c: Include diagnostic.h.
10451 (fnotice): Remove.
10452 (main): Initialize diagnostics.
10453 * lto-wrapper.c: Include diagnostic.h.
10454 (main): Initialize diagnostics.
10455
252b3e8c
MM
104562011-05-20 Michael Matz <matz@suse.de>
10457
10458 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10459
2ee36ba6
MM
104602011-05-20 Michael Matz <matz@suse.de>
10461 Richard Guenther <rguenther@suse.de>
10462
10463 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10464 use lto_streamer_cache_append directly instead of returning a VEC.
10465 (preload_common_node): Remove.
10466 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10467 track seen nodes.
10468 (lto_streamer_cache_create): Call lto_preload_common_nodes.
10469
90ff582f
RG
104702011-05-20 Richard Guenther <rguenther@suse.de>
10471
10472 PR tree-optimization/49079
10473 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10474 MEM_REFs correctly for the trailing array access detection.
10475 Special case constants the same way as decls for overall size
10476 constraining.
10477
3cda91d8
UB
104782011-05-20 Uros Bizjak <ubizjak@gmail.com>
10479
10480 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10481 argument expansion.
10482
6c66f733
JJ
104832011-05-20 Jakub Jelinek <jakub@redhat.com>
10484
10485 PR tree-optimization/49073
3cda91d8
UB
10486 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10487 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
10488 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10489
0ea80a16
RG
104902011-05-20 Richard Guenther <rguenther@suse.de>
10491
10492 PR middle-end/48849
10493 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10494 of pointer types the same way the middle-end does.
10495
fb291a1e
RG
104962011-05-20 Richard Guenther <rguenther@suse.de>
10497
3cda91d8
UB
10498 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10499 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 10500
37cb25ed
QN
105012011-05-19 Quentin Neill <quentin.neill@amd.com>
10502
10503 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10504 (fma4_fmaddsub): Likewise
10505
a30726a4
JH
105062011-05-19 Jan Hubicka <jh@suse.cz>
10507
10508 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10509 (GIMPLE_TYPE_PAIR_SIZE): New macro.
10510 (type_pair_cache): New static var.
10511 (lookup_type_pair): Use fixed sized custom hash; make inline.
10512 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10513 calls of lookup_type_pair.
10514 (print_gimple_types_stats): Remove cache stats.
10515 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10516 and gtc_ob.
10517
0955cf61
UB
105182011-05-19 Uros Bizjak <ubizjak@gmail.com>
10519
10520 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10521 when TARGET_RDRND is active.
10522 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10523 Generate dummy SImode target register when target is NULL.
10524
12d844c8
JM
105252011-05-19 Joseph Myers <joseph@codesourcery.com>
10526
10527 * config/arm/arm-fpus.def: New.
10528 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10529 arm-fpus.def.
10530 * config/arm/arm-tables.opt: Regenerate.
10531 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10532 (arm_option_override): Don't decode FPU name to string here.
10533 * config/arm/arm.opt (mfpu=): Use Enum.
10534 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10535 Update dependencies.
10536
9e350e99
JM
105372011-05-19 Joseph Myers <joseph@codesourcery.com>
10538
10539 * collect2.c: Include diagnostic.h.
10540 (fatal_perror, fatal, error, fancy_abort): Remove.
10541 (main): Set progname. Call xmalloc_set_program_name and
10542 diagnostic_initialize.
10543 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10544 scan_libraries, resolve_lib_name): Call fatal_error instead of
10545 fatal and fatal_perror.
10546 * collect2.h (error, fatal, fatal_perror): Don't declare.
10547 * tlink.c: Include diagnostic-core.h.
10548 (recompile_files): Call fatal_error instead of fatal_perror.
10549 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10550 pretty-print.o and input.o.
10551 (collect2.o, tlink.o): Update dependencies.
10552
86ff4081
RO
105532011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10554
10555 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10556
2ca48caa
RO
105572011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10558
10559 PR target/40483
10560 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10561 COMDAT group syntax, both SPARC and x86 variants.
10562 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10563 * configure: Regenerate.
10564 * config/sol2.h (TARGET_SOLARIS): Define.
10565 (PUSHSECTION_FORMAT): Remove.
10566 (SECTION_NAME_FORMAT): Define.
10567 * config/sol2.c: Include hashtab.h.
10568 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10569 expansion, using SECTION_NAME_FORMAT.
10570 (solaris_comdat_htab): New variable.
10571 (struct comdat_entry): Define.
10572 (comdat_hash): New function.
10573 (comdat_eq): New function.
10574 (solaris_elf_asm_comdat_section): New function.
10575 (solaris_define_comdat_signature): New function.
10576 (solaris_code_end): New function.
10577 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10578 (solaris_code_end): Declare.
10579 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10580 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10581 solaris_code_end.
10582 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10583 Remove ATTRIBUTE_UNUSED.
10584 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10585 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 10586 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
10587 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10588 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10589 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10590 (PUSHSECTION_FORMAT): Remove.
10591 (SECTION_NAME_FORMAT): Redefine.
10592
da5fb469
KT
105932011-05-19 Kai Tietz <ktietz@redhat.com>
10594
10595 * tree-cfg.c (verify_gimple_assign_binary): Barf on
10596 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10597 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10598
1651e703 105992011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
10600 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10601
10602 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10603
e497b9bd
RG
106042011-05-19 Richard Guenther <rguenther@suse.de>
10605
10606 PR middle-end/48985
10607 * tree-object-size.c (addr_object_size): If the pointed-to
10608 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10609
31b3ca64
RG
106102011-05-19 Richard Guenther <rguenther@suse.de>
10611
10612 * gimple.c (gimple_types_compatible_p_1): Compare names of
10613 the types themselves.
10614 (iterative_hash_gimple_type): And hash them that way.
10615 (gimple_register_type_1): If we register a main variant properly
10616 initialize the leader to ourselves.
10617
bb8d292d
TV
106182011-05-19 Tom de Vries <tom@codesourcery.com>
10619
10620 PR target/45098
10621 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10622 get_loop_invariant_expr_id.
10623 (get_loop_invariant_expr_id): Use get_expr_id.
10624 (parm_decl_cost): New function.
10625 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10626 Improve bound cost estimation. Use different inv_expr_id for elim and
10627 express cases.
10628
a53c5024
TV
106292011-05-19 Tom de Vries <tom@codesourcery.com>
10630
10631 PR target/45098
10632 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10633 cost_base.cost == 0.
10634
31f9eb59
L
106352011-05-18 H.J. Lu <hongjiu.lu@intel.com>
10636
10637 PR target/49002
66bd20e7
EB
10638 * config/i386/sse.md
10639 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10640 load cast.
31f9eb59 10641
681056ae
JJ
106422011-05-18 Jakub Jelinek <jakub@redhat.com>
10643
10644 PR tree-optimization/49039
10645 * tree-vrp.c (extract_range_from_binary_expr): For
10646 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10647 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10648
b5ee6752
TV
106492011-05-18 Tom de Vries <tom@codesourcery.com>
10650
10651 PR target/45098
10652 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10653
0bda47a3
UB
106542011-05-18 Uros Bizjak <ubizjak@gmail.com>
10655
10656 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10657 (*tls_global_dynamic_64): Ditto.
10658 (*tls_local_dynamic_base_32_gnu): Ditto.
10659 (*tls_local_dynamic_base_64): Ditto.
10660 (tls_initial_exec_64_sun): Ditto.
10661
033b0805
SH
106622011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
10663
10664 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10665 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10666 bf592-none.
10667 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10668 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10669 * config/bfin/bfin.c (bfin_cpus): Add bf592.
10670 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 10671 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
10672 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10673 * config/bfin/elf.h (LIB_SPEC): Add bf592.
10674
ba163417
JM
106752011-05-18 Joseph Myers <joseph@codesourcery.com>
10676
10677 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 10678 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
10679 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10680 target_thread_pointer, arm_structure_size_boundary, struct
10681 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
10682 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
10683 (arm_option_override) Don't process most enumerated option values here.
10684 Don't process target_fpe_name here. Work with integer not string for
10685 structure size boundary; use separate diagnostics for each case.
ba163417
JM
10686 * config/arm/arm.h (enum float_abi_type, enum
10687 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
10688 to arm-opts.h.
10689 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
10690 arm_structure_size_boundary): Remove.
10691 * config/arm/arm.opt (mabi=): Use Enum and Init.
10692 (arm_abi_type): New Enum and EnumValue entries.
10693 (mfloat-abi=): Use Enum and Init.
10694 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 10695 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
10696 (mfp16-format=): Use Enum and Init.
10697 (arm_fp16_format_type): New Enum and EnumValue entries.
10698 (mstructure-size-boundary=): Use UInteger and Init.
10699 (mtp=): Use Enum and Init.
10700 (arm_tp_type): New Enum and EnumValue entries.
10701
179184e3
RG
107022011-05-18 Richard Guenther <rguenther@suse.de>
10703
10704 PR tree-optimization/49018
10705 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
10706 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
10707 gimple_has_side_effects.
10708
93b2a207
RG
107092011-05-18 Richard Guenther <rguenther@suse.de>
10710
10711 * gimple.c (gimple_register_type_1): New function, split out from ...
10712 (gimple_register_type): ... here. Avoid infinite recursion.
10713
b010117a
IR
107142011-05-18 Ira Rosen <ira.rosen@linaro.org>
10715
10716 PR tree-optimization/41881
10717 * tree-vectorizer.h (struct _loop_vec_info): Add new field
10718 reduction_chains along with a macro for its access.
10719 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
10720 (destroy_loop_vec_info): Free reduction chains.
10721 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
10722 (vect_is_slp_reduction): New function.
10723 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
10724 (vect_create_epilog_for_reduction): Support SLP reduction chains.
10725 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
10726 definition types for reduction chains.
10727 (vect_supported_load_permutation_p): Don't allow permutations for
10728 reduction chains.
10729 (vect_analyze_slp_instance): Support reduction chains.
10730 (vect_analyze_slp): Try to build SLP instance from reduction chains.
10731 (vect_get_constant_vectors): Handle reduction chains.
10732 (vect_schedule_slp_instance): Mark the first statement of the
10733 reduction chain as reduction.
10734
e14c1050
IR
107352011-05-18 Ira Rosen <ira.rosen@linaro.org>
10736
10737 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
10738 names for group elements access.
10739 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
10740 reduction chains as well. Remove data reference and interleaving
10741 related words from the fields names.
10742 * tree-vect-loop.c (vect_transform_loop): Use new names for group
10743 elements access.
10744 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
10745 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
10746 vect_update_interleaving_chain, vect_same_range_drs,
10747 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
10748 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
10749 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
10750 vect_analyze_group_access, vect_analyze_data_ref_access,
10751 vect_create_data_ref_ptr, vect_transform_strided_load,
10752 vect_record_strided_load_vectors): Likewise.
10753 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
10754 vect_model_load_cost, vectorizable_store, vectorizable_load,
10755 vect_remove_stores, new_stmt_vec_info): Likewise.
10756 * tree-vect-slp.c (vect_build_slp_tree,
10757 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
10758
51c213f7
RG
107592011-05-18 Richard Guenther <rguenther@suse.de>
10760
10761 PR middle-end/48989
10762 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
10763 operand verification.
10764 (verify_gimple_assign_binary): Likewise.
10765 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
10766 to non-1-precision BOOLEAN_TYPEs.
10767
8f5e5434
TV
107682011-05-18 Tom de Vries <tom@codesourcery.com>
10769
10770 PR target/45098
10771 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
10772
116bc3a4
JJ
107732011-05-18 Jakub Jelinek <jakub@redhat.com>
10774
10775 PR tree-optimization/49000
10776 * tree-ssa.c (execute_update_addresses_taken): Call
10777 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
10778 be rewritten and decl has been marked for renaming, reset
10779 the debug stmt.
10780
26a8964c
JM
107812011-05-17 Joseph Myers <joseph@codesourcery.com>
10782
10783 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
10784 enum_opts_set when testing if attributes have set -mfpmath=.
10785
82bd45d7
RS
107862011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
10787
10788 * config/mips/mips.c (mips_handle_option): Remove unused variable.
10789
267ffce3
UB
107902011-05-17 Uros Bizjak <ubizjak@gmail.com>
10791
10792 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
10793 info->entry with 0
10794 * tree-inline.c (maybe_inline_call_in_expr): Initialize
10795 id.transform_lang_insert_block with NULL.
10796
107972011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
10798
10799 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
10800 (output_fp_compare): Change args 3 and 4 to bool.
10801 (ix86_expand_call): Change arg 6 to bool.
10802 (ix86_attr_length_immediate_default): Change arg 2 to bool.
10803 (ix86_attr_length_vex_default): Change arg 3 to bool.
10804 * config/i386/i386.md: Update all uses.
10805 * config/i386/i386.c: Ditto.
10806 (ix86_flags_dependent): Change return type to bool.
10807
5beaf664
RG
108082011-05-17 Richard Guenther <rguenther@suse.de>
10809
10810 * gimple.c (type_hash_pair_compare): Fix comparison.
10811
008bad7a
RG
108122011-05-17 Richard Guenther <rguenther@suse.de>
10813
10814 * gimple.c (iterative_hash_gimple_type): Simplify singleton
10815 case some more, fix final hash value of the non-singleton case.
10816
36461340
RG
108172011-05-17 Richard Guenther <rguenther@suse.de>
10818
10819 PR bootstrap/49013
10820 Revert
10821 2011-05-16 Richard Guenther <rguenther@suse.de>
10822
10823 * gimple.c (gimple_types_compatible_p_1): Use names of the
10824 type itself, not its main variant.
10825 (iterative_hash_gimple_type): Likewise.
10826
6b6a59f3
RG
108272011-05-17 Richard Guenther <rguenther@suse.de>
10828
10829 * gimple.c (gimple_register_canonical_type): Use the main-variant
10830 leader for computing the canonical type.
10831
4ffc4134
NC
108322011-05-17 Nick Clifton <nickc@redhat.com>
10833
a1d8754e
NC
10834 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
10835 moves.
10836
4ffc4134
NC
10837 * config/rx/rx.md: Add peephole to remove redundant extensions
10838 after loads.
39960f7a
NC
10839 (bitset_in_memory): Use rx_restricted_mem_operand.
10840 (bitinvert_in_memory): Likewise.
10841 (bitclr_in_memory): Likewise.
4ffc4134 10842
b3db92ac
KI
108432011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
10844 Nick Clifton <nickc@redhat.com>
10845
10846 * config/rx/rx.md: Add peepholes to match a register move followed
10847 by a comparison of the moved register. Replace these with an
10848 addition of zero that does both actions in one instruction.
10849
8637e32a
JJ
108502011-05-17 Jakub Jelinek <jakub@redhat.com>
10851
10852 PR target/48986
10853 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
10854 predicate to allow CONST_INT.
10855 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
10856
8023568e
JM
108572011-05-16 Joseph Myers <joseph@codesourcery.com>
10858
10859 * opts-common.c (opt_enum_arg_to_value): New.
10860 * opts.h (opt_enum_arg_to_value): Declare.
10861 * config/i386/i386.opt (fpmath): Remove.
10862 (mfpmath=): Use Enum, Init and Save.
10863 (fpmath_unit): New Enum and EnumValue entries.
10864 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
10865 name for function fpmath state.
10866 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
10867 * config/i386/i386.c: Include diagnostic.h.
10868 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 10869 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 10870 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 10871 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
10872 (x86_function_specific_save, ix86_function_specific_restore):
10873 Don't handle fpmath state specially.
10874 (ix86_function_specific_print): Pass fpmath state to
10875 ix86_target_string instead of printing in this function.
10876 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
10877 Handle enum attributes.
10878 (IX86_ATTR_ENUM, ix86_opt_enum): New.
10879 (ix86_valid_target_attribute_tree): Update option_strings
10880 handling. Handle fpmath as enum option.
10881 (ix86_can_inline_p): Update field names for function fpmath state.
10882 (ix86_expand_builtin): Update call to ix86_target_string.
10883 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
10884 (ix86_fpmath): Remove.
10885 * config/i386/t-i386 (i386.o): Update dependencies.
10886
9e8d926e
JM
108872011-05-16 Joseph Myers <joseph@codesourcery.com>
10888
10889 PR preprocessor/48677
10890 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
10891 from decoded_options[0], not from itself.
10892
f6449011
UB
108932011-05-16 Uros Bizjak <ubizjak@gmail.com>
10894
10895 * config/i386/constraints.md (z): New constraint.
10896 * config/i386/i386.c (c): New mode attribute.
10897 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
10898 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
10899 constraint for operand 0.
10900 (*call_vzeroupper): Ditto.
10901 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
10902 (*call_rex64_ms_sysv_vzeroupper): Ditto.
10903 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
10904 Use "lzm" constraint for operand 0.
10905 (*call_pop_vzeroupper): Ditto.
10906 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
10907 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
10908 constraint for operand 0.
10909 (*sibcall_vzeroupper): Ditto.
10910 (*sibcall_rex64_ms_sysv): Ditto.
10911 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
10912 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
10913 *sibcall_pop_1. Use "Uz" constraint for operand 0.
10914 (*sibcall_pop_vzeroupper): Ditto.
10915 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
10916 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
10917 mode iterator. Use "<c>zm" constraint for operand 1.
10918 (*call_value_vzeroupper): Ditto.
10919 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 10920 for operand 1.
f6449011
UB
10921 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
10922 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
10923 *call_value_pop_1. Use "lzm" constraint for operand 1.
10924 (*call_value_pop_vzeroupper): Ditto.
10925 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
10926 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
10927 mode iterator. Use "Uz" constraint for operand 1.
10928 (*sibcall_value_vzeroupper): Ditto.
10929 (*sibcall_value_rex64_ms_sysv): Ditto.
10930 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
10931 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
10932 constraint for operand 1.
10933 (*sibcall_value_pop_vzeroupper): Ditto.
10934 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
10935 and "z" constraint for operand 2.
10936 (*tls_global_dynamic_32_gnu): Ditto.
10937 (*tls_local_dynamic_base_32_gnu): Ditto.
10938 (*tls_local_dynamic_base_64): Ditto.
10939 (*tls_local_dynamic_32_once): Ditto.
10940 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
10941 Update all callers.
10942 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
10943
c11b6902
RG
109442011-05-16 Richard Guenther <rguenther@suse.de>
10945
10946 * gimple.c (gimple_types_compatible_p_1): Use names of the
10947 type itself, not its main variant.
10948 (iterative_hash_gimple_type): Likewise.
10949
1e83b5f1
RG
109502011-05-16 Richard Guenther <rguenther@suse.de>
10951
f6449011
UB
10952 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
10953 always visit pointer target and function result and argument types.
1e83b5f1 10954
62e36382
JM
109552011-05-16 Jason Merrill <jason@redhat.com>
10956
10957 PR c++/48999
10958 * tree-inline.c (copy_statement_list): Put back recursion.
10959
687027a4
GJL
109602011-05-16 Georg-Johann Lay <avr@gjlay.de>
10961
10962 PR target/27663
10963 PR target/41076
10964 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
10965 * config/avr/avr.md ("*ior<mode>qi.byte0",
10966 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
10967
f24a5190
GJL
109682011-05-16 Georg-Johann Lay <avr@gjlay.de>
10969
10970 PR target/45099
10971 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
10972 register is needed for a function argument.
10973
3066f593
RG
109742011-05-16 Richard Guenther <rguenther@suse.de>
10975
10976 * gimple.c (struct type_hash_pair): New type.
10977 (type_hash_pair_compare): New function.
f6449011 10978 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 10979
b2ab2cf4
RE
109802011-05-16 Revital Eres <revital.eres@linaro.org>
10981
f6449011 10982 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 10983
dfb737fc
UB
109842011-05-15 Uros Bizjak <ubizjak@gmail.com>
10985
10986 * config/i386/i386.md (floating point move splitters): Fix
10987 usage of standard_80387_constant_p.
f6449011 10988 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 10989
8caa1de0
UB
109902011-05-15 Uros Bizjak <ubizjak@gmail.com>
10991
10992 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
10993
8a519095
EB
109942011-05-14 Eric Botcazou <ebotcazou@adacore.com>
10995
10996 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
10997 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
10998 (tree_ssa_lim_finalize): Likewise.
10999
479fecd3
UB
110002011-05-14 Uros Bizjak <ubizjak@gmail.com>
11001
11002 * config/i386/constraint.md (Yd, Yx): New register constraints.
11003 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
11004 Yd conditional register constraint.
11005 (*movtf_internal): Use standard_sse_constant_opcode.
11006 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
11007 Yx conditional register constraint.
11008 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
11009 Yd conditional register constraint. Use standard_sse_constant_p to
11010 check for valid SSE constants and call standard_sse_constant_opcode to
11011 output SSE insn.
11012 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
11013 constants and call standard_sse_constant_opcode to output SSE insn.
11014 * config/i386/i386.c (ix86_option_ovverride_internal): Set
11015 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
11016 optimize_size is set.
11017 (standard_sse_constant_opcode): Output conditional AVX insn templates.
11018
2d8c9ad5
TB
110192011-05-14 Tobias Burnus <burnus@net-b.de>
11020
11021 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
11022
411a20d6
MJ
110232011-05-13 Martin Jambor <mjambor@suse.cz>
11024
11025 * ipa-prop.c (ipa_cst_from_jfunc): New function.
11026 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
11027 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
11028 (evaluate_conditions_for_ipcp_clone): Removed.
11029 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
11030 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
11031 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
11032
dc764d10
EB
110332011-05-13 Eric Botcazou <ebotcazou@adacore.com>
11034
11035 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
11036 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
11037 lieu of MAY_HAVE_DEBUG_STMTS.
11038 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11039 debug statements if !MAY_HAVE_DEBUG_STMTS.
11040
9f47a24e
MT
110412011-05-13 Martin Thuresson <martint@google.com>
11042
11043 PR gcov-profile/47793
11044 * libgcov.c (gcov_exit): Support relative profile paths.
11045 * doc/invoke.texi (-fprofile-dir): Update for above change.
11046
b8a71aed
RG
110472011-05-13 Richard Guenther <rguenther@suse.de>
11048
11049 * gimple.c (gimple_canonical_types_compatible_p): Do not use
11050 type-pair caching, do not compare hashes.
11051
eb9f9259
NF
110522011-05-13 Nathan Froyd <froydnj@codesourcery.com>
11053
11054 PR middle-end/48965
11055 * tree-cfg.c (edge_to_cases_cleanup): Return true.
11056 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11057
3c6cbf7a
KT
110582011-05-13 Kai Tietz <ktietz@redhat.com>
11059
11060 * gimplify.c (gimplify_expr): Make sure operand is boolified.
11061 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11062 compatible type for TRUTH_NOT_EXPR.
11063
2e7f5dc0
L
110642011-05-13 H.J. Lu <hongjiu.lu@intel.com>
11065
dc764d10 11066 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
11067 (ix86_hard_regno_mode_ok): Change return value to bool. Use
11068 can_create_pseudo_p ().
11069
e834e95c
RG
110702011-05-13 Richard Guenther <rguenther@suse.de>
11071
11072 PR lto/48978
11073 * gimple.c (iterative_hash_gimple_type): Revert change in
11074 pointer target and function result and argument hashing.
11075
34203483
UB
110762011-05-13 Uros Bizjak <ubizjak@gmail.com>
11077
11078 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11079 (*movxf_internal_nointeger): Ditto.
11080 (*movdf_internal_rex64): Ditto.
11081 (*movdf_internal): Ditto.
11082 (*movdf_internal_nointeger): Ditto.
11083 (*movsf_internal): Ditto.
11084 (sincos splitters): Use can_create_pseudo ().
11085
7eb68c06
JM
110862011-05-13 Joseph Myers <joseph@codesourcery.com>
11087
11088 * config/i386/i386-opts.h: New.
11089 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11090 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11091 ix86_section_threshold): Remove.
11092 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
11093 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11094 OPT_mbranch_cost_.
11095 (ix86_option_override_internal): Don't decode strings for options
11096 other than -march=, -mtune= and -mfpmath=. Don't allow for
11097 __attribute__ uses in remaining diagnostics for options with
34203483 11098 string arguments. Don't check for integer arguments being negative.
7eb68c06 11099 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 11100 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
11101 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11102 ix86_branch_cost, ix86_section_threshold): Remove.
11103 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11104 HeaderInclude.
11105 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11106 but not Var.
11107 (masm=): Use Enum and Init.
11108 (asm_dialect): New Enum and EnumValue entries.
11109 (mbranch-cost=): Use UInteger.
11110 (mlarge-data-threshold=): Use UInteger and Init.
11111 (mcmodel=): Use Enum and Init.
11112 (cmodel): New Enum and EnumValue entries.
11113 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11114 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11115 mregparm=): Use UInteger.
11116 (mstringop-strategy=): Use Enum and Init.
11117 (stringop_alg): New Enum and EnumValue entries.
11118 (mtls-dialect=): Use Enum and Init.
11119 (tls_dialect): New Enum and EnumValue entries.
11120 (mabi=): Use Enum and Init.
11121 (calling_abi): New Enum and EnumValue entries.
11122 (mveclibabi=): Use Enum and Init.
11123 (ix86_veclibabi): New Enum and EnumValue entries.
11124
f67e203c
NC
111252011-05-13 Nick Clifton <nickc@redhat.com>
11126
34203483
UB
11127 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11128 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 11129
221df0b6
KT
111302011-05-13 Kai Tietz <ktietz@redhat.com>
11131
11132 PR middle-end/48984
11133 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11134 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11135 (gimple_boolify): Check for cast for boolean_type_node instead for
11136 BOOLEAN_TYPE.
11137
208cb8cb
RG
111382011-05-13 Richard Guenther <rguenther@suse.de>
11139
11140 PR tree-optimization/48172
11141 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11142 multiplying by number of iterations for equal step.
11143 (vect_create_cond_for_alias_checks): Likewise.
11144
b88ecf55
AS
111452011-05-13 Andreas Schwab <schwab@redhat.com>
11146
11147 * configure.ac: Use AS_HELP_STRING throughout.
11148 * configure: Regenerate.
11149
569b527e
L
111502011-05-12 H.J. Lu <hongjiu.lu@intel.com>
11151
34203483 11152 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
11153 (ix86_emit_restore_regs_using_mov): Likewise.
11154 (ix86_emit_restore_sse_regs_using_mov): Likewise.
11155
8b9a1428
AS
111562011-05-12 Anatoly Sokolov <aesok@post.ru>
11157
11158 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11159 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11160 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11161 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11162 RTX_OK_FOR_OLO10_P): ...here.
11163 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11164 SYMBOLIC_CONST.
11165
1d15f620
KT
111662011-05-12 Kai Tietz <ktietz@redhat.com>
11167
11168 * gimplify.c (gimple_boolify): Re-boolify expression
11169 arguments even if expression type is of kind BOOLEAN_TYPE.
11170 (gimplify_boolean_expr): Removed.
11171 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11172 and XOR. Additional take care that we keep expression's type.
11173 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11174 of TRUTH_AND|OR|XOR_EXPR.
11175
c2b5fc8d
JJ
111762011-05-12 Jakub Jelinek <jakub@redhat.com>
11177
11178 PR tree-optimization/48975
11179 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11180 on all bbs here and free and clear ifc_bbs at the end.
11181
61332f77
RG
111822011-05-12 Richard Guenther <rguenther@suse.de>
11183
11184 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11185 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
11186 until after simple checks.
11187 (gimple_types_compatible_p): Likewise.
11188 (iterative_hash_gimple_type): Always hash pointer targets
11189 and function return and argument types.
11190 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11191 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
11192 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11193 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
11194 completely in the simple compare section.
11195 (gimple_register_canonical_type): Query the cache again after
11196 registering.
11197
e2a3a5f1
RG
111982011-05-12 Richard Guenther <rguenther@suse.de>
11199
11200 PR tree-optimization/48172
11201 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11202 the number of iterations from the segment size calculation.
11203 (vect_create_cond_for_alias_checks): Adjust.
11204
2c703f3a
JJ
112052011-05-12 Jakub Jelinek <jakub@redhat.com>
11206
11207 PR debug/48967
11208 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11209 if validate_subreg fails.
11210
112112011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
11212
11213 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11214 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11215 early.
11216
87e91fca
DD
112172011-05-12 DJ Delorie <dj@redhat.com>
11218
d53903d6 11219 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
11220 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11221 created builtin into rx_builtins array.
11222 (rx_builtin_decl): New function.
34203483 11223 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 11224
5f2f13fd
DD
112252011-05-12 DJ Delorie <dj@redhat.com>
11226 Nick Clifton <nickc@redhat.com>
11227
11228 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11229 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11230 (rx_is_legitimate_address): Add pre-decrement and post-increment
11231 addressing in HImode and QImode. Fix test for out of range
11232 REG+INT addressing.
87e91fca 11233 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 11234 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 11235 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 11236 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 11237
57421f45
JM
112382011-05-11 Jason Merrill <jason@redhat.com>
11239
11240 * tree.c (type_hash_canon): Use struct tree_type_non_common.
11241
898c90c0
EB
112422011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11243
11244 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11245 reindent the subsequent block.
11246
79bec923
ST
112472011-05-11 Satoru Takabayashi <satorux@google.com>
11248 Paul Pluzhnikov <ppluzhnikov@google.com>
11249
34203483 11250 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
11251 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11252 * config.in: Add LINKER_HASH_STYLE.
11253 * configure.ac: Add --with-linker-hash-style.
11254 * configure: Regenerate.
79bec923 11255
d0340959
RG
112562011-05-11 Richard Guenther <rguenther@suse.de>
11257
11258 PR middle-end/48964
11259 * gimple.c (iterative_hash_canonical_type): Fix typo.
11260
cb032fee
UB
112612011-05-11 Uros Bizjak <ubizjak@gmail.com>
11262
11263 * config/i386/i386.c (legitimize_tls_address)
479fecd3 11264 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
11265 expanders directly for TARGET_GNU2_TLS. Determine pic and
11266 __tls_get_addr symbol reference here. Update call to
11267 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 11268 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
11269 expanders directly for TARGET_GNU2_TLS. Determine
11270 __tls_get_addr symbol reference here. Update call to
11271 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
11272 unique UNSPEC REG_EQUIV to libcall block.
11273 (ix86_tls_get_addr): Declare static.
11274 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11275 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11276 Do not determine pic and __tls_get_addr symbol reference here. Do not
11277 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11278 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11279 (tls_global_dynamic_64): Add operand 2. Do not determine
11280 __tls_get_addr symbol reference here. Do not call
11281 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11282 (tls_local_dynamic_base64): Ditto for operand 1.
11283
6d3cc8f0
EB
112842011-05-11 Eric Botcazou <ebotcazou@adacore.com>
11285
11286 * function.c (expand_function_start): Initialize stack_check_probe_note
11287 only if the generic stack checking mechanism is used.
11288
51e020fc
RG
112892011-05-11 Richard Guenther <rguenther@suse.de>
11290
11291 PR tree-optimization/15256
11292 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11293 (A & B) | C, combine (A op CST1) op CST2.
11294 (tree_ssa_forward_propagate_single_use_vars): Only bother to
11295 visit assigns that have uses.
11296
51545682
NF
112972011-05-11 Nathan Froyd <froydnj@codesourcery.com>
11298
cb032fee 11299 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
11300 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11301 (unpack_ts_type_common_value_fields): ...this. Update comment.
11302 (unpack_value_fields): Adjust for renaming.
11303 (lto_input_ts_type_tree_pointers): Split into...
11304 (lto_input_ts_type_common_tree_pointer): ...this and...
11305 (lto_input_ts_type_non_common_tree_pointers): ...this.
11306 (lto_input_tree_pointers): Adjust for above split.
11307 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11308 (pack_ts_type_common_value_fields): ...this. Update comment.
11309 (lto_output_ts_type_tree_pointers): Split into...
11310 (lto_output_ts_type_common_tree_pointers): ...this and...
11311 (lto_output_ts_type_non_common_tree_pointers): ...this.
11312 (lto_output_tree_pointers): Adjust for above split.
11313 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11314 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11315 * stor-layout.c (vector_type_mode): Adjust location of mode field.
11316 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11317 Define.
11318 (struct tree_type): Split into...
11319 (struct tree_type_common: ...this and...
11320 (struct tree_type_with_lang_specific): ...this and...
11321 (struct tree_type_non_common): ...this. Adjust accessor macros
11322 accordingly.
11323 (TYPE_VALUES_RAW): Define.
11324 (union tree_node): Update for above changes.
11325 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11326 TS_TYPE_NON_COMMON.
11327 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11328 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11329 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11330 * treestructu.def (TS_TYPE): Remove.
11331 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11332 Define.
11333
b03c3082
JJ
113342011-05-11 Jakub Jelinek <jakub@redhat.com>
11335
11336 PR debug/48159
11337 * tree-ssa.c (reset_debug_uses): New function.
11338 * tree-flow.h (reset_debug_uses): New prototype.
11339 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11340 * tree-loop-distribution.c (generate_loops_for_partition): Call
11341 reset_debug_uses on the stmts that will be removed. Keep around
11342 all debug stmts, don't count them as bits in partition bitmap.
11343 (generate_builtin): Don't count debug stmts or labels as bits in
11344 partition bitmap.
11345
b5e04de5
RG
113462011-05-11 Richard Guenther <rguenther@suse.de>
11347
11348 * gimple.c (gimple_type_hash_1): Merge with ...
11349 (gimple_type_hash): ... this.
11350 (gtc_visit): Remove mode parameter and simplify accordingly.
11351 (gimple_types_compatible_p_1): Likewise.
11352 (gimple_types_compatible_p): Likewise.
11353 (iterative_hash_gimple_type): Likewise.
11354 (visit): Likewise.
11355 (gimple_type_eq): Adjust.
11356
fc6970e4
RE
113572011-05-11 Revital Eres <revital.eres@linaro.org>
11358
11359 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11360 enters the branch create an anti edge in the opposite direction
11361 to prevent the creation of reg-moves.
11362 * modulo-sched.c: Adjust comment to reflect the fact we are
11363 scheduling closing branch.
11364 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11365 (stage_count): New field in struct partial_schedule.
11366 (calculate_stage_count): New function.
11367 (normalize_sched_times): Rename to reset_sched_times and handle
11368 incrementing the sched time of the nodes by a constant value
11369 passed as parameter.
11370 (duplicate_insns_of_cycles): Skip closing branch.
11371 (sms_schedule_by_order): Schedule closing branch.
11372 (ps_insn_find_column): Handle closing branch.
11373 (sms_schedule): Call reset_sched_times and adjust the code to
11374 support scheduling of the closing branch.
11375 (ps_insert_empty_row): Update calls to normalize_sched_times
11376 and rotate_partial_schedule functions.
11377
41a58a92
RG
113782011-05-11 Richard Guenther <rguenther@suse.de>
11379
11380 PR middle-end/48953
11381 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11382
e9f8dcf9
JM
113832011-05-11 Joseph Myers <joseph@codesourcery.com>
11384
cb032fee
UB
11385 * opts.c (finish_options): Move warning settings from process_options.
11386 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 11387
10c224a9
RG
113882011-05-11 Richard Guenther <rguenther@suse.de>
11389
11390 PR tree-optimization/18041
11391 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11392 (simplify_bitwise_binary): ... this. Handle operand conversions
11393 by applying them to the result instead.
11394 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
11395
825b27de
RG
113962011-05-11 Richard Guenther <rguenther@suse.de>
11397
11398 * gimple.c (gimple_canonical_types_compatible_p): Split out
11399 from gimple_types_compatible_p and friends. Do not recurse
11400 to pointed-to types.
11401 (gimple_canonical_type_eq): Use it.
11402 (iterative_hash_canonical_type): Split out from
11403 iterative_hash_gimple_type and friends. Do not recurse
11404 to pointed-to types.
11405 (gimple_canonical_type_hash): Use it, allocate the hash here.
11406
ca756625
RE
114072011-05-11 Revital Eres <revital.eres@linaro.org>
11408
11409 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11410 recognizing doloop.
11411
b8abece3
RE
114122011-05-11 Revital Eres <revital.eres@linaro.org>
11413
11414 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11415 instead of PREV_INSN.
11416
ce7b3761
RE
114172011-05-11 Revital Eres <revital.eres@linaro.org>
11418
11419 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11420 * loop-doloop.c (doloop_condition_get): Likewise.
11421 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11422 (doloop_end): New.
11423 * config/arm/arm.md (*addsi3_compare0): Remove "*".
11424
a9dc9d37
NF
114252011-05-10 Nathan Froyd <froydnj@codesourcery.com>
11426
11427 * tree.def (CASE_LABEL_EXPR): Add an operand.
11428 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11429
96703596
JM
114302011-05-10 Joseph Myers <joseph@codesourcery.com>
11431
11432 * c-decl.c (c_override_global_bindings_to_false): Remove.
11433 (global_bindings_p): Don't check
11434 c_override_global_bindings_to_false.
11435 * c-tree.h (c_override_global_bindings_to_false): Remove.
11436 * c-typeck.c (composite_type): Don't set
11437 c_override_global_bindings_to_false.
11438
dbcc9f08
MM
114392011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
11440
11441 PR target/48857, 48495
11442 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11443 (VSX_MODE): Ditto.
11444 (VSX_MOVE_MODE): Ditto.
11445 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11446 VSX vector types. Add V2DImode.
11447 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11448 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11449 (MODES_TIEABLE_P): Ditto.
11450
11451 * config/rs6000/rs6000.c (rs6000_emit_move): Use
11452 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11453 VSX_VECTOR_MODE.
11454 (init_cumulative_args): Ditto.
11455 (rs6000_function_arg_boundary): Ditto.
11456 (rs6000_function_arg_advance_1): Ditto.
11457 (rs6000_function_arg): Ditto.
11458 (rs6000_function_ok_for_sibcall): Ditto.
11459 (emit_frame_save): Ditto.
11460 (rs6000_function_value): Ditto.
11461 (rs6000_libcall_value): Ditto.
11462
4a68b4ca
JM
114632011-05-10 Joseph Myers <joseph@codesourcery.com>
11464
11465 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11466 i386/darwin-lib.h to $libgcc_tm_file.
11467 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11468
bcb521e9
JM
114692011-05-10 Joseph Myers <joseph@codesourcery.com>
11470
11471 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11472
f10d3ac9
JM
114732011-05-10 Joseph Myers <joseph@codesourcery.com>
11474
cb032fee 11475 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
11476 * config/rs6000/rs6000-tables.opt: New file (generated).
11477 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11478 rs6000/rs6000-tables.opt to extra_options.
11479 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11480 * config/rs6000/rs6000.c (rs6000_select): Remove.
11481 (processor_target_table): Move contents to rs6000-cpus.def.
11482 (darwin_rs6000_override_options): Check
11483 global_options_set.x_rs6000_cpu_index instead of
11484 rs6000_select[1].string.
11485 (rs6000_option_override_internal): Likewise.
11486 (rs6000_handle_option): Don't assert that global structures are in
11487 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
11488 (rs6000_default_cpu): New variable.
11489 (rs6000_file_start): Set it instead of local default_cpu. Check
11490 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11491 global_options_set.x_rs6000_tune_index instead of rs6000_select.
11492 (rs6000_darwin_file_start): Check rs6000_default_cpu and
11493 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11494 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11495 rs6000_select): Remove.
11496 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11497 Remove.
11498 (mcpu=, mtune=): Use Var, Init, Enum and Save.
11499 * config/rs6000/t-rs6000
11500 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11501 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11502 global_options_set.x_rs6000_cpu_index instead of
11503 rs6000_select[1].string.
11504 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11505 global_options_set.x_rs6000_cpu_index instead of
11506 rs6000_select[1].string.
11507
80cf2e08
JM
115082011-05-10 Joseph Myers <joseph@codesourcery.com>
11509
11510 * config.gcc (libgcc_tm_file): Define instead of including files
11511 from ../../libgcc/config/ in tm_file.
cb032fee 11512 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
11513 * configure: Regenerate.
11514 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11515 libgcc_tm.h, cs-libgcc_tm.h): New.
11516 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11517 (clean): Remove libgcc_tm.h.
11518 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11519 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11520 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11521
fd01a351
GJL
115222011-05-10 Georg-Johann Lay <avr@gjlay.de>
11523
11524 PR target/48896
11525 * config/avr/avr.c (avr_ret_register): Return unsigned int
11526 instead of int.
11527 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11528 it to avr_libcall_value.
11529 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11530 expand_expr.
11531 (avr_expand_binop_builtin): Ditto.
11532 (avr_expand_unop_builtin): Ditto.
11533
34cc3c86
DD
115342011-05-10 DJ Delorie <dj@redhat.com>
11535
11536 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11537 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11538 * config/rx/rx.c (rx_align_for_label): Add label and
11539 uses_threshold parameters. Do not align when the label is not
11540 used enough.
11541 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11542
be173289
RG
115432011-05-10 Richard Guenther <rguenther@suse.de>
11544
11545 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11546 a series of conversions and apply foldings similar to what
11547 fold-const does.
11548 (tree_ssa_forward_propagate_single_use_vars): Call it.
11549
e7f78021
JJ
115502011-05-10 Jakub Jelinek <jakub@redhat.com>
11551
6ae70ea2
JJ
11552 PR tree-optimization/48611
11553 PR tree-optimization/48794
11554 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11555 referenced from RESX or EH_DISPATCH arguments.
11556
e7f78021
JJ
11557 PR debug/48928
11558 * dfp.c (decimal_to_decnumber): Handle conversion from
11559 dconst{1,2,m1,half}.
11560
fca132b9
UB
115612011-05-09 Uros Bizjak <ubizjak@gmail.com>
11562
11563 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11564 for !flag_prefer_avx128.
11565 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11566
e4c03378
EB
115672011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11568
11569 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11570 (fold_ternary_loc): Use expr_location_or.
11571
805d6a75
L
115722011-05-09 H.J. Lu <hongjiu.lu@intel.com>
11573
11574 PR debug/48853
11575 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11576 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11577 Pmode and mem_mode is not VOIDmode.
11578
e4c03378 115792011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 11580
e4c03378
EB
11581 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11582 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 11583
51e7f377
UB
115842011-05-09 Uros Bizjak <ubizjak@gmail.com>
11585
11586 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11587 (const_pow2_1_to_8_operand): Ditto.
11588 (const_pow2_1_to_128_operand): Ditto.
11589 (const_pow2_1_to_32768_operand): Ditto.
11590 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11591 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
11592 in insn constraint to check integer value of operand 3.
11593 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11594
11595 (PINSR_MODE): New mode iterator.
11596 (sse2p4_1): New mode attribute.
11597 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11598 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11599 iterator. Use const_int_operand instead of
11600 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
11601 exact_log2 in insn constraint to check integer value of operand 3.
11602
116032011-05-09 Uros Bizjak <ubizjak@gmail.com>
11604
11605 * config/i386/sse.md (blendbits): Remove mode attribute.
11606 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11607 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11608 Check integer value of operand 3 in insn constraint.
11609
0ca8de87
RG
116102011-05-09 Richard Guenther <rguenther@suse.de>
11611
11612 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11613 for diagnostics.
11614 (lto_symtab_merge): Likewise. Do not register types here.
11615 (lto_symtab_merge_decls_2): Likewise.
11616 (lto_symtab_merge_decls_1): Likewise.
11617 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11618 * gimple.c (enum gtc_mode): Declare.
11619 (gimple_types_compatible_p): Make static.
11620
a9e6994a
AK
116212011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11622
11623 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11624 temporary register to match Pmode.
11625
fb55d62e
UB
116262011-05-09 Uros Bizjak <ubizjak@gmail.com>
11627
11628 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11629 and *vec_concatv4si_1_avx.
11630
eb1485a6
UB
116312011-05-09 Uros Bizjak <ubizjak@gmail.com>
11632
11633 PR rtl-optimization/48927
11634 * ira-conflicts.c (commutative_constraint_p): Use
11635 recog_data.alternative_enabled_p to disable alternatives where
11636 "enabled" attribute is false.
11637 (get_dup_num): Ditto.
11638 * ira-lives.c (single_reg_class): Ditto.
11639 (ira_implicitly_set_insn_hard_regs): Ditto.
11640
c46d001a
EB
116412011-05-09 Eric Botcazou <ebotcazou@adacore.com>
11642
11643 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11644 (dataflow_set_preserve_mem_locs): Likewise.
11645
116462011-05-09 Philipp Thomas <pth@suse.de>
11647
6d9e7c41
PT
11648 * config/mep/mep.c (mep_validate_vliw): Syntax description
11649 should not be translated.
11650
d371df6f
JM
116512011-05-09 Joseph Myers <joseph@codesourcery.com>
11652
11653 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11654 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 11655 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
11656 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11657 MIPS_ARCH_OPTION_NATIVE): Define.
11658 * config/mips/mips.c (mips_cpu_info_table): Move contents to
11659 mips-cpus.def.
11660 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11661 mips_parse_cpu): Remove.
11662 (mips_cpu_info_from_opt, mips_default_arch): New.
11663 (mips_handle_option): Don't assert that global structures are in
11664 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11665 (mips_option_override): Use new variables and functions to set
eb1485a6 11666 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
11667 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11668 definition.
11669 * config/mips/mips.opt (march=): Use ToLower and Enum.
11670 (mips): Use ToLower, Enum and Var.
11671 (mtune=): Use ToLower and Enum.
11672 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11673
4fc07af9
JH
116742011-05-08 Jan Hubicka <jh@suse.cz>
11675
11676 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11677 Arrange type pairs to be UID ordered.
11678 (gimple_lookup_type_leader): Make inline.
11679
2cf320a8
NC
116802011-05-09 Nick Clifton <nickc@redhat.com>
11681
61d6def5
NC
11682 PR target/48899
11683 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
11684 PROCESSOR_DEFAULT.
11685
2cf320a8
NC
11686 PR target/48897
11687 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
11688 variable 's'.
11689
4f82319d
CLT
116902011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
11691
11692 * combine.c (simplify_comparison): Abstract out parts into...
11693 (simplify_compare_const): ... new function.
11694 (try_combine): Generalize parallel arithmetic/compare combining
11695 to call simplify_compare_const() and CANONICALIZE_COMPARE().
11696
74605a11
JH
116972011-05-08 Jan Hubicka <jh@suse.cz>
11698
11699 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
11700 (cgraph_create_virtual_clone): Call hooks once virtual clone
11701 is finished.
74605a11 11702 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
11703 * ipa-cp.c (ipcp_estimate_growth): Use
11704 estimate_ipcp_clone_size_and_time.
74605a11
JH
11705 * ipa-inline-transform.c (clone_inlined_nodes): Update.
11706 * lto-cgraph.c (input_node): Update.
11707 * ipa-inline.c (recursive_inlining): Update.
11708 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
11709 (evaluate_conditions_for_known_args): Break out from ...
11710 (evaluate_conditions_for_edge): ... here.
11711 (evaluate_conditions_for_ipcp_clone): New function.
11712 (inline_node_duplication_hook): Update clone summary based
11713 on parameter map.
11714 (estimate_callee_size_and_time): Rename to ...
11715 (estimate_node_size_and_time): take NODE instead of EDGE;
11716 take POSSIBLE_TRUTHS as argument.
11717 (estimate_callee_size_and_time): Update.
11718 (estimate_ipcp_clone_size_and_time): New function.
11719 (do_estimate_edge_time): Update.
11720
5c049507
RG
117212011-05-08 Richard Guenther <rguenther@suse.de>
11722
11723 PR middle-end/48908
11724 PR middle-end/48905
11725 * expmed.c (expand_shift_1): Compute adjusted constant shift
11726 amount manually.
11727
f64c36ba
EB
117282011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11729
11730 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
11731
c461a957
EB
117322011-05-08 Eric Botcazou <ebotcazou@adacore.com>
11733
11734 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
11735
7c74e556
JW
117362011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
11737
11738 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
11739
b4c0a884
JH
117402011-05-07 Jan Hubicka <jh@suse.cz>
11741
a9bcb3f0
EB
11742 * ipa-inline-transform.c (inline_call): Account when program size
11743 decreases.
b4c0a884 11744 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
11745 (edge_badness): Reorganize to be power 2 based; fix thinko when
11746 computing badness for negative growth; update comments to match
11747 reality; better dumps.
b4c0a884 11748
c99c0026
EB
117492011-05-07 Eric Botcazou <ebotcazou@adacore.com>
11750
11751 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
11752 type to bool and adjust comment.
11753 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
11754 (fold_mathfn_compare): Remove calls to global_bindings_p.
11755 (fold_inf_compare): Likewise.
11756 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
11757 * c-tree.h (global_bindings_p): Adjust prototype.
11758 * c-decl.c (global_bindings_p): Return bool and simplify.
11759
1400c8e5
ZD
117602011-05-07 Zdenek Dvorak <ook@ucw.cz>
11761
11762 PR tree-optimization/48837
11763 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
11764 when accumulator transformation is performed.
11765
5d0878e7
JH
117662011-05-06 Jan Hubicka <jh@suse.cz>
11767
a9bcb3f0
EB
11768 * i386.h (ix86_tune_indices): Add
11769 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 11770 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
11771 * i386.c (initial_ix86_tune_features): Add
11772 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
11773 (software_prefetching_beneficial_p): Remove predicate.
11774 (ix86_option_override_internal): Use new macro.
11775
58696ce5
JH
117762011-05-06 Jan Hubicka <jh@suse.cz>
11777
11778 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
11779
c47d0034
JH
117802011-05-06 Jan Hubicka <jh@suse.cz>
11781
11782 * cgraph.c (cgraph_add_thunk): Create real function node instead
11783 of alias node; finalize it and mark needed/reachale; arrange visibility
11784 to be right and add it into the corresponding same comdat group list.
11785 (dump_cgraph_node): Dump thunks.
11786 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
11787 cgraph_function_with_gimple_body_p,
11788 cgraph_first_function_with_gimple_body,
c47d0034
JH
11789 cgraph_next_function_with_gimple_body): New functions.
11790 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
11791 New macros.
11792 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
11793 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11794 * cgraphunit.c (cgraph_finalize_function): Only look into possible
11795 devirtualization when optimizing.
11796 (verify_cgraph_node): Verify thunks.
11797 (cgraph_analyze_function): Analyze thunks.
11798 (cgraph_mark_functions_to_output): Output thunks only in combination
11799 with function they are assigned to.
11800 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
11801 alias into normal node.
11802 (assemble_thunks): New functoin.
11803 (cgraph_expand_function): Use it.
11804 * lto-cgraph.c (lto_output_node): Stream thunks.
11805 (input_overwrite_node): Stream in thunks.
11806 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
11807 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
11808 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
11809 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
11810 (inline_analyze_function): Do not care about thunk jump functions.
11811 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
11812 * ipa-prop.c (ipa_prop_write_jump_functions): Use
11813 cgraph_function_with_gimple_body_p.
11814 * passes.c (do_per_function_toporder): Use
11815 cgraph_function_with_gimple_body_p.
c47d0034
JH
11816 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
11817 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
11818 (function_called_by_processed_nodes_p): Likewise.
11819
d8f426ec
JM
118202011-05-06 Joseph Myers <joseph@codesourcery.com>
11821
11822 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
11823 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
11824 entries.
11825 (mabi=): Replace with separate entries for mabi=altivec,
11826 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
11827 mabi=ieeelongdouble and mabi=ibmlongdouble.
11828 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
11829 check for -mabi=spe without SPE ABI support here.
11830 (rs6000_handle_option): Replace OPT_mabi_ handling with
11831 OPT_mabi_altivec and OPT_mabi_spe handling.
11832
80bde45b
CC
118332011-05-06 Cary Coutant <ccoutant@google.com>
11834
11835 * dwarf2out.c (contains_subprogram_definition): New function.
11836 (should_move_die_to_comdat): Call it.
11837
a91926b9
JL
118382011-05-06 Jeff Law <law@redhat.com>
11839
11840 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
11841 remove_ctrl_stmt_and_useless_edges.
11842 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
11843 (fixup_template_block, thread_single_edge): Likewise.
11844 (mark_threaded_blocks): Use THREAD_TARGET.
11845
1fc1b66d
AM
118462011-05-06 Alan Modra <amodra@gmail.com>
11847
11848 PR target/48900
11849 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
11850 const0_rtx as the arg to the dummy __tls_get_addr libcall.
11851
e194de64
UB
118522011-05-06 Uros Bizjak <ubizjak@gmail.com>
11853
11854 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
11855 constraint modifier to "r".
11856
d740dc9e
JM
118572011-05-06 Joseph Myers <joseph@codesourcery.com>
11858
11859 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
11860 fall through for OPT_mcmodel_.
11861
cab78b15
AK
118622011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11863
11864 * config/s390/s390.c (s390_asm_trampoline_template): Comment
11865 instruction sizes.
e194de64 11866 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 11867
ee6824ae
RR
118682011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11869
eb1485a6
UB
11870 PR target/47930
11871 * config/arm/arm.opt (marm): Document it.
11872 (mthumb): Reject negative variant.
ee6824ae 11873
9ef58464
UB
118742011-05-06 Uros Bizjak <ubizjak@gmail.com>
11875
11876 PR target/48898
11877 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
11878 Fix typo in "ccvt" variable name.
11879
155b6176
TG
118802011-05-06 Tristan Gingold <gingold@adacore.com>
11881
11882 PR target/48895
11883 * config/vms/vms-ar.c (main): Remove cwd variable.
11884
3becc47b
JJ
118852011-05-06 Jakub Jelinek <jakub@redhat.com>
11886
11887 PR debug/48902
11888 * var-tracking.c (prepare_call_arguments): Move else before #endif.
11889
3d528853
NF
118902011-05-05 Nathan Froyd <froydnj@codesourcery.com>
11891
11892 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
11893 * gimplify.c (gimplify_switch_expr): Likewise.
11894 * omp-low.c (expand_omp_sections): Likewise.
11895 * tree-eh.c (lower_try_finally_switch): Likewise.
11896 (lower_eh_dispatch): Likewise.
11897 * tree.h (build_case_label): Declare.
11898 * tree.c (build_case_label): Define.
11899
deb5046b
JM
119002011-05-05 Jason Merrill <jason@redhat.com>
11901
11902 PR c++/40975
11903 * tree-inline.c (copy_tree_r): Use copy_statement_list.
11904 (copy_statement_list): Don't recurse.
11905 * stor-layout.c (copy_self_referential_tree_r): Don't allow
11906 STATEMENT_LIST.
11907
013c0411
JM
119082011-05-05 Joseph Myers <joseph@codesourcery.com>
11909
11910 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
11911 through from -mfpu= handling.
11912 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
11913
a0905f8b
BS
119142011-05-05 Bernd Schmidt <bernds@codesourcery.com>
11915
11916 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
11917 POST_MODIFY.
11918
fc4538e4
SE
119192011-05-05 Steve Ellcey <sje@cup.hp.com>
11920
11921 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
11922 for 11.31.
11923 (hppa[12]*-*-hpux11*): Ditto.
11924 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
11925 * config/ia64/hpux-unix2003.h: New.
11926 * config/pa/pa-hpux1131.opt: New.
11927 * config/pa/pa-hpux1131.h: New.
11928 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
11929 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 11930 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 11931
1e30c578
JJ
119322011-05-05 Jakub Jelinek <jakub@redhat.com>
11933
11934 PR debug/48853
11935 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
11936 instead of mode as 3rd argument to recursive call.
11937 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
11938 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
11939 VOIDmode.
11940 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
11941 don't give up if mode is Pmode and mem_mode is not VOIDmode.
11942 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
11943 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
11944
d19eb620
JB
119452011-05-05 Julian Brown <julian@codesourcery.com>
11946
11947 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
11948 parenthesis in D-register case.
11949
c860fe8c
JM
119502011-05-05 Joseph Myers <joseph@codesourcery.com>
11951
11952 * opt-functions.awk (var_type_struct): Handle Enum options.
11953 * optc-gen.awk: Don't check range of variables of character type.
11954 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
11955 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
11956 rs6000_sdata_name, rs6000_explicit_options): Remove.
11957 (rs6000_option_override_internal): Check for -malign-power here.
11958 Use global_options_set instead of rs6000_explicit_options.
11959 (rs6000_parse_fpu_option): Remove.
11960 (rs6000_handle_option): Access variables via opts and opts_set
11961 pointers. Use error_at and warning_at. Add fall-through
11962 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
11963 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
11964 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
11965 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
11966 here. Don't use rs6000_parse_fpu_option.
11967 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
11968 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
11969 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
11970 (mrecip=): Use Var.
11971 (mspe): Use Var and Save.
11972 (mtraceback=): Use Enum and Var.
11973 (rs6000_traceback_type): New Enum and EnumValue entries.
11974 (mfloat-gprs=): Use Enum, Var and Save.
11975 (rs6000_float_gprs): New Enum and EnumValue entries.
11976 (mlong-double-): use Var and Save.
11977 (msched-costly-dep=, minsert-sched-nops=): Use Var.
11978 (malign-): Use Enum and Var.
11979 (rs6000_alignment_flags): New Enum and EnumValue entries.
11980 (mfpu=): Use Enum.
11981 (fpu_type_t): New Enum and EnumValue entries.
11982 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11983 global_options_set instead of rs6000_explicit_options.
11984 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11985 global_options_set instead of rs6000_explicit_options.
11986 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11987 global_options_set instead of rs6000_explicit_options.
11988 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
11989 global_options_set instead of rs6000_explicit_options.
11990 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
11991 global_options_set instead of rs6000_explicit_options.
11992 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11993 global_options_set instead of rs6000_explicit_options.
11994 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
11995 definition.
11996 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
11997 global_options_set instead of rs6000_explicit_options.
11998 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
11999 (rs6000_cmodel): New Enum and EnumValue entries.
12000 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12001 global_options_set instead of rs6000_explicit_options.
12002 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
12003 (mtls-size=): Use Enum and Var.
12004 (rs6000_tls_size): New Enum and EnumValue entries.
12005
0691dde9
MM
120062011-05-05 Michael Matz <matz@suse.de>
12007
12008 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
12009 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
12010 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
12011 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
12012 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
12013 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
12014 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
12015 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
12016 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
12017 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
12018 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
12019 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
12020 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
12021 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
12022 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
12023 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
12024
86529a49
RG
120252011-05-05 Richard Guenther <rguenther@suse.de>
12026
12027 * expmed.c (expand_variable_shift): Rename to ...
12028 (expand_shift_1): ... this. Take an expanded shift amount.
12029 For rotates recurse directly not building trees for the shift amount.
12030 (expand_variable_shift): Wrap around expand_shift_1.
12031 (expand_shift): Adjust.
12032
d0228c2e
JJ
120332011-05-05 Jakub Jelinek <jakub@redhat.com>
12034
12035 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
12036
907a08d9
EB
120372011-05-05 Eric Botcazou <ebotcazou@adacore.com>
12038
12039 * tree.h (get_pending_sizes): Remove prototype.
12040 (put_pending_size): Likewise.
12041 (put_pending_sizes): Likewise.
12042 * stor-layout.c (pending_sizes): Delete.
12043 (get_pending_sizes): Likewise.
12044 (put_pending_size): Likewise.
12045 (put_pending_sizes): Likewise.
12046 (variable_size): Do not call put_pending_size and tidy up.
12047 * function.h (struct function): Remove dont_save_pending_sizes_p.
12048 * lto-streamer-in.c (input_function): Do not stream it.
12049 * lto-streamer-out.c (output_function): Likewise.
12050 * tree-inline.c (initialize_cfun): Do not copy it.
12051 * c-decl.c (store_parm_decls): Do not set it.
12052 * omp-low.c (create_task_copyfn): Likewise.
12053 * tree-optimize.c (tree_rest_of_compilation): Likewise.
12054
386d9c57
UB
120552011-05-05 Uros Bizjak <ubizjak@gmail.com>
12056
12057 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12058 conditions.
12059 (*movdf_internal): Ditto.
12060 (*movdf_internal_nointeger): Ditto.
12061 (*movsf_internal): Ditto.
12062
a04a722b
JM
120632011-05-05 Joseph Myers <joseph@codesourcery.com>
12064
12065 * c-decl.c (finish_decl): Don't call get_pending_sizes.
12066 (grokparm): Add parameter expr. Pass it to grokdeclarator.
12067 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
12068 (c_variable_size): Remove.
12069 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
12070 call put_pending_sizes.
12071 (get_parm_info): Add parameter expr. Use it to set
12072 arg_info->pending_sizes.
12073 (store_parm_decls): Use arg_info->pending_sizes instead or calling
12074 get_pending_sizes.
12075 * c-parser.c (c_parser_parms_declarator): Update call to
12076 c_parser_parms_list_declarator.
12077 (c_parser_parms_list_declarator): Take parameter expr. Update
12078 call to push_parm_decl. Update recursive call. Don't call
12079 get_pending_sizes. Update calls to get_parm_info.
12080 (c_parser_objc_method_definition): Update calls to
12081 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 12082 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
12083 (c_parser_objc_method_decl): Add parameter expr. Update call to
12084 grokparm.
386d9c57 12085 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
12086 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12087 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12088
c92a6f97
MH
120892011-05-05 Michael Hope <michael.hope@linaro.org>
12090
386d9c57
UB
12091 PR pch/45979
12092 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12093 __ARM_EABI__ hosts.
c92a6f97 12094
07ea0048
UW
120952011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12096
12097 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12098 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12099 (spu_output_mi_thunk): New function.
12100
d634bfa1
RO
121012011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12102
12103 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12104 targetm.asm_out.print_operand.
12105 * config/sol2.c: Include target.h.
12106
40fda55b
JH
121072011-05-04 Jan Hubicka <jh@suse.cz>
12108
12109 * ipa-inline.c (reset_edge_caches): New function.
12110 (update_caller_keys): Add check_inlinablity_for; do not
12111 reset edge caches; remove now unnecesary loop.
386d9c57 12112 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
12113 (update_all_callee_keys): Likewise.
12114 (inline_small_functions): Sanity check cache; update code
12115 recomputing it.
12116
0360f70d
BS
121172011-05-04 Bernd Schmidt <bernds@codesourcery.com>
12118
12119 PR rtl-optimization/47612
12120 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12121 as the last insn of the sequence to be moved.
12122
7a994646
TB
121232011-05-04 Tobias Burnus <burnus@net-b.de>
12124
12125 PR fortran/48864
12126 * doc/invoke.texi (Ofast): Document that it
12127 enables Fortran's -fno-protect-parens.
12128
7a2f7208
UB
121292011-05-04 Uros Bizjak <ubizjak@gmail.com>
12130
12131 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12132
a2d42931
EB
121332011-05-04 Eric Botcazou <ebotcazou@adacore.com>
12134
12135 * stor-layout.c (variable_size): Do not issue errors.
12136
f81b1a3d
RG
121372011-05-04 Richard Guenther <rguenther@suse.de>
12138
12139 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12140 for array-ref indices.
12141 (tree_coverage_counter_addr): Likewise.
12142 (build_fn_info_type): Use size_int for index types.
12143 (build_gcov_info): Likewise.
12144
c62c040f
RG
121452011-05-04 Richard Guenther <rguenther@suse.de>
12146
12147 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12148 to build_int_cst.
12149 * c-typeck.c (really_start_incremental_init): Use bitsize_int
12150 for constructor indices.
12151 (push_init_level): Likewise.
12152
1e3287d0
RG
121532011-05-04 Richard Guenther <rguenther@suse.de>
12154
12155 * explow.c (promote_mode): Move variable declarations before code.
12156
6c32445b
NF
121572011-05-04 Nathan Froyd <froydnj@codesourcery.com>
12158
12159 * tree.h (build_function_type_array): Declare.
12160 (build_varargs_function_type_array): Declare.
12161 (build_function_type_vec, build_varargs_function_type_vec): Define.
12162 * tree.c (build_function_type_array_1): New function.
12163 (build_function_type_array): New function.
12164 (build_varargs_function_type_array): New function.
12165
fdabf269
RS
121662011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
12167
12168 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12169 before setting STMT_VINFO_TYPE.
12170
a207915a
UW
121712011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12172
12173 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12174 instead of spu_pass_by_reference.
12175
5e617be8
AK
121762011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12177
12178 * calls.c (emit_library_call_value_1): Invoke
12179 promote_function_mode hook on libcall arguments.
12180 * explow.c (promote_function_mode, promote_mode): Handle TYPE
12181 argument being NULL.
12182 * targhooks.c (default_promote_function_mode): Lisewise.
12183 * config/s390/s390.c (s390_promote_function_mode): Likewise.
12184 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12185
12186 * doc/tm.texi: Document that TYPE argument might be NULL.
12187
486d04be
SH
121882011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12189
12190 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12191
9b19b026
SH
121922011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12193
12194 From Bernd Schmidt
12195 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12196
502bc3df
RO
121972011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12198
12199 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12200 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12201 Move ...
12202 * mips-tfile.c: ... here.
12203 Don't include coretypes.h, tm.h, filenames.h.
12204 (saber_stop): Remove definition and all calls.
12205 [__SABER__]: Remove.
12206 (__LINE__): Remove default.
12207 (Size_t, Ptrdiff_t): Remove definitions.
12208 Replace by size_t, ptrdiff_t.
12209 [!MIPS_DEBUGGING_INFO]: Remove.
12210 (SHASH_SIZE, THASH_SIZE): Remove defaults.
12211 (progname): Add const.
12212 (STATIC): Remove.
12213 Replace all uses by static.
12214 (ALIGN_SYMTABLE_OFFSET): Remove default.
12215 * mips-tdump.c: Don't include coretypes.h, tm.h.
12216 Remove !MIPS_IS_STAB guard.
12217 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12218 $(TM_H), filenames.h dependencies.
12219 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12220
991eb6ef
SH
122212011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12222
12223 From Jie Zhang
12224 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12225 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12226
420ccc84
SH
122272011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12228
12229 From Bernd Schmidt
12230 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12231 account and save/restore RETS.
12232 (PROFILE_BEFORE_PROLOGUE): Define.
12233 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
12234 the push insn to use predecrement.
12235
9f8d69ee
SH
122362011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
12237
12238 From Jie Zhang
12239 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12240
662c03f4
NC
122412011-05-04 Nick Clifton <nickc@redhat.com>
12242
12243 * config/mn10300/mn10300.c: Include cfgloop.h.
12244 (DUMP): New macro.
12245 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
12246 Lcc or a FLcc insn into the instruction stream.
12247 (mn10300_block_contains_call): New function. Returns true if the
12248 given basic block contains a CALL insn.
12249 (mn10300_loop_contains_call_insn): New function. Returns true if
12250 the given loop contains a CALL insn.
12251 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
12252 to use the SETLB and Lcc or FLcc insns.
12253 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12254 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12255 * config/mn10300/mn10300.opt (msetlb): New option. Used to
12256 disable the SETLB optimization.
12257 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12258 __SETLB__ or __NO_SETLB__.
12259 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12260 (movsf_internal): Handle MDR register.
12261 (cmpsi): Make visible.
12262 (setlb): New pattern.
12263 (Lcc): New pattern.
12264 (FLcc): New pattern.
12265
843b6915
UB
122662011-05-04 Uros Bizjak <ubizjak@gmail.com>
12267
12268 PR target/48860
12269 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12270 for reg<->xmm moves.
12271 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12272 (vec_concatv2di_rex64_sse): Ditto.
12273 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12274 (*vec_extractv2di_1_rex64): Ditto.
12275
12276 Revert:
12277 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
12278
12279 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12280 reg<->xmm moves.
12281 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12282
d35936ab
RG
122832011-05-04 Richard Guenther <rguenther@suse.de>
12284
12285 * tree.h (int_const_binop): Remove notrunc argument.
12286 * fold-const.c (int_const_binop): Remove notrunc argument. Always
12287 create integer constants that are properly truncated.
12288 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12289 (const_binop): Remove zero notrunc argument to int_const_binop.
12290 (size_binop_loc): Likewise.
12291 (fold_div_compare): Likewise.
12292 (maybe_canonicalize_comparison_1): Likewise.
12293 (fold_comparison): Likewise.
12294 (fold_binary_loc): Likewise.
12295 (multiple_of_p): Likewise.
12296 * expr.c (store_constructor): Likewise.
12297 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12298 (maybe_fold_stmt_addition): Likewise.
12299 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12300 * stor-layout.c (layout_type): Likewise.
12301 * tree-data-ref.c (tree_fold_divides_p): Likewise.
12302 * tree-sra.c (build_ref_for_offset): Likewise.
12303 (build_user_friendly_ref_for_offset): Likewise.
12304 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12305 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12306 * tree-ssa-loop-niter.c (inverse): Likewise.
12307 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12308 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12309 * tree-switch-conversion.c (check_range): Likewise.
12310 (build_constructors): Likewise.
12311 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12312 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12313 (extract_range_from_assert): Likewise.
12314 (vrp_int_const_binop): Likewise.
12315 (extract_range_from_binary_expr): Likewise.
12316 (extract_range_from_unary_expr): Likewise.
12317 (check_array_ref): Likewise.
12318 (find_case_label_range): Likewise.
12319 (simplify_div_or_mod_using_ranges): Likewise.
12320 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12321 comparing case labels for merging.
12322
8992c063
MW
123232011-05-03 Mark Wielaard <mjw@redhat.com>
12324
12325 * dwarf2out.c (debug_str_hash_forced): Removed.
12326 (gen_label_for_indirect_string): Removed.
12327 (get_debug_string_label): Removed.
12328 (AT_string_form): Generate label directly.
12329 (output_indirect_string): Test indirect_string_node for
12330 DW_FORM_strp instead of checking label and refcount.
12331 (prune_indirect_string): Removed.
12332 (prune_unused_types): Don't check debug_str_hash_forced or
12333 call prune_indirect_string.
12334
4868e6ea
AO
123352011-05-04 Alexandre Oliva <aoliva@redhat.com>
12336
12337 PR other/48093
12338 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12339
01a5c0ab
AO
123402011-05-04 Alexandre Oliva <aoliva@redhat.com>
12341
12342 PR debug/47994
12343 PR debug/47919
12344 * combine.c (try_combine): Skip debug insns at m_split tests.
12345
6ac00218
MW
123462011-04-26 Mark Wielaard <mjw@redhat.com>
12347
12348 PR42288
12349 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12350 when info_section_emitted.
12351
3af42a7b
JM
123522011-05-03 Joseph Myers <joseph@codesourcery.com>
12353
12354 * config/mips/mips-opts.h: New.
12355 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12356 to mips-opts.h.
12357 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12358 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12359 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
12360 via opts pointer.
12361 * config/mips/mips.h (enum mips_code_readable_setting): Move to
12362 mips-opts.h.
12363 (mips_abi, mips_code_readable): Don't declare.
843b6915 12364 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
12365 (mabi=): Use Enum and Var.
12366 (mips_abi): New Enum and EnumValue entries.
12367 (mcode-readable=): Use Enum and Var.
12368 (mips_code_readable_setting): New Enum and EnumValue entries.
12369 (mr10k-cache-barrier=): Use Enum and Var.
12370 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12371
1cb1a99f
JH
123722011-05-03 Jan Hubicka <jh@suse.cz>
12373
12374 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12375 replace hash by pointer map.
12376 (cgraph_node_set_element_def, cgraph_node_set_element,
12377 const_cgraph_node_set_element, varpool_node_set_element_def,
12378 varpool_node_set_element, const_varpool_node_set_element): Remove.
12379 (free_cgraph_node_set, free_varpool_node_set): New function.
12380 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12381 * tree-emutls.c: Free varpool node set.
12382 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12383 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12384 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12385 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12386 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12387 Move here from ipa.c; implement using pointer_map
12388 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12389 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12390 debug_cgraph_node_set, varpool_node_set_new,
12391 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12392 dump_varpool_node_set, debug_varpool_node_set):
12393 Move to ipa-uitls.c.
12394 * passes.c (ipa_write_summaries): Update.
12395
7f31f4db
SH
123962011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12397
7a2f7208
UB
12398 From Mike Frysinger:
12399 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12400 bf542/bf544/bf547/bf548/bf549.
7f31f4db 12401
b70fce6d
UB
124022011-05-03 Uros Bizjak <ubizjak@gmail.com>
12403
12404 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12405
265b1d82
SH
124062011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12407
12408 From Bernd Schmidt:
12409 * config/bfin/bfin.md (MOVCC): New mode_macro.
12410 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12411 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
12412 comments from generated assembly.
12413
f0b568f3
SH
124142011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12415
12416 From Bernd Schmidt
12417 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12418 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12419 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12420 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12421 * config/bfin/lib1funcs.asm (___muldi3): New function.
12422
2c67cf6e
NF
124232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12424
12425 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12426 build_function_type_list instead of build_function_type.
12427 Rearrange initialization of `args' to do so.
12428
f9ac28ad
NF
124292011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12430
12431 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12432 instead of build_function_type.
12433
22b8798c
NF
124342011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12435
12436 * config/rs6000/rs6000.c (spe_init_builtins): Call
12437 build_function_type_list instead of build_function_type.
12438 (paired_init_builtins, altivec_init_builtins): Likewise.
12439 (builtin_function_type): Likewise.
12440
4cb44528
NF
124412011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12442
12443 * config/sh/sh.c (sh_media_init_builtins): Call
12444 build_function_type_list instead of build_function_type.
12445
4c203a6a
NF
124462011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12447
12448 * config/sparc/sparc.c (sparc_file_end): Call
12449 build_function_type_list instead of build_function_type.
12450
d6a3d62b
NF
124512011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12452
12453 * config/alpha/alpha.c (alpha_init_builtins): Call
12454 build_function_type_list instead of build_function_type.
12455
de530b86
NF
124562011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12457
12458 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12459 build_function_type_list instead of build_function_type.
12460
baeec5f2
NF
124612011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12462
12463 * config/iq2000/i2000.c (iq2000_init_builtins): Call
12464 build_function_type_list instead of build_function_type.
12465 Delete `endlink' variable.
12466
c19afe52
NF
124672011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12468
12469 * config/avr/avr.c (avr_init_builtins): Call
12470 build_function_type_list instead of build_function_type.
12471
a341df0a
NF
124722011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12473
12474 * config/picochip/picochip.c (picochip_init_builtins): Call
12475 build_function_type_list instead of build_function_type.
12476 Delete `endlink' variable.
12477
2102b1e1
NF
124782011-05-03 Nathan Froyd <froydnj@codesourcery.com>
12479
12480 * config/bfin/bfin.c (bfin_init_builtins): Call
12481 build_function_type_list instead of build_function_type.
12482
9f111209
SH
124832011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12484
12485 From Bernd Schmidt
12486 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12487 that's not CONST_INT. Seemingly redundant check is due to PR39768.
12488
7071d064
SH
124892011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12490
12491 From Jie Zhang:
12492 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12493 libbffastfp overrides libgcc when -mfast-fp.
12494
748f7574 124952011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
12496
12497 Originally from Bernd Schmidt
12498 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12499 * config/bfin/bfin.c (override_options): Test it and error if
12500 TARGET_FDPIC.
12501
1a3a9152
SH
125022011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
12503
12504 Originally From Bernd Schmidt
12505 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12506 FD-PIC.
12507
7134c090
JL
125082011-05-03 Jeff Law <law@redhat.com>
12509
12510 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12511 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12512 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
12513 than accessing AUX field directly. Free the AUX field before
12514 clearing it.
7134c090
JL
12515 (thread_block, thread_through_loop_header): Likewise.
12516 (thread_single_edge, mark_threaded_blocks): Likewise.
12517 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
12518 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 12519
2c7eebae
BS
125202011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12521
12522 * function.c (init_function_start): Call decide_function_section.
12523 * varasm.c (decide_function_section): New function.
12524 (assemble_start_function): When not using
12525 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12526 or first_function_block_is_cold.
12527 * rtl.h (decide_function_section): Declare.
12528
17038fcf
JJ
125292011-05-03 Uros Bizjak <ubizjak@gmail.com>
12530 Jakub Jelinek <jakub@redhat.com>
12531
12532 PR target/48774
12533 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12534 only succeed if req_mode is the same as set_mode.
12535
3810076b
BS
125362011-05-03 Bernd Schmidt <bernds@codesourcery.com>
12537
12538 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12539 * genemit.c (gen_exp): Handle RETURN.
12540 * emit-rtl.c (verify_rtx_sharing): Likewise.
12541 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12542 * rtl.c (copy_rtx): RETURN is shared.
12543 * rtl.h (enum global_rtl_index): Add GR_RETURN.
12544 (ret_rtx): New.
12545 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12546 * config/s390/s390.c (s390_emit_epilogue): Likewise.
12547 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12548 * config/cris/cris.c (cris_expand_return): Likewise.
12549 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12550 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12551 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12552 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12553 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12554 Likewise.
12555 * config/v850/v850.c (expand_epilogue): Likewise.
12556 * config/bfin/bfin.c (bfin_expand_call): Likewise.
12557 * config/arm/arm.md (epilogue): Likewise.
12558 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12559 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12560 variable to ret_reg.
12561
9efdb4ad
RG
125622011-05-03 Richard Guenther <rguenther@suse.de>
12563
12564 PR lto/48846
12565 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12566 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12567 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12568
60a45536
RG
125692011-05-03 Richard Guenther <rguenther@suse.de>
12570
12571 * c-decl.c (grokdeclarator): Instead of looking at
12572 TREE_OVERFLOW check if the constant fits in the index type.
12573
3188ed59
RS
125742011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12575
12576 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12577 (vec_store_lanes<mode><mode>): Likewise.
12578
272c6793
RS
125792011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12580
12581 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12582 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12583 convert_optab_index values.
12584 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12585 * genopinit.c (optabs): Initialize the new optabs.
12586 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12587 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12588 (expand_STORE_LANES): New functions.
12589 * tree.h (build_array_type_nelts): Declare.
12590 * tree.c (build_array_type_nelts): New function.
12591 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12592 (vect_model_load_cost): Likewise.
12593 (vect_store_lanes_supported, vect_load_lanes_supported)
12594 (vect_record_strided_load_vectors): Declare.
12595 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12596 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12597 (vect_transform_strided_load): Split out statement recording into...
12598 (vect_record_strided_load_vectors): ...this new function.
12599 * tree-vect-stmts.c (create_vector_array, read_vector_array)
12600 (write_vector_array, create_array_ref): New functions.
12601 (vect_model_store_cost): Add store_lanes_p argument.
12602 (vect_model_load_cost): Add load_lanes_p argument.
12603 (vectorizable_store): Try to use store-lanes functions for
12604 interleaved stores.
12605 (vectorizable_load): Likewise load-lanes and loads.
12606 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12607 to vect_model_store_cost.
12608 (vect_build_slp_tree): Likewise vect_model_load_cost.
12609
0f6d54f7
RS
126102011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
12611
12612 * hooks.h (hook_bool_mode_uhwi_false): Declare.
12613 * hooks.c (hook_bool_mode_uhwi_false): New function.
12614 * target.def (array_mode_supported_p): New hook.
12615 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12616 * doc/tm.texi: Regenerate.
12617 * stor-layout.c (mode_for_array): New function.
12618 (layout_type): Use it.
12619 * config/arm/arm.c (arm_array_mode_supported_p): New function.
12620 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12621
b15eacc7
EB
126222011-05-03 Eric Botcazou <ebotcazou@adacore.com>
12623
12624 PR target/48723
12625 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12626 for -fstack-check if the size to allocate is negative.
12627
575bfb00
LC
126282011-05-02 Lawrence Crowl <crowl@google.com>
12629
12630 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12631 (timevar_cond_start): New for starting a timer only when it is not
12632 already running.
12633 (timevar_cond_stop): New for stopping a timer when it was not already
12634 running.
12635
12636 * timevar.c (timevar_stop): Enable start/stop timers to start again.
12637 (timevar_cond_start): New as above.
12638 (timevar_cond_stop): New as above.
12639
12640 * timevar.def: Add start/stop timers for compiler phases,
12641 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12642 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12643 and TV_PHASE_FINALIZE.
12644 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12645 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12646 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12647 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12648 Make unused TV_OVERLOAD into a start/stop timer.
12649
12650 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12651 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12652 to indicate that they are start/stop timers.
12653
12654 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12655 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12656 Move initialization to do_compile.
12657 (do_compile): Add initialization from above.
12658 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12659
12660 * c-decl.c (c_write_global_declarations): Add start/stop of
12661 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12662
12663 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12664 or TV_PARSE_INLINE, as appropriate.
12665 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12666 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12667
3533b943
JM
126682011-05-02 Jason Merrill <jason@redhat.com>
12669
12670 PR c++/40975
12671 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12672
2609a0ce
SM
126732011-05-02 Simon Martin <simartin@users.sourceforge.net>
12674
12675 PR c/35445
12676 * c-decl.c (finish_decl): Only create a composite if the types are
12677 compatible.
12678
6b0e4cbb
JM
126792011-05-02 Joseph Myers <joseph@codesourcery.com>
12680
12681 * config/fr30/fr30-protos.h (Mmode): Don't define.
12682 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
12683 definition where used.
12684 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
12685 define. Expand definitions where used.
12686 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
12687 Expand definitions where used.
12688 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
12689 rx_function_arg, rx_function_arg_advance,
12690 rx_function_arg_boundary): Expand definitions of those macros.
12691 * config/v850/v850-protos.h (Mmode): Don't define. Expand
12692 definition where used.
12693
4e938ce6
UB
126942011-05-02 Uros Bizjak <ubizjak@gmail.com>
12695
12696 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12697 reg<->xmm moves.
12698 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
12699 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
12700 with *movv2sf_internal_rex64_avx.
12701 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
12702 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
12703 Use %v prefix in insn mnemonic to handle TARGET_AVX.
12704 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
12705 "vex" in "prefix" attribute calculation.
12706 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
12707
36019c19
SH
127082011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
12709
7a2f7208
UB
12710 PR target/47951
12711 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
12712 inputs match the output.
36019c19 12713
f69ea688
AS
127142011-05-02 Andreas Schwab <schwab@linux-m68k.org>
12715
12716 PR target/47955
12717 * config/m68k/m68k.c (m68k_expand_prologue): Set
12718 current_function_static_stack_size.
12719
c33406f5
JH
127202011-05-02 Jan Hubicka <jh@suse.cz>
12721
12722 * lto-streamer.c (lto_streamer_cache_insert_1,
12723 lto_streamer_cache_lookup, lto_streamer_cache_create,
12724 lto_streamer_cache_delete): Use pointer map instead of hashtable.
12725 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
12726
47c94d21
JM
127272011-05-02 Joseph Myers <joseph@codesourcery.com>
12728
12729 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
12730 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
12731 config/m68k/t-opts: New files.
12732 * config/m68k/m68k-tables.opt: New file (generated).
12733 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
12734 extra_options and m68k/t-opts to tmake_file.
12735 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
12736 (all_isas): Initialize using m68k-isas.def.
12737 (all_microarchs): Initialize using m68k-microarchs.def.
12738 (m68k_find_selection): Remove.
12739 (m68k_handle_option): Don't assert that global structures are in
12740 use. Use error_at. Access variables via opts pointer. Don't
12741 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
12742 directly for -m68020-40 and -m68020-60.
12743 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
12744 m68k_tune_entry here.
12745 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
12746 to m68k-opts.h.
12747 (m68k_library_id_string): Remove declaration.
4e938ce6 12748 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
12749 (m68k_library_id_string): New Variable.
12750 (march=, mcpu=, mtune=): Use Enum and Var.
12751
e562bf36
RG
127522011-05-02 Richard Guenther <rguenther@suse.de>
12753
12754 * varasm.c (output_constructor_regular_field): Compute zero-based
12755 index with double-ints. Make sure to ICE instead of producing
12756 wrong code.
12757 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
12758 in asserts. Properly use a signed type.
12759
6bec6c98
UB
127602011-05-02 Uros Bizjak <ubizjak@gmail.com>
12761
12762 * config/i386/sse.md (V): New mode iterator.
12763 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
12764 TARGET_SSE2.
12765 (V_256): Rename from AVX256MODE.
12766 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
12767 condition to all users.
12768 (VF1): Ditto.
12769 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
12770 condition to all users.
12771 (VF_128): Make V4SF mode unconditional.
12772 (VF_256): Rename from AVX256MODEF2P.
12773 (VI4F_128): Rename from SSEMODE4S.
12774 (VI8F_128): Rename from SSEMODE2D.
12775 (VI4F_256): Rename from AVX256MODE8P.
12776 (VI8F_256): Rename from AVX256MODE4P.
12777 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
12778 (ssescalarmodesuffix): Remove SF and DF modes.
12779 (SSEMODE124): Remove.
12780 (SSEMODE1248): Ditto.
12781 (SSEMODEF2P): Ditto.
12782 (AVXMODEF2P): Ditto.
12783 (AVXMODEFDP): Ditto.
12784 (AVXMODEFSP): Ditto.
12785 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
12786 unconditional.
12787 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
12788 unconditional.
12789 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
12790 xop_pcmov_<mode>256. Use V mode iterator.
12791
12792 Adjust RTX patterns globally for renamed mode attributes.
12793
2dfdcb4b
UW
127942011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12795
12796 * haifa-sched.c (sched_emit_insn): Emit insn before first
12797 non-scheduled insn. Inform back-end about new insn. Add
12798 new insn to scheduled_insns list.
12799
90bc4623
RG
128002011-05-02 Richard Guenther <rguenther@suse.de>
12801
12802 PR tree-optimization/48822
12803 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
12804 (process_scc): Indicate which iteration we start.
12805
bc0fe8cb
JH
128062011-05-02 Jan Hubicka <jh@suse.cz>
12807
12808 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
12809 (lto_section_overrun): New.
12810 * lto-section-out.c (append_block): Rename to ...
12811 (lto_append_block): ... this one; export.
12812 (lto_output_1_stream): Move lto lto-streamer.h
12813 (lto_output_data_stream): Update.
12814 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
12815 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
12816 functions.
12817
f070a9d1
RG
128182011-05-02 Richard Guenther <rguenther@suse.de>
12819
12820 * tree.c (tree_code_counts): New global array.
12821 (record_node_allocation_statistics): Count individual tree codes.
12822 (dump_tree_statistics): Dump individual code stats.
12823
09dfe187
JH
128242011-05-01 Jan Hubicka <jh@suse.cz>
12825
12826 * ipa-inline.c (caller_growth_limits): Fix thinko when
12827 looking for largest stack frame.
12828 * ipa-inline.h (dump_inline_summary): Declare.
12829 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
12830 on stack usage.
12831 (dump_inline_summary): Export.
12832 (debug_inline_summary): Declare as DEBUG_FUNCTION.
12833
6f76a878
AS
128342011-05-01 Anatoly Sokolov <aesok@post.ru>
12835
12836 * reginfo.c (memory_move_cost): Change rclass argument type form
12837 'enum reg_class' to reg_class_t.
12838 * reload.h (memory_move_cost): Update prototype.
12839 * postreload.c reload_cse_simplify_set): Change type dclass var to
12840 reg_class_t.
12841 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
12842 Update prototype.
12843 (ira_allocate_and_set_costs): Change aclass argument type form
12844 'enum reg_class' to reg_class_t.
6bec6c98 12845 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
12846 Change aclass argument type to reg_class_t.
12847 (update_conflict_hard_reg_costs): Change type aclass and pref vars
12848 to reg_class_t.
12849 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
12850 memory_move_cost call.
12851
12852 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
12853 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
12854 Change type tmp var to reg_class_t.
12855
9a4ac625
JH
128562011-04-30 Jan Hubicka <jh@suse.cz>
12857
12858 * ipa-inline.c (can_inline_edge_p): Disregard limits when
12859 inlining into function with flatten attribute.
12860 (want_inline_small_function_p): Be more realistic about inlining
12861 cold calls where callee size grows.
12862
dd8352ee
JH
128632011-04-30 Jan Hubicka <jh@suse.cz>
12864
12865 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
12866 flags.
12867
46e43d2b
AS
128682011-04-30 Anatoly Sokolov <aesok@post.ru>
12869
12870 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
12871 PRINT_OPERAND_PUNCT_VALID_P): Remove.
12872 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
12873 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
12874 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
12875 (print_operand): Rename to...
12876 (sparc_print_operand): ...this. Make static. Adjust
12877 sparc_print_operand function call.
12878 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
12879 functions.
12880
ecb62563
JH
128812011-04-30 Jan Hubicka <jh@suse.cz>
12882
6bec6c98 12883 PR middle-end/48752
ecb62563
JH
12884 * ipa-inline.c (early_inliner): Disable when doing late
12885 addition of function.
12886
edb9b69e
JJ
128872011-04-30 Jakub Jelinek <jakub@redhat.com>
12888
be80a87e
JJ
12889 * dwarf2out.c (get_address_mode): New inline.
12890 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
12891 if not dwarf_strict emit
12892 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
12893 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
12894 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
12895 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
12896 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
12897 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
12898 mem_loc_descriptor callers.
12899 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
12900 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
12901 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
12902 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
12903 (base_types): New variable.
12904 (get_base_type_offset, calc_base_type_die_sizes,
12905 base_type_for_mode, mark_base_types, base_type_cmp,
12906 move_marked_base_types): New functions.
12907 (calc_die_sizes): Assert that die_offset is 0 or equal to
12908 next_die_offset.
12909 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
12910 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
12911 callers. If not dwarf_strict, call mem_loc_descriptor even for
12912 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
12913 (gen_subprogram_die): Don't give up on call site parameters
12914 with non-integral or large integral modes. Adjust
12915 mem_loc_descriptor callers.
12916 (prune_unused_types): Call prune_unused_types_mark on base_types
12917 vector entries.
12918 (resolve_addr): Call mark_base_types.
12919 (dwarf2out_finish): Call move_marked_base_types.
12920
edb9b69e
JJ
12921 PR tree-optimization/48809
12922 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
12923 type.
12924 (gen_inbound_check): Don't compute index_expr - range_min in utype
12925 again, instead reuse SSA_NAME initialized in build_arrays.
12926 Remove two useless gsi_for_stmt calls.
12927
a6545a3d
JL
129282011-04-29 Jeff Law <law@redhat.com>
12929
12930 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
12931
af8bca3c
MJ
129322011-04-29 Martin Jambor <mjambor@suse.cz>
12933
12934 * cgraph.h (cgraph_postorder): Remove declaration.
12935 * ipa-utils.h (ipa_free_postorder_info): Declare.
12936 (ipa_reverse_postorder): Likewise.
12937 * cgraphunit.c: Include ipa-utils.h.
12938 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
12939 * ipa-inline.c: Include ipa-utils.h.
12940 (ipa_inline): Update call to ipa_reverse_postorder.
12941 * ipa-pure-const.c (propagate_pure_const): Update call to
12942 ipa_reduced_postorder and ipa_print_order. Call
12943 ipa_free_postorder_info to clean up.
12944 (propagate_nothrow): Likewise.
12945 * ipa-reference.c (propagate): Removed a useless call to
12946 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
12947 and ipa_print_order. Call ipa_free_postorder_info to clean up.
12948 * ipa.c: Include ipa-utils.h.
12949 (ipa_profile): Update call to ipa_reverse_postorder.
12950 (cgraph_postorder): Moved to...
12951 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
12952 (ipa_utils_print_order): Renamed to ipa_print_order.
12953 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
12954 comments.
12955 (ipa_free_postorder_info): New function.
12956 * passes.c: Include ipa-utils.h.
12957 (do_per_function_toporder): Update call to ipa_reverse_postorder.
12958 (ipa_write_summaries): Likewise.
12959 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
12960 (cgraphunit.o): Likewise.
12961 (ipa.o): Likewise.
12962 (ipa-inline.o): Likewise.
12963
b15c64ee
JH
129642011-04-29 Jan Hubicka <jh@suse.cz>
12965
12966 * gcc.dg/tree-ssa/inline-10.c: New testcase.
12967 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
12968 * ipa-inline.h (clause_t): Turn into unsigned int.
12969 * ipa-inline-analysis.c (add_clause): Do more simplification.
12970 (and_predicates): Shortcut more cases.
12971 (predicates_equal_p): Move forward; check that clauses are properly
12972 ordered.
12973 (or_predicates): Shortcut more cases.
12974 (edge_execution_predicate): Rewrite as...
12975 (set_cond_stmt_execution_predicate): ... this function; handle
12976 __builtin_constant_p.
12977 (set_switch_stmt_execution_predicate): New .
12978 (compute_bb_predicates): New.
12979 (will_be_nonconstant_predicate): Update TODO.
12980 (estimate_function_body_sizes): Use compute_bb_predicates
12981 and free them later, always try to estimate if stmt is constant.
12982 (estimate_time_after_inlining, estimate_size_after_inlining):
12983 Gracefully handle optimized out edges.
12984 (read_predicate): Fix off by one error.
12985
a88fdc2a
NP
129862011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
12987
12988 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
12989
d984c8ef
XDL
129902011-04-27 Xinliang David Li <davidxl@google.com>
12991
12992 * tree-profile.c (init_ic_make_global_vars): Set
12993 tls attribute on ic vars.
12994 * coverage.c (coverage_end_function): Initialize
12995 function_list with zero.
12996
45a2c477
RG
129972011-04-29 Richard Guenther <rguenther@suse.de>
12998
12999 * builtins.c (fold_builtin_classify_type): Use integer_type_node
13000 for the type of the result.
13001 (fold_builtin_isascii): Likewise.
13002 (fold_builtin_toascii): Use integer_type_node where appropriate.
13003 (fold_builtin_logb): Likewise.
13004 (fold_builtin_frexp): Likewise.
13005 (fold_builtin_strstr): Likewise.
13006 (fold_builtin_strpbrk): Likewise.
13007 (fold_builtin_fputs): Likewise.
13008 (fold_builtin_sprintf): Likewise.
13009 (fold_builtin_snprintf): Likewise.
13010 (fold_builtin_printf): Likewise.
13011 (do_mpfr_remquo): Use a proper type for the assigned constant.
13012 (do_mpfr_lgamma_r): Likewise.
13013 * dwarf2out.c (resolve_one_addr): Use size_int.
13014 * except.c (init_eh): Likewise.
13015 (assign_filter_values): Use integer_type_node for filter values.
13016 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
13017 indices.
13018 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
13019 for EH region numbers.
13020 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
13021 for the shift amount.
13022
eb6c3df1
RG
130232011-04-29 Richard Guenther <rguenther@suse.de>
13024
13025 * expr.h (expand_shift): Rename to ...
13026 (expand_variable_shift): ... this.
13027 (expand_shift): Take a constant shift amount.
13028 * expmed.c (expand_shift): Rename to ...
13029 (expand_variable_shift): ... this.
13030 (expand_shift): New wrapper around expand_variable_shift.
13031 * expr.c (convert_move, emit_group_load_1, emit_group_store,
13032 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
13033 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
13034 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
13035 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
13036 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
13037 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13038 emit_store_flag_1, emit_store_flag): Likewise.
13039 * builtins.c (expand_builtin_signbit): Likewise.
13040 * calls.c (load_register_parameters): Likewise.
13041 * function.c (assign_parm_setup_block): Likewise.
13042 * lower-subreg.c (resolve_shift_zext): Likewise.
13043 * optabs.c (widen_bswap, expand_abs_nojump,
13044 expand_one_cmpl_abs_nojump, expand_float): Likewise.
13045 * spu/spu.c (spu_expand_extv): Likewise.
13046 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13047
9f616812
RG
130482011-04-29 Richard Guenther <rguenther@suse.de>
13049
13050 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13051 for the remapped region number.
13052 * predict.c (build_predict_expr): Use integer_type_node for the
13053 predict kind.
13054 * fold-const.c (fold_binary_loc): Use integer_type_node for
13055 the shift amount. Use a proper type for the PLUS_EXPR operand.
13056
b823cdfe
MM
130572011-04-29 Michael Matz <matz@suse.de>
13058
13059 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13060 other trees that just builtins.
13061 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13062
413581ba
RG
130632011-04-29 Richard Guenther <rguenther@suse.de>
13064
13065 * tree-nested.c (get_trampoline_type): Use size_int.
13066 (get_nl_goto_field): Likewise.
13067 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13068 for all indexes.
13069 (lower_eh_constructs_2): Likewise.
13070 (lower_resx): Likewise.
13071 (lower_eh_dispatch): Likewise.
13072 * tree-mudflap.c (mf_build_string): Use size_int.
13073 (mudflap_register_call): Use integer_type_node for the flag.
13074 (mudflap_enqueue_constant): Use size_int.
13075 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13076 instead of rebuilding it.
13077
5c04e9f4
RG
130782011-04-29 Richard Guenther <rguenther@suse.de>
13079
13080 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13081 Handle OBJ_TYPE_REF.
13082 (find_func_aliases_for_call): Use it more consistently.
13083
5c24671b
AO
130842011-04-29 Alexandre Oliva <aoliva@redhat.com>
13085
13086 * haifa-sched.c (last_nondebug_scheduled_insn): New.
13087 (rank_for_schedule): Use it.
13088 (schedule_block): Set it.
13089
10adac51
XDL
130902011-04-28 David Li <davidxl@google.com>
13091
13092 * tree.c (crc32_string): Use crc32_byte.
13093 (crc32_byte): New function.
13094 * tree.h (crc32_byte): New function.
13095 * gcov.c (read_graph_file): Handle new cfg_cksum.
13096 (read_count_file): Ditto.
13097 * profile.c (instrument_values): Ditto.
13098 (get_exec_counts): Ditto.
13099 (read_profile_edge_counts): Ditto.
13100 (compute_branch_probabilities): Ditto.
13101 (compute_value_histograms): Ditto.
13102 (branch_prob): Ditto.
13103 (end_branch_prob): Ditto.
13104 * coverage.c (read_counts_file): Ditto.
13105 (get_coverage_counts): Ditto.
13106 (tree_coverage_counter_addr): Ditto.
13107 (coverage_checksum_string): Ditto.
13108 (coverage_begin_output): Ditto.
13109 (coverage_end_function): Ditto.
13110 (build_fn_info_type): Ditto.
13111 (build_fn_info_value): Ditto.
13112 * libgcov.c (gcov_exit): Ditto.
13113 * gcov-dump.c (tag_function): Ditto.
13114 (compute_checksum): Remove.
13115
5d6358a5
AM
131162011-04-29 Alan Modra <amodra@gmail.com>
13117
13118 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13119 unspec plus offset. Tidy macho code.
13120
85ad2ef5
MJ
131212011-04-29 Martin Jambor <mjambor@suse.cz>
13122
13123 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13124 node instead of a decl. Update all callers.
13125 * cgraph.h: Update declaration.
13126
437f4a00
IR
131272011-04-28 Ira Rosen <ira.rosen@linaro.org>
13128
13129 PR tree-optimization/48765
13130 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13131 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13132 to indicate if loop aware SLP is being used. Scan the statements
13133 and update the vectorization factor according to the type of
13134 vectorization before statement analysis.
13135 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13136 pass it to vect_analyze_loop_operations.
13137 (vectorizable_reduction): Set number of copies to 1 in case of pure
13138 SLP statement.
13139 * tree-vect-stmts.c (vectorizable_conversion,
13140 vectorizable_assignment, vectorizable_shift,
13141 vectorizable_operation, vectorizable_type_demotion,
13142 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13143 Likewise.
13144 (vectorizable_condition): Move the check that it is not SLP
13145 vectorization before the number of copies check.
13146 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13147 to vectorize the loop using SLP.
13148
c6fc44f3
JJ
131492011-04-28 Jakub Jelinek <jakub@redhat.com>
13150
13151 PR middle-end/48597
13152 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13153 inline asm.
13154
6c0170ea
JM
131552011-04-28 Joseph Myers <joseph@codesourcery.com>
13156
13157 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13158 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13159 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13160 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13161 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13162 linux*.h headers.
6bec6c98 13163 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
13164 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13165 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13166 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 13167 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
13168 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13169 REG_NAME.
13170 * config/i386/linux.h (REG_NAME): Don't define.
13171 * config/i386/linux64.h (REG_NAME): Don't define.
13172 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13173 Undefine before defining.
13174
970dabbd
JH
131752011-04-28 Jan Hubicka <jh@suse.cz>
13176
6bec6c98
UB
13177 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13178 nonconstant_names array.
970dabbd
JH
13179 (estimate_function_body_sizes): Build nonconstant_names array; handle
13180 BUILT_IN_CONSTANT_P.
13181
8d3e3924
RG
131822011-04-28 Richard Guenther <rguenther@suse.de>
13183
13184 PR bootstrap/48804
13185 Revert
13186 2011-04-28 Richard Guenther <rguenther@suse.de>
13187
13188 * tree-ssa-structalias.c (solve_constraints): Build succ graph
13189 as late as possible.
6bec6c98 13190
8576f20a
RG
131912011-04-28 Richard Guenther <rguenther@suse.de>
13192
13193 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13194 (debug_constraint): Do it here.
13195 (dump_constraints): And here.
13196 (rewrite_constraints): And here.
13197 (dump_constraint_edge): Remove.
13198 (dump_constraint_graph): Rewrite to produce DOT output.
13199 (solve_constraints): Build succ graph as late as possible.
13200 Dump constraint graphs before and after solving.
13201
e38811ce
RG
132022011-04-28 Richard Guenther <rguenther@suse.de>
13203
13204 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13205 New function split out from ...
13206 (find_func_aliases): ... here. Call it.
13207 (find_func_aliases_for_call): Likewise.
13208
fbaf0d0c
GDR
132092011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
13210
13211 * internal-fn.h (internal_fn_name_array): Declare.
13212 (internal_fn_flags_array): Likewise.
13213
cbb734aa
UB
132142011-04-27 Uros Bizjak <ubizjak@gmail.com>
13215
13216 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
13217 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13218 Move from sse.md.
13219 (ssemodefsuffix): Remove.
13220 (ssevecmodesuffix): New mode attribute.
13221 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13222 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13223 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13224 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13225 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13226 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13227 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13228 ssemodesuffix mode attribute.
13229 (float splitters): Use ssevecmodesuffix mode attribute.
13230 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13231 (sseinsmode): Rename from avxvecmode.
13232 (avxsizesuffix): Rename from avxmodesuffix.
13233 (sseintvecmode): Rename from avxpermvecmode.
13234 (ssedoublevecmode): Rename from ssedoublesizemode.
13235 (ssehalfvecmode): Rename from avxhalfvecmode.
13236 (ssescalarmode): Rename from avxscalarmode.
13237 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13238 templates for ssemodesuffix mode attribute.
13239 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13240 mode attribute.
13241
13242 Adjust RTX patterns globally for renamed mode attributes.
13243
991278ab
JH
132442011-04-27 Jan Hubcika <jh@suse.cz>
13245
13246 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13247 * ipa-inline-analysis.c: Include alloc-pool.h.
13248 (edge_predicate_pool): New.
13249 (trye_predicate_p): New function
13250 (false_predicate_p): New function.
13251 (add_clause): Sanity check that false clauses are "optimized";
13252 never add clauses to predicate that is already known to be false.
13253 (and_predicate): Use flase_predicate_p.
13254 (evaulate_predicate): Rename to ...
13255 (evaluate_predicate): ... this one; update all callers; assert
13256 that false is not listed among possible truths.
13257 (dump_predicate): Use true_predicate_p.
13258 (account_size_time): Use false_predicate_p.
13259 (evaulate_conditions_for_edge): Rename to ...
13260 (evaluate_conditions_for_edge) ... this one.
13261 (edge_set_predicate): New function.
13262 (inline_edge_duplication_hook): Duplicate edge predicates.
13263 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 13264 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
13265 (dump_inline_summary): Update.
13266 (estimate_function_body_sizes): Set edge predicates.
13267 (estimate_calls_size_and_time): Handle predicates.
13268 (estimate_callee_size_and_time): Update.
13269 (remap_predicate): Add toplev_predicate; update comment.
13270 (remap_edge_predicates): New function.
13271 (inline_merge_summary): Compute toplev predicate; update.
13272 (read_predicate): New function.
13273 (read_inline_edge_summary): Use it.
13274 (inline_read_section): Likewise.
13275 (write_predicate): New function.
13276 (write_inline_edge_summary): Use it.
13277 (inline_write_summary): Likewise.
13278 (inline_free_summary): Free alloc pool and edge summary vec.
13279
648b5f85
RG
132802011-04-27 Richard Guenther <rguenther@suse.de>
13281
13282 * tree-ssa-structalias.c (changed_count): Remove.
13283 (changed): Use a bitmap.
13284 (unify_nodes): Adjust.
13285 (do_sd_constraint): Likewise.
13286 (do_ds_constraint): Likewise.
13287 (do_complex_constraint): Likewise.
13288 (solve_graph): Likewise.
13289
4d5dcfb2
JH
132902011-04-27 Jan Hubicka <jh@suse.cz>
13291
13292 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13293
200eb7d2
UB
132942011-04-27 Uros Bizjak <ubizjak@gmail.com>
13295
13296 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13297 (avx_vperm2f128_*_operand): Ditto.
13298 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13299 Use avx_vpermilp_parallel in insn condition.
13300 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13301 Use avx_vperm2f128_parallel in insn condition.
13302
7d6e2521
RG
133032011-04-27 Richard Guenther <rguenther@suse.de>
13304
13305 * Makefile.in (tree-ssa-structalias.o): Remove
13306 gt-tree-ssa-structalias.h dependency.
13307 (GTFILES): Remove tree-ssa-structalias.c.
13308 * tree.c (allocate_decl_uid): New function.
13309 (make_node_stat): Use it.
13310 (copy_node_stat): Likewise.
13311 * tree.h (allocate_decl_uid): Declare.
13312 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13313 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13314 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 13315 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
13316 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13317 (struct heapvar_map): Likewise.
13318 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13319 heapvar_insert): Likewise.
13320 (make_heapvar_for): Rename to ...
13321 (make_heapvar): ... this. Simplify.
13322 (fake_var_decl_obstack): New global var.
13323 (build_fake_var_decl): New function.
13324 (make_constraint_from_heapvar): Adjust.
13325 (handle_lhs_call): Likewise.
13326 (create_function_info_for): Likewise.
13327 (intra_create_variable_infos): Likewise.
13328 (init_alias_vars): Allocate fake_var_decl_obstack.
13329 (init_alias_heapvars, delete_alias_heapvars): Remove.
13330 (compute_points_to_sets): Do not call init_alias_heapvars.
13331 (ipa_pta_execute): Likewise.
13332 (delete_points_to_sets): Free fake_var_decl_obstack.
13333
526ed6c2
UW
133342011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13335
13336 * config/spu/divmovti4.c (union qword_UTItype): New data type.
13337 (si_from_UTItype, si_to_UTItype): New functions.
13338 (__udivmodti4): Use them to implement type-punning.
13339 * config/spu/multi3.c (union qword_TItype): New data type.
13340 (si_from_TItype, si_to_TItype): New functions.
13341 (__multi3): Use them to implement type-punning.
13342
c187d33c
UW
133432011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
13344
13345 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13346
40982661
JH
133472011-04-27 Jan Hubicka <jh@suse.cz>
13348
13349 * ipa-prop.c (function_insertion_hook_holder): New holder.
13350 (ipa_add_new_function): New function.
200eb7d2
UB
13351 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13352 Register/deregister holder.
40982661 13353
9aef53ee
RG
133542011-04-27 Richard Guenther <rguenther@suse.de>
13355
13356 PR tree-optimization/48772
200eb7d2 13357 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 13358
f63d806d
RG
133592011-04-27 Richard Guenther <rguenther@suse.de>
13360
13361 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13362 TARGET_MEM_REF handling.
13363
e1ea7451
NC
133642011-04-27 Nick Clifton <nickc@redhat.com>
13365
9b5db25d
NC
13366 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13367 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13368 (REG_CLASS_NAMES): Likewise.
13369 (REG_CLASS_CONTENTS): Likewise.
13370 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13371 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
13372 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
13373 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
13374 (EVEN_REGS): New macro. Alias for QUAD_REGS.
13375 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13376 duplicate register classes.
97d20907 13377 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
13378 (frv_register_move_cost): Likewise.
13379
e1ea7451
NC
13380 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13381 end of the regno_reg_class array.
13382
5c2f94b4
JJ
133832011-04-27 Jakub Jelinek <jakub@redhat.com>
13384
13385 PR c/48742
13386 * c-typeck.c (build_binary_op): Don't wrap arguments if
13387 int_operands is true.
13388
57a944d7
KK
133892011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
13390
13391 PR target/48767
13392 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13393 targetm.calls.must_pass_in_stack for void type.
13394
898b8927
JH
133952011-04-26 Jan Hubicka <jh@suse.cz>
13396
13397 * cgraphbuild.c (build_cgraph_edges): Update call
13398 of cgraph_create_edge and cgraph_create_indirect_edge.
13399 * cgraph.c (cgraph_create_edge_including_clones,
13400 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13401 cgraph_update_edges_for_call_stmt_node): Do not take nest
13402 argument; do not initialize call_stmt_size/time.
13403 (dump_cgraph_node): Do not dump nest.
13404 (cgraph_clone_edge): Do not take loop_nest argument;
13405 do not propagate it; do not clone call_stmt_size/time.
13406 (cgraph_clone_node): Likewise.
13407 (cgraph_create_virtual_clone): Update.
13408 * cgraph.h (struct cgraph_edge): Remove
13409 call_stmt_size/call_stmt_time/loop_nest.
13410 (cgraph_create_edge, cgraph_create_indirect_edge,
13411 cgraph_create_edge_including_clones, cgraph_clone_node): Update
13412 prototype.
13413 * tree-emutls.c (gen_emutls_addr): Update.
13414 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13415 loop_nest; handle indirect calls, too.
13416 (clone_inlined_nodes): Do not care about updating inline summaries.
13417 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13418 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13419 stream call_stmt_size/call_stmt_time/loop_nest.
13420 * ipa-inline.c (edge_badness): Update.
13421 (ipa_inline): dump summaries after inlining.
13422 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 13423 New.
898b8927
JH
13424 (inline_edge_summary): New function.
13425 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13426 (inline_edge_removal_hook): Handle edge summaries.
13427 (inline_edge_duplication_hook): New hook.
13428 (inline_summary_alloc): Alloc hooks.
13429 (initialize_growth_caches): Do not register removal hooks.
13430 (free_growth_caches); Do not free removal hook.
13431 (dump_inline_edge_summary): New function.
13432 (dump_inline_summary): Use it.
13433 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13434 (inline_update_callee_summaries): New function.
13435 (inline_merge_summary): Use it.
13436 (do_estimate_edge_time, do_estimate_edge_growth): Update.
13437 (read_inline_edge_summary): New function.
13438 (inline_read_section): Use it.
13439 (write_inline_edge_summary): New function.
13440 (inline_write_summary): Use it.
13441 (inline_free_summary): Free edge new holders.
13442 * tree-inline.c (copy_bb): Update.
13443
ffa03772
JM
134442011-04-26 Jason Merrill <jason@redhat.com>
13445
13446 * tree-eh.c (lower_try_finally_switch): Create the label along with
13447 the CASE_LABEL_EXPR.
13448
6d7b45ad
DM
134492011-04-26 David S. Miller <davem@davemloft.net>
13450 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13451
13452 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13453 * configure: Regenerate.
13454
df10b6d4
MM
134552011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
13456
13457 PR target/48258
13458 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13459 reduction.
13460 (VEC_reduc): New code iterator and splitters for vector reduction.
13461 (VEC_reduc_name): Ditto.
13462 (VEC_reduc_rtx): Ditto.
13463 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13464 (reduc_<VEC_reduc_name>_v4sf): Ditto.
13465
13466 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13467 support for extracting SF on VSX.
13468
13469 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13470 generating xscvspdp.
13471 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13472 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13473 double add, minimum, maximum vector reduction.
13474 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13475 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13476 optimize double vector reduction.
13477 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13478
35a5db04
JM
134792011-04-26 Joseph Myers <joseph@codesourcery.com>
13480
13481 * config/fr30/fr30.h (inhibit_libc): Don't define.
13482 * config/m32r/m32r-protos.h: Correct comment.
13483 * config/v850/v850.h (GHS_default_section_names,
13484 GHS_current_section_names): Use tree, not union tree_node *.
13485
2f964ad6
XDL
134862011-04-26 Xinliang David Li <davidxl@google.com>
13487
200eb7d2 13488 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
13489 * c-family/c-opts.c (c_common_handle_option): Set
13490 warn_maybe_uninitialized.
13491 * opts.c (common_handle_option): Ditto.
13492 * common.opt: New option.
13493 * tree-ssa.c (warn_uninit): Add one more parameter.
13494 (warn_uninitialized_var): Pass warning code.
13495 * tree-flow.h: Interface change.
13496
9c7bd91a
RO
134972011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13498
200eb7d2 13499 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
13500 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13501 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13502
c2f36e21
RO
135032011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13504
13505 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13506 * config/mips/mips.opt (mmips-tfile): Remove.
13507
13508 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13509 mips-tdump reference to ...
200eb7d2 13510 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
13511 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13512 reference by Tru64 UNIX.
13513
2c9da85b
JJ
135142011-04-26 Jakub Jelinek <jakub@redhat.com>
13515
0c5f6539
JJ
13516 PR debug/48768
13517 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13518 is error_mark_node, set value to NULL.
13519
2c9da85b
JJ
13520 PR tree-optimization/48734
13521 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13522 if return value from maybe_fold_*_comparsions isn't something
13523 the code is prepared to handle.
13524
77fa1d54
UB
135252011-04-26 Uros Bizjak <ubizjak@gmail.com>
13526
13527 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13528 mode check.
13529 (ext_QIreg_nomode_operands): Remove.
13530 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13531 (*andsi_1): Ditto.
13532 (*andhi_1): Ditto.
13533
0e2a6c2b
AS
135342011-04-26 Andrew Stubbs <ams@codesourcery.com>
13535
13536 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13537
961562d8
RB
135382011-04-26 Richard Guenther <rguenther@suse.de>
13539
13540 * c-typeck.c (build_unary_op): Do not expand array-refs via
13541 pointer arithmetic. Only adjust qualifiers for function types.
13542
135432011-04-26 Richard Guenther <rguenther@suse.de>
13544
13545 PR middle-end/48694
13546 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13547 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
13548 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
13549 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 13550
a0d260fc
PC
135512011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
13552
6bec6c98 13553 * doc/extend.texi: Document __underlying_type.
a0d260fc 13554
4d583bb9
SB
135552011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
13556
13557 * config/rs6000/titan.md (automata_option "progress"): Remove.
13558
1f3fcdc3
JL
135592011-04-25 Jeff Law <law@redhat.com>
13560
13561 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13562
e5b0dad8
JK
135632011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
13564
13565 * system.h (ENUM_BITFIELD): Remove.
13566
5157a881 135672011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 13568 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
13569
13570 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13571 for STORE_FLAG_VALUE==-1 case.
13572
ed4c109e
RS
135732011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
13574
13575 PR target/43804
13576 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13577 LEGITIMATE_PIC_OPERAND_P.
13578
f3181aa2
JH
135792011-04-24 Jan Hubicka <jh@suse.cz>
13580
13581 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13582 WPA hack.
77fa1d54
UB
13583 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13584 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13585 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
13586 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13587 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13588 Sanity check predicate length.
13589 (remap_predicate): Likewise; sanity check jump functions.
13590 (inline_read_section, inline_write_summary): Sanity check
13591 predicate length.
13592
5307cbaa
PC
135932011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
13594
13595 PR other/48748
13596 * doc/extend.texi (Type Traits): Document __is_standard_layout,
13597 __is_literal_type, and __is_trivial; update throughout about
13598 possibly cv-qualified void types.
13599
bebd5f99
GP
136002011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
13601
13602 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13603 testsuite and make it version agnostic.
13604
7ee28a74
JH
136052011-04-22 Jan Hubicka <jh@suse.cz>
13606
13607 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13608
16997bc0
JJ
136092011-04-23 Jakub Jelinek <jakub@redhat.com>
13610
13611 PR c/48685
13612 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13613 to VOID_TYPE even around MODIFY_EXPR.
13614
f94d4ab1
MS
136152011-04-22 Mike Stump <mikestump@comcast.net>
13616
1a84c183 13617 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
13618 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13619 comment.
13620
632b4f8e
JH
136212011-04-22 Jan Hubicka <jh@suse.cz>
13622
13623 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
13624 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13625 ipa-prop.c; update all uses.
632b4f8e 13626 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
13627 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13628 merge summary of inlined function into former caller.
632b4f8e
JH
13629 * ipa-inline.c (max_benefit): Remove.
13630 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
13631 (update_caller_keys): Use
13632 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
13633 (update_callee_keys): Likewise.
13634 (update_all_callee_keys): Likewise.
77fa1d54
UB
13635 (inline_small_functions): Do not collect max_benefit; do not reset
13636 estimated_growth; call free_growth_caches and initialize_growth_caches.
13637 * ipa-inline.h (struct condition, type clause_t, struct predicate,
13638 struct size_time_entry): New structures.
632b4f8e 13639 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
13640 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13641 and estimated_growth.
632b4f8e
JH
13642 (edge_growth_cache_entry): New structure.
13643 (node_growth_cache, edge_growth_cache): New global vars.
13644 (estimate_growth): Turn into inline.
13645 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13646 initialize_growth_caches, free_growth_caches): Declare.
13647 (estimate_edge_growth): Rewrite.
13648 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
13649 (reset_node_growth_cache, reset_edge_growth_cache): New inline
13650 functions.
632b4f8e
JH
13651 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13652 (NUM_CONDITIONS): New constant.
13653 (predicate_conditions): New enum.
13654 (IS_NOT_CONSTANT): New constant.
13655 (edge_removal_hook_holder): New var.
13656 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
13657 (true_predicate, single_cond_predicate, false_predicate,
13658 not_inlined_predicate, add_condition, add_clause, and_predicates,
13659 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13660 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
13661 evaulate_conditions_for_edge): New functions.
13662 (inline_summary_alloc): Move to heap.
13663 (inline_node_removal_hook): Clear condition and entry vectors.
13664 (inline_edge_removal_hook): New function.
13665 (initialize_growth_caches, free_growth_caches): New function.
13666 (dump_inline_summary): Update.
13667 (edge_execution_predicate): New function.
13668 (will_be_nonconstant_predicate): New function.
13669 (estimate_function_body_sizes): Compute BB and constantness predicates.
13670 (compute_inline_parameters): Do not clear estimated_growth.
13671 (estimate_edge_size_and_time): New function.
13672 (estimate_calls_size_and_time): New function.
13673 (estimate_callee_size_and_time): New function.
13674 (remap_predicate): New function.
13675 (inline_merge_summary): New function.
13676 (do_estimate_edge_time): New function based on...
13677 (estimate_edge_time): ... this one.
13678 (do_estimate_edge_growth): New function.
13679 (do_estimate_growth): New function based on....
13680 (estimate_growth): ... this one.
13681 (inline_analyze_function): Analyze after deciding on jump functions.
13682 (inline_read_section): New function.
13683 (inline_read_summary): Use it.
13684 (inline_write_summary): Write all the new data.
13685 * ipa-prop.c (ipa_get_param_decl_index): Export.
13686 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
13687 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
13688 Declare.
13689 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
13690 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
13691 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
13692 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
13693 cgraph_edge_inlinable_p): Remove.
13694 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
13695 (cgraph_process_new_functions): Update call of
13696 compute_inline_parameters.
632b4f8e 13697
1df5b0db
RG
136982011-04-22 Richard Guenther <rguenther@suse.de>
13699
13700 * tree.c (build_int_cst): Properly create canonicalized integer
13701 constants.
13702 (build_int_cst_type): Remove scary comments.
13703
ae01169c
XDL
137042011-04-22 Xinliang David Li <davidxl@google.com>
13705
13706 * toplev.c (process_options): Enable -Werror=coverage-mismatch
13707 by default when -Wno-error is not specified.
13708 * opts-global.c (decode_options): Remove call to
13709 control_warning_options.
13710
93dfac24
JJ
137112011-04-22 Jakub Jelinek <jakub@redhat.com>
13712
13713 PR tree-optimization/48717
13714 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
13715 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
13716
1b5f5069
JM
137172011-04-22 Joseph Myers <joseph@codesourcery.com>
13718
13719 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
13720 definition where used.
13721
144f4153
JJ
137222011-04-22 Jakub Jelinek <jakub@redhat.com>
13723
13724 PR c/48716
13725 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
13726 TREE_STATIC variables declared inside of some OpenMP construct.
13727
f9fd305b
MJ
137282011-04-22 Martin Jambor <mjambor@suse.cz>
13729
13730 PR middle-end/48585
1d284ec5 13731 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 13732
49819fef
AM
137332011-04-22 Alexander Monakov <amonakov@ispras.ru>
13734
13735 PR c/36750
13736 * c-typeck.c (pop_init_level): Do not warn about initializing
13737 with ` = {0}'.
13738
401f6699
AM
137392011-04-22 Alan Modra <amodra@gmail.com>
13740
13741 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
13742 when returning call_cookie.
13743 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
13744 pointers, to functions with no more vector args than the current
13745 function, and some non-local calls for ABI_V4.
13746 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
13747 sibcall_nonlocal_aix64): Combine to ..
13748 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
13749 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
13750 (sibcall_value_nonlocal_aix<mode>): ..likewise.
13751 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
13752 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
13753 operand.
13754 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
13755 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
13756 sibcall_value_symbolic_64): Delete.
13757
903d1e67
XDL
137582011-04-21 Xinliang David Li <davidxl@google.com>
13759
13760 * cgraph.h: Remove pid.
13761 * cgraph.c: Remove pid.
13762 * value-prof.c (init_node_map): New function.
13763 (del_node_map): New function.
13764 (find_func_by_funcdef_no): New function.
13765 (gimple_ic_transform): Call new function.
13766 * cgraphunit.c (cgraph_finalize_function): Remove pid.
13767 * function.c (get_last_funcdef_no): New function.
13768 * function.h (get_last_funcdef_no): New function.
13769 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
13770 to libgcov function.
13771 (tree-profiling): Call node map init and delete function.
13772
7378e95f
ILT
137732011-04-21 Ian Lance Taylor <iant@google.com>
13774
13775 * godump.c (go_format_type): Use exported Go name for anonymous
13776 field name.
13777
e84a6fcf
NF
137782011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13779
13780 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
13781 Call builtin_function_type_list instead of builtin_function_type.
13782 (UNARY, BINARY, TRINARY, QUAD): Likewise.
13783
4fe058e2
NF
137842011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13785
13786 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
13787 build_function_type_list instead of build_function_type.
13788 Delete variable `endlink'.
13789
1ba0a2d2
NF
137902011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13791
13792 * config/s390/s390.c (s390_init_builtins): Call
13793 build_function_type_list instead of build_function_type.
13794
c0676219
NF
137952011-04-21 Nathan Froyd <froydnj@codesourcery.com>
13796
13797 * config/ia64/ia64.c (ia64_init_builtins): Call
13798 build_function_type_list instead of builtin_function_type.
13799
6ddfda8a
ER
138002011-04-21 Easwaran Raman <eraman@google.com>
13801
3a6448ea 13802 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
13803 (add_stack_var): ...and its reference here...
13804 (expand_stack_vars): ...and here.
13805 (stack_var_cmp): Sort by descending order of size.
13806 (partition_stack_vars): Change heuristic.
1d284ec5 13807 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
13808 (dump_stack_var_partition): Add newline after each partition.
13809
23756963
DA
138102011-04-21 Dimitrios Apostolou <jimis@gmx.net>
13811 Jeff Law <law@redhat.com>
13812
77fa1d54 13813 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
13814 * gengtype.c (matching_file_name_substitute): Likewise.
13815
aa2a43d2
RG
138162011-04-21 Richard Guenther <rguenther@suse.de>
13817
13818 PR lto/48703
1d284ec5 13819 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 13820
4d931f41
EB
138212011-04-21 Eric Botcazou <ebotcazou@adacore.com>
13822
13823 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
13824
f103fa7a
RG
138252011-04-21 Richard Guenther <rguenther@suse.de>
13826
13827 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
13828 file name.
13829
e19f6650
RG
138302011-04-21 Richard Guenther <rguenther@suse.de>
13831
13832 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
13833 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
13834 Use DECL_P, not SSA_VAR_P.
13835 (ptr_derefs_may_alias_p): Likewise.
13836 (ptr_deref_may_alias_ref_p_1): Likewise.
13837 (decl_refs_may_alias_p): Likewise.
13838 (refs_may_alias_p_1): Likewise.
13839 (ref_maybe_used_by_call_p_1): Likewise.
13840 (call_may_clobber_ref_p_1): Likewise.
13841 (indirect_ref_may_alias_decl_p): Assume indirect refrences
13842 are either MEM_REF or TARGET_MEM_REF.
13843 (indirect_refs_may_alias_p): Likewise.
13844 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
13845 for MEM_EXPR of indirect calls.
13846
9d1831bb
TG
138472011-04-21 Tristan Gingold <gingold@adacore.com>
13848
13849 * vmsdbgout.c (write_srccorr): Compute file length from the string.
13850 (dst_file_info_struct): Remove flen field.
13851 (lookup_filename): Remove code that set flen field.
13852
f199c029
TG
138532011-04-21 Tristan Gingold <gingold@adacore.com>
13854
13855 * config/ia64/ia64.c (ia64_start_function): Add a guard.
13856
2894086e
UB
138572011-04-21 Uros Bizjak <ubizjak@gmail.com>
13858
13859 PR target/48708
13860 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
13861 vec_extract and vec_concat for non-SSE4_1 targets.
13862
53f94a5c
RG
138632011-04-21 Richard Guenther <rguenther@suse.de>
13864
13865 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
13866 return statements.
13867
f0dca5ba
JM
138682011-04-21 Joseph Myers <joseph@codesourcery.com>
13869
13870 * config/i386/cygming.h (union tree_node, TREE): Don't define or
13871 undefine.
13872 (FILE): Don't undefine.
13873
984514ac
JM
138742011-04-21 Joseph Myers <joseph@codesourcery.com>
13875
13876 * config/alpha/alpha.c (struct machine_function): Use rtx, not
13877 struct rtx_def *.
13878 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
13879 struct rtx_def *.
13880 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 13881 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
13882 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
13883 rtx_def *.
13884 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
13885 definitions where used.
13886 * config/microblaze/microblaze.h (struct microblaze_args): Use
13887 rtx, not struct rtx_def *.
13888 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
13889 rtx_def *.
2894086e
UB
13890 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
13891 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
13892 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
13893 not struct rtx_def *.
13894 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
13895 struct rtx_def *.
13896 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
13897 rtx_def *.
2894086e 13898 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 13899
0b5a2724
RS
139002011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13901
13902 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
13903 operand_equal_p to compare DR_BASE_ADDRESSes.
13904 (vect_check_interleaving): Likewise.
13905
4b18d683
RS
139062011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13907
13908 PR target/46329
13909 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
13910 for all Neon struct constants.
13911
1a627b35
RS
139122011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
13913
13914 * target.def (legitimate_constant_p): New hook.
13915 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
13916 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
13917 * doc/tm.texi: Regenerate.
13918 * hooks.h (hook_bool_mode_rtx_true): Declare.
13919 * hooks.c (hook_bool_mode_rtx_true): Define.
13920 * system.h (LEGITIMATE_CONSTANT_P): Poison.
13921 * calls.c (precompute_register_parameters): Replace uses of
13922 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
13923 (emit_library_call_value_1): Likewise.
13924 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
13925 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
13926 * ira-costs.c (scan_one_insn): Likewise.
13927 * recog.c (general_operand, immediate_operand): Likewise.
13928 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
13929 * reload1.c (init_eliminable_invariants): Likewise.
13930
13931 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
13932 mode argument.
13933 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
13934 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
13935 argument.
13936 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13937 * config/alpha/predicates.md (input_operand): Update call to
13938 alpha_legitimate_constant_p.
13939
13940 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
13941 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
13942 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
13943 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13944 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
13945 (arm_legitimate_constant_p): New functions.
13946 (arm_cannot_force_const_mem): Make static.
13947
13948 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
13949
13950 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
13951 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
13952 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
13953 instead of bfin_legitimate_constant_p.
13954 (bfin_legitimate_constant_p): Make static. Add a mode argument.
13955 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13956
13957 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
13958
13959 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
13960
13961 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
13962 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
13963 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13964 (frv_legitimate_constant_p): Make static. Add a mode argument.
13965
13966 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
13967 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
13968 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
13969
13970 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
13971 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
13972 * config/i386/i386.c (legitimate_constant_p): Rename to...
13973 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
13974 argument.
13975 (ix86_cannot_force_const_mem): Update accordingly.
13976 (ix86_legitimate_address_p): Likewise.
13977 (TARGET_LEGITIMATE_CONSTANT_P): Define.
13978 * config/i386/i386.md: Update commentary.
13979
13980 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
13981 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
13982 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13983 (ia64_legitimate_constant_p): Make static. Add a mode argument.
13984
13985 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
13986
13987 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
13988 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
13989 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13990 (lm32_legitimate_constant_p): Make static. Add a mode argument.
13991
13992 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
13993 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
13994 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
13995
13996 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
13997 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
13998 (m32r_legitimate_constant_p): New function.
13999
14000 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
14001 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
14002 LEGITIMATE_CONSTANT_P.
14003 (LEGITIMATE_CONSTANT_P): Delete.
14004 * config/m68k/m68k.c (m68k_expand_prologue): Call
14005 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
14006 (m68k_legitimate_constant_p): New function.
14007 * config/m68k/m68k.md: Update comments.
14008
14009 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
14010 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14011 (mcore_legitimate_constant_p): New function.
14012
14013 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
14014 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
14015 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
14016 Add a mode argument.
14017 (mep_legitimate_address): Update accordingly.
14018 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14019
14020 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
14021 Delete.
14022 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
14023 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
14024 static. Check OP's mode for VOIDmode.
14025 (microblaze_legitimate_constant_p): New function.
14026 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14027
14028 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
14029 * config/mips/mips.c (mips_legitimate_constant_p): New function.
14030 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
14031 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14032 * config/mips/predicates.md: Update comments.
14033
14034 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
14035 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
14036 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14037 (mmix_legitimate_constant_p): Make static, return a bool, and take
14038 a mode argument.
14039 (mmix_print_operand_address): Update accordingly.
14040
14041 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14042 Delete.
14043 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
14044 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14045 static. Add a mode argument.
1a627b35
RS
14046 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14047
14048 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14049
14050 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14051 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14052 (pa_legitimate_constant_p): New function.
14053
14054 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14055
14056 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14057 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14058 (pdp11_legitimate_constant_p): New function.
14059
14060 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14061 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14062 (rs6000_legitimate_constant_p): New function.
14063
14064 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14065 (rx_legitimate_constant_p): ...this.
14066 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14067 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14068 (rx_legitimate_constant_p): ...this.
14069 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14070 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14071
14072 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14073 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14074 * config/s390/s390.c (legitimate_constant_p): Rename to...
14075 (s390_legitimate_constant_p): ...this. Make static, return a bool,
14076 and add a mode argument.
14077 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14078
14079 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14080
14081 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14082 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14083 (sh_legitimate_constant_p): New function.
14084
14085 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14086 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14087 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14088 (legitimate_constant_p): Rename to...
14089 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
14090 argument.
14091 (constant_address_p): Update accordingly.
14092
14093 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14094 argument and return a bool.
14095 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14096 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14097 (spu_legitimate_constant_p): Add a mode argument and return a bool.
14098 (spu_rtx_costs): Update accordingly.
14099 * config/spu/predicates.md (vec_imm_operand): Likewise.
14100
14101 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14102
14103 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14104 * config/v850/v850.c (v850_legitimate_constant_p): New function.
14105 (TARGET_LEGITIMATE_CONSTANT_P): Define.
14106
14107 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14108 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14109 * config/vax/vax.c (legitimate_constant_p): Likewise.
14110
14111 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14112 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14113 (xtensa_legitimate_constant_p): New function.
14114
fbbf66e7
RS
141152011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
14116
14117 * target.def (cannot_force_const_mem): Add a mode argument.
14118 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14119 * doc/tm.texi: Regenerate.
14120 * hooks.h (hook_bool_mode_rtx_false): Declare.
14121 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14122 (hook_bool_mode_const_rtx_true): Likewise.
14123 (hook_bool_mode_rtx_false): New function.
14124 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14125 to be non-VOID. Update call to cannot_force_const_mem.
14126 (find_reloads): Update accordingly.
14127 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14128 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14129 argument.
14130 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14131 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14132 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14133 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14134 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14135 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14136 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14137 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14138 (m68k_cannot_force_const_mem): ...this new function.
14139 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14140 argument.
14141 (mips_const_insns, mips_legitimize_const_move): Update calls.
14142 (mips_secondary_reload_class): Likewise.
14143 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14144 (pa_cannot_force_const_mem): ...this new function.
2894086e 14145 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
14146 (rs6000_cannot_force_const_mem): ...this new function.
14147 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14148 argument.
14149 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14150 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14151 to...
14152 (xtensa_cannot_force_const_mem): ...this new function.
14153
b861891b
NF
141542011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14155
14156 * config/mips/mips.c (mips16_build_function_stub): Call
14157 build_function_type_list instead of build_function_type.
14158 (mips16_build_call_stub): Likewise.
14159
34149ed5
NF
141602011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14161
14162 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14163 instead of build_function_type.
14164
12526412
NF
141652011-04-20 Nathan Froyd <froydnj@codesourcery.com>
14166
14167 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14168 instead of build_function_type.
14169
3b84d61f
UB
141702011-04-20 Uros Bizjak <ubizjak@gmail.com>
14171
14172 PR target/48678
14173 * config/i386/i386.md (insv): Change operand 0 constraint to
14174 "register_operand". Change operand 1 and 2 constraint to
14175 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
14176 * config/i386/sse.md (sse4_1_pinsrb): Export.
14177 (sse2_pinsrw): Ditto.
14178 (sse4_1_pinsrd): Ditto.
14179 (sse4_1_pinsrq): Ditto.
14180 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14181 * config/i386/i386.c (ix86_expand_pinsr): New.
14182
4a25752b
ER
141832011-04-20 Easwaran Raman <eraman@google.com>
14184
14185 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14186 containing union type only with -fstrict-aliasing.
14187
04695783
JM
141882011-04-20 Jim Meyering <meyering@redhat.com>
14189
14190 Remove useless if-before-free tests.
14191 * calls.c (expand_call, save_area): Likewise.
14192 * cfgcleanup.c (try_forward_edges): Likewise.
14193 * collect2.c (collect_execute): Likewise.
14194 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14195 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14196 * coverage.c (coverage_checksum_string): Likewise.
14197 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14198 * cselib.c (cselib_init): Likewise.
14199 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14200 (df_set_clean_cfg): Likewise.
14201 * function.c (free_after_compilation): Likewise.
14202 * gcc.c (do_spec_1, main): Likewise.
14203 * gcov.c (create_file_names): Likewise.
14204 * gensupport.c (identify_predicable_attribute): Likewise.
14205 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14206 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14207 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14208 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14209 * ipa-pure-const.c (local_pure_const): Likewise.
14210 * ipa-reference.c (propagate): Likewise.
14211 * ira-costs.c (free_ira_costs): Likewise.
14212 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14213 * matrix-reorg.c (mat_free): Likewise.
14214 * prefix.c (get_key_value): Likewise.
14215 * profile.c (compute_value_histograms): Likewise.
14216 * reload1.c (free_reg_equiv): Likewise.
14217 * sched-deps.c (free_deps): Likewise.
14218 * sel-sched-ir.c (fence_clear): Likewise.
14219 * sese.c (set_rename, if_region_set_false_region): Likewise.
14220 * tree-data-ref.c (free_rdg): Likewise.
14221 * tree-eh.c (lower_try_finally): Likewise.
14222 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14223 * tree-ssa-live.c (delete_var_map): Likewise.
14224 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14225 * tree-ssa-pre.c (phi_trans_add): Likewise.
14226
6788475a
JJ
142272011-04-20 Jakub Jelinek <jakub@redhat.com>
14228
14229 PR tree-optimization/48611
14230 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14231 beyond ERT_MUST_NOT_THROW region.
14232
0eda4033
CM
142332011-04-20 Catherine Moore <clm@codesourcery.com>
14234
14235 * config/mips/mips.opt (mfix-24k): New.
14236 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14237 * config/mips/mips.md (length): Increase by 4 for stores if
14238 fixing 24K errata.
14239 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14240 all noreorder if fixing 24K errata.
14241 * doc/invoke.texi: Document mfix-24k.
14242
01475747
CLT
142432011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
14244
14245 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 14246 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 14247
bc2c1a60
AS
142482011-04-20 Andrew Stubbs <ams@codesourcery.com>
14249
14250 * config/arm/arm.c (arm_gen_constant): Move movw support ....
14251 (const_ok_for_op): ... to here.
14252
583722ee
KT
142532011-04-20 Kai Tietz <ktietz@redhat.com>
14254
2894086e
UB
14255 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14256 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 14257
422c0989
AS
142582011-04-20 Andrew Stubbs <ams@codesourcery.com>
14259
14260 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14261
d7978bff
RG
142622011-04-20 Richard Guenther <rguenther@suse.de>
14263
14264 PR tree-optimization/47892
14265 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14266 are if-convertible.
14267
818412ba
EB
142682011-04-20 Eric Botcazou <ebotcazou@adacore.com>
14269
14270 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14271
b501ce4e
TG
142722011-04-20 Tristan Gingold <gingold@adacore.com>
14273
14274 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14275
516edfdd
GJL
142762011-04-20 Georg-Johann Lay <avr@gjlay.de>
14277
14278 PR target/18145
14279
14280 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14281 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14282 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14283 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14284 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14285
14286 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14287 New prototype.
14288
14289 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14290 (avr_asm_named_section, avr_asm_output_aligned_common,
14291 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14292 New functions to update...
14293 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14294 (avr_asm_init_sections): Overwrite section callbacks for
14295 data_section, bss_section.
14296 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14297 from here to...
14298 (avr_file_end): ...here.
14299
dafc9511
RG
143002011-04-20 Richard Guenther <rguenther@suse.de>
14301
14302 PR middle-end/48695
14303 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 14304 objects and types here. Adjust for their offset before comparing.
dafc9511 14305
1da0876c
RS
143062011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14307
14308 * tree-vect-stmts.c (vectorizable_store): Only chain one related
14309 statement per copy.
14310
25583c4f
RS
143112011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
14312
14313 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14314 (GIMPLE_H): Include $(INTERNAL_FN_H).
14315 (OBJS-common): Add internal-fn.o.
14316 (internal-fn.o): New rule.
14317 * internal-fn.def: New file.
14318 * internal-fn.h: Likewise.
14319 * internal-fn.c: Likewise.
14320 * gimple.h: Include internal-fn.h.
14321 (GF_CALL_INTERNAL): New gf_mask.
14322 (gimple_statement_call): Put fntype into a union with a new
14323 internal_fn field.
14324 (gimple_build_call_internal): Declare.
14325 (gimple_build_call_internal_vec): Likewise.
14326 (gimple_call_same_target_p): Likewise.
14327 (gimple_call_internal_p): New function.
14328 (gimple_call_internal_fn): Likewise.
14329 (gimple_call_fntype): Return null for internal calls.
14330 (gimple_call_set_fntype): Assert that the function is not internal.
14331 (gimple_call_set_fn): Likewise.
14332 (gimple_call_set_fndecl): Likewise.
14333 (gimple_call_set_internal_fn): New function.
14334 (gimple_call_addr_fndecl): Handle null functions.
14335 (gimple_call_return_type): Likewise null types.
14336 * gimple.c (gimple_build_call_internal_1): New function.
14337 (gimple_build_call_internal): Likewise.
14338 (gimple_build_call_internal_vec): Likewise.
14339 (gimple_call_same_target_p): Likewise.
14340 (gimple_call_flags): Handle calls to internal functions.
14341 (gimple_call_fnspec): New function.
14342 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14343 (gimple_has_side_effects): Handle null functions.
14344 (gimple_rhs_has_side_effects): Likewise.
14345 (gimple_call_copy_skip_args): Handle calls to internal functions.
14346 * cfgexpand.c (expand_call_stmt): Likewise.
14347 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14348 * gimple-fold.c (gimple_fold_call): Handle null functions.
14349 (gimple_fold_stmt_to_constant_1): Don't fold
14350 calls to internal functions.
14351 * gimple-low.c (gimple_check_call_args): Handle calls to internal
14352 functions.
14353 * gimple-pretty-print.c (dump_gimple_call): Likewise.
14354 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14355 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14356 (do_warn_unused_result): Likewise.
14357 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14358 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14359 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14360 the target of a call.
14361 (initialize_hash_element): Update accordingly.
14362 (hashable_expr_equal_p): Use gimple_call_same_target_p.
14363 (iterative_hash_hashable_expr): Handle calls to internal functions.
14364 (print_expr_hash_elt): Likewise.
14365 * tree-ssa-pre.c (can_value_number_call): Likewise.
14366 (eliminate): Handle null functions.
14367 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14368 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14369 (find_func_aliases): Likewise.
14370 * value-prof.c (gimple_ic_transform): Likewise.
14371 (gimple_indirect_call_to_profile): Likewise.
14372 * lto-streamer-in.c (input_gimple_stmt): Likewise.
14373 * lto-streamer-out.c (output_gimple_stmt): Likewise.
14374
1a3118e9
JH
143752011-04-19 Jan Hubicka <jh@suse.cz>
14376
14377 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
14378 * ipa-inline.c (inline_small_functions): Compute summaries first,
14379 populate heap later.
1a3118e9 14380
fee8b6da
JH
143812011-04-19 Jan Hubicka <jh@suse.cz>
14382
14383 * cgraph.h (save_inline_function_body): Remove.
14384 * ipa-inline-transform.c: New file, broke out of...
14385 * ipa-inline.c: ... this one; Update toplevel comment.
14386 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14387 make global.
14388 (update_noncloned_frequencies): Move to ipa-inline-transform.c
14389 (cgraph_mark_inline_edge): Rename to inline_call; move to
14390 ipa-inline-transform.c.
14391 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14392 move to ipa-inline-transform.c
14393 (recursive_inlining, inline_small_functions, flatten_function,
14394 ipa_inline, inline_always_inline_functions,
14395 early_inline_small_functions): Update.
14396 (inline_transform): Move to ipa-inline-transform.c.
14397 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14398 Declare.
14399 * Makefile.in (ipa-inline-transform.o): New file.
14400 * cgraphunit.c (save_inline_function_body): Move to
14401 ipa-inline-transform.c
14402
f0679612
DD
144032011-04-19 DJ Delorie <dj@redhat.com>
14404
14405 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14406 registers if we already know there aren't any.
14407 (m32c_emit_epilogue): Don't emit a barrier here.
14408 (m32c_emit_eh_epilogue): Likewise.
14409 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14410 operands at expand time.
14411 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14412 int" wchar type.
14413 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14414 duplicates. Provide aliases instead.
14415 * config/m32c/prologue.md (eh_return): Emit a barrier here.
14416 (eh_epilogue): Add a "(return)" here as a hint to other parts of
14417 the compiler.
14418
32257ddc
AS
144192011-04-19 Anatoly Sokolov <aesok@post.ru>
14420
14421 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14422 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14423 (general_or_i64_p, sparc_register_move_cost): New function.
14424
60bea929
RO
144252011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14426
14427 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 14428 Add lynx, mipssde. Sort table.
60bea929 14429
444b3995 144302011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 14431
9d12f71a
EB
14432 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14433 not negative.
444b3995 14434
d708ce50
JJ
144352011-04-19 Jakub Jelinek <jakub@redhat.com>
14436
14437 PR target/48678
14438 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14439 is a SUBREG with non-MODE_INT mode inside of it.
14440
49c471e3
MJ
144412011-04-19 Martin Jambor <mjambor@suse.cz>
14442
14443 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14444 also according to actual contants.
14445 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14446 (gimple_fold_call): Use it.
14447 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14448
0004f992
MJ
144492011-04-19 Martin Jambor <mjambor@suse.cz>
14450
14451 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14452 non-pointer assignments.
14453
40591473
MJ
144542011-04-19 Martin Jambor <mjambor@suse.cz>
14455
14456 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14457 account anc_offset and otr_type from the indirect edge info.
14458 * ipa-prop.c (get_ancestor_addr_info): New function.
14459 (compute_complex_ancestor_jump_func): Assignment analysis moved to
14460 get_ancestor_addr_info, call it.
14461 (ipa_note_param_call): Do not initialize information about polymorphic
14462 calls, return the indirect call graph edge. Remove the last
14463 parameter, adjust all callers.
14464 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14465 parameters. Initialize polymorphic information in the indirect edge.
14466
abe36b81
EB
144672011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14468
14469 PR lto/48148
14470 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14471 the types if they have different enumeration identifiers.
14472
e6416b30
JH
144732011-04-19 Jan Hubicka <jh@suse.cz>
14474
14475 * cgraph.h (cgraph_optimize_for_size_p): Declare.
14476 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14477 * predict.c (cgraph_optimize_for_size_p): Break out from ...
14478 (optimize_function_for_size_p) ... here.
14479
d39132ea
RG
144802011-04-19 Richard Guenther <rguenther@suse.de>
14481
14482 PR lto/48207
14483 * tree.c (free_lang_data): Do not reset the decl-assembler-name
14484 langhook.
14485
ff7037dc
EB
144862011-04-19 Eric Botcazou <ebotcazou@adacore.com>
14487
14488 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14489 if DECL_NO_INLINE_WARNING_P is set on the function.
14490
c1ee2892
BS
144912011-04-19 Bernd Schmidt <bernds@codesourcery.com>
14492
14493 PR fortran/47976
14494 * reload1.c (inc_for_reload): Return void. All callers changed.
14495 (emit_input_reload_insns): Don't try to delete previous output
14496 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
14497
144982011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
14499
14500 * gengtype.h: Updated copyright year.
14501 (struct input_file_st): Add inpisplugin field.
14502 (type_fileloc): New function.
14503 * gengtype.c
14504 (write_typed_struct_alloc_def): Add gcc_assert.
14505 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14506 (write_typed_alloc_defns): Don't output for plugin files.
14507 (input_file_by_name): Clear inpisplugin field.
14508 (main): Set inpisplugin field for plugin files.
14509
897e0a89
NP
145102011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
14511
14512 * gengtype-state.c (string_eq): New.
14513 (read_state): Use string_eq instead of strcmp when creating the
14514 state_ident_tab.
14515
363ee90e
WG
145162011-04-19 Wei Guozhi <carrot@google.com>
14517
14518 PR target/47855
14519 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14520 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14521 linkage.
14522 * config/arm/constraints.md (Uu): New constraint.
14523 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14524
18a24fed
TG
145252011-04-19 Tristan Gingold <gingold@adacore.com>
14526
14527 * config.gcc (-*-*-*vms): Added.
14528 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14529 definitions moved.
14530 * config/vms/vms-ld.c: New file.
14531 * config/vms/vms-ar.c: New file.
14532 * config/vms/t-vmsnative: New file.
14533
1c13f168
XDL
145342011-04-18 Xinliang David Li <davidxl@google.com>
14535
14536 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14537
84825707
JJ
145382011-04-18 Jakub Jelinek <jakub@redhat.com>
14539
14540 PR middle-end/48661
14541 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14542 if TREE_TYPE (v) is non-NULL.
14543
14544 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14545 gimple_get_virt_mehtod_for_binfo.
14546 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14547 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14548 callers.
14549 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14550
7d4f8d02 145512011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
14552 Steve Ellcey <sje@cup.hp.com>
14553
7d4f8d02
EB
14554 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14555 use its mode as source mode if it isn't VOIDmode.
7254cb57 14556
474e8e70
DCR
145572011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
14558
14559 * doc/passes.texi: Fill crossref nodes.
14560
cff41484
JM
145612011-04-18 Jim Meyering <meyering@redhat.com>
14562
7d4f8d02 14563 Fix doubled-word typos in comments and strings
cff41484
JM
14564 * config/alpha/vms-unwind.h: s/for for/for/
14565 * config/arm/unwind-arm.h: Likewise.
14566 * config/microblaze/microblaze.c: Likewise.
14567 * config/sh/constraints.md: s/in in/in/
14568 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14569
f60c2554
UB
145702011-04-18 Uros Bizjak <ubizjak@gmail.com>
14571
14572 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14573 (AVX_FLOAT_MODE_P): Ditto.
14574 (AVX128_VEC_FLOAT_MODE_P): Ditto.
14575 (AVX256_VEC_FLOAT_MODE_P): Ditto.
14576 (AVX_VEC_FLOAT_MODE_P): Ditto.
14577 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14578 (UNSPEC_MASKSTORE): Ditto.
14579 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14580 Merge from <sse>_movmsk<ssemodesuffix> and
14581 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
14582 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
14583 iterator.
14584 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14585 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14586 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14587
09a2806f
JH
145882011-04-18 Jan Hubicka <jh@suse.cz>
14589
8a8dccb2
JH
14590 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14591
09a2806f
JH
14592 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14593 (want_inline_function_called_once_p): Break out the logic from
14594 ipa_inline.
14595 (edge_badness): Ensure that profile is not misupdated.
14596 (lookup_recursive_calls): Prioritize by call frequencies.
14597 (inline_small_functions): Move program size estimates here;
14598 actually process whole queue even when unit growth has been
14599 met. (to properly compute inline_failed reasons and for the
f60c2554 14600 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
14601 (ipa_inline): Remove unit summary code; first inline hot calls
14602 of functions called once, cold calls next.
14603 (order, nnodes): Remove unused variables.
14604 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14605 (GTFILES): Remove ipa-inline.c
14606 * sel-sched.c (fill_insns): Silence uninitialized var warning.
14607
3eea52ef
EB
146082011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14609
14610 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14611
229a1c59 146122011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 14613 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
14614
14615 * arm.c (neon_builtin_type_bits): Remove.
14616 (typedef enum neon_builtin_mode): New.
14617 (T_MAX): Don't define.
14618 (typedef enum neon_builtin_datum): Remove bits, codes[],
14619 num_vars and base_fcode. Add mode, code and fcode.
14620 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14621 VAR10): Change accordingly.
14622 (neon_builtin_data[]): Change accordingly
14623 (arm_init_neon_builtins): Change accordingly.
14624 (neon_builtin_compare): Remove.
14625 (locate_neon_builtin_icode): Remove.
14626 (arm_expand_neon_builtin): Change accordingly.
14627
14628 * arm.h (enum arm_builtins): Move to ...
14629 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14630
14631 * arm.c (arm_builtin_decl): Declare.
14632 (TARGET_BUILTIN_DECL): Define.
14633 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14634 (arm_builtin_decls[]): New.
14635 (arm_init_neon_builtins): Store builtin declarations in
14636 arm_builtin_decls[].
14637 (arm_init_tls_builtins): Likewise.
14638 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
14639 (arm_builtin_decl): New.
14640
75e802cc
RG
146412011-04-18 Richard Guenther <rguenther@suse.de>
14642
14643 * tree.c (upper_bound_in_type): Build properly canonicalized
14644 INTEGER_CSTs.
14645 (lower_bound_in_type): Likewise.
14646
3b45a007
RG
146472011-04-18 Richard Guenther <rguenther@suse.de>
14648
14649 * gimple.h (gimple_call_addr_fndecl): New function.
14650 (gimple_call_fndecl): Use it.
14651 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14652 for direct calls.
14653 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14654 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14655
d25a79ea
RG
146562011-04-18 Richard Guenther <rguenther@suse.de>
14657
14658 PR middle-end/48650
14659 * tree.c (build_string): STRING_CST is now derived from tree_typed.
14660
7d5fc814
EB
146612011-04-18 Eric Botcazou <ebotcazou@adacore.com>
14662
14663 PR lto/48492
14664 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14665 DECL_IN_CONSTANT_POOL without RTL.
14666
7e7cfcf6
UW
146672011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
14668 Ira Rosen <ira.rosen@linaro.org>
14669
14670 PR target/48252
14671 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14672 to match neon_vzip/vuzp/vtrn_internal.
14673 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14674 outputs explicitly dependent on both inputs.
14675 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14676
49eab32e
JJ
146772011-04-18 Jakub Jelinek <jakub@redhat.com>
14678
14679 PR tree-optimization/48616
14680 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
14681 whether the shift is by scalar or vector based on whether all SLP
14682 scalar stmts have the same rhs.
14683
e54170f4
CLT
146842011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
14685
14686 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
14687 memory operands.
14688
b14ee6c9
RS
146892011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
14690
269e0e18 14691 PR target/43700
b14ee6c9
RS
14692 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
14693 registers.
14694
10158cd3
JH
146952011-04-17 Jan Hubicka <jh@suse.cz>
14696
14697 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
14698 * cgrpahunit.c (cgraph_finalize_function): Do not set
14699 finalized_by_frontend.
10158cd3
JH
14700 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14701 finalized_by_frontend.
14702
2e9bb6ba
JH
147032011-04-17 Jan Hubicka <jh@suse.cz>
14704
14705 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
14706 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
14707 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
14708 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
14709 method.
2e9bb6ba
JH
14710 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
14711 gimple-fold.c
14712 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
14713
beb628e1
EB
147142011-04-17 Eric Botcazou <ebotcazou@adacore.com>
14715
14716 PR lto/48538
14717 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
14718 is non-null before accessing it.
14719 (input_cgraph): Remove trailing spaces.
14720
3e2fdd24
RE
147212011-04-17 Revital Eres <revital.eres@linaro.org>
14722
14723 * params.def (sms-min-sc): New param flag.
14724 * modulo-sched.c (sms_schedule): Use it.
14725 * doc/invoke.texi (sms-min-sc): Document it.
14726
4c0f7679
JH
147272011-04-17 Jan Hubicka <jh@suse.cz>
14728
14729 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
14730 present, also set gimple_call_set_cannot_inline.
14731 * ipa-inline.c: Update toplevel comment.
14732 (MAX_TIME): Remove.
14733 (cgraph_clone_inlined_nodes): Fix linebreaks.
14734 (cgraph_check_inline_limits): Restructure to ...
14735 (caller_growth_limits): ... this one; be more tolerant
14736 on growth in nested inline chains; add explanatory comment;
14737 fix stack accounting thinko introduced by previous patch.
14738 (cgraph_default_inline_p): Remove.
14739 (report_inline_failed_reason): New function.
14740 (can_inline_edge_p): New function.
14741 (can_early_inline_edge_p): New function.
14742 (leaf_node_p): Move upwards in file.
14743 (want_early_inline_function_p): New function.
14744 (want_inline_small_function_p): New function.
14745 (want_inline_self_recursive_call_p): New function.
14746 (cgraph_edge_badness): Rename to ...
14747 (edge_badness) ... this one; fix linebreaks.
14748 (update_edge_key): Update call of edge_baddness; add
14749 detailed dump about queue updates.
14750 (update_caller_keys): Use can_inline_edge_p and
14751 want_inline_small_function_p.
14752 (cgraph_decide_recursive_inlining): Rename to...
14753 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
14754 want_inline_self_recursive_call_p; simplify and remove no longer
14755 valid FIXME.
4c0f7679
JH
14756 (cgraph_set_inline_failed): Remove.
14757 (add_new_edges_to_heap): Use can_inline_edge_p and
14758 want_inline_small_function_p.
14759 (cgraph_decide_inlining_of_small_functions): Rename to ...
14760 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
14761 can/want predicates; cleanup debug ouput; work edges till fibheap
14762 is exhausted and do not stop once unit growth is reached; remove
14763 later loop processing remaining edges.
4c0f7679
JH
14764 (cgraph_flatten): Rename to ...
14765 (flatten_function): ... this one; use can_inline_edge_p
14766 and can_early_inline_edge_p predicates.
14767 (cgraph_decide_inlining): Rename to ...
14768 (ipa_inline): ... this one; remove unreachable nodes before
14769 inlining functions called once; simplify the pass.
14770 (cgraph_perform_always_inlining): Rename to ...
14771 (inline_always_inline_functions): ... this one; use
f60c2554 14772 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
14773 (cgraph_decide_inlining_incrementally): Rename to ...
14774 (early_inline_small_functions): ... this one; simplify
14775 using new predicates; cleanup; make dumps prettier.
14776 (cgraph_early_inlining): Rename to ...
14777 (early_inliner): newer inline regular functions into always-inlines;
14778 fix updating of call stmt summaries.
14779 (pass_early_inline): Update for new names.
14780 (inline_transform): Fix formating.
14781 (gate_cgraph_decide_inlining): Rename to ...
14782 (pass_ipa_inline): ... this one.
14783 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
14784 * ipa-inline-analysis.c (dump_inline_summary): Update.
14785 (compute_inline_parameters): Do not compute disregard_inline_limits;
14786 look for mismatching arguments.
14787 (estimate_growth): Fix handlig of non-trivial self recursion.
14788 (inline_read_summary): Do not read info->disregard_inline_limits.
14789 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
14790 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
14791 and move all checks into can_inline_edge_p predicate; re-enable code
14792 comparing optimization levels.
4c0f7679
JH
14793 (expand_call_inline): Do not test inline_forbidden_into_p.
14794 * Makefile.in (ipa-inline.o): Update arguments.
14795
54333b7c
RE
147962011-04-17 Revital Eres <revital.eres@linaro.org>
14797
14798 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
14799
42c2bf92
RE
148002011-04-17 Revital Eres <revital.eres@linaro.org>
14801
14802 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
14803
b183e9e0
MM
148042011-04-17 Michael Matz <matz@suse.de>
14805
14806 PR tree-optimization/48622
14807 PR lto/48645
14808 * ipa-inline-analysis.c (inline_read_summary): Read size/time
14809 in same order as they're written.
14810
b8a17fa2
JDA
148112011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14812
14813 * config/pa/predicates.md: Reorganize and simplify predicates.
14814 Eliminate duplicate code checks.
14815 (arith_operand): Rename to arith14_operand
14816 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
14817 * config/pa/pa.md: Use renamed operands.
14818 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
14819 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
14820 arith11_operand, adddi3_operand, indexed_memory_operand,
14821 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
14822 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
14823 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
14824 move_dest_operand, move_src_operand, prefetch_cc_operand,
14825 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
14826 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
14827 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
14828 div_operand, int5_operand, movb_comparison_operator,
14829 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
14830 arith_double_operand, ireg_operand, lhs_lshift_operand,
14831 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
14832 integer_store_memory_operand): Likewise.
14833 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
14834 (integer_store_memory_operand, read_only_operand,
14835 function_label_operand, borx_reg_operand,
14836 non_hard_reg_operand): Likewise.
14837 (eq_neq_comparison_operator): Delete unused operator.
14838 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
14839 function_label_operand.
14840 (emit_move_sequence): Likewise.
14841
8dfb9f16
UB
148422011-04-16 Uros Bizjak <ubizjak@gmail.com>
14843
14844 * config/i386/sse.md (sseunpackmode): New mode attribute.
14845 (ssepackmode): Ditto.
14846 (vec_pack_trunc_<mode>): Macroize expander from
14847 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
14848 (vec_unpacks_lo_<mode>): Macroize expander from
14849 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14850 (vec_unpacks_hi_<mode>): Macroize expander from
14851 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14852 (vec_unpacku_lo_<mode>): Macroize expander from
14853 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14854 (vec_unpacku_hi_<mode>): Macroize expander from
14855 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
14856 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
14857 ix86_expand_sse4_unpack.
14858 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
14859
e7f23018
JH
148602011-04-16 Jan Hubicka <jh@suse.cz>
14861
14862 * cgraphbuild.c: Include ipa-inline.h.
14863 (reset_inline_failed): Use initialize_inline_failed.
14864 * cgraph.c: Include ipa-inline.h.
14865 (cgraph_create_node_1): Do not initialize estimated_growth.
14866 (initialize_inline_failed): More to ipa-inline-analysis.c
14867 (dump_cgraph_node): Do not dump inline flags.
14868 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
14869 and disregard_inline_limits flags.
14870 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
14871 time, size, estimated_growth.
8dfb9f16
UB
14872 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
14873 Update.
e7f23018
JH
14874 * cgraphunit.c (cgraph_decide_is_function_needed): Use
14875 DECL_DISREGARD_INLINE_LIMITS.
14876 (cgraph_analyze_function): Do not initialize
14877 node->local.disregard_inline_limits.
14878 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
14879 inlinable, versionable and disregard_inline_limits.
14880 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
14881 cgraph_check_inline_limits, cgraph_default_inline_p,
14882 cgraph_edge_badness, update_caller_keys, update_callee_keys,
14883 add_new_edges_to_heap): Update.
14884 (cgraph_decide_inlining_of_small_function): Update; set
14885 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
14886 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
14887 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
14888 * ipa-inline.h (inline_summary): Add inlinable, versionable,
14889 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
14890 time, size and estimated_growth parameters.
e7f23018
JH
14891 (estimate_edge_growth): Update.
14892 (initialize_inline_failed): Declare.
14893 * ipa-split.c: Include ipa-inline.h
14894 (execute_split_functions): Update.
14895 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
14896 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
14897 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
14898 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
14899 estimated_growth to INT_MIN.
14900 (inline_node_duplication_hook): Likewise.
14901 (dump_inline_summary): Dump new fields.
14902 (compute_inline_parameters): Update.
14903 (estimate_edge_time, estimate_time_after_inlining,
14904 estimate_size_after_inlining, estimate_growth, inline_read_summary,
14905 inline_write_summary):
14906 (initialize_inline_failed): Move here from cgraph.c.
14907 * tree-sra.c: Include ipa-inline.h.
14908 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
14909 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
14910 ipa-inline.h.
e7f23018 14911
e81b8564
UB
149122011-04-16 Uros Bizjak <ubizjak@gmail.com>
14913
14914 * config/i386/sse.md (V16): New mode iterator.
14915 (VI1, VI8): Ditto.
14916 (AVXMODEQI, AVXMODEDI): Remove.
14917 (sse2, sse3): New mode attribute.
14918 (mov<mode>): Use V16 mode iterator.
14919 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
14920 (push<mode>1): Use V16 mode iterator.
14921 (movmisalign<mode>): Ditto.
14922 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14923 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
14924 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
14925 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
14926 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
14927 avx_movdqu<avxmodesuffix>.
14928 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
14929 *avx_movdqu<avxmodesuffix>.
14930 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
14931 avx_lddqu<avxmodesuffix>.
14932 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
14933 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
14934 avx_movnt<AVXMODEDI:mode>.
14935 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
14936 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
14937
4743d438
BS
149382011-04-16 Bernd Schmidt <bernds@codesourcery.com>
14939
14940 PR target/48629
14941 * haifa-sched.c (prune_ready_list, schedule_block): Use
14942 sched_pressure_p rather than flag_sched_pressure.
14943
748f7574 149442011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
14945
14946 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
14947 cgraph_get_node instead of cgraph_get_create_node.
14948
2ba172e0
JJ
149492011-04-15 Jakub Jelinek <jakub@redhat.com>
14950
14951 * cfgexpand.c (expand_debug_expr): Use
14952 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
14953
63d2a353
MM
149542011-04-15 Michael Matz <matz@suse.de>
14955
14956 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
14957 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
14958 * function.c (gimplify_parameters): Ditto.
14959 * gimplify.c (gimplify_vla_decl): Ditto.
14960
14961 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
14962 (gimple_call_set_alloca_for_var): New inline function.
14963 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
14964 * gimple.c (gimple_build_call_from_tree): Remember
14965 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
14966 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
14967
14968 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
14969 calls if they were for VLA objects.
14970
dee74c34
MJ
149712011-04-15 Martin Jambor <mjambor@suse.cz>
14972
14973 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
14974 of ADR_EXPRs.
14975
8e5837bc
MJ
149762011-04-15 Martin Jambor <mjambor@suse.cz>
14977
14978 PR middle-end/48601
14979 * tree-emutls.c (lower_emutls_function_body): Call
14980 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
14981 result is non-NULL.
14982
0dc33c3c
NP
149832011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
14984
14985 * c-decl.c (detect_field_duplicates): Call
14986 objc_detect_field_duplicates instead of objc_get_interface_ivars.
14987
edcdea5b
NF
149882011-04-15 Nathan Froyd <froydnj@codesourcery.com>
14989
14990 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
14991 * gimple.c (gimple_asm_clobbers_memory_p): Define.
14992 * ipa-pure-const.c (check_stmt): Call it.
14993 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
14994
8456558d
RG
149952011-04-15 Richard Guenther <rguenther@suse.de>
14996
14997 PR tree-optimization/48290
14998 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
14999 Properly decide inhibiting propagation based on the valueized
15000 operand. Do loop-closed SSA form preserving here ...
15001 (init_copy_prop): ... not here.
15002
266446be
L
150032011-04-15 H.J. Lu <hongjiu.lu@intel.com>
15004
15005 PR target/48612
15006 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
15007 (*ieee_smax<mode>3): Likewise.
15008
17465c6e
AK
150092011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15010
15011 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
15012 Replace match_operand with match_dup for the third operand in
15013 these expanders.
15014
bce204e5
MK
150152011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15016
15017 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
15018 to track processing of conditionals. Update all callers.
15019 (try_combine, simplify_if_then_else): Update.
15020
3162fdf4
MK
150212011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15022
15023 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
15024 -fsched-pressure.
15025
79002a57 150262011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 15027
79002a57
GJL
15028 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
15029 instead of match_operand for operand 3.
15030
4fd3a105
RS
150312011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
15032
15033 * recog.h (insn_operand_data): Add an "allows_mem" field.
15034 * genoutput.c (output_operand_data): Initialize it.
15035 * optabs.c (maybe_legitimize_operand_same_code): New function.
15036 (maybe_legitimize_operand): Use it when matching the original
15037 op->value.
15038
ad19c4be
EB
150392011-04-15 Eric Botcazou <ebotcazou@adacore.com>
15040
15041 * gimplify.c: Fix issues in comments throughout.
15042 (voidify_wrapper_expr): Fix long line.
15043 (build_stack_save_restore): Likewise.
15044 (gimplify_loop_expr): Likewise.
15045 (gimplify_compound_lval): Likewise.
15046 (gimplify_init_ctor_eval): Likewise.
15047 (gimplify_modify_expr_rhs): Likewise.
15048 (omp_notice_threadprivate_variable): Likewise.
15049
b25aa0e8 150502011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 15051
b25aa0e8
EB
15052 * cfgexpand.c (expand_call_stmt): Convert the function type to the
15053 original one if this is not a builtin function.
e7925582 15054
09db7afe
JJ
150552011-04-14 Jakub Jelinek <jakub@redhat.com>
15056
15057 PR target/48605
15058 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15059 offset it as needed based on top 2 bits in operands[3], change
15060 MEM mode to SFmode and mask those 2 bits away from operands[3].
15061
c59633d9
NP
150622011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15063
15064 * c-parser.c (c_parser_objc_protocol_definition): Updated for
15065 change from objc_declare_protocols() to objc_declare_protocol().
15066
5e60198b
UB
150672011-04-14 Uros Bizjak <ubizjak@gmail.com>
15068
15069 * config/i386/sse.md (sse4_1): New mode attribute.
15070 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15071 avx_blend<ssemodesuffix><avxmodesuffix> and
15072 sse4_1_blend<ssemodesuffix> using VF mode iterator.
15073 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15074 avx_blendv<ssemodesuffix><avxmodesuffix> and
15075 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15076 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15077 avx_dp<ssemodesuffix><avxmodesuffix> and
15078 sse4_1_dp<ssemodesuffix> using VF mode iterator.
15079 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15080 (sse4_1_packusdw): Merge with *avx_packusdw.
15081 (sse4_1_pblendvb): Merge with *avx_pblendvb.
15082 (sse4_1_pblendw): Merge with *avx_pblendw.
15083 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15084 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15085 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15086 VF mode iterator.
15087 (sse4_1_round<ssescalarmodesuffix>): Merge with
15088 *avx_round<ssescalarmodesuffix>.
15089 (aesenc): Merge with *avx_aesenc.
15090 (aesenclast): Merge with *avx_aesenclast.
15091 (aesdec): Merge with *avx_aesdec.
15092 (aesdeclast): Merge with *avx_aesdeclast.
15093 (pclmulqdq): Merge with *pclmulqdq.
15094 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15095 New predicate.
15096 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15097
6f197850
L
150982011-04-14 H.J. Lu <hongjiu.lu@intel.com>
15099
15100 PR middle-end/48608
15101 * cfgexpand.c (get_decl_align_unit): Renamed to ...
15102 (align_local_variable): This. Update DECL_ALIGN.
15103 (add_stack_var): Updated.
15104 (expand_one_stack_var): Likewise.
15105
4a5ba3ed
RG
151062011-04-14 Richard Guenther <rguenther@suse.de>
15107
15108 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15109 Remove.
15110 (dse_initialize_block_local_data, dse_leave_block,
15111 record_voperand_set, get_stmt_uid): Likewise.
15112 (dse_possible_dead_store_p): Allow any kind of killing stmt.
15113 (dse_optimize_stmt): Remove voperand set handling code.
15114 Simplify and improve to handle any kind of killing stmt.
15115 (dse_record_phi): Remove.
15116 (dse_enter_block): Simplify.
15117 (tree_ssa_dse): Likewise.
15118 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15119
10a5dd5d
JH
151202011-04-14 Jan Hubicka <jh@suse.cz>
15121
15122 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15123 * cgraph.h (struct inline_summary): Move to ipa-inline.h
15124 (cgraph_local_info): Remove inline_summary.
15125 * ipa-cp.c: Include ipa-inline.h.
15126 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15127 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15128 accesor.
15129 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15130 (input_overwrite_node): Do not set inline summary.
15131 (input_node): Do not stream inline summary.
15132 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15133 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15134 growth; we do not have inline parameters computed for that anyway.
15135 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15136 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15137 (inline_summary_t): New type and VECtor.
15138 (debug_inline_summary, dump_inline_summaries): Declare.
15139 (inline_summary): Use VOCtor.
15140 (estimate_edge_growth): Kill hack computing call stmt size directly.
15141 * lto-section-in.c (lto_section_name): Add inline section.
15142 * ipa-inline-analysis.c: Include lto-streamer.h
15143 (node_removal_hook_holder, node_duplication_hook_holder): New holders
15144 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15145 (inline_summary_vec): Define.
15146 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15147 dump_inline_summaries): New functions.
5e60198b
UB
15148 (estimate_function_body_sizes): Properly compute size/time of outgoing
15149 calls.
15150 (compute_inline_parameters): Alloc inline_summary; do not compute
15151 size/time of incomming calls.
10a5dd5d
JH
15152 (estimate_edge_time): Avoid missing time summary hack.
15153 (inline_read_summary): Read inline summary info.
15154 (inline_write_summary): Write inline summary info.
15155 (inline_free_summary): Free all hooks and inline summary vector.
15156 * lto-streamer.h: Add LTO_section_inline_summary section.
15157 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15158 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15159
b602d918
RS
151602011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15161
15162 * tree-vectorizer.h (vect_strided_store_supported): Add a
15163 HOST_WIDE_INT argument.
15164 (vect_strided_load_supported): Likewise.
15165 (vect_permute_store_chain): Return void.
15166 (vect_transform_strided_load): Likewise.
15167 (vect_permute_load_chain): Delete.
15168 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15169 count argument. Check that the count is a power of two.
15170 (vect_strided_load_supported): Likewise.
15171 (vect_permute_store_chain): Return void. Update after above changes.
15172 Assert that the access is supported.
15173 (vect_permute_load_chain): Likewise.
15174 (vect_transform_strided_load): Return void.
15175 * tree-vect-stmts.c (vectorizable_store): Update calls after
15176 above interface changes.
15177 (vectorizable_load): Likewise.
15178 (vect_analyze_stmt): Don't check for strided powers of two here.
15179
ab4472fa
RG
151802011-04-14 Richard Guenther <rguenther@suse.de>
15181
15182 PR tree-optimization/48590
15183 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15184 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15185 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15186 BUILT_IN_STACK_SAVE.
15187 * tree-ssa-dce.c (propagate_necessity): Handle
15188 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15189
32dabdaf
NP
151902011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
15191
15192 * c-parser.c (c_parser_objc_class_declaration): Updated call to
15193 objc_declare_class.
15194
daade206
RG
151952011-04-14 Richard Guenther <rguenther@suse.de>
15196
15197 * tree.h (get_object_alignment_1): Declare.
15198 * builtins.c (get_object_alignment_1): Split out worker from ...
15199 (get_object_alignment): ... here.
15200 * fold-const.c (get_pointer_modulus_and_residue): Use
15201 get_object_alignment_1.
15202
920e8172
RS
152032011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15204
15205 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15206 type parameter.
15207 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15208 parameter. Generalise code to handle arrays as well as vectors.
15209 (vect_setup_realignment): Update accordingly.
15210 * tree-vect-stmts.c (vectorizable_store): Likewise.
15211 (vectorizable_load): Likewise.
15212
5ce1ee7f
RS
152132011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
15214
15215 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15216 within the per-copy loop.
15217
6438fe33 152182011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
15219
15220 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15221 in the dump file.
15222
6438fe33 152232011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
15224
15225 * doc/options.texi (Negative): Explicitly mention that the
15226 Negative chain must be circular.
15227
61e46a7d
NF
152282011-04-14 Nathan Froyd <froydnj@codesourcery.com>
15229
15230 * function.h (block_chainon): Declare.
15231 * function.c (block_chainon): Define.
15232
43ea6502 152332011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 15234 Eric Weddington <eric.weddington@atmel.com>
748f7574 15235 Georg-Johann Lay <avr@gjlay.de>
5e60198b 15236
f60c2554 15237 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
15238 New Includes
15239 (avr_init_builtins, avr_expand_builtin,
15240 avr_expand_delay_cycles, avr_expand_unop_builtin,
15241 avr_expand_binop_builtin ): New functions.
15242 (avr_builtin_id): New enum
15243 (struct avr_builtin_description): New struct
15244 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15245 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 15246
43ea6502 15247 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 15248 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
15249 UNSPECV_DELAY_CYCLES): new enumeration values
15250 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15251 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15252 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15253 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15254 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15255 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15256 "fmulsu"): New insns
5e60198b 15257
43ea6502
AS
15258 * config/avr/avr-c.c: fix line endings
15259 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15260 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15261 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15262 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15263 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 15264
43ea6502
AS
15265 * doc/extend.texi (AVR Built-in Functions): New node
15266 (Target Builtins): Add documentation of AVR
15267 built-in functions.
15268
8a9b55f3
GJL
152692011-04-14 Georg-Johann Lay <avr@gjlay.de>
15270
15271 PR target/44643
15272 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15273 alone. Error if non-const data has attribute progmem.
15274
94bd1825
NF
152752011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15276
15277 * tree.h (struct tree_constructor): Include tree_typed instead of
15278 tree_common.
15279 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15280 TS_TYPED instead of TS_COMMON.
15281
5e60198b 152822011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
15283
15284 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15285 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15286 (sse2_psadbw): Merge with *avx_psadbw.
15287 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15288 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15289 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15290 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15291 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15292 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15293 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15294 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15295 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15296 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15297 (ssse3_palignrti): Merge with *avx_palignrti.
15298
4b1a4694
NF
152992011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15300
15301 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15302 * tree-ssanames.c (fini_ssanames): VEC_free it.
15303 (make_ssa_name_fn): Update for VECness of free_ssanames.
15304 (release_ssa_name, release_dead_ssa_names): Likewise.
15305 * tree.h (struct tree_ssa_name): Include tree_typed instead of
15306 tree_common.
15307 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15308 TS_TYPED instead of TS_COMMON.
15309
4da3b811
NF
153102011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15311
15312 * postreload-gcse.c (gcse_after_reload_main): Add calls to
15313 statistics_counter_event.
15314 * tree-ssa-copyrename.c (stats): Define.
15315 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
15316 statistics_counter_event.
15317 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15318 (bswap_stats, widen_mul_stats): Define.
15319 (insert_reciprocals): Increment rdivs_inserted.
15320 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
15321 rfuncs_inserted. Add calls to statistics_counter_event.
15322 (execute_cse_sincos_1): Increment inserted.
15323 (execute_cse_sincos): Zeroize sincos_stats. Add call to
15324 statistics_counter_event.
15325 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
15326 of bswap_stats. Add calls to statistics_counter_event.
15327 (convert_mult_to_widen): Increment widen_mults_inserted.
15328 (convert_plusminus_to_widen): Increment maccs_inserted.
15329 (convert_mult_to_fma): Increment fmas_inserted.
15330 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
15331 calls to statistics_counter_event.
15332
89fa552a
VM
153332011-04-13 Vladimir Makarov <vmakarov@redhat.com>
15334
15335 PR rtl-optimization/48455
15336 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15337 `temp_costs->mem_cost'.
15338
03dfc36d
JH
153392011-04-13 Jan Hubicka <jh@suse.cz>
15340
15341 * ipa-inline.h: New file.
15342 * ipa-inline-analysis.c: New file. Broken out of ...
15343 * ipa-inline.c: ... this file; update toplevel comment;
15344 include ipa-inline.h
15345 (inline_summary): Move to ipa-inline.h
15346 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15347 ipa-inline-analysis.c.
7d4f8d02
EB
15348 (cgraph_estimate_time_after_inlining): Rename to
15349 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
15350 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15351 to estimate_edge_growth.
15352 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15353 rename to estimate_size_after_inlining.
15354 (cgraph_mark_inline_edge): Update for new naming convention.
15355 (cgraph_check_inline_limits): Likewise.
15356 (cgraph_edge_badness): Likewise.
15357 (cgraph_decide_recursive_inlining): Likewise.
15358 (cgraph_decide_inlining_of_small_functions): Likewise.
15359 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
15360 (cgraph_estimate_growth): Rename to estimate_growth; move to
15361 ipa-inline-analysis.c.
03dfc36d
JH
15362 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15363 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15364 (compute_inline_parameters): Likewise.
15365 (compute_inline_parameters_for_current): Likewise.
15366 (pass_inline_parameters): Likewise.
15367 (inline_indirect_intraprocedural_analysis): Likewise.
15368 (analyze_function): Rename to inline_analyze_function; likewise.
15369 (add_new_function): Move to ipa-inline-analysis.c.
15370 (inline_generate_summary): Likewise.
15371 (inline_read_summary): Likewise.
15372 (inline_write_summary): Likewise.
15373 * Makefile.in (ipa-inline-analysis.c): New file.
15374
7673c962
RO
153752011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15376
15377 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15378 * configure: Regenerate.
15379
9698252f
NF
153802011-04-13 Nathan Froyd <froydnj@codesourcery.com>
15381
15382 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15383 instead of tree_common.
15384 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15385 Likewise.
15386 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15387 TS_TYPED rather than TS_COMMON.
15388 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15389
3a7bfdd5
GJL
153902011-04-01 Georg-Johann Lay <avr@gjlay.de>
15391
15392 PR target/45263
86d83530
GJL
15393 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15394 r20 around calls of __tablejump_elpm__
3a7bfdd5 15395
20790697
JJ
153962011-04-13 Jakub Jelinek <jakub@redhat.com>
15397
15398 PR middle-end/48591
15399 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15400 NULL.
15401 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15402
094d7661
BS
154032011-04-13 Bernd Schmidt <bernds@codesourcery.com>
15404
15405 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15406 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15407 (cfi_vec): New typedef.
15408 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15409 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15410 (cie_cfi_vec): New static variable.
15411 (cie_cfi_head): Delete.
15412 (add_cfi): Accept a cfi_vec * as first argument. All callers and
15413 declaration changed. Use vector rather than list operations.
15414 (new_cfi): Don't initialize the dw_cfi_next field.
15415 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15416 rather than list operations.
15417 (lookup_cfa): Use vector rather than list operations.
15418 (output_cfis): New argument upto. Accept a cfi_vec rather than
15419 a dw_cfi_ref list head as argument. All callers changed.
15420 Iterate over the vector using upto as a maximum index.
15421 (output_all_cfis): New static function.
15422 (output_fde): Use vector rather than list operations. Use the
15423 new upto argument for output_cfis rather than manipulating a
15424 list.
15425 (dwarf2out_begin_prologue): Change initializations to match
15426 new struct members.
15427 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15428 from the vector length rather than searching for the end of a list.
15429 Use output_all_cfis.
15430 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15431
673a5740
NC
154322011-04-13 Nick Clifton <nickc@redhat.com>
15433
15434 * config/rx/rx.md (movmemsi): Do not use this pattern when
15435 volatile pointers are involved.
15436
1ee8b298
UB
154372011-04-13 Uros Bizjak <ubizjak@gmail.com>
15438
15439 * config/i386/sse.md (pinsrbits): Remove.
15440 (sse2_packsswb): Merge with *avx_packsswb.
15441 (sse2_packssdw): Merge with *avx_packssdw.
15442 (sse2_packuswb): Merge with *avx_packuswb.
15443 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15444 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15445 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15446 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15447 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15448 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15449 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15450 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15451 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15452 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15453 (sse2_loadld): Merge with *avx_loadld.
15454 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15455 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15456 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15457 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15458 (vec_concatv2di): Merge with *vec_concatv2di_avx.
15459
81f653d6
NF
154602011-04-12 Nathan Froyd <froydnj@codesourcery.com>
15461
15462 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15463 calling TREE_CHAIN.
15464 * print-tree.c (print_node): Likewise.
15465 * tree-inline.c (copy_tree_r): Likewise.
15466 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15467 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15468 instead of TS_COMMON.
15469 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15470 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15471 (copy_node_stat): Zero TREE_CHAIN only if necessary.
15472 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15473 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15474 ...and these...
15475 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15476 * tree.h: ...here.
15477 (TREE_CHAIN): Check for a TS_COMMON structure.
15478 (TREE_TYPE): Check for a TS_TYPED structure.
15479
748f7574 154802011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
15481
15482 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15483 cgraph_get_create_node instead of cgraph_node.
15484
eb345401
NP
154852011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15486
15487 * c-parser.c (c_parser_initelt): Updated call to
15488 objc_build_message_expr.
15489 (c_parser_postfix_expression): Likewise.
15490
a6c46762
KT
154912011-04-12 Kai Tietz <ktietz@redhat.com>
15492
15493 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15494 MASK_MS_BITFIELD_LAYOUT bit.
15495
b4ccfed9
JJ
154962011-04-12 Jakub Jelinek <jakub@redhat.com>
15497
15498 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15499 assert it is always true.
15500 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15501 moves.
15502
0d8a2528
NP
155032011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
15504
15505 * c-parser.c (c_lex_one_token): Rewritten conditional used when
15506 compiling Objective-C to be more efficient.
15507
06bd234a
AF
155082011-04-12 Axel Freyn <axel-freyn@gmx.de>
15509
15510 * opts-common.c (decode_cmdline_options_to_array): Remove variable
15511 argv_copied.
15512
28569ac3
RS
155132011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15514
15515 * recog.h, genoutput.c, optabs.c: Revert last patch.
15516
ae59e00d
RR
155172011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
15518
81b1e7eb
UB
15519 PR target/48090
15520 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 15521
cff1b7e0
RS
155222011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15523
15524 * recog.h (insn_operand_data): Add an "allows_mem" field.
15525 * genoutput.c (output_operand_data): Initialize it.
15526 * optabs.c (maybe_legitimize_operand_same_code): New function.
15527 (maybe_legitimize_operand): Use it when matching the original
15528 op->value.
15529
77059241
RS
155302011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15531
15532 * genpreds.c (process_define_predicate): Move most processing
15533 to gensupport.c. Continue to validate the expression.
15534 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15535 (process_define_predicate): Move processing to gensupport.c.
15536 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15537 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15538 (compute_predicate_codes): Moved from genrecog.c. Add lineno
15539 argument.
15540 (valid_predicate_name_p): New function, split out from old
15541 genpreds.c:process_define_predicate.
15542 (process_define_predicate): New function, combining code from
15543 old genpreds.c and genrecog.c functions.
15544 (process_rtx): Call it for DEFINE_PREDICATE and
15545 DEFINE_SPECIAL_PREDICATE.
15546
6308e208
RS
155472011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
15548
15549 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15550 size of a '%A' memory reference.
15551 (T_DREG, T_QREG): New neon_builtin_type_bits.
15552 (arm_init_neon_builtins): Assert that the load and store operands
15553 are neon_struct_operands.
15554 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15555 (NEON_ARG_MEMORY): New builtin_arg.
15556 (neon_dereference_pointer): New function.
15557 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15558 Handle NEON_ARG_MEMORY.
15559 (arm_expand_neon_builtin): Update after above interface changes.
15560 Use NEON_ARG_MEMORY for loads and stores.
15561 * config/arm/predicates.md (neon_struct_operand): New predicate.
15562 * config/arm/iterators.md (V_two_elem): Tweak formatting.
15563 (V_three_elem): Use BLKmode for accesses that have no associated mode.
15564 (V_four_elem): Tweak formatting.
15565 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15566 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15567 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15568 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15569 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15570 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15571 (neon_vst4<mode>): Replace pointer operand with a memory operand.
15572 Use %A in the output template.
15573 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15574 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15575 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15576 the width of the memory access. Remove post-increment.
15577 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15578
e5db8f2f
NC
155792011-04-12 Nick Clifton <nickc@redhat.com>
15580
15581 * config/v850/v850.c (expand_prologue): Do not use the CALLT
15582 instruction for interrupt handlers if the target is the basic V850
15583 architecture.
15584 (expand_epilogue): Likewise.
15585
74f091d6
JJ
155862011-04-12 Jakub Jelinek <jakub@redhat.com>
15587
15588 PR rtl-optimization/48549
15589 * combine.c (propagate_for_debug): Also stop after BB_END of
15590 this_basic_block. Process LAST and just stop processing after it.
15591 (combine_instructions): If last_combined_insn has been deleted,
15592 set last_combined_insn to its PREV_INSN.
15593
f20ca725
RG
155942011-04-12 Richard Guenther <rguenther@suse.de>
15595
15596 PR tree-optimization/46076
15597 * gimple.h (struct gimple_statement_call): Add fntype field.
15598 (gimple_call_fntype): Adjust.
15599 (gimple_call_set_fntype): New function.
15600 * gimple.c (gimple_build_call_1): Set the call function type.
15601 * gimplify.c (gimplify_call_expr): Preserve the function
15602 type the frontend used for the call.
15603 (gimplify_modify_expr): Likewise.
15604 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15605 function type.
15606 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15607 function type.
15608 * tree-ssa.c (useless_type_conversion_p): Function pointer
15609 conversions are useless.
15610
a358e188
MJ
156112011-04-12 Martin Jambor <mjambor@suse.cz>
15612
15613 * cgraph.h (cgraph_node): Remove function declaration.
15614 (cgraph_create_node): Declare.
15615 (cgraph_get_create_node): Likewise.
15616 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15617 Updated all callers.
15618 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15619 the decl does not already exist. Call cgraph_get_create_node instead
15620 of cgraph_node.
15621 (cgraph_get_create_node): New function.
15622 (cgraph_same_body_alias): Update comment.
15623 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15624 assert it does not return NULL.
15625 (cgraph_update_edges_for_call_stmt): Likewise.
15626 (cgraph_clone_edge): Likewise.
15627 (cgraph_create_virtual_clone): Likewise.
15628 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15629 instead of cgraph_node.
15630 (cgraph_add_new_function): Call cgraph_create_node or
15631 cgraph_get_create_node instead of cgraph_node.
15632 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15633 instead of cgraph_node.
15634 (record_eh_tables): Likewise.
15635 (mark_address): Likewise.
15636 (mark_load): Likewise.
15637 (build_cgraph_edges): Call cgraph_get_create_node instead
15638 of cgraph_node.
15639 (rebuild_cgraph_edges): Likewise.
15640 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15641 instead of cgraph_node.
15642 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15643 cgraph_node.
15644 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15645 cgraph_create_node instead of cgraph_node.
15646 * c-decl.c (finish_function): Call cgraph_get_create_node instead
15647 of cgraph_node.
15648 * lto-cgraph.c (input_node): Likewise.
15649 * lto-streamer-in.c (input_function): Likewise.
15650 * varasm.c (mark_decl_referenced): Likewise.
15651 (assemble_alias): Likewise.
15652
fe660d7b
MJ
156532011-04-12 Martin Jambor <mjambor@suse.cz>
15654
15655 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15656 instead of cgraph_node and assert it does not return NULL.
15657 * lto-streamer-in.c (lto_read_body): Likewise.
15658 * omp-low.c (new_omp_context): Likewise.
15659 (create_task_copyfn): Likewise.
15660 * tree-emutls.c (lower_emutls_function_body): Likewise.
15661 * matrix-reorg.c (transform_allocation_sites): Likewise.
15662
bae5cddf
JJ
156632011-04-12 Jakub Jelinek <jakub@redhat.com>
15664
15665 PR c/48552
15666 * c-typeck.c (build_asm_expr): Error out on attempts to use
15667 void type outputs or inputs for constraints that allow reg or
15668 don't allow memory.
15669
06eb52ca
CLT
156702011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
15671 Richard Earnshaw <rearnsha@arm.com>
15672
15673 PR target/48250
15674 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15675 to use sign-magnitude offsets. Reject unsupported unaligned
15676 cases. Add detailed description in comments.
15677 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15678 condition from TARGET_32BIT to TARGET_ARM.
15679
648a616b
NF
156802011-04-11 Nathan Froyd <froydnj@codesourcery.com>
15681
15682 * tree.h (struct typed_tree): New.
15683 (struct tree_common): Include it instead of tree_base.
15684 (TREE_TYPE): Update for new location of type field.
15685 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
15686 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
15687 (union tree_node): Add typed field.
15688 * treestruct.def (TS_TYPED): New.
15689 * lto-streamer.c (check_handled_ts_structures): Handle it.
15690 * tree.c (MARK_TS_TYPED): New macro.
15691 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
15692
1e6d1da0
EB
156932011-04-11 Eric Botcazou <ebotcazou@adacore.com>
15694
15695 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
15696 (force_nonfallthru): Do not alter the loop nest if no basic block
15697 was created.
15698
156992011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
15700
15701 * config/i386/sse.md (VI): New mode iterator.
15702 (SSEMODEI): Remove.
15703 (AVX256MODEI): Ditto.
15704 (AVXMODEF4P): Ditto.
15705 (avxvecpsmode): Ditto.
15706 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
15707 (sse2_andnot<mode>3): New expander.
15708 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
15709 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
15710 (<any_logic:code><mode>3): Use VI mode iterator.
15711 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
15712 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
15713 (*andnottf3): Handle AVX three-operand constraints.
15714 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
15715
b1372d5d 157162011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 15717 Robert Millan <rmh@gnu.org>
b1372d5d
JM
15718
15719 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
15720 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
15721 GNU_USER_DYNAMIC_LINKER64): Define.
15722 (REG_NAME): Don't undefine.
15723 (MD_UNWIND_SUPPORT): Undefine.
15724 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
15725 (REG_NAME): Don't undefine.
15726 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 15727 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 15728
761c0c6e
JM
157292011-04-11 Joseph Myers <joseph@codesourcery.com>
15730
15731 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
15732 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
15733
26e0228f
XDL
157342011-04-11 Xinliang David Li <davidxl@google.com>
15735
15736 * value-profile.c (check_ic_target): New function.
15737 (gimple_ic_transform): Sanity check indirect call target.
15738 * gimple-low.c (gimple_check_call_args): Interface change.
15739 (gimple_check_call_matching_types): New function.
15740 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
15741
157422011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
15743
15744 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
15745 tree-pretty-print.h & realmpfr.h.
15746
a58dfa49
VM
157472011-04-11 Vladimir Makarov <vmakarov@redhat.com>
15748
15749 PR middle-end/48464
15750 * ira.c (setup_pressure_classes): Fix typo in loop condition.
15751 (setup_allocno_and_important_classes): Ditto.
15752
107fd1c1
JM
157532011-04-11 Joseph Myers <joseph@codesourcery.com>
15754
15755 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
15756 GNU_USER_DYNAMIC_LINKER.
15757 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
15758 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15759 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
15760 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15761 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15762 GNU_USER_TARGET_OS_CPP_BUILTINS.
15763 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
15764 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15765 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15766 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15767 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
15768 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
15769 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15770 GNU_USER_TARGET_OS_CPP_BUILTINS.
15771 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15772 GNU_USER_DYNAMIC_LINKER.
15773 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15774 GNU_USER_TARGET_OS_CPP_BUILTINS.
15775 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
15776 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15777 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
15778 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15779 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
15780 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
15781 GNU_USER_DYNAMIC_LINKER64): Remove.
15782 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
15783 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15784 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15785 GNU_USER_DYNAMIC_LINKER.
15786 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15787 GNU_USER_TARGET_OS_CPP_BUILTINS.
15788 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15789 GNU_USER_TARGET_OS_CPP_BUILTINS.
15790 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
15791 to GNU_USER_TARGET_OS_CPP_BUILTINS.
15792 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
15793 GNU_USER_TARGET_OS_CPP_BUILTINS.
15794 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
15795 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
15796 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15797 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
15798 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15799 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15800 GNU_USER_DYNAMIC_LINKER.
15801 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
15802 GNU_USER_TARGET_OS_CPP_BUILTINS.
15803 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
15804 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15805 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15806 GNU_USER_DYNAMIC_LINKER.
15807 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15808 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15809 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
15810 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15811 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15812 GNU_USER_DYNAMIC_LINKER.
15813 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
15814 GNU_USER_DYNAMIC_LINKERN32.
15815 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
15816 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
15817 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
15818 GNU_USER_DYNAMIC_LINKER32.
15819 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
15820 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15821 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15822 GNU_USER_DYNAMIC_LINKER.
15823 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
15824 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15825 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
15826 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 15827 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
15828 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
15829 GNU_USER_DYNAMIC_LINKER32.
15830 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
15831 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
15832 GNU_USER_DYNAMIC_LINKER.
15833 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
15834 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15835 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15836 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
15837 GNU_USER_DYNAMIC_LINKER64.
15838 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
15839 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15840 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15841 GNU_USER_DYNAMIC_LINKER.
15842 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
15843 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15844 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
15845 GNU_USER_DYNAMIC_LINKER.
15846 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
15847 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15848 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
15849 GNU_USER_DYNAMIC_LINKER32.
15850 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15851 GNU_USER_DYNAMIC_LINKER64.
15852 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
15853 GNU_USER_DYNAMIC_LINKER64.
15854 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
15855 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
15856 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
15857 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 15858 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 15859
e24609cf
JM
158602011-04-11 Joseph Myers <joseph@codesourcery.com>
15861
15862 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
15863 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
15864 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
15865 GNU_USER_DYNAMIC_LINKER.
15866 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15867 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
15868 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
15869 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
15870 GNU_USER_DYNAMIC_LINKER64.
15871 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
15872 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
15873 GNU_USER_LINK_EMULATION.
15874 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
15875 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
15876 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
15877 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
15878 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
15879 CPP_SPEC, CC1_SPEC): Remove.
15880 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
15881 (GNU_USER_DYNAMIC_LINKER): Define.
15882 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
15883 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
15884 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
15885 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
15886 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
15887 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
15888 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15889 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
15890 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
15891 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
15892 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
15893 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
15894 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
15895 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
15896 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
15897 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
15898 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15899 GNU_USER_DYNAMIC_LINKER.
15900 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15901 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15902 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15903 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15904 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
15905 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
15906 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
15907 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
15908 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 15909 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 15910
b8ce4e94
KT
159112011-04-11 Kai Tietz <ktietz@redhat.com>
15912
15913 PR target/9601
15914 PR target/11772
15915 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
15916 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
15917 comment.
15918 (ix86_is_msabi_thiscall): Removed.
15919 (ix86_is_type_thiscall): Likewise.
15920 (ix86_get_callcvt): New function.
15921 (ix86_comp_type_attributes): Simplify check.
15922 (ix86_function_regparm): Use ix86_get_callcvt for calling
15923 convention attribute checks.
15924 (ix86_return_pops_args): Likewise.
15925 (ix86_static_chain): Likewise.
15926 (x86_this_parameter): Likewise.
15927 (x86_output_mi_thunk): Likewise.
15928 (ix86_function_type_abi): Optimize check for types without attributes.
15929 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
15930 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
15931 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
15932 by flag-values.
15933 (IX86_BASE_CALLCVT): Helper macro.
15934 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
15935 Use ix86_get_callcvt for calling convention attribute checks and avoid
15936 symbol-decoration for stdcall in TARGET_RTD case.
15937 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
15938 Likewise.
15939 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
15940 for declaration.
15941
798dd0ba
UB
159422011-04-11 Uros Bizjak <ubizjak@gmail.com>
15943
15944 * config/i386/sse.md (VI_128): New mode iterator.
15945 (VI12_128): Rename from SSEMODE12.
15946 (VI14_128): Rename from SSEMODE14.
15947 (VI124_128): New mode iterator.
15948 (VI24_128): Rename from SSEMODE248.
15949 (VI248_128): Rename from SSEMODE248.
15950 (SSEMODE124C8): Remove.
15951 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
15952 (*sse2_<plusminus_insn><mode>3): Merge with
15953 *avx_<plusminus_insn><mode>3.
15954 (*mulv8hi3): Merge with *avx_mulv8hi3.
15955 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
15956 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
15957 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
15958 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
15959 (ashr<mode>3): Merge with *avx_ashr<mode>3.
15960 (lshr<mode>3): Merge with *avx_lshr<mode>3.
15961 (ashl<mode>3): Merge with *avx_ashl<mode>3.
15962 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
15963 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
15964 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
15965 (*<smaxmin:code>v8hi3): Ditto.
15966 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
15967 (*<smaxmin:code>v16qi3): Ditto.
15968 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
15969 (*sse2_eq<mode>3): Ditto.
15970 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
15971 (*sse2_gt<mode>3): Ditto.
15972 (vcondv2di): Split out of vcond<mode>.
15973 (vconduv2di): Split out of vcondu<mode>.
15974
956011be
RG
159752011-04-11 Richard Guenther <rguenther@suse.de>
15976
15977 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
15978 before calling tree_low_cst.
15979
e6313a78
RG
159802011-04-11 Richard Guenther <rguenther@suse.de>
15981
15982 * stor-layout.c (layout_type): Compute all array index size operations
15983 in the original type.
15984 (initialize_sizetypes): Add comment.
15985 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
15986
e69d7376
JM
159872011-04-11 Joseph Myers <joseph@codesourcery.com>
15988
15989 * common.opt (Tbss=, Tdata=, Ttext=): New options.
15990
9f9ebcdf
MJ
159912011-04-11 Martin Jambor <mjambor@suse.cz>
15992
15993 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
15994 of cgraph_node, handle NULL return value.
15995 (cgraph_global_info): Likewise.
15996 (cgraph_rtl_info): Likewise.
15997 * tree-inline.c (estimate_num_insns): Likewise.
15998 * gimplify.c (unshare_body): Likewise.
15999 (unvisit_body): Likewise.
16000 (gimplify_body): Likewise.
16001 * predict.c (optimize_function_for_size_p): Likewise.
16002 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
16003 (call_may_clobber_ref_p_1): Likewise.
16004 * varasm.c (function_section_1): Likewise.
16005 (assemble_start_function): Likewise.
16006
581985d7
MJ
160072011-04-11 Martin Jambor <mjambor@suse.cz>
16008
16009 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
16010 of cgraph_node.
16011 * final.c (rest_of_clean_state): Likewise.
16012 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
16013 * passes.c (pass_init_dump_file): Likewise.
16014 (execute_all_ipa_transforms): Likewise.
16015 (function_called_by_processed_nodes_p): Likewise.
16016 * predict.c (maybe_hot_frequency_p): Likewise.
16017 (probably_never_executed_bb_p): Likewise.
16018 (compute_function_frequency): Likewise.
16019 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
16020 (unnest_nesting_tree_1): Likewise.
16021 (lower_nested_functions): Likewise.
16022 * tree-optimize.c (execute_fixup_cfg): Likewise.
16023 (tree_rest_of_compilation): Likewise.
16024 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
16025 * tree-sra.c (ipa_early_sra): Likewise.
16026 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16027 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
16028 * ipa.c (record_cdtor_fn): Likewise.
16029 * ipa-inline.c (cgraph_early_inlining): Likewise.
16030 (compute_inline_parameters_for_current): Likewise.
16031 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16032 * ipa-pure-const.c (local_pure_const): Likewise.
16033 * ipa-split.c (split_function): Likewise.
16034 (execute_split_functions): Likewise.
16035 * cgraphbuild.c (build_cgraph_edges): Likewise.
16036 (rebuild_cgraph_edges): Likewise.
16037 (cgraph_rebuild_references): Likewise.
16038 (remove_cgraph_callee_edges): Likewise.
16039 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16040 (verify_cgraph_node): Likewise.
16041 (cgraph_analyze_functions): Likewise.
16042 (cgraph_preserve_function_body_p): Likewise.
16043 (save_inline_function_body): Likewise.
16044 (save_inline_function_body): Likewise.
16045 * tree-inline.c (copy_bb): Likewise.
16046 (optimize_inline_calls): Likewise.
16047
57dbdc5a
MJ
160482011-04-11 Martin Jambor <mjambor@suse.cz>
16049
16050 PR tree-optimization/48195
16051 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16052 ipa_check_create_edge_args.
16053 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16054 ipa_check_create_edge_args.
16055 * ipa-inline.c (inline_generate_summary): Do not call
16056 ipa_check_create_node_params and ipa_check_create_edge_args.
16057 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16058 ipa_check_create_edge_args.
16059
d108e679
AS
160602011-04-09 Anatoly Sokolov <aesok@post.ru>
16061
16062 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16063 instead of loop.
16064 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16065 * function.c (record_hard_reg_sets): Likewise.
16066 * ira.c (compute_regs_asm_clobbered): Likewise.
16067 * sched-deps.c (sched_analyze_1): Likewise.
16068 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16069
3411bc59
XDL
160702011-04-09 Xinliang David Li <davidxl@google.com>
16071
16072 PR tree-optimization/PR48484
16073 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16074 has_valid_pred lazily
16075
b365495a
DS
160762011-04-09 Duncan Sands <baldrick@free.fr>
16077
16078 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16079
68bc509a
EB
160802011-04-08 Eric Botcazou <ebotcazou@adacore.com>
16081
16082 * combine.c (combine_validate_cost): Adjust comments. Set registered
16083 cost of I0 to zero at the end, if any.
16084
041e059f
XDL
160852011-04-08 Xinliang David Li <davidxl@google.com>
16086
68bc509a
EB
16087 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16088 to insane profile data.
041e059f 16089
444b3995
XDL
160902011-04-08 Xinliang David Li <davidxl@google.com>
16091
16092 * ipa-cp.c (ipcp_update_profiling): Correct
16093 negative scale factor due to insane profile data.
16094
6a801cf2
XDL
160952011-04-08 Xinliang David Li <davidxl@google.com>
16096
16097 * final.c (dump_basic_block_info): New function.
16098 (final): Dump basic block.
16099 (final_scan_insn): Remove old dump.
16100
d5f3624e
SK
161012011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
16102
68bc509a
EB
16103 PR target/47829
16104 * config.gcc (i386-*-freebsd): Disable unwind table generation for
16105 crtbegin/crtend.
d5f3624e 16106
42821aff
MM
161072011-04-08 Michael Matz <matz@suse.de>
16108
16109 PR middle-end/48389
16110 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16111 functions.
16112 (rebuild_jump_labels): Call rebuild_jump_labels_1.
16113 * rtl.h (rebuild_jump_labels_chain): Declare.
16114 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16115 insns inserted on edges.
16116
ad7be009
JM
161172011-04-08 Joseph Myers <joseph@codesourcery.com>
16118
16119 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16120 * config/arm/arm-arches.def: New.
16121 * config/arm/arm-opts.h: New.
16122 * config/arm/genopt.sh: New.
16123 * config/arm/arm-tables.opt: New (generated).
16124 * config/arm/arm.c (arm_handle_option, arm_target_help,
16125 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16126 (all_architectures): Get most table contents from arm-arches.def.
16127 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16128 arm_selected_tune here.
16129 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16130 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16131 (march=, mcpu=, mtune=): Use Enum and Var.
16132 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16133 (arm.o): Update dependencies.
ecbb6fb7 16134
42821aff 161352011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
16136
16137 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16138 of header_file.
16139 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16140 (write_typed_alloc_defns): Likewise.
16141 (main): Calls write_typed_alloc_defns with output_header.
16142
8d189b3f
VM
161432011-04-08 Vladimir Makarov <vmakarov@redhat.com>
16144
68bc509a 16145 PR inline-asm/48435
8d189b3f
VM
16146 * ira-color.c (setup_profitable_hard_regs): Add comments.
16147 Don't take prohibited hard regs into account.
16148 (setup_conflict_profitable_regs): Rename to
16149 get_conflict_profitable_regs.
16150 (check_hard_reg_p): Check prohibited hard regs.
16151
44f370bf
NF
161522011-04-08 Nathan Froyd <froydnj@codesourcery.com>
16153
16154 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16155 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16156 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16157
483d7ad3
JDA
161582011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16159
16160 PR target/48366
16161 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 16162 move from floating point to shift amount register.
483d7ad3
JDA
16163 (emit_move_sequence): Remove secondary reload support for floating
16164 point to shift amount amount register copies.
16165 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16166 amount register copies.
16167 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16168 register, return false if mode isn't a scalar integer mode.
16169 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16170
97e03fa1
RG
161712011-04-08 Richard Guenther <rguenther@suse.de>
16172
16173 * gimple.c (gimple_call_flags): Remove kludge.
16174
9d40778b
AM
161752011-04-08 Alexander Monakov <amonakov@ispras.ru>
16176
16177 * sel-sched.c (sel_region_init): Move call to
16178 sel_setup_region_sched_flags after setup_current_loop_nest.
16179
19ac7892
AB
161802011-04-08 Andrey Belevantsev <abel@ispras.ru>
16181
16182 PR rtl-optimization/48272
19ac7892
AB
16183 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16184 init_insn_reg_pressure_info. Adjust a caller.
16185 * sched-int.h (init_insn_reg_pressure_info): Declare.
16186 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16187 when sched-pressure is enabled.
16188
0f8c63cc
RG
161892011-04-08 Richard Guenther <rguenther@suse.de>
16190
16191 * gimple.c (gimple_set_modified): Do not queue calls to
16192 MODIFIED_NORETURN_CALLS here ...
16193 * tree-ssa-operands.c (update_stmt_operands): ... but here.
16194
5e5a425e
RG
161952011-04-08 Richard Guenther <rguenther@suse.de>
16196
16197 PR lto/48467
16198 * toplev.c (lang_dependent_init): Do not open asm_out_file
16199 in WPA mode, nor perform debug machinery initialization.
16200 (finalize): Do not unlink asm_out_file in WPA mode.
16201
9bfc434b
RG
162022011-04-08 Richard Guenther <rguenther@suse.de>
16203
16204 * gimple.h (gimple_call_fntype): New function.
16205 (gimple_call_return_type): Use it.
16206 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16207 * gimple-low.c (gimple_check_call_args): Likewise.
16208 * gimple.c (gimple_call_flags): Likewise.
16209 (gimple_call_arg_flags): Likewise.
16210 (gimple_call_return_flags): Likewise.
16211 * tree-cfg.c (verify_gimple_call): Likewise.
16212 (do_warn_unused_result): Likewise.
16213 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16214 * value-prof.c (gimple_ic_transform): Fix fndecl check.
16215
7c1f0b40
DM
162162011-04-08 Dmitry Melnik <dm@ispras.ru>
16217
16218 PR rtl-optimization/48235
16219 * sel-sched.c (code_motion_process_successors): Recompute the last
16220 insn in basic block if control flow changed.
16221 (code_motion_path_driver): Ditto. Recompute the first insn as well.
16222 Update condition for ilist_remove.
16223
ea4d630f
AM
162242011-04-08 Alexander Monakov <amonakov@ispras.ru>
16225
16226 PR rtl-optimization/48302
16227 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16228 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
16229 it to record added preheader blocks.
16230 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
16231 on to sel_add_loop_preheaders.
16232 (sel_region_init): Move call to setup_current_loop_nest after
16233 sel_init_bbs.
16234
07643d76
AM
162352011-04-08 Alexander Monakov <amonakov@ispras.ru>
16236
16237 PR target/48273
16238 * cfgloop.h (loop_has_exit_edges): New helper.
16239 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16240 non-clonable.
16241 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16242 that have no exit edges.
16243
1f3b2b4e
AM
162442011-04-08 Alexander Monakov <amonakov@ispras.ru>
16245
16246 PR rtl-optimization/48442
16247 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
16248 all callers. Adjust assert.
16249
554f1948
JJ
162502011-04-08 Jakub Jelinek <jakub@redhat.com>
16251
16252 PR tree-optimization/48377
16253 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16254 is_packed to true even for types with smaller TYPE_ALIGN than
16255 TYPE_SIZE.
16256
ddf72388
RG
162572011-04-08 Richard Guenther <rguenther@suse.de>
16258
16259 PR bootstrap/48513
16260 * doc/tm.texi: Re-generate.
16261
0c27e2d8
WG
162622011-04-08 Wei Guozhi <carrot@google.com>
16263
16264 PR target/47855
16265 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16266 * config/arm/arm.c (arm_attr_length_push_multi): New function.
16267 * config/arm/arm.md (*push_multi): Change the length computation to
16268 call a C function.
16269
07c5f94e
AS
162702011-04-08 Anatoly Sokolov <aesok@post.ru>
16271
16272 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16273 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16274 * doc/tm.texi: Regenerate.
16275 * system.h (ASM_OUTPUT_BSS): Poison.
16276 * varasm.c (asm_output_bss): Remove function.
16277 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 16278
07c5f94e
AS
16279 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16280 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16281 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16282 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16283 Likewise.
16284 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16285 Likewise.
16286 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16287 Likewise.
16288 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16289
5f2c36e1
JM
162902011-04-07 Joseph Myers <joseph@codesourcery.com>
16291
16292 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16293 EnumValue lines.
16294
39e7722b
JM
162952011-04-07 Joseph Myers <joseph@codesourcery.com>
16296
16297 * config/m68k/m68k.c (m68k_handle_option): Don't handle
16298 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16299 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16300 OPT_mcpu32.
16301 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16302 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16303 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16304 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16305 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16306 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16307 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16308 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16309 options. Don't map other m68k options manually. Don't handle
16310 old-style options as canonical.
16311 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 16312 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 16313
cf103ca4
EB
163142011-04-07 Eric Botcazou <ebotcazou@adacore.com>
16315
16316 * basic-block.h (force_nonfallthru): Move to...
16317 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16318 (force_nonfallthru): ...here.
16319 * cfghooks.c (force_nonfallthru): New function.
16320 * cfgrtl.c (force_nonfallthru): Rename into...
16321 (rtl_force_nonfallthru): ...this.
16322 (commit_one_edge_insertion): Do not set AUX field.
16323 (commit_edge_insertions): Do not discover new basic blocks.
16324 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16325 (cfg_layout_rtl_cfg_hooks): Likewise.
16326 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16327 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
16328 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16329
14431f58
AS
163302011-04-07 Anatoly Sokolov <aesok@post.ru>
16331
16332 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16333 Remove macros.
16334
3729983c
UB
163352011-04-07 Uros Bizjak <ubizjak@gmail.com>
16336
16337 * config/i386/sse.md: Update copyright year.
16338 (avxcvtvecmode): Remove.
16339 (sse_movhlps): Merge with *avx_movhlps.
16340 (sse_movlhps): Merge with *avx_movlhps.
16341 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16342 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16343 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16344 (sse_loadhps): Merge with *avx_loadhps.
16345 (sse_storelps): Merge with *avx_storelps.
16346 (sse_loadlps): Merge with *avx_loadlps.
16347 (sse_movss): Merge with *avx_movss.
16348 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16349 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16350 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16351 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16352 (vec_set<mode>_0): Ditto.
16353 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16354 (sse4_1_insertps): Merge with *avx_insertps.
16355 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16356 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16357 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16358 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16359 (sse2_storehpd): Merge with *avx_storehpd.
16360 (sse2_loadhpd): Merge with *avx_loadhpd.
16361 (sse2_loadlpd): Merge with *avx_loadlpd.
16362 (sse2_movsd): Merge with *avx_movsd.
16363 (*vec_concatv2df): Merge with *vec_concatv2df.
16364
4e626909
JJ
163652011-04-07 Jakub Jelinek <jakub@redhat.com>
16366
16367 PR debug/48343
16368 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 16369 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
16370 (try_combine): Add last_combined_insn parameter, pass it instead of
16371 i3 to propagate_for_debug.
16372
3729983c 163732011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
16374
16375 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16376 to handle MDR <-> data register transfers.
16377 (movhi_internal): Likewise.
16378
20c03367
AM
163792011-04-07 Alan Modra <amodra@gmail.com>
16380
16381 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16382 previous stack info.
16383
bf22920b
TV
163842011-04-07 Tom de Vries <tom@codesourcery.com>
16385
16386 PR target/43920
16387 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
16388 flow_find_cross_jump. Swap variables to implement backward replacement.
16389 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16390
823918ae
TV
163912011-04-07 Tom de Vries <tom@codesourcery.com>
16392
16393 PR target/43920
16394 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
16395 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
16396 and bb2.
16397 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16398 src1 or src2. Redirect edges to the last basic block. Update
16399 frequency and count on multiple basic blocks in case of fallthru.
823918ae 16400
472c95f5
TV
164012011-04-07 Tom de Vries <tom@codesourcery.com>
16402
16403 PR target/43920
16404 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16405 function.
3729983c
UB
16406 (old_insns_match_p): Change return type. Replace return false/true
16407 with return dir_none/dir_both. Use can_replace_by.
16408 (flow_find_cross_jump): Add dir_p parameter. Init replacement
16409 direction from dir_p. Register replacement direction in dir, last_dir
16410 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
16411 merge_dir. Return replacement direction in dir_p.
16412 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16413 return type of old_insns_match_p.
16414 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16415 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16416 flow_find_cross_jump.
16417 * basic-block.h (enum replace_direction): New type.
16418 (flow_find_cross_jump): Add parameter to declaration.
16419
a95d4000
UB
164202011-04-06 Uros Bizjak <ubizjak@gmail.com>
16421
16422 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16423 (AVXMODEDCVTPS2DQ): Ditto.
16424 (VEC_FLOAT_MODE): Ditto.
16425 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
16426 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16427 (<any_logic:code><mode>3): Use VF mode iterator.
16428 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16429 Use VF mode iterator.
16430 (copysign<mode>3): Use VF mode iterator.
16431 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
16432 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16433 (*<any_logic:code><MODEF:mode>3): Merge with
16434 *avx_<any_logic:code><MODEF:mode>3.
16435 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16436 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16437 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16438 (avx_cvtdq2ps<avxmodesuffix>): Remove.
16439 (sse2_cvtdq2ps): Use %v modifier.
16440 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16441 (avx_cvtps2dq<avxmodesuffix>): Remove.
16442 (sse2_cvtps2dq): Use %v modifier.
16443 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16444 (avx_cvttps2dq<avxmodesuffix>): Remove.
16445 (sse2_cvttps2dq): Use %v modifier.
16446 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16447 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16448 (sse2_cvtsd2siq): Fix insn template.
16449 (sse2_cvtsd2siq_2): Ditto.
16450 (sse2_cvttsd2siq): Ditto.
16451 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16452 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16453
ad01c437
JM
164542011-04-06 Joseph Myers <joseph@codesourcery.com>
16455
16456 * gcov-io.c: Use GCC Runtime Library Exception.
16457
fe846284
JJ
164582011-04-06 Jakub Jelinek <jakub@redhat.com>
16459
16460 PR debug/48466
16461 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16462 as base_reg whatever register reg has been eliminated to, instead
16463 of hardcoding STACK_POINTER_REGNUM.
16464
acce4e77
JM
164652011-04-06 Joseph Myers <joseph@codesourcery.com>
16466
16467 * doc/tm.texi.in: Document C target hooks as separate from general
16468 target hooks.
16469 * doc/tm.texi: Regenerate.
16470 * genhooks.c (struct hook_desc): Add docname field.
16471 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
16472 docname field.
16473 (hook_array): Include c-target.def.
16474 (emit_documentation): Use docname field in output.
16475 (emit_init_macros): Take docname argument. Only emit definitions
16476 for hooks matching docname.
16477 (main): Expect additional arguments in all cases. Pass argument
16478 to emit_init_macros.
16479 * target.def: Move initial macro definitions and comments to
16480 target-hooks-macros.h.
16481 (gcc_targetcm): Move to c-family/c-target.def.
16482 * target.h (targetcm): Move declaration to c-family/c-target.h.
16483 * targhooks.c (default_handle_c_option): Move to
16484 c-family/c-opts.c.
16485 * targhooks.h (default_handle_c_option): Move declaration to
16486 c-family/c-common.h.
16487 * target-hooks-macros.h: New file.
16488 * config.gcc (target_has_targetcm): Define and use to add to
16489 c_target_objs and cxx_target_objs.
16490 * config/default-c.c: New file.
16491 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16492 of target.h and target-def.h.
16493 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16494 (darwin_objc_construct_string, darwin_cfstring_ref_p,
16495 darwin_check_cfstring_format_arg): Make static.
16496 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16497 TARGET_STRING_OBJECT_REF_TYPE_P,
16498 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16499 * config/darwin-protos.h (darwin_objc_construct_string,
16500 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16501 declare.
16502 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16503 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 16504 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
16505 * config/t-darwin (darwin-c.o): Update dependencies.
16506 * system.h (TARGET_HAS_TARGETCM): Poison.
16507 * Makefile.in (TARGET_H): Update.
16508 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16509 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16510 (default-c.o): New target.
16511 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 16512 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
16513 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
16514 c-target.def.
16515 (build/genhooks.o): Update dependencies.
16516
275b4baa 165172011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 16518
275b4baa
RG
16519 * ipa-inline.c (enum inlining_mode): Remove.
16520 (cgraph_flatten): Use some other token.
16521 (cgraph_edge_early_inlinable_p): New function, split out from ...
16522 (cgraph_perform_always_inlining): New function, split out from ...
16523 (cgraph_decide_inlining_incrementally): ... here.
16524 (cgraph_mark_inline_edge): Adjust.
16525 (cgraph_early_inlining): Re-structure.
16526 (pass_early_inline): Require SSA form.
16527
f15b8bdf 165282011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
16529 Julian Brown <julian@codesourcery.com>
16530 Mark Shinwell <shinwell@codesourcery.com>
16531
16532 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16533 LO_REGS only for Thumb-1.
16534 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16535 be used in short instructions when optimising for size on Thumb-2.
16536
516426da
EB
165372011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16538
16539 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16540 associated with user returns to be preserved.
16541
96621ebf
TG
165422011-04-06 Tristan Gingold <gingold@adacore.com>
16543
f15b8bdf
EB
16544 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16545 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
16546 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16547 if XCOFF_DEBUGGING_INFO.
16548
07c0852e
UB
165492011-04-06 Uros Bizjak <ubizjak@gmail.com>
16550
16551 * config/i386/i386.md (attribute isa): New.
16552 (attribute enabled): New.
16553 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16554 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16555 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16556 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16557 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16558 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16559 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16560 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16561
16562 * config/i386/sse.md (VF): New mode iterator.
16563 (VF1): Ditto.
16564 (VF2): Ditto.
16565 (VF_128): Ditto.
16566 (SSEMODEF4): Remove.
16567 (attribute sse): Handle V8SF and V4DF modes.
16568 (<absneg:code><mode>2): Use VF mode iterator.
16569 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
16570 mode iterator.
16571 (<plusminus_insn><mode>3): Use VF mode iterator.
16572 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16573 Use VF mode iterator.
16574 (<sse>_vm<plusminus_insn><mode>3): Merge with
16575 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
16576 (mul<mode>3): Use VF mode iterator.
16577 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
16578 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
16579 mode iterator.
16580 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16581 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16582 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
16583 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
16584 mode iterator.
16585 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16586 Use VF1 mode iterator.
16587 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16588 (sqrt<VF2:mode>2): New expander.
16589 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16590 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16591 and sqrtv2df2. Use VF mode iterator.
16592 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
16593 mode iterator.
16594 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16595 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16596 Use VF1 mode iterator.
16597 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16598 (<smaxmin:code><mode>3): Use VF mode iterator.
16599 (*<smaxmin:code><mode>3_finite): Merge with
16600 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
16601 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16602 (<sse>_vm<smaxmin:code><mode>2): Merge with
16603 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
16604 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
16605 mode iterator.
16606 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
16607 mode iterator.
16608 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16609 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16610 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16611 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16612 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
16613 VF mode iterator.
16614 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16615 Use VF_128 mode iterator.
16616 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
16617 mode iterator.
16618 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
16619 VF_128 mode iterator.
16620 (vcond<mode>): Use VF mode iterator.
16621 * config/i386/predicates.md (sse_comparison_operator): Merge with
16622 avx_comparison_float_operator. Do not declare as special_predicate.
16623 * config/i386/i386.c (struct builtin_description): Update for renamed
16624 compare patterns.
16625 (ix86_expand_args_builtin): Ditto.
16626 (ix86_expand_sse_compare_mask): Ditto.
16627
ff5d142c
RG
166282011-04-06 Richard Guenther <rguenther@suse.de>
16629
16630 * tree-inline.c (estimate_num_insns): For calls simply account
16631 for all passed arguments and a used return value.
16632
d7d1d041 166332011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 16634
d7d1d041
RG
16635 PR tree-optimization/47663
16636 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16637 call_stmt_time fields.
16638 (cgraph_edge_inlinable_p): Declare.
16639 (cgraph_edge_recursive_p): New inline function.
16640 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16641 (cgraph_clone_edge): Copy it.
16642 * ipa-inline.c (cgraph_estimate_edge_time): New function.
16643 Account for call stmt time.
16644 (cgraph_estimate_time_after_inlining): Take edge argument.
16645 (cgraph_estimate_edge_growth): Account call stmt size.
16646 (cgraph_estimate_size_after_inlining): Take edge argument.
16647 (cgraph_mark_inline_edge): Adjust.
16648 (cgraph_check_inline_limits): Likewise.
16649 (cgraph_recursive_inlining_p): Remove.
16650 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16651 (cgraph_decide_recursive_inlining): Take edge argument and
16652 adjust.
16653 (cgraph_decide_inlining_of_small_functions): Do not avoid
16654 diags for recursive inlining here.
16655 (cgraph_flatten): Adjust.
16656 (cgraph_decide_inlining_incrementally): Likewise.
16657 (estimate_function_body_sizes): Remove call cost handling.
16658 (compute_inline_parameters): Initialize caller edge call costs.
16659 (cgraph_estimate_edge_growth): New function.
16660 (cgraph_estimate_growth): Use it.
16661 (cgraph_edge_badness): Likewise.
16662 (cgraph_check_inline_limits): Take an edge argument.
16663 (cgraph_decide_inlining_of_small_functions): Adjust.
16664 (cgraph_decide_inlining): Likewise.
16665 * tree-inline.c (estimate_num_insns): Only account for call
16666 return value if it is used.
16667 (expand_call_inline): Avoid diagnostics on recursive inline
16668 functions here.
16669 * lto-cgraph.c (lto_output_edge): Output edge call costs.
16670 (input_edge): Input edge call costs.
16671
2feb95f7
RO
166722011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16673
16674 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16675
26fbd9c2
JW
166762011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
16677
16678 * doc/invoke.texi (Spec Files): Fix typo.
16679
694dc0ca
EB
166802011-04-06 Eric Botcazou <ebotcazou@adacore.com>
16681
16682 * profile.c (branch_prob): Move declaration of local variable. Remove
16683 obsolete ??? comment. Expand the location explicitly instead of using
16684 the LOCATION_FILE and LOCATION_LINE macros.
16685
4925d0d5
WG
166862011-04-06 Wei Guozhi <carrot@google.com>
16687
16688 PR target/47855
16689 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
16690 (arm_cond_branch): Likewise.
16691 (arm_cond_branch_reversed): Likewise.
16692 (arm_jump): Likewise.
16693 (push_multi): Likewise.
16694 * config/arm/constraints.md (Py): New constraint.
16695
f55dfa2f
NF
166962011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16697
16698 PR bootstrap/48471
16699 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
16700 Move these...
16701 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
16702 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
16703 #ifdef DBX_DEBUGGING_INFO.
16704
fca96842
BS
167052011-04-05 Bernd Schmidt <bernds@codesourcery.com>
16706
16707 PR bootstrap/48403
16708 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
16709 if old and new states differ.
16710
30b83e38
JM
167112011-04-05 Joseph Myers <joseph@codesourcery.com>
16712
16713 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
16714 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
16715 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16716 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
16717 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
16718 mcfv4e): Use Alias.
16719 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
16720 ColdFire options to -mcpu= options.
16721
277a9aa5
JL
167222011-04-05 Jeff Law <law@redhat.com>
16723
16724 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
16725 check if BB is a successor of LOOP->header and return
16726 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
16727
c1e2610e
SB
167282011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16729
16730 * cprop.c (struct reg_use): Remove.
16731 (reg_use_table): Make an array of RTX.
16732 (find_used_regs, constprop_register, local_cprop_pass,
16733 bypass_block): Simplify users of reg_use_table.
16734 (cprop_insn): Likewise. Iterate if copy propagation succeeded
16735 on one of the uses found by find_used_regs.
16736
e532f586
NF
167372011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16738
16739 PR bootstrap/48469
16740 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
16741 declaration.
16742
3fb7c055
NF
167432011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16744
16745 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
16746 as an rtx.
16747 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
16748
b71b43d9
SB
167492011-04-05 Steven Bosscher <steven@gcc.gnu.org>
16750
16751 PR middle-end/48441
16752 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
16753
b405b274
NF
167542011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16755
16756 * combine.c: Include obstack.h.
16757 (struct insn_link): Define.
16758 (uid_log_links): Adjust type.
16759 (FOR_EACH_LOG_LINK): New macro.
16760 (insn_link_obstack): Declare.
16761 (alloc_insn_link): Define.
16762 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
16763 type of link variables.
16764 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
16765 (try_combine, record_promoted_values, distribute_notes): Likewise.
16766 (distribute_links): Likewise. Tweak prototype.
16767 (clear_log_links): Delete.
16768 (adjust_for_new_dest): Call alloc_insn_link.
16769 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
16770
6409abe3
NF
167712011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16772
16773 * gcse.c (modify_mem_list): Convert to an array of VECs.
16774 (canon_modify_mem_list, compute_transp): Tweak formatting.
16775 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
16776 (load_killed_in_block_p): Likewise.
16777 (record_last_mem_set_info): Likewise.
16778 (clear_modify_mem_tables): Likewise.
16779
170d8157
TV
167802011-04-05 Tom de Vries <tom@codesourcery.com>
16781
16782 PR middle-end/48461
16783 * function.c (emit_use_return_register_into_block): Only define if
16784 HAVE_return.
16785
c5911a55
EB
167862011-04-05 Eric Botcazou <ebotcazou@adacore.com>
16787
16788 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
16789
abd016e6
JM
167902011-04-05 Joseph Myers <joseph@codesourcery.com>
16791
16792 * config/rx/rx-opts.h: New.
16793 * config/rx/rx.c (rx_cpu_type): Remove.
16794 (rx_handle_option): Don't assert that global structures are in
16795 use. Access variables via opts pointer. Defer most handling of
16796 OPT_mint_register_. Use error_at.
16797 (rx_option_override): Handle deferred OPT_mint_register_ here.
16798 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
16799 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
16800 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
16801 (rx_cpu_types): New Enum and EnumValue entries.
16802 (mint-register=): Use Defer and use Var accordingly.
16803
1ed13f83
NF
168042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16805
16806 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
16807 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
16808 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
16809 Move these...
16810 (debug_free_queue, debug_nesting, symbol_queue_index):
16811 ...and these...
16812 * dbxout.c: ...to here. Make static.
16813
6ce1edcf
NF
168142011-04-05 Nathan Froyd <froydnj@codesourcery.com>
16815
16816 * gcse.c (modify_pair): Define. Define a VEC of it.
16817 (canon_modify_mem_list): Convert to an array of VECs.
16818 (free_insn_expr_list_list): Delete.
16819 (clear_modify_mem_tables): Call VEC_free instead.
16820 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
16821 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
16822 (canon_list_insert, compute_transp): Likewise.
16823
c201ac94
TV
168242011-04-05 Tom de Vries <tom@codesourcery.com>
16825
16826 PR target/43920
16827 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
16828 for size.
16829
4c029f40
TV
168302011-04-05 Tom de Vries <tom@codesourcery.com>
16831
16832 PR target/43920
16833 * function.c (emit_use_return_register_into_block): New function.
16834 (thread_prologue_and_epilogue_insns): Use
16835 emit_use_return_register_into_block.
16836
2a562b0a
TV
168372011-04-05 Tom de Vries <tom@codesourcery.com>
16838
16839 PR target/43920
16840 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
16841 insn.
16842
0248bceb
TV
168432011-04-05 Tom de Vries <tom@codesourcery.com>
16844
16845 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
16846
ffa94123
YZ
168472011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
16848
798dd0ba
UB
16849 * config/arm/arm.md (define_constants for unspec): Replace with
16850 define_c_enum.
16851 (define_constants for unspecv): Replace with define_c_enum.
16852 * config/arm/neon.md (define_constants for unspec): Replace with
16853 define_c_enum.
ffa94123 16854
3b8f9b46
RH
168552011-04-04 Richard Henderson <rth@redhat.com>
16856
720cf80f 16857 PR bootstrap/48400
3b8f9b46
RH
16858 * dwarf2out.c (output_line_info): Always emit line info from
16859 at least one section.
16860 (dwarf2out_init): Create text_section_line_info here ...
16861 (set_cur_line_info_table): ... not here.
16862
720cf80f 168632011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
16864
16865 PR target/48380
16866 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 16867 not called.
e5b0e1ca 16868
720cf80f 16869 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 16870
196565d4
SB
168712011-04-04 Steven Bosscher <steven@gcc.gnu.org>
16872
b77f9eab
SB
16873 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
16874 (expr_equiv_p): Remove.
16875 (insert_set_in_table): Look at <dest, src> pair instead of expr.
16876 (hash_scan_set): Update call to insert_set_in_table.
16877 (dump_hash_table): Dump <dest, src> pair.
16878 (lookup_set): Simplify. Lookup <dest, src> pair.
16879 (compute_transp): Remove, fold heavily simplified code into...
16880 (compute_local_properties): ...here. Expect COMP and TRANSP
16881 unconditionally.
16882 (find_avail_set): Take set directly from struct expr.
16883 (find_bypass-set): Likewise.
16884 (bypass_block): Likewise.
16885 (cprop_insn): Likewise. Remove redundant INSN_P test.
16886
384d7a55
SB
16887 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
16888 checks on form of COND from find_implicit_sets to here.
16889 (find_implicit_sets): Cleanup control flow. Split critical edges
16890 if it exposes implicit sets. Allocate/resize implicit_sets as
16891 necessary.
16892 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
16893 changed something. Run df_analyze after find_implicit_sets if any
16894 edges were split. Do not allocate implicit_sets here.
16895
3084ce69
SB
16896 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
16897 (gcse_obstack): Renamed to cprop_obstack.
16898 (GNEW, GNEWVEC, GNEWVAR): Remove.
16899 (gmalloc): Remove.
16900 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
16901 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
16902 (gcse_alloc): Likewise, and rename to cprop_alloc.
16903 (alloc_gcse_men, free_gcse_mem): Remove.
16904 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
16905 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
16906 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
16907
196565d4
SB
16908 * cprop.c (oprs_not_set_p): Remove.
16909 (mark_set, mark_clobber): Remove.
16910 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
16911 (reg_not_set_p): New function.
16912 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
16913 (cprop_insn): Likewise.
16914 (cprop_jump): Use FOR_EACH_EDGE.
16915
9b69cf83
BS
169162011-04-04 Bernd Schmidt <bernds@codesourcery.com>
16917
16918 PR bootstrap/48403
16919 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
16920 (rank_for_schedule): Use scheduled_insns vector instead of
16921 last_scheduled_insn.
16922 (ok_for_early_queue_removal): Likewise.
16923 (queue_to_ready): Search forward in nonscheduled_insns_begin if
16924 we have a dbg_cnt.
16925 (choose_ready): Likewise.
16926 (commit_schedule): Use VEC_iterate.
16927 (schedule_block): Initialize nonscheduled_insns_begin. If we have
16928 a dbg_cnt, use it and ensure the first insn is in the ready list.
16929 (haifa_sched_init): Allocate scheduled_insns.
16930 (sched_extend_ready_list): Don't allocate it; reserve space.
16931 (haifa_sched_finish): Free it.
16932
24f48c2f
JM
169332011-04-04 Joseph Myers <joseph@codesourcery.com>
16934
16935 * optc-gen.awk: Always remove type from Variable entry before
16936 recording in var_seen.
16937
8effe856
EB
169382011-04-04 Eric Botcazou <ebotcazou@adacore.com>
16939
16940 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
16941 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
16942 call to tidy_fallthru_edges.
16943
413519ae
JM
169442011-04-04 Joseph Myers <joseph@codesourcery.com>
16945
16946 * doc/options.texi (ToLower): Document.
3729983c 16947 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
16948 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
16949 * opts.h (cl_option): Add cl_tolower field.
16950 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
16951 arguments with lowercase strings.
16952 * config/rx/rx.opt (mcpu=): Add ToLower.
16953 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
16954 argument.
16955
7d34a1b0
RS
169562011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
16957
16958 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
16959
c30e7434
RS
169602011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
16961
16962 * config/vax/vax.c: Include reload.h.
16963
112a861d
AS
169642011-04-04 Anatoly Sokolov <aesok@post.ru>
16965
16966 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
16967 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
16968 (sparc_preferred_reload_class): New function.
16969
e8c6bb74
JJ
169702011-04-04 Jakub Jelinek <jakub@redhat.com>
16971
2aeaa366 16972 PR debug/48401
e8c6bb74
JJ
16973 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
16974 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
16975
2c081caf
NF
169762011-04-03 Nathan Froyd <froydnj@codesourcery.com>
16977
16978 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
16979 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
16980
53802f27
AS
169812011-04-03 Anatoly Sokolov <aesok@post.ru>
16982
16983 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
16984 (ASM_OUTPUT_ALIGNED_BSS): Define.
16985
e89964e3
MM
169862011-04-03 Michael Matz <matz@suse.de>
16987
16988 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
16989 and next_slot members.
16990 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
16991 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
16992 (lto_streamer_cache_append): Declare.
16993 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
16994 unsigned index, remove offset parameter, ensure that we append
16995 or update existing entries.
16996 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
16997 parameter, update next_slot for append.
16998 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
16999 parameter.
17000 (lto_streamer_cache_insert_at): Likewise.
17001 (lto_streamer_cache_append): New function.
17002 (lto_streamer_cache_lookup): Use unsigned index.
17003 (lto_streamer_cache_get): Likewise.
17004 (lto_record_common_node): Don't test tree_node_can_be_shared.
17005 (preload_common_node): Adjust call to lto_streamer_cache_insert.
17006 (lto_streamer_cache_delete): Don't free offsets member.
17007 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
17008 (lto_output_string_with_length): Use lto_output_data_stream.
17009 (lto_output_tree_header): Remove ix parameter, don't write it.
17010 (lto_output_builtin_tree): Likewise.
17011 (lto_write_tree): Adjust callers to above, don't track and write
17012 offset, write unsigned index.
17013 (output_unreferenced_globals): Don't emit all global vars.
17014 (write_global_references): Use unsigned indices.
17015 (lto_output_decl_state_refs): Likewise.
17016 (write_symbol): Likewise.
17017 * lto-streamer-in.c (lto_input_chain): Move earlier.
17018 (input_function): Use unsigned index.
17019 (input_alias_pairs): Don't read and then ignore all global vars.
17020 (lto_materialize_tree): Remove ix_p parameter, don't read index,
17021 don't pass it back, use lto_streamer_cache_append.
17022 (lto_register_var_decl_in_symtab): Use unsigned index.
17023 (lto_register_function_decl_in_symtab): Likewise.
17024 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
17025 index.
17026 (lto_get_builtin_tree): Don't read index, use
17027 lto_streamer_cache_append.
17028 (lto_read_tree): Adjust call to lto_materialize_tree.
17029
17030 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
17031 don't use function calls in arguments to MIN.
17032
17033 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
17034 twice.
17035
17036 * gimple.c (gimple_type_leader_entry): Mark deletable.
17037
b9a5b5b2
AM
170382011-04-03 Alan Modra <amodra@gmail.com>
17039
17040 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17041
ac6a641b
MM
170422011-04-03 Michael Matz <matz@suse.de>
17043
17044 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17045 an integer.
17046 * tree.h (tree_decl_non_common.vindex): Adjust comment.
17047
0038d4e0
MM
170482011-04-03 Michael Matz <matz@suse.de>
17049
e9c18386 17050 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
17051 * gimple-fold.c (canonicalize_constructor_val): Accept being called
17052 without function context.
17053 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17054 current_function_decl and cfun.
17055
91f2fae8
MM
170562011-04-03 Michael Matz <matz@suse.de>
17057
17058 * tree.c (decl_init_priority_insert): Don't create entry for
17059 default priority.
17060 (decl_fini_priority_insert): Ditto.
17061 (fields_compatible_p, find_compatible_field): Remove.
17062 * tree.h (fields_compatible_p, find_compatible_field): Remove.
17063 * gimple.c (gimple_compare_field_offset): Adjust block comment.
17064
da29e070
EB
170652011-04-03 Eric Botcazou <ebotcazou@adacore.com>
17066
17067 * combine.c (try_combine): Remove useless local variable.
17068
4979c28b 170692011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 17070 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
17071
17072 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17073 non-variable offsets and compare the remaining bases of the two
17074 accesses instead of looking for exact same data-ref.
17075
b4ddcaee
KT
170762011-04-02 Kai Tietz <ktietz@redhat.com>
17077
f90298e1
KT
17078 PR target/48416
17079 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17080
b4ddcaee
KT
17081 * i386.c (ix86_is_msabi_thiscall): New helper function.
17082 (ix86_is_type_thiscall): New helper function.
17083 (ix86_comp_type_attributes): Handle thiscall for method-functions
17084 special.
17085 (init_cumulative_args): Likewise.
17086 (find_drap_reg): Likewise.
17087 (ix86_static_chain): Likewise.
17088 (x86_this_parameter): Likewise.
17089 (x86_output_mi_thunk): Likewise.
17090
2a9d769a 170912011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
17092 Nicolas Setton <setton@adacore.com>
17093 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
17094
17095 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17096 (add_gnat_descriptive_type_attribute): New function.
17097 (gen_array_type_die): Call it.
17098 (gen_enumeration_type_die): Likewise.
17099 (gen_struct_or_union_type_die): Likewise.
17100 (modified_type_die): Likewise.
17101 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17102 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17103 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17104
15a03a11
JJ
171052011-04-01 Jakub Jelinek <jakub@redhat.com>
17106
17107 PR bootstrap/48148
17108 * dwarf2out.c (resolve_addr): Don't call force_decl_die
17109 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17110
17111 Revert:
17112 2011-03-17 Richard Guenther <rguenther@suse.de>
17113
17114 PR bootstrap/48148
17115 * lto-cgraph.c (input_overwrite_node): Clear the abstract
17116 origin for decls in other ltrans units.
17117 (input_varpool_node): Likewise.
17118
19228b93
JJ
171192011-04-01 Jakub Jelinek <jakub@redhat.com>
17120
17121 PR middle-end/48335
17122 * expr.c (expand_assignment): Handle all possibilities
17123 if TO_RTX is CONCAT.
e9c18386 17124 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
17125 (store_split_bit_field): If SUBREG_REG (op0) or
17126 op0 itself has smaller mode than word, return it
17127 for offset 0 and const0_rtx for out-of-bounds stores.
17128 If word is const0_rtx, skip it.
17129
88cb339e
N
171302011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
17131
17132 * config/h8300/h8300.c (print_operand_address): Rename to...
17133 (h8300_print_operand_address): ...this. Make static. Adjust comments.
17134 Call h8300_print_operand and h8300_print_operand_address instead of
17135 print_operand and print_operand_address. Declare.
17136 (print_operand): Renake to...
17137 (h8300_print_operand): ...this. Make static. Adjust comments.
17138 Call h8300_print_operand instead of print_operand. Declare.
17139 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17140 (h8300_register_move_cost): Likewise.
17141 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17142 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17143 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17144 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17145 * config/h8300/h8300-protos.h (print_operand): Delete.
17146 (print_operand_address): Delete.
17147
756d6ee9
RH
171482011-04-01 Richard Henderson <rth@redhat.com>
17149
17150 PR 48400
17151 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17152 in strict mode before dwarf4. Re-order tests to early out
17153 before switching sections.
17154
ceaaaeab
NF
171552011-04-01 Nathan Froyd <froydnj@codesourcery.com>
17156
17157 * config/h8300/constraints.md: New file.
17158 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
17159 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17160 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17161 * config/h8300/predicates.md (bit_operand): Likewise.
17162 (incdec_operand): Use satisfies_constraint_M and
17163 satisfies_constraint_O. Don't use C code block.
17164 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17165 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17166 (compute_mov_length): Use satisfies_constraint_G.
17167 (fix_bit_operand): Use satisfies_constraint_U.
17168 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17169 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17170 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17171 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17172 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17173 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17174 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17175 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17176 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17177 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17178 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17179 (EXTRA_MEMORY_CONSTRAINT): Delete.
17180
08ae38e0
AP
171812011-04-01 Andrew Pinski <pinskia@gmail.com>
17182 Michael Meissner <meissner@linux.vnet.ibm.com>
17183
17184 PR target/48262
17185 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17186 operands, as per the specifications.
17187
17188 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17189 (vec_extract_evenv4sf): Ditto.
17190 (vec_extract_evenv8hi): Ditto.
17191 (vec_extract_evenv16qi): Ditto.
17192 (vec_extract_oddv4si): Ditto.
17193
bdb0b0f6
MW
171942011-03-31 Mark Wielaard <mjw@redhat.com>
17195
17196 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17197 high_pc attribute if the CU has no associated code. Only output
17198 DW_AT_entry_pc for CU if not generating strict dwarf and
17199 dwarf_version < 4.
17200
722279e4
BS
172012011-04-01 Bernd Schmidt <bernds@codesourcery.com>
17202
17203 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17204 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17205 out of ...
17206 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17207 * final.c (final_start_function): Call the new function rather
17208 than using a NULL argument for dwarf2out_frame_debug.
17209
c5dd277d
BS
17210 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17211 that contains the prologue.
17212
ec4efea9
BS
17213 * haifa-sched.c (queue_insn): New arg REASON. All callers
17214 changed. Print it in debugging output.
17215
2a6a0d80
BS
17216 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17217
86014d07
BS
17218 * sched-ebb.c (begin_schedule_ready): Remove second argument.
17219 Split most of the code into...
17220 (begin_move_insn): ... here. New function.
17221 (ebb_sched_info): Add a pointer to it.
17222 * haifa-sched.c (scheduled_insns): New static variable.
17223 (sched_extend_ready_list): Allocate it.
17224 (schedule_block): Use it to record the order of scheduled insns.
17225 Perform RTL changes to move insns only after all scheduling
17226 decisions have been made.
17227 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17228 begin_move_insn field.
17229 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17230 * sched-int.h (struct haifa_sched_info): Remove second argument
17231 from begin_schedule_ready hook. Add new member begin_move_insn.
17232 * sched-rgn.c (begin_schedule_ready): Remove second argument.
17233 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17234
9d701248
BS
17235 * haifa-sched.c (prune_ready_list): New function, broken out of
17236 schedule_block.
17237 (schedule_block): Use it.
17238
1ca1dad5
UW
172392011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17240
17241 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17242
49568e45
KT
172432011-04-01 Kai Tietz <ktietz@redhat.com>
17244
17245 * config.gcc (*-*-mingw*): Allow as option the
17246 posix threading model.
07c0852e 17247 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
17248 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17249 definition.
17250 (CPP_SPEC): Add pthread/no-pthread handling.
17251 (LIB_SPEC): Likewise.
17252 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17253 (LIB_SPEC): Likewise.
17254 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17255 flag to pass -pthread option for shared libgcc build.
17256 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17257 for shared libgcc build.
17258 * config/i386/t-mingw-pthread: New file.
17259 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17260 New define to enable use of library pthread by default.
17261 * config/i386/mingw.opt (pthread): New driver option.
17262 (no-pthread): New driver option.
e9c18386 17263 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
17264 * config/i386/mingw-w64.opt: Likewise.
17265
748f7574 172662011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
17267
17268 * c-decl.c (grokdeclarator): Fix formatting.
17269
f04713ee
RS
172702011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17271
17272 * expr.c (emit_block_move_via_movmem): Use n_generator_args
17273 instead of n_operands.
17274 (set_storage_via_setmem): Likewise.
17275 * optabs.c (maybe_gen_insn): Likewise.
17276 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17277 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17278 (mips_expand_builtin_direct): Likewise.
17279 * config/spu/spu.c (expand_builtin_args): Likewise.
17280
b29387ee
RS
172812011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17282
17283 * recog.h (insn_data_d): Add n_generator_args.
17284 * genoutput.c (data): Likewise.
17285 (output_insn_data): Print it.
17286 (max_opno, num_dups): Delete.
17287 (scan_operands): Just fill in "d->operand[...]".
17288 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17289
e792559a
RS
172902011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
17291
17292 * gensupport.h (pattern_stats): New structure.
17293 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17294 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17295 (max_operand_1, max_operand_vec): Delete.
17296 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17297
e8110d6f
NF
172982011-03-31 Nathan Froyd <froydnj@codesourcery.com>
17299
17300 * emit-rtl.c (emit_pattern_after_setloc): New function.
17301 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17302 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17303 (emit_pattern_after): New function.
17304 (emit_insn_after, emit_jump_insn_after): Call it.
17305 (emit_call_insn_after, emit_debug_insn_after): Likewise.
17306 (emit_pattern_before_setloc): New function.
17307 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17308 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17309 Likewise.
17310 (emit_pattern_before): New function.
17311 (emit_insn_before, emit_jump_insn_before): Call it.
17312 (emit_call_insn_before, emit_debug_insn_before): Likewise.
17313
576f85f1
RH
173142011-03-31 Richard Henderson <rth@redhat.com>
17315
17316 * dwarf2out.c (dw_separate_line_info_ref): Remove.
17317 (dw_separate_line_info_entry): Remove.
17318 (enum dw_line_info_opcode): New.
17319 (dw_line_info_entry): Use it.
17320 (dw_line_info_table, dw_line_info_table_p): New.
17321 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17322 (line_info_table, line_info_label_num): Remove.
17323 (line_info_table_in_use): Remove.
17324 (separate_line_info_table): Remove.
17325 (separate_line_info_table_allocated): Remove.
17326 (separate_line_info_table_in_use): Remove.
17327 (LINE_INFO_TABLE_INCREMENT): Remove.
17328 (line_info_label_num): New.
17329 (cur_line_info_table): New.
17330 (text_section_line_info, cold_text_section_line_info): New.
17331 (separate_line_info): New.
17332 (SEPARATE_LINE_CODE_LABEL): Remove.
17333 (print_dwarf_line_table): Remove.
17334 (debug_dwarf): Don't dump it.
17335 (output_one_line_info_table): New.
17336 (output_line_info): Use it.
17337 (new_line_info_table): New.
17338 (set_cur_line_info_table): New.
17339 (dwarf2out_switch_text_section): Use it.
17340 (dwarf2out_begin_function): Likewise.
17341 (push_dw_line_info_entry): New.
17342 (dwarf2out_source_line): Rewrite for new line info tables.
17343 (dwarf2out_init): Remove dead initailizations.
17344
300d83d9
JM
173452011-03-31 Joseph Myers <joseph@codesourcery.com>
17346
17347 * opts.h (cl_option): Add comments to fields. Add bit-fields for
17348 various flags.
17349 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17350 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17351 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17352 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17353 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17354 * opt-functions.awk (flag_init, switch_bit_fields): New.
17355 (switch_flags): Don't handle flags moved to bit-fields. Don't
17356 generate CL_MISSING_OK or CL_SAVE.
17357 * optc-gen.awk: Update to generate bit-field output as well as
17358 flags field.
17359 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17360 bit-field instead of CL_REJECT_DRIVER flag.
17361 * opts-common.c (generate_canonical_option,
17362 decode_cmdline_option): Use bit-fields instead of CL_* flags.
17363 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17364 instead of CL_REJECT_NEGATIVE flag.
17365 * toplev.c (print_switch_values): Use cl_report bit-field instead
17366 of CL_REPORT flag.
17367
d4d73ce2
EB
173682011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17369
17370 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17371 a zero minimum index only if it is redundant.
17372
b8faca75
VM
173732011-03-31 Vladimir Makarov <vmakarov@redhat.com>
17374
17375 PR rtl-optimization/48381
17376 * ira-color.c (assign_hard_reg): Use hard reg set intersection
17377 instead of ira_class_hard_reg_index for calculating conflicting
17378 hard registers.
17379
7d11cebe
SB
173802011-03-31 Steven Bosscher <steven@gcc.gnu.org>
17381
17382 * cprop.c: Clean up hash table building.
17383 (reg_avail_info): Remove.
17384 (oprs_available_p): Remove.
17385 (record_last_reg_set_info): Remove.
17386 (record_last_set_info): Remove.
17387 (reg_available_p): New function.
17388 (gcse_constant_p): Do not treat unfolded conditions as constants.
17389 (make_set_regs_unavailable): New function.
17390 (hash_scan_set): Simplify with new reg_available_p.
17391 (compute_hash_table_work): Traverse insns stream only once.
17392 Do not compute reg_avail_info. Traverse insns in reverse order.
17393 Record implicit sets after recording explicit sets from the block.
17394
98faf84f
MM
173952011-03-31 Michael Matz <matz@suse.de>
17396
e9c18386 17397 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 17398
f52d97da
AS
173992011-03-31 Anatoly Sokolov <aesok@post.ru>
17400
17401 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17402 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17403 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17404 (h8300_mode_dependent_address_p): New function.
17405 (h8300_get_index): Make static.
17406
e16b6fd0
JL
174072011-03-31 Jeff Law <law@redhat.com>
17408
10c51983
JL
17409 * reload1.c (elimination_effects): Fix typo in recent change.
17410
e9c18386 17411 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
17412 typo potentially leading to null pointer dereference.
17413
17414 * caller-save.c (new_saved_hard_reg): Eliminate return value.
17415 (setup_save_areas): Corresponding changes to avoid useless
17416 assignments.
17417
17418 * jump.c (reversed_comparison_code_parts): Avoid successive return
17419 statements when REVERSE_CONDITION is defined.
17420
17421 * expr.c (expand_assignment): Avoid useless assignments.
17422 (expand_expr_real_1): Likewise.
17423 (expand_expr_real_2): Avoid useless statements.
17424
17425 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17426
17427 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17428
17429 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17430 statements.
17431
17432 * stmt.c (expand_expr_stmt): Avoid useless assignment.
17433
eb1eb914
JM
174342011-03-31 Joseph Myers <joseph@codesourcery.com>
17435
17436 PR target/47109
17437 * doc/tm.texi.in (TARGET_VERSION): Remove.
17438 * doc/tm.texi: Regenerate.
17439 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17440 * collect2.c (main): Don't use TARGET_VERSION.
17441 * mips-tdump.c (main): Don't use TARGET_VERSION.
17442 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 17443 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
17444 * config/rs6000/vxworksae.h: Remove.
17445 * config/alpha/alpha.h (TARGET_VERSION): Remove.
17446 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17447 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17448 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17449 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17450 * config/arm/arm.h (TARGET_VERSION): Remove.
17451 * config/arm/coff.h (TARGET_VERSION): Remove.
17452 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17453 * config/arm/elf.h (TARGET_VERSION): Remove.
17454 * config/arm/freebsd.h (TARGET_VERSION): Remove.
17455 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17456 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17457 * config/arm/pe.h (TARGET_VERSION): Remove.
17458 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17459 * config/arm/semi.h (TARGET_VERSION): Remove.
17460 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17461 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17462 * config/arm/vxworks.h (TARGET_VERSION): Remove.
17463 * config/avr/avr.h (TARGET_VERSION): Remove.
17464 * config/bfin/bfin.h (TARGET_VERSION): Remove.
17465 * config/fr30/fr30.h (TARGET_VERSION): Remove.
17466 * config/frv/frv.h (TARGET_VERSION): Remove.
17467 * config/h8300/h8300.h (TARGET_VERSION): Remove.
17468 * config/i386/cygwin.h (TARGET_VERSION): Remove.
17469 * config/i386/darwin.h (TARGET_VERSION): Remove.
17470 * config/i386/darwin64.h (TARGET_VERSION): Remove.
17471 * config/i386/djgpp.h (TARGET_VERSION): Remove.
17472 * config/i386/freebsd.h (TARGET_VERSION): Remove.
17473 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17474 * config/i386/gnu.h (TARGET_VERSION): Remove.
17475 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17476 * config/i386/i386elf.h (TARGET_VERSION): Remove.
17477 * config/i386/linux.h (TARGET_VERSION): Remove.
17478 * config/i386/linux64.h (TARGET_VERSION): Remove.
17479 * config/i386/lynx.h (TARGET_VERSION): Remove.
17480 * config/i386/mingw32.h (TARGET_VERSION): Remove.
17481 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17482 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17483 * config/i386/netware.h (TARGET_VERSION): Remove.
17484 * config/i386/nto.h (TARGET_VERSION): Remove.
17485 * config/i386/openbsd.h (TARGET_VERSION): Remove.
17486 * config/i386/vxworks.h (TARGET_VERSION): Remove.
17487 * config/ia64/elf.h (TARGET_VERSION): Remove.
17488 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17489 * config/ia64/hpux.h (TARGET_VERSION): Remove.
17490 * config/ia64/linux.h (TARGET_VERSION): Remove.
17491 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17492 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17493 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17494 * config/lm32/lm32.h (TARGET_VERSION): Remove.
17495 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17496 * config/m32c/m32c.h (TARGET_VERSION): Remove.
17497 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17498 * config/m32r/m32r.h (TARGET_VERSION): Remove.
17499 * config/m68k/linux.h (TARGET_VERSION): Remove.
17500 * config/m68k/m68k.h (TARGET_VERSION): Remove.
17501 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17502 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17503 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17504 * config/mep/mep.h (TARGET_VERSION): Remove.
17505 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17506 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17507 * config/mips/iris6.h (MACHINE_TYPE): Remove.
17508 * config/mips/linux.h (TARGET_VERSION): Remove.
17509 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17510 * config/mips/vxworks.h (TARGET_VERSION): Remove.
17511 * config/mmix/mmix.h (TARGET_VERSION): Remove.
17512 * config/mn10300/linux.h (TARGET_VERSION): Remove.
17513 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17514 * config/pa/pa.h (TARGET_VERSION): Remove.
17515 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17516 * config/picochip/picochip.h (TARGET_VERSION): Remove.
17517 * config/rs6000/aix.h (TARGET_VERSION): Remove.
17518 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17519 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17520 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17521 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17522 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17523 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17524 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17525 * config/rs6000/linux.h (TARGET_VERSION): Remove.
17526 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17527 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17528 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17529 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17530 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17531 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17532 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17533 * config/s390/linux.h (TARGET_VERSION): Remove.
17534 * config/s390/s390.h (TARGET_VERSION): Remove.
17535 * config/s390/tpf.h (TARGET_VERSION): Remove.
17536 * config/score/score.h (TARGET_VERSION): Remove.
17537 * config/sh/linux.h (TARGET_VERSION): Remove.
17538 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17539 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17540 * config/sh/sh.h (TARGET_VERSION): Remove.
17541 * config/sh/sh64.h (TARGET_VERSION): Remove.
17542 * config/sh/superh.h (TARGET_VERSION): Remove.
17543 * config/sh/vxworks.h (TARGET_VERSION): Remove.
17544 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17545 * config/sparc/linux.h (TARGET_VERSION): Remove.
17546 * config/sparc/linux64.h (TARGET_VERSION): Remove.
17547 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17548 TARGET_NAME32, TARGET_NAME): Remove.
17549 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17550 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17551 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17552 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17553 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17554 * config/spu/spu.h (TARGET_VERSION): Remove.
17555 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17556 * config/v850/v850.h (TARGET_VERSION): Remove.
17557 * config/vax/linux.h (TARGET_VERSION): Remove.
17558 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17559 * config/xtensa/elf.h (TARGET_VERSION): Remove.
17560 * config/xtensa/linux.h (TARGET_VERSION): Remove.
17561
ace31bca
EB
175622011-03-31 Eric Botcazou <ebotcazou@adacore.com>
17563
17564 PR target/48142
17565 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17566 frame-related from frame-unrelated adjustments to the stack pointer.
17567
76f9db36
JJ
175682011-03-31 Jakub Jelinek <jakub@redhat.com>
17569
17570 * common.opt (fdebug-types-section): Move earlier.
17571 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17572
b7826465
AT
175732011-03-31 Andreas Tobler <andreast@fgznet.ch>
17574
17575 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17576 var.
17577
1290e54c
NF
175782011-03-30 Nathan Froyd <froydnj@codesourcery.com>
17579
17580 * tree.h (CASE_CHAIN): Define.
17581 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17582 (gimple_redirect_edge_and_branch): Likewise.
17583
bddc98e1
VM
175842011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17585
17586 PR middle-end/48367
17587 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17588 calculation.
17589
c865e437
JL
175902011-03-30 Jeff Law <law@redhat.com>
17591
b3750213 17592 * PR bootstrap/48371
c865e437
JL
17593 * reload1.c (reload): Fix botch in last change.
17594
17595 * reload.h (struct reload): Fix typo introduced in last change.
17596
2cdf9574
JM
175972011-03-30 Joseph Myers <joseph@codesourcery.com>
17598
17599 * config/arm/arm.opt (mhard-float, msoft-float): Mark
17600 Undocumented. Remove help text.
17601 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17602 -mhard-float.
17603
666a21a2
JM
176042011-03-30 Joseph Myers <joseph@codesourcery.com>
17605
17606 * doc/options.texi (NegativeAlias): Document.
17607 (Alias): Mention NegativeAlias.
17608 * opt-functions.awk: Handle NegativeAlias.
e9c18386 17609 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
17610 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17611 * opts.h (CL_NEGATIVE_ALIAS): Define.
17612 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17613 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17614 OPT_mspe_.
17615 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17616 Alias entries.
17617 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17618 mno-spe and mno-isel instead of mspe=no and -misel=no.
17619
0fa4e351
MW
176202011-03-29 Mark Wielaard <mjw@redhat.com>
17621
17622 * common.opt (fdebug-types-section): New flag.
17623 * doc/invoke.texi: Document new -fno-debug-types-section flag.
17624 * dwarf2out.c (use_debug_types): New define.
17625 (struct die_struct): Mark die_id with GTY desc use_debug_types.
17626 (print_die): Guard output of type unit signatures using
17627 use_debug_types.
17628 (build_abbrev_table): Replace assert of dwarf_version >= 4
17629 with assert on use_debug_types.
17630 (size_of_die): Likewise.
17631 (unmark_dies): Likewise.
17632 (value_format): Decide AT_ref_external form on use_debug_types.
17633 (output_die): Replace dwarf_version version check guard with
17634 use_debug_types where appropriate.
17635 (modified_type_die): Likewise.
17636 (gen_reference_type_die): Likewise.
17637 (dwarf2out_start_source_file): Likewise.
17638 (dwarf2out_end_source_file): Likewise.
17639 (prune_unused_types_walk_attribs): Likewise.
17640 (dwarf2out_finish): Likewise.
17641
4648deb4
VM
176422011-03-30 Vladimir Makarov <vmakarov@redhat.com>
17643
17644 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17645
4f431835
RS
176462011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17647
17648 PR rtl-optimization/48332
17649 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17650 mode of input operand N and modeN to its actual mode.
17651
f2034d06
JL
176522011-03-30 Jeff Law <law@redhat.com>
17653
17654 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17655 define accessor macro.
17656 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17657 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17658 (reg_equiv_init): Likewise.
17659 (reg_equivs_size): New variable.
17660 (reg_equiv_init_size): Remove.
17661 (allocate_initial_values): Move prototype to here from....
17662 * integrate.h (allocate_initial_values): Remove prototype.
17663 * integrate.c: Include reload.h.
17664 (allocate_initial_values): Corresponding changes.
17665 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17666 (fix_reg_equiv_init, no_equiv): Corresponding changes.
17667 (update_equiv_regs): Corresponding changes.
17668 (ira): Corresponding changes.
17669 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17670 (push_secondary_reload): Corresponding changes.
17671 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17672 (make_memloc, find_reloads_address): Corresponding changes.
17673 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17674 (find_reloads_address_1): Corresponding changes.
17675 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17676 (refers_to_regno_for_reload_p): Corresponding changes.
17677 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17678 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17679 * reload1.c: Include ggc.h.
17680 (grow_reg_equivs): New function.
17681 (replace_pseudos_in, reload): Corresponding changes.
17682 (calculate_needs_all_insns, alter_regs): Corresponding changes.
17683 (eliminate_regs_1, elimination_effects): Corresponding changes.
17684 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
17685 (delete_output_reload): Likewise.
17686 * caller-save.c (mark_referenced_regs): Corresponding changes.
17687 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
17688 * frv/predicates.md (frv_load_operand): Corresponding changes.
17689 * microblaze/microblaze.c (double_memory_operand): Corresponding
17690 changes.
17691 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
17692 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 17693 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
17694 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
17695 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
17696 changes.
17697 * pa/pa.c (emit_move_sequence): Corresponding changes.
17698 * vax/vax.c (nonindexed_address_p): Corresponding changes.
17699
159b81b0
RS
177002011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17701
17702 PR target/47551
17703 * config/arm/arm.c (coproc_secondary_reload_class): Handle
17704 structure modes. Don't check neon_vector_mem_operand for
17705 vector or structure modes.
17706
a6217191
RS
177072011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
17708 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
17709
17710 PR target/43590
17711 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
17712 operand 1 and reshuffle the operands to match.
17713 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
17714
bd837408
CS
177152011-03-30 Christian Schüler <cschueler@gmx.de>
17716
6955d771 17717 PR driver/48208
bd837408 17718 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 17719
6955d771 17720 PR driver/48260
bd837408
CS
17721 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
17722 handler function.
17723 * config/darwin.opt: Added '-arch' option.
17724
e9c0470a
NC
177252011-03-30 Nick Clifton <nickc@redhat.com>
17726
17727 * config/rx/rx.md: Add peepholes and patterns to combine
17728 extending loads and simple arithmetic instructions.
17729 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
17730 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
17731 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 17732 modes to use pre-decrement and post-increment addressing.
e9c18386 17733 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 17734 addresses.
e9c18386
UB
17735 (rx_print_operand): Add support for %Q. Fix handling of %Q.
17736 (rx_memory_move_cost): Adjust cost of stores.
17737 (rx_adjust_insn_length): New function.
e9c0470a 17738
8a87e7ab
JJ
177392011-03-30 Jakub Jelinek <jakub@redhat.com>
17740
17741 PR c/48305
17742 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
17743 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
17744 matching arg00/arg01 types.
17745
12486e03
EB
177462011-03-30 Eric Botcazou <ebotcazou@adacore.com>
17747
17748 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
17749 last_location to UNKNOWN_LOCATION.
17750
0b99eef6
L
177512011-03-30 H.J. Lu <hongjiu.lu@intel.com>
17752
17753 PR target/48349
17754 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
17755 FLOAT_SSE_REGS.
17756
023592aa
JM
177572011-03-30 Joseph Myers <joseph@codesourcery.com>
17758 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17759
17760 PR bootstrap/48337
17761 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
17762 Init(PROCESSOR_V7).
17763 (sparc_cpu): Likewise.
17764 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
17765 PROCESSOR_V7.
17766
ad3b266b
VM
177672011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17768
17769 PR target/48336
17770 PR middle-end/48342
17771 PR rtl-optimization/48345
17772 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
17773 hard regs for given mode from profitable regs when doing secondary
17774 allocation.
17775
633c9126
JL
177762011-03-29 Jeff Law <law@redhat.com>
17777
17778 PR bootstrap/48327
17779 * tree-ssa-threadupdate.c (struct redirection_data): Remove
17780 do_not_duplicate field.
17781 (lookup_redirection_data): Corresponding changes.
17782 (create_duplicates): Always create a template block.
17783 (redirect_edges): Remove code which reused the original block
17784 when it was going to become unreachable code.
17785 (thread_block): Don't set do_not_duplicate field.
17786
eb50f63a
JM
177872011-03-29 Joseph Myers <joseph@codesourcery.com>
17788
17789 * lto-opts.c (register_user_option_p, lto_register_user_option):
17790 Make type argument unsigned.
17791 * lto-streamer.h (lto_register_user_option): Make type argument
17792 unsigned.
17793 * opth-gen.awk: Make CL_* macros unsigned.
17794 * opts-common.c (find_opt): Make lang_mask argument unsigned.
17795 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
17796 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
17797 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
17798 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
17799 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
17800 (find_opt): Make lang_mask argument unsigned.
17801
76763a6d
VM
178022011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17803
17804 PR rtl-optimization/48331
17805 PR rtl-optimization/48334
17806 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
17807 for any used algorithm.
17808
5c82436e
VM
178092011-03-29 Vladimir Makarov <vmakarov@redhat.com>
17810
17811 * ira-conflicts.c (build_object_conflicts): Add unused attribute
17812 to parent_max.
17813
7a81008b
UB
178142011-03-29 Uros Bizjak <ubizjak@gmail.com>
17815
17816 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
17817 (alpha_option_override): Don't set alpha_sr_alias_set.
17818 (emit_frame_store_1): Use gen_frame_mem rather than calling
17819 set_mem_alias_set.
17820 (alpha_expand_epilogue): Ditto.
17821
86c8d1f6
IR
178222011-03-29 Ira Rosen <ira.rosen@linaro.org>
17823
17824 PR tree-optimization/48290
17825 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
17826 vectorization, check that relevant phis in the basic block after
17827 the inner loop are really inner loop's exit phis.
17828
0d12220f
RS
178292011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
17830
e8cf17e7 17831 PR debug/48190
0d12220f
RS
17832 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
17833 (cached_dw_loc_list_def): New structure.
17834 (cached_dw_loc_list): New typedef.
17835 (cached_dw_loc_list_table): New variable.
17836 (cached_dw_loc_list_table_hash): New function.
17837 (cached_dw_loc_list_table_eq): Likewise.
17838 (add_location_or_const_value_attribute): Take a bool cache_p.
17839 Cache the list when the parameter is true.
17840 (gen_formal_parameter_die): Update caller.
17841 (gen_variable_die): Likewise.
17842 (dwarf2out_finish): Likewise.
17843 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
17844 while generating debug info for the decl.
17845 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
17846 (dwarf2out_init): Initialize cached_dw_loc_list_table.
17847 (resolve_addr): Cache the result of resolving a chain of
17848 location lists.
17849
1756cb66
VM
178502011-03-28 Vladimir Makarov <vmakarov@redhat.com>
17851
17852 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
17853 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 17854
1756cb66
VM
17855 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
17856 after regstat_init_n_sets_and_refs.
17857
17858 * ira.c: Add more comments at the top.
17859 (setup_stack_reg_pressure_class, setup_pressure_classes):
17860 Add comments how we compute the register pressure classes.
17861 (setup_allocno_and_important_classes): Add more comments.
17862 (setup_class_translate_array, reorder_important_classes)
17863 (setup_reg_class_relations): Add comments.
17864
17865 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
17866 start of the file.
17867
17868 * ira-color.c: Add 2011 to the Copyright line.
17869 (assign_hard_reg): Add more comments.
17870 (improve_allocation): Ditto.
17871
17872 * ira-costs.c: Add 2011 to the Copyright line.
17873 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
17874 comments.
17875 (setup_regno_cost_classes_by_mode): Ditto.
17876
17877 Initial patches from ira-improv branch:
17878
17879 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
17880
f60c2554 17881 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
17882 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
17883 (ira_create_allocno): Remove initialization of
17884 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
17885 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
17886 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17887 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
17888 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
17889 Initialize ALLOCNO_ADD_DATA.
17890 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
17891 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
17892 ALLOCNO_REG.
17893 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
17894 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
17895
17896 * ira.c (ira_reallocate): Remove.
17897 (setup_pressure_classes): Call
17898 ira_init_register_move_cost_if_necessary. Use
17899 ira_register_move_cost instead of ira_get_register_move_cost.
17900 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
17901 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
17902
17903 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
17904 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
17905 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
17906 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
17907 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
17908 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
17909 Fix formatting.
7a81008b 17910 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
17911 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
17912 (struct allocno_color_data): New.
17913 (allocno_color_data_t): New typedef.
17914 (allocno_color_data): New definition.
17915 (ALLOCNO_COLOR_DATA): New macro.
17916 (struct object_color_data): New.
17917 (object_color_data_t): New typedef.
17918 (object_color_data): New definition.
17919 (OBJECT_COLOR_DATA): New macro.
17920 (update_copy_costs, calculate_allocno_spill_cost): Call
17921 ira_init_register_move_cost_if_necessary. Use
17922 ira_register_move_cost instead of ira_get_register_move_cost.
17923 (move_spill_restore, update_curr_costs): Ditto.
17924 (allocno_spill_priority): Make it inline.
7a81008b 17925 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
17926 (struct coalesce_data, coalesce_data_t): New.
17927 (allocno_coalesce_data): New definition.
17928 (ALLOCNO_COALESCE_DATA): New macro.
17929 (merge_allocnos, coalesced_allocno_conflict_p): Use
17930 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
17931 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
17932 (coalesce_allocnos): Ditto.
17933 (setup_coalesced_allocno_costs_and_nums): Ditto.
17934 (collect_spilled_coalesced_allocnos): Ditto.
17935 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
17936 (setup_slot_coalesced_allocno_live_ranges): Ditto.
17937 (coalesce_spill_slots): Ditto.
17938 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
17939 free allocno_coalesce_data.
17940
17941 * ira-conflicts.c: Fix formatting.
17942 (process_regs_for_copy): Call
17943 ira_init_register_move_cost_if_necessary. Use
17944 ira_register_move_cost instead of ira_get_register_move_cost.
17945 (build_object_conflicts): Optimize.
17946
17947 * ira-costs.c (record_reg_classes): Optimize. Call
17948 ira_init_register_move_cost_if_necessary. Use
17949 ira_register_move_cost, ira_may_move_in_cost, and
17950 ira_may_move_out_cost instead of ira_get_register_move_cost and
17951 ira_get_may_move_cost.
17952 (record_address_regs): Ditto.
17953 (scan_one_insn): Optimize.
17954 (find_costs_and_classes): Optimize.
17955 (process_bb_node_for_hard_reg_moves): Call
17956 ira_init_register_move_cost_if_necessary. Use
17957 ira_register_move_cost instead of ira_get_register_move_cost.
17958
17959 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
17960 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
17961 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
17962 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
17963 definitions.
17964 (ira_initiate_emit_data, ira_finish_emit_data)
17965 (create_new_allocno): New functions.
7a81008b 17966 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
17967 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
17968 Use ira_register_move_cost instead of ira_get_register_move_cost.
17969
17970 * ira-int.h: Fix some comments.
7a81008b
UB
17971 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
17972 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
17973 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
17974 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
17975 add_data.
17976 (struct ira_allocno): Make mode and aclass a bitfield. Move other
17977 bitfield after mode. Make hard_regno a short int. Make
17978 hard_regno short. Remove first_coalesced_allocno and
17979 next_coalesced_allocno. Move mem_optimized_dest_p,
17980 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
17981 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
17982 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
17983 temp, colorable_p. Add new member add_data.
17984 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
17985 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
17986 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
17987 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
17988 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
17989 (ALLOCNO_ADD_DATA): New macro.
17990 (ira_emit_data_t): New typedef.
17991 (struct ira_emit_data): New. Move mem_optimized_dest_p,
17992 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
17993 from struct ira_allocno.
17994 (ALLOCNO_EMIT_DATA): New macro.
17995 (ira_allocno_emit_data, allocno_emit_reg): New.
17996 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 17997 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
17998 (OBJECT_ADD_DATA): New macro.
17999 (ira_reallocate): Remove.
18000 (ira_initiate_emit_data, ira_finish_emit_data): New.
18001 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
18002 (ira_init_register_move_cost_if_necessary): New.
18003 (ira_object_conflict_iter_next): Merge into
18004 ira_object_conflict_iter_cond.
7a81008b 18005 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 18006
f60c2554 18007 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
18008 ira_init_register_move_cost_if_necessary. Use
18009 ira_register_move_cost instead of ira_get_register_move_cost.
18010
18011 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
18012
18013 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
18014
18015 * ira-costs.c: Fix formatting.
18016 (cost_classes, cost_classes_num): Remove.
18017 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
18018 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
18019 (cost_classes_del, cost_classes_htab): New.
18020 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
18021 (initiate_regno_cost_classes, setup_cost_classes): New.
18022 (setup_regno_cost_classes_by_aclass): New.
7a81008b 18023 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
18024 (record_reg_classes): Use regno_cost_classes instead of
18025 cost_classes. Move checking opposite operand up.
18026 (record_address_regs): Use regno_cost_classes
18027 instead of cost_classes.
18028 (scan_one_insn): Ditto. Use always general register.
18029 (print_allocno_costs): Use regno_cost_classes instead of
18030 cost_classes.
18031 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
18032 (find_costs_and_classes): Set up cost classes for each registers.
18033 Use also their mode for this. Use regno_cost_classes instead of
18034 cost_classes.
18035 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
18036 cost_classes.
18037 (free_ira_costs, ira_init_costs): Don't use cost_classes.
18038 (ira_costs, ira_set_pseudo_classes): Call
18039 initiate_regno_cost_classes and finish_regno_cost_classes.
18040
18041 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
18042
18043 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18044
18045 * target.def (ira_cover_classes): Remove.
18046
7a81008b 18047 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
18048
18049 * doc/tm.texi.in: Ditto.
18050
18051 * ira-conflicts.c: Remove mentioning cover classes from the file.
18052 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 18053 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
18054
18055 * targhooks.c (default_ira_cover_classes): Remove.
18056
18057 * targhooks.h (default_ira_cover_classes): Ditto.
18058
18059 * haifa-sched.c: Remove mentioning cover classes from the file.
18060 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18061 ira_pressure_classes and ira_pressure_classes_num instead of
18062 ira_reg_class_cover_size and ira_reg_class_cover. Use
18063 sched_regno_pressure_class instead of sched_regno_cover_class.
18064 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18065 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18066
18067 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
18068 classes from the file.
18069 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18070 (struct object_hard_regs, struct object_hard_regs_node): New.
18071 (struct ira_object): New members profitable_hard_regs,
18072 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18073 (struct ira_allocno): Rename cover_class to aclass. Rename
18074 cover_class_cost and updated_cover_class_cost to class_cost and
18075 updated_class_cost. Remove splay_removed_p and
18076 left_conflict_size. Add new members colorable_p.
18077 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18078 (ALLOCNO_COLORABLE_P): New macro.
18079 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18080 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18081 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18082 (OBJECT_...): Rename parameter C to O.
18083 (OBJECT_PROFITABLE_HARD_REGS): New macro.
18084 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18085 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18086 (struct target_ira_int): New members x_ira_max_memory_move_cost,
18087 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18088 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18089 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18090 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
18091 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
18092 x_ira_reg_class_subunion.
18093 (ira_max_memory_move_cost, ira_max_register_move_cost)
18094 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18095 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18096 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 18097 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
18098 (ira_reg_class_union): Rename to ira_reg_class_subunion.
18099 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18100 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18101 (ira_tune_allocno_costs_and_cover_classes): Rename to
18102 ira_tune_allocno_costs.
18103 (ira_debug_hard_regs_forest): New.
18104 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18105 (ira_object_conflict_iter_next): Fix comments.
7a81008b 18106 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
18107 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18108 cover_class to aclass.
18109 (ira_allocate_and_accumulate_costs): Ditto.
18110 (ira_allocate_and_set_or_copy_costs): Ditto.
18111
18112 * opts.c (decode_options): Remove ira_cover_class check.
18113
18114 * ira-color.c: Remove mentioning cover classes from the file. Use
18115 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18116 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18117 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18118 (splay-tree.h): Remove include.
18119 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18120 before copy_freq_compare_func.
18121 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18122 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18123 New definitions.
18124 (hard_regs_roots, hard_regs_node_vec): Ditto.
18125 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18126 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18127 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18128 (create_new_object_hard_regs_node): Ditto.
18129 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 18130 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
18131 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18132 Ditto.
18133 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18134 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18135 (remove_unused_object_hard_regs_nodes): Ditto.
18136 (enumerate_object_hard_regs_nodes): Ditto.
18137 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18138 (object_hard_regs_subnode_t): Ditto.
18139 (struct object_hard_regs_subnode): Ditto.
18140 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18141 (setup_object_hard_regs_subnode_index): Ditto.
18142 (get_object_hard_regs_subnodes_num): Ditto.
18143 (form_object_hard_regs_nodes_forest): Ditto.
18144 (finish_object_hard_regs_nodes_tree): Ditto.
18145 (finish_object_hard_regs_nodes_forest): Ditto.
18146 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 18147 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
18148 (pseudos_have_intersected_live_ranges_p): Rename to
18149 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
18150 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18151 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18152 (update_copy_costs): Remove assert. Skip cost update if the hard
18153 reg does not belong the class.
18154 (assign_hard_reg): Process only profitable hard regs.
18155 (uncolorable_allocnos_num): Make it scalar.
18156 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18157 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18158 and ira_reg_class_max_nregs.
18159 (bucket_allocno_compare_func): Check frequency first.
18160 (sort_bucket): Add compare function as a parameter.
18161 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18162 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18163 (push_allocno_to_stack): Rewrite for checking new allocno
18164 colorability.
7a81008b 18165 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
18166 (push_only_colorable): Pass new parameter to sort_bucket.
18167 (push_allocno_to_spill): Remove.
18168 (allocno_spill_priority_compare): Make it inline and rewrite.
18169 (splay_tree_allocate, splay_tree_free): Remove.
18170 (allocno_spill_sort_compare): New function.
18171 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
18172 build and use splay tree. Choose first allocno in uncolorable
18173 allocno bucket to spill. Remove setting spill cost.
18174 (all_conflicting_hard_regs): Remove.
18175 (setup_allocno_available_regs_num): Check only profitable hard
18176 regs. Print info about hard regs nodes.
18177 (setup_allocno_left_conflicts_size): Remove.
18178 (put_allocno_into_bucket): Don't call
7a81008b 18179 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
18180 (improve_allocation): New.
18181 (color_allocnos): Call setup_profitable_hard_regs,
18182 form_object_hard_regs_nodes_forest, improve_allocation,
18183 finish_object_hard_regs_nodes_forest. Setup spill cost.
18184 (print_loop_title): Use pressure classes.
18185 (color_allocnso): Ditto.
18186 (do_coloring): Remove allocation and freeing splay_tree_node_pool
18187 and allocnos_for_spilling.
18188 (ira_sort_regnos_for_alter_reg): Don't setup members
18189 {first,next}_coalesced_allocno.
18190 (color): Remove allocating and freeing removed_splay_allocno_vec.
18191 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18192 prohibited_class_mode_regs.
18193
18194 * ira-lives.c: Remove mentioning cover classes from the file. Fix
18195 formatting.
18196 (update_allocno_pressure_excess_length): Use pressure classes.
18197 (inc_register_pressure, dec_register_pressure): Check for pressure
18198 class.
18199 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18200 pressure class. Use ira_reg_class_nregs instead of
18201 ira_reg_class_max_nregs.
18202 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18203 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18204 (single_reg_class): Use ira_reg_class_nregs instead of
18205 ira_reg_class_max_nregs.
18206 (process_bb_node_lives): Use pressure classes.
18207
18208 * ira-emit.c: Remove mentioning cover classes from the file. Use
18209 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
18210 (change_loop): Use pressure classes.
18211 (modify_move_list): Call ira_set_allocno_class instead of
18212 ira_set_allocno_cover_class.
18213
18214 * ira-build.c: Remove mentioning cover classes from the file. Use
18215 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18216 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
18217 ALLOCNO_UPDATED_CLASS_COST instead of
18218 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
18219 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18220 (ira_create_allocno): Remove initialization of
18221 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
18222 ALLOCNO_COLORABLE_P.
18223 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18224 Update conflict regs for the objects.
18225 (create_cap_allocno): Remove assert. Don't propagate
18226 ALLOCNO_AVAILABLE_REGS_NUM.
18227 (ira_free_allocno_costs): New function.
18228 (finish_allocno): Change a part of code into call of
18229 ira_free_allocno_costs.
18230 (low_pressure_loop_node_p): Use pressure classes.
18231 (object_range_compare_func): Don't compare classes.
18232 (setup_min_max_conflict_allocno_ids): Ditto.
18233
18234 * loop-invariant.c: Remove mentioning cover classes from the file.
18235 Use ira_pressure_classes and ira_pressure_classes_num instead of
18236 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
18237 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18238 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18239 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
18240 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18241 STACK_REG_COVER_CLASS.
18242 (get_regno_cover_class): Rename to get_regno_pressure_class.
18243 (move_loop_invariants): Initialize and finalize regstat.
18244
18245 * ira.c: Remove mentioning cover classes from the file. Add
18246 comments about coloring without cover classes. Use ALLOCNO_CLASS
18247 instead of ALLOCNO_COVER_CLASS. Fix formatting.
18248 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18249 setup_class_subset_and_memory_move_costs.
18250 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18251 (setup_cover_and_important_classes): Rename to
18252 setup_allocno_and_important_classes.
18253 (setup_class_translate_array): New.
18254 (setup_class_translate): Call it for allocno and pressure classes.
18255 (cover_class_order): Rename to allocno_class_order.
18256 (comp_reg_classes_func): Use ira_allocno_class_translate instead
18257 of ira_class_translate.
18258 (reorder_important_classes): Set up ira_important_class_nums.
18259 (setup_reg_class_relations): Set up ira_reg_class_superunion.
18260 (print_class_cover): Rename to print_classes. Add parameter.
18261 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18262 Print pressure classes too.
18263 (find_reg_class_closure): Rename to find_reg_classes. Don't call
18264 setup_reg_subclasses.
7a81008b 18265 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
18266 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18267 (setup_prohibited_class_mode_regs): Use
7a81008b 18268 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
18269 (clarify_prohibited_class_mode_regs): New function.
18270 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18271 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18272 (ira_init_once): Initialize them.
18273 (free_register_move_costs): Process them.
18274 (ira_init): Move calls of find_reg_classes and
18275 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18276 Call clarify_prohibited_class_mode_regs.
18277 (ira_no_alloc_reg): Remove.
18278 (too_high_register_pressure_p): Use pressure classes.
18279
18280 * sched-deps.c: Remove mentioning cover classes from the file.
18281 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
18282 ira_pressure_classes and ira_pressure_classes_num instead of
18283 ira_reg_class_cover_size and ira_reg_class_cover.
18284 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18285 sched_regno_pressure_class instead of sched_regno_cover_class.
18286 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
18287 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18288
18289 * ira.h: Add 2010 to Copyright.
18290 (ira_no_alloc_reg): Remove external.
18291 (struct target_ira): Rename x_ira_hard_regno_cover_class,
18292 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18293 x_ira_class_translate to x_ira_hard_regno_allocno_class,
18294 x_ira_allocno_classes_num, x_ira_allocno_classes, and
18295 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
18296 x_ira_pressure_classes, x_ira_pressure_class_translate, and
18297 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
18298 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
18299 x_ira_no_alloc_regs.
7a81008b 18300 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
18301 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18302 ira_allocno_classes_num and ira_allocno_classes.
18303 (ira_class_translate): Rename to ira_allocno_class_translate.
18304 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18305 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18306 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18307 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18308 (ira_no_alloc_regs): New.
18309
18310 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
18311 classes from the file. Use ALLOCNO_CLASS instead of
18312 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
18313 ALLOCNO_COVER_CLASS_COST.
18314 (regno_cover_class): Rename to regno_aclass.
18315 (record_reg_classes): Use ira_reg_class_subunion instead of
18316 ira_reg_class_union.
18317 (record_address_regs): Check overflow.
18318 (scan_one_insn): Ditto.
7a81008b 18319 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
18320 (print_pseudo_costs): Use REG_N_REFS.
18321 (find_costs_and_classes): Use classes intersected with them on the
18322 1st pass. Check overflow. Use ira_reg_class_subunion instead of
18323 ira_reg_class_union. Use ira_allocno_class_translate and
18324 regno_aclass instead of ira_class_translate and regno_cover_class.
18325 Modify code for finding regno_aclass. Setup preferred classes for
18326 the next pass.
18327 (setup_allocno_cover_class_and_costs): Rename to
18328 setup_allocno_class_and_costs. Use regno_aclass instead of
18329 regno_cover_class. Use ira_set_allocno_class instead of
18330 ira_set_allocno_cover_class.
18331 (init_costs, finish_costs): Use regno_aclass instead of
18332 regno_cover_class.
18333 (ira_costs): Use setup_allocno_class_and_costs instead of
18334 setup_allocno_cover_class_and_costs.
18335 (ira_tune_allocno_costs_and_cover_classes): Rename to
18336 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
18337 by processing objects. Use ira_reg_class_max_nregs instead of
18338 ira_reg_class_nregs.
18339
18340 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18341
18342 * sched-int.h: Remove mentioning cover classes from the file.
18343 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18344
18345 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
18346 classes from the file.
18347 (struct reg_pref): Rename coverclass into allocnoclass.
18348 (reg_cover_class): Rename to reg_allocno_class.
18349
7a81008b 18350 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
18351
18352 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18353
18354 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18355
18356 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18357
18358 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18359
18360 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18361
18362 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18363
18364 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18365
18366 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18367
18368 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18369
18370 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18371 (i386_ira_cover_classes): Ditto.
18372
18373 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18374
18375 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18376
18377 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18378
18379 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18380
18381 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18382
18383 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18384
18385 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18386 (mips_ira_cover_classes): Ditto.
18387
18388 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18389
18390 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18391
18392 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18393
18394 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18395
18396 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18397
18398 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18399 (IRA_COVER_CLASSES_VSX): Ditto.
18400
18401 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18402 (rs6000_ira_cover_classes): Ditto.
18403
18404 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18405
18406 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18407
18408 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18409
18410 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18411
18412 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18413
18414 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18415
18416 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18417
18418 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18419
18420 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18421
18422 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18423
2b80199f
JJ
184242011-03-29 Jakub Jelinek <jakub@redhat.com>
18425
71dae1fe
JJ
18426 PR debug/48253
18427 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18428 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18429 dw_fde_unlikely_section_end_label, cold_in_std_section,
18430 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18431 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18432 fields.
18433 (output_fde): Use dw_fde_second_{begin,end} if second is
18434 true, otherwise dw_fde_{begin,end}.
18435 (output_call_frame_info): Test dw_fde_second_begin != NULL
18436 instead of dw_fde_switched_sections.
18437 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18438 fields, initialize new fields. Initialize in_std_section
18439 unconditionally from the first partition.
18440 (dwarf2out_end_epilogue): Don't override dw_fde_end when
18441 dw_fde_second_begin is non-NULL.
18442 (dwarf2out_switch_text_section): Stop initializing removed
18443 dw_fde_struct fields, initialize new fields, initialize
18444 also dw_fde_end here. Set dw_fde_switch_cfi even when
18445 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
18446 (struct var_loc_list_def): Add last_before_switch field.
18447 (arange_table, arange_table_allocated, arange_table_in_use,
18448 ARANGE_TABLE_INCREMENT, add_arange): Removed.
18449 (size_of_aranges): Count !in_std_section and !second_in_std_section
18450 hunks in fdes, instead of looking at arange_table_in_use.
18451 (output_aranges): Add aranges_length argument, don't call
18452 size_of_aranges here. Instead of using aranges_table*
18453 emit ranges for fdes when !in_std_section resp.
18454 !second_in_std_section.
18455 (dw_loc_list): Break ranges crossing section switch.
18456 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 18457 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
18458 (gen_subprogram_die): Don't call add_arange. Use
18459 dw_fde_{begin,end} for first partition and if switched
18460 section dw_fde_second_{begin,end} for the second.
18461 (var_location_switch_text_section_1,
18462 var_location_switch_text_section): New functions.
18463 (dwarf2out_begin_function): Initialize cold_text_section even
18464 when function_section () isn't text_section.
18465 (prune_unused_types): Don't walk arange_table.
18466 (dwarf2out_finish): Don't needlessly test
18467 flag_reorder_blocks_and_partition when testing cold_text_section_used.
18468 If info_section_emitted, call size_of_aranges and if it indicates
18469 non-empty .debug_aranges, call output_aranges with the computed
18470 size. Stop using removed dw_fde_struct fields, use
18471 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18472 for second.
18473
2b80199f
JJ
18474 PR debug/48203
18475 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18476 create ENTRY_VALUE if incoming or address of incoming's MEM
18477 is a hard REG.
18478 * dwarf2out.c (mem_loc_descriptor): Don't emit
18479 DW_OP_GNU_entry_value of DW_OP_fbreg.
18480 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18481 on ENTRY_VALUE is able to find the canonical parameter VALUE.
18482 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18483 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18484 ENTRY_VALUE_EXPs.
18485 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18486 is a REG_P or MEM_P with REG_P address, compute hash directly
18487 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18488 (preserve_only_constants): Don't clear VALUES forwaring
18489 ENTRY_VALUE to some other VALUE.
18490
8a445129
RS
184912011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
18492
18493 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18494 instead of GEN_INT.
18495
c82fee88
EB
184962011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18497
18498 * cfgexpand.c (expand_gimple_cond): Always set the source location and
18499 block before expanding the statement.
18500 (expand_gimple_stmt_1): Likewise. Set them here...
18501 (expand_gimple_stmt): ...and not here. Tidy.
18502 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18503 unknown.
18504
e45425ec
SB
185052011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18506
18507 * Makefile.in: New rule for cprop.o.
18508 * gcse.c: Move constant/copy propagation to cprop.c.
18509 (compute_local_properties): Only handle expression tables.
18510 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18511 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18512 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18513 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 18514 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
18515 compute_cprop_data, find_used_regs, try_replace_reg,
18516 find_avail_set, cprop_jump, constprop_register, cprop_insn,
18517 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18518 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18519 find_bypass_set, reg_killed_on_edge, bypass_block,
18520 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18521 execute_rtl_cprop, pass_rtl_cprop): Move to...
18522 * cprop.c: ...here. New file, constant/copy propagation for RTL
18523 moved from gcse.c to here with minor cleanups in duplicated code.
18524
c09d5426
L
185252011-03-28 H.J. Lu <hongjiu.lu@intel.com>
18526
18527 * config/i386/i386.c (flag_opts): Fix a typo in
18528 -mavx256-split-unaligned-store.
18529
9eaa7740
AS
185302011-03-28 Anatoly Sokolov <aesok@post.ru>
18531
18532 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18533 LIBCALL_VALUE): Remove macros.
18534 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18535 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18536 (h8300_function_value, h8300_libcall_value,
18537 h8300_function_value_regno_p): New functions.
18538
dcec2be2
AS
185392011-03-28 Anatoly Sokolov <aesok@post.ru>
18540
18541 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18542
520af9ec
JL
185432011-03-28 Jeff Law <law@redhat.com>
18544
18545 * tree-ssa-threadupdate.c (redirect_edges): Call
18546 create_edge_and_update_destination_phis as needed.
18547 (create_edge_and_update_destination_phis): Accept new BB argument.
18548 All callers updated.
18549 (thread_block): Do not update the profile when threading around
18550 intermediate blocks.
18551 (thread_single_edge): Likewise.
18552 (determine_bb_domination_status): If BB is not a successor of the
18553 loop header, return NONDOMINATING.
18554 (register_jump_thread): Note when we register a jump thread around
18555 an intermediate block.
18556 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18557 (thread_across_edge): Use it.
18558
7450b54f
TG
185592011-03-28 Tristan Gingold <gingold@adacore.com>
18560
18561 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18562 when for_return is 2.
18563
649beb33
JL
185642011-03-28 Jeff Law <law@redhat.com>
18565
18566 * var-tracking.c (canonicalize_values_mark): Delete unused
18567 lhs assignment.
18568 (canonicalize_values_star, set_variable_part): Likewise.
18569 (clobber_variable_part, delete_variable_part): Likewise.
18570
d5b8da97
SB
185712011-03-28 Steven Bosscher <steven@gcc.gnu.org>
18572
18573 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18574
322dd859
MJ
185752011-03-28 Martin Jambor <mjambor@suse.cz>
18576
18577 * tree-inline.c (expand_call_inline): Do not check that destination
18578 node is analyzed.
18579 (optimize_inline_calls): Assert that destination node is analyzed.
18580 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18581 not call tree_lowering_passes.
18582 * cgraph.h (cgraph_analyze_function): Declare.
18583 * cgraphunit.c (cgraph_analyze_function): Make public.
18584
aa53e58b
JM
185852011-03-28 Joseph Myers <joseph@codesourcery.com>
18586
18587 * config/sparc/sparc-opts.h: New.
18588 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18589 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18590 (sparc_option_override): Store processor_type enumeration rather
18591 than string in cpu_default. Remove name and enumeration from
18592 cpu_table. Directly default -mcpu then default -mtune from -mcpu
18593 without using sparc_select. Use target_flags_explicit instead of
18594 fpu_option_set.
18595 * config/sparc/sparc.h (enum processor_type): Move to
18596 sparc-opts.h.
18597 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18598 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18599 HeaderInclude entry.
18600 (mcpu=, mtune=): Use Var and Enum.
18601 (sparc_processor_type): New Enum and EnumValue entries.
18602
dd350eba
RO
186032011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18604 Iain Sandoe <iains@gcc.gnu.org>
18605
18606 PR target/48245
18607 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18608
1b29f05e
EB
186092011-03-28 Eric Botcazou <ebotcazou@adacore.com>
18610
18611 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18612 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18613 Insert new statements at it in lieu of STMT.
18614 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18615 * tree-vect-stmts.c (vectorizable_store): Likewise.
18616 (vectorizable_load): Likewise.
18617
506e6808
UB
186182011-03-28 Uros Bizjak <ubizjak@gmail.com>
18619
18620 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18621 (divtf3): Ditto.
18622 (multf3): Ditto.
18623 (subtf3): Ditto.
18624
2e939ee9
L
186252011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18626
18627 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18628 unaligned 256bit load/store.
18629 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18630 (*avx_movdqu<avxmodesuffix>): Likewise.
18631
5e85ab88
JDA
186322011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18633
18634 PR target/48288
18635 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18636 * config/pa/pa.md (iordi3): Use new predicate in expander.
18637 (iorsi3): Likewise.
18638
47be3d6d
AS
186392011-03-27 Anatoly Sokolov <aesok@post.ru>
18640
506e6808 18641 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 18642 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
18643 * config/mips/mips-protos.h (mips_function_value): Remove.
18644 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
18645 (mips_function_value_1): ... this. Make static. Handle receiving
18646 the function type in 'fn_decl_or_type' argument.
18647 (mips_function_value, mips_libcall_value,
18648 mips_function_value_regno_p): New function.
18649 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18650 TARGET_FUNCTION_VALUE_REGNO_P): Define.
18651
d253656a
L
186522011-03-27 H.J. Lu <hongjiu.lu@intel.com>
18653
18654 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18655 and -mavx256-split-unaligned-store.
18656 (ix86_option_override_internal): Split 32-byte AVX unaligned
18657 load/store by default.
18658 (ix86_avx256_split_vector_move_misalign): New.
18659 (ix86_expand_vector_move_misalign): Use it.
18660
18661 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18662 -mavx256-split-unaligned-store.
18663
18664 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18665 256bit load/store. Generate unaligned store on misaligned memory
18666 operand.
18667 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18668 256bit load/store.
18669 (*avx_movdqu<avxmodesuffix>): Likewise.
18670
18671 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18672 -mavx256-split-unaligned-store.
18673
1ea9206a
RS
186742011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18675
18676 PR target/38598
18677 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18678 Update commentary.
18679
b99ce2a8
RS
186802011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
18681
18682 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
18683 opno arguments with an expand_operand. Use create_input_operand.
18684 (mips_prepare_builtin_target): Delete.
18685 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
18686 functions.
18687 (mips_expand_builtin_direct): Use create_output_operand and
18688 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
18689 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
18690 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
18691
69d52339
IR
186922011-03-27 Ira Rosen <ira.rosen@linaro.org>
18693
18694 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
18695 function.
18696 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
18697
ba5e9aca
EB
186982011-03-26 Eric Botcazou <ebotcazou@adacore.com>
18699
18700 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
18701 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
18702 basic blocks and call commit_edge_insertions directly.
18703 (fixup_abnormal_edges): Move from here to...
18704 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
18705 on the edges and return whether some have actually been inserted.
18706 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
18707 compensation code.
18708
5d369d58
AB
187092011-03-26 Andrey Belevantsev <abel@ispras.ru>
18710
18711 PR rtl-optimization/48144
18712 * sel-sched-ir.c (merge_history_vect): Factor out from ...
18713 (merge_expr_data): ... here.
18714 (av_set_intersect): Rename to av_set_code_motion_filter.
18715 Update all callers. Call merge_history_vect when an expression
18716 is found in both sets.
18717 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
18718
f082c000
AM
187192011-03-26 Alan Modra <amodra@gmail.com>
18720
18721 * config/rs6000/predicates.md (word_offset_memref_op): Handle
18722 cmodel medium addresses.
18723 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
18724 64-bit gpr loads and stores.
18725 (rs6000_secondary_reload_ppc64): New function.
18726 * config/rs6000/rs6000-protos.h: Declare it.
18727 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
18728
8ac5e12e
AM
187292011-03-26 Alan Modra <amodra@gmail.com>
18730
18731 PR target/47487
18732 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
18733 GNU Go in traceback table.
18734
c2654ded
RH
187352011-03-25 Richard Henderson <rth@redhat.com>
18736
18737 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
18738 if there are exactly 6 operands.
18739 (set_storage_via_setmem): Similarly.
18740
ba78087b
KT
187412011-03-25 Kai Tietz <ktietz@redhat.com>
18742
18743 * collect2.c (write_c_file_stat): Handle backslash
18744 as right-hand directory separator.
18745 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
18746 checking just for slash.
18747 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
18748 instead of checking for trailing slash.
18749 * gcc.c (record_temp_file): Use filename_cmp instead
18750 of strcmp.
18751 (do_spec_1): Likewise.
18752 (replace_outfile_spec_function): Likewise.
18753 (is_directory): Use filename_ncmp instead of strncmp.
18754 (print_multilib_info): Likewise.
18755 * gcov.c (find_source): Use filename_cmp instead
18756 instead of strcmp.
18757 (make_gcov_file_name): Fix order of slash/backslash
18758 checks.
18759 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
18760 (add_standard_paths): Likewise.
18761 * mips-tfile.c (saber_stop): Handle backslash.
18762 * prefix.c (update_path): Use filename_ncmp instead of
18763 strncmp.
18764 * profile.c (output_location): Use filename_cmp instead
18765 of strcmp.
18766 * read-md.c (handle_toplevel_file): Handle backslash.
18767 * tlink.c (frob_extension): Likewise.
18768 * tree-cfg.c (same_line_p): Use filename_cmp instead of
18769 strcmp.
18770 * tree-dump.c (dequeue_and_dump): Handle backslash.
18771 * tree.c (get_file_function_name): Likewise.
18772 * gengtype.c (read_input_list): Likewise.
18773 (get_file_realbasename): Likewise.
18774 (get_output_file_with_visibility): Use filename_cmp
18775 instead of strcmp.
18776
75f6ec9a
RS
187772011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
18778
18779 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
18780 case to VFPv1.
18781
6c4e2997
NF
187822011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18783
18784 * fold-const.c (expr_location_or): New function.
18785 (fold_truth_not_expr): Call it.
18786
0edf1bb2
JL
187872011-03-25 Jeff Law <law@redhat.com>
18788
18789 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
18790 va_end.
18791 * c-family/c-common.c (def_fn_type): Likewise.
18792 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
18793 * emit-rtl.c (gen_rtvec): Likewise.
18794 * lto/lto-lang.c (def_fn_type): Likewise.
18795
fdc2de95
RG
187962011-03-25 Richard Guenther <rguenther@suse.de>
18797
18798 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
18799 also generate copies.
18800 (fini_copy_prop): Handle constant values properly.
18801
21385db0
JJ
188022011-03-25 Jakub Jelinek <jakub@redhat.com>
18803
18804 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
18805 mode size instead of bitsize with DWARF2_ADDR_SIZE.
18806 (hash_loc_operands, compare_loc_operands): Handle
18807 DW_OP_GNU_entry_value.
18808
6510e8bb
KT
188092011-03-25 Kai Tietz <ktietz@redhat.com>
18810
18811 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
18812 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
18813 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
18814 comment and use macro TARGET_64BIT_MS_ABI instead.
18815 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
18816 and change default behavior for 32-bit MS_ABI.
18817 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
18818 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
18819 32-bit, too.
18820 (ix86_cfun_abi): Likewise.
18821 (ix86_maybe_switch_abi): Adjust comment.
18822 (init_cumulative_args): Check for bit-ness in MS_ABI case.
18823 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
18824 instead of checking for SYSV_ABI.
18825 (ix86_nsaved_sseregs): Likewise.
18826 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
18827 to 16 bytes.
18828 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
18829 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
18830 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
18831 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
18832 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
18833
34019e28
RG
188342011-03-25 Richard Guenther <rguenther@suse.de>
18835
18836 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
18837 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18838 (verify_gimple): Remove.
18839 * tree-cfg.c (verify_gimple_call): Merge verification
18840 from verify_stmts.
18841 (verify_gimple_phi): Merge verification from verify_stmts.
18842 (verify_gimple_label): New function.
18843 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
18844 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
18845 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
18846 (verify_stmts): Rename to verify_gimple_in_cfg.
18847 (verify_gimple_in_cfg): New function.
18848 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
18849 * tree-ssa.c (verify_ssa): Likewise.
18850 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
18851
605896f5
RG
188522011-03-25 Richard Guenther <rguenther@suse.de>
18853
18854 * passes.c (init_optimization_passes): Add FRE pass after
18855 early SRA.
18856
7baa7c13
BS
188572011-03-25 Bernd Schmidt <bernds@codesourcery.com>
18858 Andrew Stubbs <ams@codesourcery.com>
18859
18860 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
18861 for Cortex-A8.
18862 (arm_movdi_vfp_cortexa8): New pattern.
18863 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
18864 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
18865 instructions when tuning for Cortex-A8. Set attribute "arch".
18866 * config/arm/arm.md: Move include arm-tune.md up a bit.
18867 (define_attr "arch"): Add "onlya8" and "nota8" values.
18868 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
18869
45dbce1b
NF
188702011-03-25 Nathan Froyd <froydnj@codesourcery.com>
18871
4ff08abf 18872 PR bootstrap/48282
45dbce1b
NF
18873 Revert:
18874 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
18875
18876 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18877 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
18878 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18879 * passes.c (init_optimization_passes): Move
18880 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18881
ac9a30ae
KT
188822011-03-25 Kai Tietz <ktietz@redhat.com>
18883
18884 * c-typeck.c (comptypes_internal): Replace target
18885 hook call of comp_type_attributes by version in tree.c file.
18886 * gimple.c (gimple_types_compatible_p_1): Likewise.
18887 * tree-ssa.c (useless_type_conversion_p): Likewise.
18888 * tree.c (build_type_attribute_qual_variant): Likewise.
18889 (attribute_value_equal): New static helper function.
18890 (comp_type_attributes): New function.
18891 (merge_attributes): Use attribute_value_equal for comparison.
18892 (attribute_list_contained): Likewise.
18893 * tree.h (comp_type_attributes): New prototype.
18894
afdac116
RG
188952011-03-25 Richard Guenther <rguenther@suse.de>
18896
18897 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
18898 of complex types at -O0.
18899 (verify_gimple_assign_binary): Likewise.
18900 (verify_gimple_assign_ternary): Likewise.
18901
ec6165f8
MW
189022011-03-24 Mark Wielaard <mjw@redhat.com>
18903
18904 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
18905 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
18906
2a5ac39a
MW
189072011-03-24 Mark Wielaard <mjw@redhat.com>
18908
18909 PR debug/48041
18910 * dwarf2out.c (output_abbrev_section): Only write table when
18911 abbrev_die_table_in_use > 1.
18912
e533b2a4
RH
189132011-02-24 Richard Henderson <rth@redhat.com>
18914
18915 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
18916 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
18917 (alpha_expand_unaligned_load_words): Use extql.
18918 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
18919 (emit_insxl): Handle all modes for consistency.
18920
0b2a7367
RH
189212011-02-24 Richard Henderson <rth@redhat.com>
18922
18923 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
18924 (alpha_expand_unaligned_load): Likewise.
18925 (alpha_expand_unaligned_store): Likewise.
18926 (alpha_expand_unaligned_load_words): Likewise.
18927 (alpha_expand_unaligned_store_words): Likewise.
18928 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
18929 (alpha_split_lock_test_and_set_12): Likewise.
18930 (print_operand, alpha_fold_builtin_extxx): Likewise.
18931 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
18932 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
18933 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
18934 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
18935 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
18936 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
18937 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
18938 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
18939 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
18940 (extwl, extll, extql): Similarly.
18941 (inswh, inslh, insqh): Similarly.
18942 (mskbl, mskwl, mskll, mskql): Similarly.
18943 (mskwh, msklh, mskqh): Similarly.
18944
315b2bef
RH
189452011-02-24 Richard Henderson <rth@redhat.com>
18946
18947 * config/alpha/alpha.md (attribute isa): Add er, ner.
18948 (attribute enabled): Handle them.
18949 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
18950
67102517
RH
189512011-02-24 Richard Henderson <rth@redhat.com>
18952
18953 * config/alpha/alpha.md (attribute isa): Add vms.
18954 (attribute enabled): Handle it.
18955 (*movsf): Merge *movsf_{nofix,fix,nofp}.
18956 (*movdf): Merge *movdf_{nofix,fix,nofp}.
18957 (*movtf): Rename from *movtf_internal for consistency.
18958 (*movsi): Merge with *movsi_nt_vms.
18959 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
18960 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
18961 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
18962 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
18963
6aba5cb4
RH
189642011-02-24 Richard Henderson <rth@redhat.com>
18965
18966 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
18967 (extendqisi2, extendhisi2): Likewise.
18968 (extendqidi2): Simplify BWX/non-BWX expansions.
18969 (extendhidi2): Similarly.
18970
bdfb351b
RH
189712011-02-24 Richard Henderson <rth@redhat.com>
18972
18973 * config/alpha/alpha.md (attribute isa): New.
18974 (attribute enabled): New.
18975 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
18976 (zero_extendqisi2, zero_extendqidi2): Similarly.
18977 (zero_extendhisi2, zero_extendhidi2): Similarly.
18978 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
18979
6abe71eb
RH
189802011-02-24 Richard Henderson <rth@redhat.com>
18981
18982 * config/alpha/predicates.md (input_operand): Revert last change;
18983 update comment to mention 32-bit VMS rather than Windows.
18984
7114321e
NF
189852011-03-24 Nathan Froyd <froydnj@codesourcery.com>
18986
18987 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
18988 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
18989 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
18990 * passes.c (init_optimization_passes): Move
18991 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
18992
c8679567
EB
189932011-03-24 Eric Botcazou <ebotcazou@adacore.com>
18994
18995 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
18996
27173058
UB
189972011-03-24 Uros Bizjak <ubizjak@gmail.com>
18998
18999 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
19000 correctly.
19001
6f0c9f06
JJ
190022011-03-24 Jakub Jelinek <jakub@redhat.com>
19003
19004 PR debug/48204
19005 * simplify-rtx.c (simplify_const_unary_operation): Call
19006 real_convert when changing mode class with FLOAT_EXTEND.
19007
662666e5
NC
190082011-03-24 Nick Clifton <nickc@redhat.com>
19009
19010 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
19011 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
19012 * config/rx/rx.c (rx_option_override): Set align_jumps,
19013 align_loops and align_labels if not set by the user.
19014 (rx_align_for_label): New function.
19015 (rx_max_skip_for_label): New function.
19016 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
19017 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
19018 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
19019 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
19020 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
19021
2b99b2b8
RS
190222011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19023
19024 PR rtl-optimization/48263
19025 * optabs.c (expand_binop_directly): Reinstate convert_modes code
19026 and original commutative_p handling. Use maybe_gen_insn.
19027
ccecd6ea
AK
190282011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19029
19030 * reload.c (find_reloads_subreg_address): Add address_reloaded
19031 parameter and return true there if the full address has been
19032 reloaded.
19033 (find_reloads_toplev): Pass address_reloaded flag.
19034 (find_reloads_address_1): Don't use address_reloaded parameter.
19035
67295642
JL
190362011-03-24 Jeff Law <law@redhat.com>
19037
19038 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19039 unused variable "ann".
19040 (remove_unused_locals): Likewise.
19041
19042 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19043 statement.
19044
19045 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19046 after it is freed.
19047
212aa74f
AK
190482011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19049
19050 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19051 for invalid symbolic addresses.
19052 (s390_secondary_reload): Don't use s390_check_symref_alignment for
19053 larl operands.
19054
fe784e0d
EB
190552011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19056
19057 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19058 the argument in calls to fold_truth_not_expr.
19059
63ee8641
NF
190602011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19061
19062 * tree.c (record_node_allocation_statistics): New function.
19063 (make_node_stat, copy_node_stat, build_string): Call it.
19064 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19065 (build1_stat, build_omp_clause): Likewise.
19066
61be2a1c
RS
190672011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19068
19069 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19070 last commit.
19071
a881aaa7
RG
190722011-03-24 Richard Guenther <rguenther@suse.de>
19073
19074 PR tree-optimization/48271
19075 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19076 blocks that still exist.
19077
dbaa912c
RG
190782011-03-24 Richard Guenther <rguenther@suse.de>
19079
19080 PR tree-optimization/48270
19081 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19082 not free datarefs before ddrs.
19083
1d60cc55
EB
190842011-03-24 Eric Botcazou <ebotcazou@adacore.com>
19085
19086 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19087 from the address built for a reference with variable offset.
19088
c78dd519
UB
190892011-03-24 Uros Bizjak <ubizjak@gmail.com>
19090
19091 PR target/48237
19092 * config/i386/i386.md (*movdf_internal_rex64): Do not split
19093 alternatives that can be handled with movq or movabsq insn.
19094 (*movdf_internal): Disable for !TARGET_64BIT.
19095 (*movdf_internal_nointeger): Ditto.
19096 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19097
b25b9e8f
NF
190982011-03-24 Nathan Froyd <froydnj@codesourcery.com>
19099
19100 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19101 (FUNCTION_ARG_ADVANCE): Likewise.
19102 * tm.texi.in: Change references to them to hook references.
19103 * tm.texi: Regenerate.
c78dd519 19104 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
19105 (default_function_incoming_arg): Likewise.
19106 (default_function_arg_advance): Likewise.
c78dd519 19107 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
19108 (function_arg_advance): Likewise.
19109 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19110
190b2187
RG
191112011-03-24 Richard Guenther <rguenther@suse.de>
19112
19113 PR middle-end/48269
19114 * tree-object-size.c (addr_object_size): Do not double-account
19115 for MEM_REF offsets.
19116
a183b5c7
DN
191172011-03-24 Diego Novillo <dnovillo@google.com>
19118
19119 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 19120 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
19121 (lto_input_data_block): Move from lto-opts.c. Make extern.
19122 Update all users.
19123 (lto_input_string): Rename from input_string. Make extern.
19124 Update all users.
19125 * lto-streamer-out.c (lto_output_string_with_length): Rename from
19126 output_string_with_length.
19127 Output 0 to indicate a non-NULL string. Update all callers to
19128 not emit 0.
19129 (lto_output_string): Rename from output_string. Make extern.
19130 Update all users.
19131 (lto_output_decl_state_streams): Make extern.
19132 (lto_output_decl_state_refs): Make extern.
19133 * lto-streamer.h (lto_input_string): Declare.
19134 (lto_input_data_block): Declare.
19135 (lto_output_string): Declare.
19136 (lto_output_string_with_length): Declare.
19137 (lto_output_decl_state_streams): Declare.
19138 (lto_output_decl_state_refs): Declare.
19139
cfef45c8
RG
191402011-03-24 Richard Guenther <rguenther@suse.de>
19141
19142 PR tree-optimization/46562
19143 * tree.c (build_invariant_address): New function.
19144 * tree.h (build_invariant_address): Declare.
19145 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19146 a renamed function moved ...
19147 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19148 Take valueization callback parameter.
19149 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19150 * gimple-fold.h: New file.
19151 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19152 (ccp_fold, fold_const_aggregate_ref,
19153 fold_ctor_reference, fold_nonarray_ctor_reference,
19154 fold_array_ctor_reference, fold_string_cst_ctor_reference,
19155 get_base_constructor): Move ...
19156 * gimple-fold.c: ... here.
19157 (gimple_fold_stmt_to_constant_1): New function
19158 split out from ccp_fold. Take a valueization callback parameter.
19159 Valueize all operands.
19160 (gimple_fold_stmt_to_constant): New wrapper function.
19161 (fold_const_aggregate_ref_1): New function split out from
19162 fold_const_aggregate_ref. Take a valueization callback parameter.
19163 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19164 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19165 invariant POINTER_PLUS_EXPRs to invariant form.
19166 (vn_valueize): New function.
19167 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19168 * tree-vrp.c (vrp_valueize): New function.
19169 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19170 to fold statements to constants.
19171 * tree-ssa-pre.c (eliminate): Properly guard propagation of
19172 function declarations.
19173 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19174 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19175
5e0a7e40
RS
191762011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
19177
19178 * config/h8300/predicates.md (jump_address_operand): Fix register
19179 mode check.
19180
bfe068c3
IR
191812011-03-24 Ira Rosen <ira.rosen@linaro.org>
19182
19183 * doc/invoke.texi (max-stores-to-sink): Document.
19184 * params.h (MAX_STORES_TO_SINK): Define.
19185 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19186 if either vectorization or if-conversion is disabled.
19187 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19188 tree-vect-data-refs.c vect_equal_offsets.
19189 (dr_equal_offsets_p): New function.
19190 (find_data_references_in_bb): Remove static.
19191 * tree-data-ref.h (find_data_references_in_bb): Declare.
19192 (dr_equal_offsets_p): Likewise.
19193 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19194 (vect_drs_dependent_in_basic_block): Update calls to
19195 vect_equal_offsets.
19196 (vect_check_interleaving): Likewise.
19197 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19198 (cond_if_else_store_replacement): Rename to...
19199 (cond_if_else_store_replacement_1): ... this. Change arguments and
19200 documentation.
19201 (cond_if_else_store_replacement): New function.
19202 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19203 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19204
4908b0bf
CLT
192052011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
19206
19207 PR target/46934
19208 * config/arm/arm.md (casesi): Use the gen_int_mode() function
19209 to subtract lower bound instead of GEN_INT().
19210
2be478a2
JW
192112011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
19212
19213 PR other/48179
19214 PR other/48221
19215 PR other/48234
19216 * doc/extend.texi (Alignment): Move section to match order in TOC.
19217 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19218 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19219
0c617be4
JL
192202011-03-23 Jeff Law <law@redhat.com>
19221
19222 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19223 before removing the edge.
19224
19225 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19226 it may have been freed by redirect_branch_edge or
19227 redirect_edge_succ_nodup.
19228
58da96fe
RG
192292011-03-23 Richard Guenther <rguenther@suse.de>
19230
c78dd519 19231 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
19232 (check_va_list_escapes): Likewise.
19233 (check_all_va_list_escapes): Likewise.
19234
b8beb4d1
RG
192352011-03-23 Richard Guenther <rguenther@suse.de>
19236
19237 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19238 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19239 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19240 (alias.o): Likewise.
19241 (ipa-type-escape.o): Remove.
19242 (ipa-struct-reorg.o): Likewise.
19243 (GTFILES): Remove ipa-struct-reorg.c.
19244 * alias.c: Do not include ipa-type-escape.h.
19245 * tree-ssa-alias.c: Likewise.
19246 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19247 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19248 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19249 and ipa-type-escape passes.
19250 * tree-pass.h (pass_ipa_type_escape): Remove.
19251 (pass_ipa_struct_reorg): Likewise.
19252 * ipa-struct-reorg.h: Remove.
19253 * ipa-struct-reorg.c: Likewise.
19254 * ipa-type-escape.h: Likewise.
19255 * ipa-type-escape.c: Likewise.
19256 * doc/invoke.texi (-fipa-struct-reorg): Remove.
19257 (--param struct-reorg-cold-struct-ratio): Likewise.
19258 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19259 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19260 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19261
f137aa63
AK
192622011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19263
19264 * config/s390/2084.md: Enable all insn reservations also for z9_ec
19265 cpu attribute value.
19266 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19267 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19268 * config/s390/s390.c (processor_flags_table): New constant array.
19269 (s390_handle_arch_option): Remove.
19270 (s390_handle_option): Remove s390_handle_arch_option invocations
19271 and OPT_mwarn_framesize_ handling.
19272 (s390_option_override): Remove s390_handle_arch_option invocation.
19273 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19274 warnings.
19275 * config/s390/s390.md (cpu attribute): Add z9_ec value.
19276 * config/s390/s390.opt (s390_tune, s390_arch)
19277 (march=): Replace s390_arch_option enum and values with
19278 processor_type. Set variable name to s390_arch. Set
19279 initialization value.
19280 (mtune=): Replace s390_arch_option with processor_type. Set
19281 variable name to s390_tune. Set initialization value.
19282
bf90208f
JB
192832011-03-23 Julian Brown <julian@codesourcery.com>
19284
19285 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19286 accesses which are not naturally aligned.
19287
3460fdf3
RS
192882011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19289
19290 PR target/47553
19291 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19292
a5c7d693
RS
192932011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
19294
19295 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19296 parameter from "int" to "enum insn_code".
19297 (expand_operand_type): New enum.
19298 (expand_operand): New structure.
19299 (create_expand_operand): New function.
19300 (create_fixed_operand, create_output_operand): Likewise
19301 (create_input_operand, create_convert_operand_to): Likewise.
19302 (create_convert_operand_from, create_address_operand): Likewise.
19303 (create_integer_operand): Likewise.
19304 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19305 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19306 (expand_insn, expand_jump_insn): Likewise.
19307 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19308 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19309 (expand_movstr, expand_builtin___clear_cache): Likewise.
19310 (expand_builtin_lock_release): Likewise.
19311 * explow.c (allocate_dynamic_stack_space): Likewise.
19312 (probe_stack_range): Likewise. Allow check_stack to FAIL,
19313 and use the default handling in that case.
19314 * expmed.c (check_predicate_volatile_ok): Delete.
19315 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19316 (emit_cstore): Likewise.
19317 * expr.c (emit_block_move_via_movmem): Likewise.
19318 (set_storage_via_setmem, expand_assignment): Likewise.
19319 (emit_storent_insn, try_casesi): Likewise.
19320 (emit_single_push_insn): Likewise. Allow the expansion to fail.
19321 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19322 (expand_vec_shift_expr, expand_binop_directly): Likewise.
19323 (expand_twoval_unop, expand_twoval_binop): Likewise.
19324 (expand_unop_direct, emit_indirect_jump): Likewise.
19325 (emit_conditional_move, vector_compare_rtx): Likewise.
19326 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19327 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19328 (expand_sync_lock_test_and_set): Likewise.
19329 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
19330 (emit_unop_insn): Likewise.
19331 (expand_copysign_absneg): Change icode to an insn_code.
19332 (create_convert_operand_from_type): New function.
19333 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19334 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19335 (expand_insn, expand_jump_insn): Likewise.
19336 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19337 than const_int_operand for operand 2.
19338
78fadbab
AK
193392011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19340
19341 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19342 if possible.
19343
5f02387d
NF
193442011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19345
19346 * emit-rtl.c (emit_pattern_before_noloc): New function.
19347 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19348 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19349 (emit_pattern_after_noloc): New function.
19350 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19351 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19352
fdf3e18a
NF
193532011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19354
19355 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19356 (__ffsDI2): Likewise.
19357
42d085c1
RH
193582011-03-22 Richard Henderson <rth@redhat.com>
19359
19360 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19361 of !TARGET_ABI_OPEN_VMS.
19362 (alpha_trampoline_init, alpha_start_function): Likewise.
19363 (alpha_expand_epilogue, alpha_file_start): Likewise.
19364 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19365 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19366 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19367 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19368 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19369
cabbe12a
JM
193702011-03-22 Joseph Myers <joseph@codesourcery.com>
19371
19372 * config/s390/s390-opts.h: New.
19373 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19374 s390_arch_flags, s390_warn_framesize, s390_stack_size,
19375 s390_stack_guard): Remove.
19376 (s390_handle_arch_option): Return void. Take enum
19377 s390_arch_option value instead of string and searching array.
19378 (s390_handle_option): Don't assert that global structures are in
19379 use. Access variables via opts pointer. Use error_at. Don't use
19380 sscanf for -mstack-guard= or -mstack-size=. Update call to
19381 s390_handle_arch_option.
19382 (s390_option_override): Update call to s390_handle_arch_option.
19383 (s390_emit_prologue): Use %d format for s390_stack_size in
19384 diagnostic. Use %wd for HOST_WIDE_INT.
19385 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19386 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19387 * config/s390/s390.opt (config/s390/s390-opts.h): New
19388 HeaderInclude entry.
19389 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19390 s390_arch_flags, s390_warn_framesize): New Variable entries.
19391 (s390_arch_option): New Enum and EnumValue entries.
19392 (march=): Use Enum instead of Var.
19393 (mstack-guard=, mstack-size=): Use UInteger and Var.
19394 (mtune=): Use Enum.
19395
05b12036
JM
193962011-03-22 Joseph Myers <joseph@codesourcery.com>
19397
19398 * config/score/score.c (score_handle_option): Don't assert that
19399 global structures are in use. Access target_flags via opts
19400 pointer. Use value of -march= option to determine target_flags
19401 settings.
19402 * config/score/score.opt (march=): Use Enum.
19403 (score_arch): New Enum and EnumValue entries.
19404
dd51e35a
JM
194052011-03-22 Joseph Myers <joseph@codesourcery.com>
19406
19407 * config/mep/mep.c (option_mtiny_specified): Remove.
19408 (mep_option_override): Move register handling for -mivc2 from
19409 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
19410 instead of option_mtiny_specified.
19411 (mep_handle_option): Access target_flags via opts pointer. Don't
19412 assert that global structures are in use. Defer part of -mivc2
19413 handling and move it to mep_option_override.
19414 * config/mep/mep.opt (IVC2): New Mask entry.
19415 (mivc2): Use Var and Defer instead of Mask.
19416
4a8d3d91
JM
194172011-03-22 Joseph Myers <joseph@codesourcery.com>
19418
19419 * config/v850/v850-opts.h: New.
19420 * config/v850/v850.c (small_memory): Replace with
19421 small_memory_physical_max array. Make that array static const.
19422 (v850_handle_memory_option): Take integer value of argument. Take
19423 gcc_options pointer, option text and location. Return void.
19424 Update for changes to small memory structures.
19425 (v850_handle_option): Access target_flags via opts pointer. Don't
19426 assert that global structures are in use. Update calls to
19427 v850_handle_memory_option.
c78dd519
UB
19428 (v850_encode_data_area): Update references to small memory settings.
19429 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
19430 (enum small_memory_type): Move to v850-opts.h.
19431 * config/v850/v850.opt (config/v850/v850-opts.h): New
19432 HeaderInclude entry.
19433 (small_memory_max): New Variable entry.
19434 (msda): Replace by pair of options msda= and msda-. Use UInteger.
19435 (mtda, mzda): Likewise.
19436
117fdbfa
JM
194372011-03-22 Joseph Myers <joseph@codesourcery.com>
19438
19439 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19440 pointer. Don't assert that global structures are in use.
19441
d715091c
JM
194422011-03-22 Joseph Myers <joseph@codesourcery.com>
19443
19444 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19445 via opts pointer. Don't assert that global structures are in use.
19446
1bb721dc
JM
194472011-03-22 Joseph Myers <joseph@codesourcery.com>
19448
19449 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19450 (munix=93): Use Var.
19451 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19452 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19453 * config/pa/pa-opts.h: New.
19454 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19455 (pa_handle_option): Don't assert that global structures are in
19456 use. Access target_flags via opts pointer. Don't handle
19457 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19458 OPT_munix_98 here.
19459 (pa_option_override): Handle deferred OPT_mfixed_range_.
19460
cd8d8754
JM
194612011-03-22 Joseph Myers <joseph@codesourcery.com>
19462
19463 * config/mn10300/mn10300-opts.h: New.
19464 * config/mn10300/mn10300.c (mn10300_processor,
19465 mn10300_tune_string): Remove.
19466 (mn10300_handle_option): Don't assert that global structures are
19467 in use. Access mn10300_processor via opts pointer. Don't handle
19468 OPT_mtune_ here.
19469 * config/mn10300/mn10300.h (enum processor_type): Move to
19470 mn10300-opts.h.
19471 (mn10300_processor): Remove.
19472 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19473 HeaderInclude entry.
19474 (mn10300_processor): New Variable entry.
19475 (mtune=): Use Var.
19476
24e6e6b1
JM
194772011-03-22 Joseph Myers <joseph@codesourcery.com>
19478
19479 * config/microblaze/microblaze.c: Don't include opts.h.
19480 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19481 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19482 (mno-clearbss): Use Var and Warn.
19483
8a784afb
JM
194842011-03-22 Joseph Myers <joseph@codesourcery.com>
19485
19486 * config/m32r/m32r-opts.h: New.
19487 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19488 (m32r_handle_option): Don't assert that global structures are in
19489 use. Access target_flags and m32r_cache_flush_func via opts
19490 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
19491 OPT_mno_flush_trap here.
19492 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19493 include of m32r-opts.h.
19494 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19495 HeaderInclude entry.
19496 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19497 (mmodel=): Use Enum and Var.
19498 (m32r_model): New Enum and EnumValue entries.
19499 (mno-flush-trap): Use Var.
19500 (msdata=): Use Enum and Var.
19501 (m32r_sdata): New Enum and EnumValue entries.
19502
bbfc9a8c
JM
195032011-03-22 Joseph Myers <joseph@codesourcery.com>
19504
19505 * config/m32c/m32c.c: Don't include opts.h.
19506 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19507 m32c_handle_option): Remove.
19508 (m32c_option_override): Check global_options_set.x_target_memregs
19509 instead of target_memregs_set.
19510 * config/m32c/m32c.h (target_memregs): Remove.
19511 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19512 variable.
19513
e24b8335
JM
195142011-03-22 Joseph Myers <joseph@codesourcery.com>
19515
19516 * config/iq2000/iq2000-opts.h: New.
19517 * config/iq2000/iq2000.c: Don't include opts.h.
19518 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 19519 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
19520 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19521 HeaderInclude entry.
19522 (iq2000_tune): New Variable entry.
19523 (march=): Add comment. Use Enum.
19524 (iq2000_arch): New Enum and EnumValue entries.
19525 (mcpu=): Use Enum and Var.
19526 (iq2000_tune): New Enum and EnumValue entries.
19527
e6cc0c98
JM
195282011-03-22 Joseph Myers <joseph@codesourcery.com>
19529
19530 * config/ia64/ia64-opts.h: New.
19531 * config/ia64/ia64.c (ia64_tune): Remove.
19532 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19533 here. Use error_at.
19534 (ia64_option_override): Handle deferred OPT_mfixed_range_.
19535 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19536 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19537 HeaderInclude entry.
19538 (ia64_tune): New Variable entry.
19539 (mfixed-range=): Use Defer and Var.
19540 (mtune=): Use Enum and Var.
19541 (ia64_tune): New Enum and EnumValue entries.
19542
db25893c
JM
195432011-03-22 Joseph Myers <joseph@codesourcery.com>
19544
19545 * config/frv/frv-opts.h: New.
19546 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19547 frv-opts.h.
19548 (frv_cpu_type): Remove.
19549 * config/frv/frv.c: Don't include opts.h.
19550 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 19551 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
19552 (frv_cpu_type): New Variable entry.
19553 (frv_cpu): New Enum and EnumValue entries.
19554
6c223f5d
JM
195552011-03-22 Joseph Myers <joseph@codesourcery.com>
19556
19557 * config/cris/cris.c (cris_handle_option): Access target_flags via
19558 opts pointer. Don't assert that global structures are in use.
19559 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19560 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19561
bbd399cf
JM
195622011-03-22 Joseph Myers <joseph@codesourcery.com>
19563
19564 * config/bfin/bfin-opts.h: New.
19565 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19566 bfin_si_revision, bfin_workarounds): Remove.
19567 (bfin_cpus): Make static const.
19568 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19569 not bfin_lib_id_given.
19570 (bfin_handle_option): Don't set bfin_lib_id_given. Access
19571 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 19572 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
19573 * config/bfin/bfin.h: Include bfin-opts.h.
19574 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19575 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19576 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19577 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19578 entries.
19579
5e1b4d5a
JM
195802011-03-22 Joseph Myers <joseph@codesourcery.com>
19581
19582 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19583 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19584 or -msoft-float here.
19585 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19586 -msoft-float and -mhard-float.
c78dd519 19587 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
19588 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19589 msoft-float.
19590 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19591 -msoft-float.
19592 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19593 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19594 not mhard-float.
19595 (LIBGCC_SPEC): Don't handle -msoft-float.
19596 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19597 -mhard-float.
19598 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19599 msoft-float.
19600 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19601 -mfloat-abi=*, not -msoft-float and -mhard-float.
19602 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19603 -msoft-float.
19604 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19605 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19606 mhard-float and msoft-float.
19607 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19608 mfloat-abi=soft in comments, not mhard-float and msoft-float.
19609 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19610 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19611 mhard-float.
19612 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19613 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19614 msoft-float.
19615 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19616 not mhard-float.
19617 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19618 not msoft-float.
19619
800d1de1
RH
196202011-03-22 Richard Henderson <rth@redhat.com>
19621
19622 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19623 TARGET_ABI_WINDOWS_NT.
19624 (alpha_output_function_end_prologue): Likewise.
19625 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19626 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19627 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19628 (trap, *movsi_nt_vms): Likewise.
19629 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19630 (*tablejump_osf_nt_internal): Remove.
19631 * config/alpha/predicates.md (input_operand): Only test Pmode.
19632
c59ddd2b
JM
196332011-03-22 Joseph Myers <joseph@codesourcery.com>
19634
19635 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19636 via opts pointer. Use error_at. Don't assert that global
19637 structures are in use.
19638
1333f97f
JM
196392011-03-22 Joseph Myers <joseph@codesourcery.com>
19640
19641 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19642 (ix86_handle_option): Access ix86_isa_flags and
19643 ix86_isa_flags_explicit via opts pointer. Don't assert that
19644 global structures are in use.
19645 (ix86_function_specific_save, ix86_function_specific_restore):
19646 Update ix86_isa_flags_explicit field name.
c78dd519 19647 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
19648 (ix86_isa_flags_explicit): Rename TargetSave entry to
19649 x_ix86_isa_flags_explicit.
19650
75db85d8
RH
196512011-03-22 Richard Henderson <rth@redhat.com>
19652
19653 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19654 (alpha_option_override, direct_return): Likewise.
19655 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19656 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19657 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19658 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19659 (alpha_expand_epilogue, alpha_end_function): Likewise.
19660 (alpha_init_libfuncs): Likewise.
19661 (struct machine_function): Remove unicosmk members.
19662 (print_operand) ['t']: Remove.
19663 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19664 unicosmk_output_module_name, unicosmk_output_common,
19665 current_section_align, unicosmk_output_text_section_asm_op,
19666 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19667 unicosmk_section_type_flags, unicosmk_unique_section,
19668 unicosmk_asm_named_section, unicosmk_insert_attributes,
19669 unicosmk_output_align, unicosmk_defer_case_vector,
19670 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19671 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19672 unicosmk_output_ssib, unicosmk_add_call_info_word,
19673 unicosmk_extern_head, unicosmk_output_default_externs,
19674 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19675 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19676 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19677 * config/alpha/alpha-protos.h: Update.
19678 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19679 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19680 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
19681 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
19682 (*mulsi_se, mulvsi3): Likewise.
19683 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
19684 (*divmodsi_internal, call, call_value, realign): Likewise.
19685 (moddi3, umoddi3): Likewise; remove duplicate expander.
19686 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
19687 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
19688 (*movdi_nofix): Remove r/U alternative.
19689 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
19690 * config/alpha/constraints.md ("U"): Remove.
19691 * config/alpha/predicates.md (call_operand"): Don't test
19692 TARGET_ABI_UNICOSMK.
19693
96e45421
JM
196942011-03-22 Joseph Myers <joseph@codesourcery.com>
19695
19696 * target.def (handle_option): Take gcc_options and
19697 cl_decoded_option pointers and location_t.
19698 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
19699 * doc/tm.texi: Regenerate.
19700 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
19701 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
19702 * lto-opts.c (lto_reissue_options): Generate option structure for
19703 targetm.handle_option call.
19704 * opts.c (target_handle_option): Update call to
19705 targetm.handle_option. Remove assertions about values now passed
19706 down to hook.
19707 * targhooks.c (default_target_handle_option): New.
19708 * targhooks.h (default_target_handle_option): Declare.
19709 * config/alpha/alpha.c: Include opts.h.
19710 (alpha_handle_option): Update to new hook interface.
19711 * config/arm/arm.c: Include opts.h.
19712 (arm_handle_option): Update to new hook interface.
19713 * config/arm/t-arm (arm.o): Update dependencies.
19714 * config/bfin/bfin.c: Include opts.h.
19715 (bfin_handle_option): Update to new hook interface.
19716 * config/cris/cris.c: Include opts.h.
19717 (cris_handle_option): Update to new hook interface.
19718 * config/frv/frv.c: Include opts.h.
19719 (frv_handle_option): Update to new hook interface.
19720 * config/i386/i386.c: Include opts.h.
19721 (ix86_handle_option): Update to new hook interface.
19722 (ix86_valid_target_attribute_inner_p): Generate option structure
19723 for call to ix86_handle_option.
19724 * config/i386/t-i386 (i386.o): Update dependencies.
19725 * config/ia64/ia64.c: Include opts.h.
19726 (ia64_handle_option): Update to new hook interface.
19727 * config/ia64/t-ia64 (ia64.o): Update dependencies.
19728 * config/iq2000/iq2000.c: Include opts.h.
19729 (iq2000_handle_option): Update to new hook interface.
19730 * config/m32c/m32c.c: Include opts.h.
19731 (m32c_handle_option): Update to new hook interface.
19732 * config/m32r/m32r.c: Include opts.h.
19733 (m32r_handle_option): Update to new hook interface.
19734 * config/m68k/m68k.c: Include opts.h.
19735 (m68k_handle_option): Update to new hook interface.
19736 * config/mep/mep.c: Include opts.h.
19737 (mep_handle_option): Update to new hook interface.
19738 * config/microblaze/microblaze.c: Include opts.h.
19739 (microblaze_handle_option): Update to new hook interface.
19740 * config/mips/mips.c: Include opts.h.
19741 (mips_handle_option): Update to new hook interface.
19742 * config/mn10300/mn10300.c: Include opts.h.
19743 (mn10300_handle_option): Update to new hook interface.
19744 * config/pa/pa.c: Include opts.h.
19745 (pa_handle_option): Update to new hook interface.
19746 * config/pdp11/pdp11.c: Include opts.h.
19747 (pdp11_handle_option): Update to new hook interface.
19748 * config/rs6000/rs6000.c: Include opts.h.
19749 (rs6000_handle_option): Update to new hook interface.
19750 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
19751 * config/rx/rx.c: Include opts.h.
19752 (rx_handle_option): Update to new hook interface.
19753 * config/s390/s390.c: Include opts.h.
19754 (s390_handle_option): Update to new hook interface.
19755 * config/score/score.c: Include opts.h.
19756 (score_handle_option): Update to new hook interface.
19757 * config/sh/sh.c: Include opts.h.
19758 (sh_handle_option): Update to new hook interface.
19759 * config/sparc/sparc.c: Include opts.h.
19760 (sparc_handle_option): Update to new hook interface.
19761 * config/v850/v850.c: Include opts.h.
19762 (v850_handle_option): Update to new hook interface.
19763
66017846
JM
197642011-03-22 Joseph Myers <joseph@codesourcery.com>
19765
19766 * gcc.c (driver_unknown_option_callback): Only permit and save
19767 unknown -Wno- options.
19768 (driver_wrong_lang_callback): Save options directly instead of via
19769 driver_unknown_option_callback.
19770
e8b97ccd
EB
197712011-03-22 Eric Botcazou <ebotcazou@adacore.com>
19772
19773 * combine.c (simplify_set): Try harder to find the best CC mode when
19774 simplifying a nested COMPARE on the RHS.
19775
ebb9f8b0
JM
197762011-03-22 Joseph Myers <joseph@codesourcery.com>
19777
19778 * config/alpha/gnu.h: Remove.
19779 * config/arc: Remove directory.
19780 * config/arm/netbsd.h: Remove.
19781 * config/arm/t-pe: Remove.
19782 * config/crx: Remove directory.
19783 * config/i386/netbsd.h: Remove.
19784 * config/m68hc11: Remove directory.
19785 * config/m68k/uclinux-oldabi.h: Remove.
19786 * config/mcore/mcore-pe.h: Remove.
19787 * config/mcore/t-mcore-pe: Remove.
19788 * config/netbsd-aout.h: Remove.
19789 * config/rs6000/gnu.h: Remove.
19790 * config/sh/sh-symbian.h: Remove.
19791 * config/sh/symbian-base.c: Remove.
19792 * config/sh/symbian-c.c: Remove.
19793 * config/sh/symbian-cxx.c: Remove.
19794 * config/sh/symbian-post.h: Remove.
19795 * config/sh/symbian-pre.h: Remove.
19796 * config/sh/t-symbian: Remove.
19797 * config/svr3.h: Remove.
19798 * config/vax/netbsd.h: Remove.
19799 * config.build: Don't handle i[34567]86-*-pe.
19800 * config.gcc: Remove handling of deprecations for most deprecated
19801 targets.
19802 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
19803 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
19804 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
19805 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
19806 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
19807 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
19808 Remove cases.
19809 * config.host: Don't handle i[34567]86-*-pe.
19810 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
19811 (ASM_SPEC32): Don't handle -mcall-gnu.
19812 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
19813 -mcall-gnu.
19814 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
19815 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
19816 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
19817 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
19818 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
19819 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
19820 conditional on SYMBIAN.
19821 * configure.ac: Don't handle powerpc*-*-gnu*.
19822 * configure: Regenerate.
19823 * doc/extend.texi (interrupt attribute): Don't mention CRX.
19824 * doc/install-old.texi (m6811, m6812): Don't mention.
19825 * doc/install.texi (arc-*-elf*): Don't document multilib option.
19826 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
19827 (m68k-uclinuxoldabi): Don't mention.
19828 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
19829 Remove.
19830 (-mcall-gnu): Remove.
19831 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
19832 families): Remove constraint documentation.
19833
999a7d80
MS
198342011-03-22 Marius Strobl <marius@FreeBSD.org>
19835
19836 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
19837 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
19838 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
19839
45540bcf
MM
198402011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
19841
19842 PR target/48226
19843 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
19844 vector when peeking at the next token for vector, don't expand the
19845 keywords.
19846
980a0ff4
GJL
198472011-03-21 Georg-Johann Lay <avr@gjlay.de>
19848
19849 * config/avr/avr-protos.h (expand_epilogue): Change prototype
19850 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
19851 * config/avr/avr.c (init_cumulative_args)
19852 (avr_function_arg_advance): Use it.
19853 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
19854 sibcall epilogues.
19855 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
19856 (avr_function_ok_for_sibcall): ...this new function.
19857 (avr_lookup_function_attribute1): New static Function.
19858 (avr_naked_function_p, interrupt_function_p)
19859 (signal_function_p, avr_OS_task_function_p)
19860 (avr_OS_main_function_p): Use it.
19861 * config/avr/avr.md ("sibcall", "sibcall_value")
19862 ("sibcall_epilogue"): New expander.
19863 ("*call_insn", "*call_value_insn"): New insn.
19864 ("call_insn", "call_value_insn"): Remove
19865 ("call", "call_value", "epilogue"): Change expander to handle
19866 sibling calls.
19867
49168734
NC
198682011-03-21 Nick Clifton <nickc@redhat.com>
19869
19870 * doc/invoke.texi (Overall Options): Move closing brace to end of
19871 options list.
19872 (Optimization Options): Add missing @gol.
19873 (Directory Options): Likewise.
19874 (i386 and x86-64 Options): Likewise.
19875 (RS6000 and PowerPC Options): Likewise.
19876 (i386 and x86-64 Windows Options): Likewise.
19877 (V850 Options): Add text missing from descriptions.
19878
bdfe906f
RH
198792011-03-22 Richard Henderson <rth@redhat.com>
19880
19881 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
19882 (avr_incoming_return_addr_rtx): New.
19883 (emit_push_byte): New.
19884 (expand_prologue): Use it. Remove incorrect dwarf annotation for
19885 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
19886 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
19887 (emit_pop_byte): New.
19888 (expand_epilogue): Use it. Pop frame pointer by bytes.
19889 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
19890 (INCOMING_RETURN_ADDR_RTX): New.
19891 (INCOMING_FRAME_SP_OFFSET): New.
19892 (ARG_POINTER_CFA_OFFSET): New.
19893 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
19894 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
19895 (pophi): Remove.
19896
d090a5aa
RH
19897 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
19898
fdf3e18a
NF
198992011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19900
19901 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19902 (FUNCTION_ARG_ADVANCE): Likewise.
19903 * tm.texi.in: Change references to them to hook references.
19904 * tm.texi: Regenerate.
19905 * targhooks.c (default_function_arg): Eliminate check for target
19906 macro.
19907 (default_function_incoming_arg): Likewise.
19908 (default_function_arg_advance): Likewise.
c78dd519 19909 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
19910 (function_arg_advance): Likewise.
19911 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19912
009d3fcf
NF
199132011-03-22 Nathan Froyd <froydnj@codesourcery.com>
19914
19915 * tree.c (build_call_1): New function.
19916 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
19917
7bec30e1
RG
199182011-03-22 Richard Guenther <rguenther@suse.de>
19919
19920 PR tree-optimization/48228
19921 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
19922 for single-arg PHIs.
19923
0b7e851b
AB
199242011-03-22 Andrey Belevantsev <abel@ispras.ru>
19925
19926 PR rtl-optimization/48143
19927 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
19928 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
19929 sse2_cvtps2pd): Likewise.
19930
d89afca5
AK
199312011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19932
19933 * recog.c (canonicalize_change_group): Use validate_unshare_change.
19934
f471fe72
RG
199352011-03-22 Richard Guenther <rguenther@suse.de>
19936
19937 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
19938 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
19939 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
19940 and REALIGN_LOAD_EXPR.
19941 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
19942 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
19943 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
19944 DOT_PROD_EXPR case ...
19945 (expand_expr_real_2): ... here.
19946 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
19947 and REALIGN_LOAD_EXPR.
19948 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
19949 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
19950 (vect_create_epilog_for_reduction): Likewise.
19951 (vectorizable_reduction): Likewise.
19952 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
19953 * tree-vect-stmts.c (vectorizable_load): Likewise.
19954
f2f81d57
EB
199552011-03-22 Eric Botcazou <ebotcazou@adacore.com>
19956
19957 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
19958
ab081dd6
AK
199592011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19960
19961 * config/s390/s390.c (s390_delegitimize_address): Fix offset
19962 handling for PLTOFF/GOTOFF.
19963
6fd5332b
NC
199642011-03-22 Nick Clifton <nickc@redhat.com>
19965
19966 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
19967 trailing backslash from the end of the macro definition.
19968
01841ac0
AK
199692011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19970
19971 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
19972 and PLT unspecs.
19973
2ef6ce06
RS
199742011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
19975
19976 * expr.h (prepare_operand): Move to...
19977 * optabs.h (prepare_operand): ...here and change the insn code
19978 parameter from "int" to "enum insn_code".
19979 (insn_operand_matches): Declare.
19980 * expr.c (init_expr_target): Use insn_operand_matches.
19981 (compress_float_constant): Likewise.
19982 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
19983 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
19984 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
19985 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
19986 Likewise.
2ef6ce06
RS
19987 (gen_cond_trap): Likewise.
19988 (prepare_operand): Likewise. Change icode to an insn_code.
19989 (insn_operand_matches): New function.
19990 * reload.c (find_reloads_address_1): Use insn_operand_matches.
19991 * reload1.c (gen_reload): Likewise.
19992 * targhooks.c (default_secondary_reload): Likewise.
19993
9e43ad68
UB
199942011-03-21 Uros Bizjak <ubizjak@gmail.com>
19995
9a96da32
UB
19996 * config/alpha/alpha.md (unspec): New define_c_enum.
19997 (unspecv): Ditto.
19998
199992011-03-21 Uros Bizjak <ubizjak@gmail.com>
20000
20001 PR debug/48214
9e43ad68
UB
20002 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
20003 between a call and its CALL_ARG_LOCATION note.
20004
31408f60
EB
200052011-03-21 Eric Botcazou <ebotcazou@adacore.com>
20006
20007 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
20008
200092011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
20010
20011 PR c/42544
20012 PR c/48197
20013 * c-common.c (shorten_compare): If primopN is first sign-extended
20014 to opN and then zero-extended to result type, set primopN to opN.
20015
9dfd55f5
DJ
200162011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
20017
20018 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
20019 for barrier handlers.
20020
f3c33d9d
MM
200212011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
20022
20023 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
20024 UNSPEC constants to be in the unspec enumeration, and redefine
20025 all UNSPECV constants to be in the unspecv enumeration, so that
20026 dumps print which unspec/unspec_volatile this is.
20027 * config/rs6000/vector.md (UNSPEC_*): Ditto.
20028 * config/rs6000/paired.md (UNSPEC_*): Ditto.
20029 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
20030 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
20031 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
20032
20033 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
20034 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
20035 UNSPECV_LWSYNC, since these are used as unspec_volatile.
20036 * config/rs6000/sync.md (isync, lwsync): Ditto.
20037
ac43f774
RG
200382011-03-21 Richard Guenther <rguenther@suse.de>
20039
20040 * params.def (lto-min-partition): Fix typo.
20041
411cdbd8
RG
200422011-03-21 Richard Guenther <rguenther@suse.de>
20043
20044 PR c/47939
20045 * c-decl.c (grokdeclarator): Drop to the main variant only
20046 for array types. Drop flag_gen_aux_info check.
20047
1cd9e416
RG
200482011-03-21 Richard Guenther <rguenther@suse.de>
20049
20050 PR translation/47911
20051 * params.def (lto-partitions): Fix typo.
20052 (lto-min-partition): Fix wording.
20053
ada5ad67
AT
200542011-03-21 Andreas Tobler <andreast@fgznet.ch>
20055
20056 * config/rs6000/t-freebsd: Remove duplication from file.
20057
f9613c9a
RG
200582011-03-21 Richard Guenther <rguenther@suse.de>
20059
20060 PR middle-end/47661
20061 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20062
9bfbc1eb
RG
200632011-03-21 Richard Guenther <rguenther@suse.de>
20064
20065 PR lto/48210
20066 * params.def (lto-partitions): Require at least 1 partition.
20067
a2268084
RO
200682011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20069
20070 * gthr-solaris.h: Remove.
20071 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20072 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20073 (LIB_SPEC): Likewise.
20074 * config/sol2.opt (threads): Remove.
9e43ad68 20075 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
20076 (sparc*-*-solaris2*): Likewise.
20077 * configure.ac (enable_threads): Enable solaris support.
20078 * configure: Regenerate.
9e43ad68 20079 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
20080 * doc/install.texi (Configuration, --enable-threads=lib): Remove
20081 solaris.
20082
c43d9a1b
RO
200832011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20084
20085 * config.gcc: Obsolete *-*-solaris2.8*.
20086 * doc/install.texi (Specific, *-*-solaris2*): Document it.
20087
084239f4
RO
200882011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20089
20090 PR bootstrap/48135
20091 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20092 reference. Solaris 8 perl works.
20093
64cadbe7
RO
200942011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20095
20096 PR bootstrap/48135
20097 * doc/install.texi (Prerequisites): Move jar etc. up.
20098 Explain support library version requirements.
20099
eb975109
RO
201002011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20101
20102 PR bootstrap/48135
20103 * doc/install.texi (Prerequisites): Move Perl to build
20104 requirements. Always necessary on Solaris 2 with Sun ld.
20105
8a509ffd
RO
201062011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20107
20108 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20109 binutils 2.21.
20110 (Specific, i?86-*-solaris2.[89]): Likewise.
20111 (Specific, i?86-*-solaris2.10): Likewise.
20112 (Specific, mips-sgi-irix6): Likewise.
20113 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20114 Update for binutils 2.21.
20115
8fbc58a1
RO
201162011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20117
20118 * configure.ac (gcc_cv_lto_plugin): Fix typo.
20119 Allow -fuse-linker-plugin for non-default plugin linker.
20120 * configure: Regenerate.
20121
7e84ad0b
NP
201222011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
20123
20124 PR bootstrap/48167
20125 * gengtype.c (files_rules): Added rule for cp/parser.h.
20126
2f36e14b
JJ
201272011-03-21 Jakub Jelinek <jakub@redhat.com>
20128
20129 PR target/48213
20130 * config/s390/s390.c (s390_delegitimize_address): Don't call
20131 lowpart_subreg if orig_x has BLKmode.
20132
62d784f7
KT
201332011-03-21 Kai Tietz <ktietz@redhat.com>
20134
20135 PR target/12171
9e43ad68
UB
20136 * doc/plugins.texi: Adjust documentation for plugin register_callback.
20137 * tree.h (attribute_spec): Add new member affects_type_identity.
20138 * attribs.c (empty_attribute_table): Adjust attribute_spec
20139 initializers.
62d784f7
KT
20140 * config/alpha/alpha.c: Likewise.
20141 * config/arc/arc.c: Likewise.
20142 * config/arm/arm.c: Likewise.
20143 * config/avr/avr.c: Likewise.
20144 * config/bfin/bfin.c: Likewise.
20145 * config/crx/crx.c: Likewise.
20146 * config/darwin.h: Likewise.
20147 * config/h8300/h8300.c: Likewise.
20148 * config/i386/cygming.h: Likewise.
20149 * config/i386/i386.c: Likewise.
20150 * config/ia64/ia64.c: Likewise.
20151 * config/m32c/m32c.c: Likewise.
20152 * config/m32r/m32r.c: Likewise.
20153 * config/m68hc11/m68hc11.c: Likewise.
20154 * config/m68k/m68k.c: Likewise.
20155 * config/mcore/mcore.c: Likewise.
20156 * config/mep/mep.c: Likewise.
20157 * config/microblaze/microblaze.c: Likewise.
20158 * config/mips/mips.c: Likewise.
20159 * config/rs6000/rs6000.c: Likewise.
20160 * config/rx/rx.c: Likewise.
20161 * config/sh/sh.c: Likewise.
20162 * config/sol2.h: Likewise.
20163 * config/sparc/sparc.c: Likewise.
20164 * config/spu/spu.c: Likewise.
20165 * config/stormy16/stormy16.c: Likewise.
20166 * config/v850/v850.c: Likewise.
20167
54833ec0
CLT
201682011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
20169
20170 * simplify-rtx.c (simplify_binary_operation_1): Handle
20171 (xor (and A B) C) case when B and C are both constants.
20172
14a41392
MX
201732011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
20174
20175 * tree-dfa.c (add_referenced_var): Fix typo in comment.
20176
806c3492
EB
201772011-03-20 Eric Botcazou <ebotcazou@adacore.com>
20178
20179 PR bootstrap/48168
20180 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20181
65e0a0f3
JJ
201822011-03-20 Jakub Jelinek <jakub@redhat.com>
20183
20184 PR rtl-optimization/48156
20185 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20186 assume df and df_lr are not NULL.
20187
b6a75dda
RR
201882011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20189
20190 PR debug/48023
20191 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20192 between a call and its CALL_ARG_LOCATION note.
20193
5969b52d
KK
201942011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
20195
20196 PR debug/48178
20197 * config/sh/sh.c (find_barrier): Don't emit a constant pool
20198 between a call and its corresponding CALL_ARG_LOCATION note.
20199
f773c2bd
AS
202002011-03-19 Anatoly Sokolov <aesok@post.ru>
20201
20202 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20203 instead of loop. Use HARD_REGISTER_NUM_P predicate.
20204 * haifa-sched.c (setup_ref_regs): Ditto.
20205 * caller-save.c (add_used_regs_1): Ditto.
20206 * dse.c (look_for_hardregs): Ditto.
20207 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20208 * sched-rgn.c (check_live_1): Ditto.
20209
8bf872f9
JM
202102011-03-18 Joseph Myers <joseph@codesourcery.com>
20211
20212 * c-decl.c (diagnose_mismatched_decls): Give an error for
20213 redefining a typedef with variably modified type.
20214
ff8e2159
JM
202152011-03-18 Joseph Myers <joseph@codesourcery.com>
20216
20217 * c-decl.c (grokfield): Don't allow typedefs for structures or
20218 unions with no tag by default.
20219 * doc/extend.texi (Unnamed Fields): Update.
20220
16cc4440
UB
202212011-03-18 Uros Bizjak <ubizjak@gmail.com>
20222
20223 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20224 Rewrite using indirect functions.
20225 (lwp_slwpcb): Ditto.
20226 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20227 (avx_vinsertf128<mode>): Ditto.
20228
e101e12e
AK
202292011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20230
20231 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20232 unspecs.
20233
4627c7fb
AK
202342011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20235
20236 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 20237 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 20238
2d36b47f
MK
202392011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
20240
20241 PR rtl-optimization/48170
20242 * gcse.c (hoist_code): Remove bogus asserts.
20243
2a3d7659
JL
202442011-03-18 Georg-Johann Lay <avr@gjlay.de>
20245
20246 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20247 computation for prologue/epilogue.
20248
34c3ef05
RO
202492011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20250
20251 * Makefile.in (check-consistency): Remove.
20252
81f2b976
JJ
202532011-03-18 Jakub Jelinek <jakub@redhat.com>
20254
20255 PR debug/48176
20256 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20257 arange_table_in_use is 0, but either text_section_used or
20258 cold_text_section_used is true. Don't call it if
20259 !info_section_emitted.
20260
68fd7765
AS
202612011-03-18 Anatoly Sokolov <aesok@post.ru>
20262
20263 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20264 FUNCTION_VALUE_REGNO_P): Remove.
20265 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20266 Remove.
20267 * config/avr/avr.c (avr_ret_register): Make static inline.
20268 (avr_function_value_regno_p): New function.
20269 (avr_libcall_value): Make static. Add 'func' argument.
20270 (avr_function_value): Make static. Rename 'func' argument to
20271 'fn_decl_or_type', forward it to avr_libcall_value. Call
20272 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 20273 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 20274
b4ef8aac
JM
202752011-03-18 Jason Merrill <jason@redhat.com>
20276
20277 PR c++/23372
20278 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20279
09a52fc3
RG
202802011-03-18 Richard Guenther <rguenther@suse.de>
20281
20282 * doc/install.texi (--enable-gold): Remove.
20283 (--with-plugin-ld): Document.
20284 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20285
2a3d7659 202862011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
20287
20288 PR middle-end/47790
20289 * expr.c (optimize_bitfield_assignment_op): Revamp to work
20290 again after expansion changes.
20291
2abbb0fe
CLT
202922011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
20293
20294 * combine.c (try_combine): Do simplification only call of
20295 subst() on i2 even when i1 is present. Update comments.
20296
2efd0aa6
KK
202972011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
20298
20299 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20300 and UNSPEC_PCREL_SYMOFF.
20301
30a49b23
AK
203022011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20303
20304 * config/s390/s390.md: Use define_c_enum for the unspec constant
20305 definitions.
20306
419e1853
JJ
203072011-03-18 Richard Henderson <rth@redhat.com>
20308 Jakub Jelinek <jakub@redhat.com>
20309
20310 PR bootstrap/48161
20311 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20312 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20313
24da2019
AS
203142011-03-17 Anatoly Sokolov <aesok@post.ru>
20315
20316 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20317 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20318 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20319 Change return type to bool.
20320 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20321
a82ff31f
JJ
203222011-03-17 Jakub Jelinek <jakub@redhat.com>
20323
8b29c87a
JJ
20324 PR debug/48163
20325 * var-tracking.c (prepare_call_arguments): If CALL target
20326 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20327 pc instead of looking it up using cselib_lookup and use
20328 Pmode for it if x has VOIDmode.
20329 * dwarf2out.c (gen_subprogram_die): If also both first and
20330 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20331
a82ff31f
JJ
20332 PR debug/48163
20333 * function.c (assign_parms): For data.passed_pointer parms
20334 use MEM of data.entry_parm instead of data.entry_parm itself
20335 as DECL_INCOMING_RTL.
20336 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20337 also when passed and declared mode is the same, DECL_RTL
20338 is a MEM with pseudo as address and DECL_INCOMING_RTL is
20339 a MEM too.
20340
82ce305c
JL
203412011-03-16 Jeff Law <law@redhat.com>
20342
20343 PR rtl-optimization/37273
20344 * ira-costs.c (scan_one_insn): Detect constants living in memory and
20345 handle them like argument loads from stack slots. Do not double
20346 count memory for memory constants and argument loads from stack slots.
20347
fe58e02b
L
203482011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20349
20350 PR debug/48160
20351 * var-tracking.c (prepare_call_arguments): Check SUBREG.
20352
6fc4dbc7
L
203532011-03-17 H.J. Lu <hongjiu.lu@intel.com>
20354
20355 PR target/48171
20356 * config/i386/i386.opt: Add Save to -mavx and -mfma.
20357
db3ed0b3
JJ
203582011-03-17 Jakub Jelinek <jakub@redhat.com>
20359
8054a389
JJ
20360 PR bootstrap/48153
20361 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20362 if dwarf_strict.
20363 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20364 Clear call_arg_locations and call_arg_loc_last always.
20365
db3ed0b3
JJ
20366 PR middle-end/48152
20367 * var-tracking.c (prepare_call_arguments): If argument needs to be
20368 passed by reference, adjust argtype and mode.
20369
1bce4ff3
RG
203702011-03-17 Richard Guenther <rguenther@suse.de>
20371
20372 PR middle-end/48134
20373 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20374 a value make sure to fold the statement.
20375
7c71147d
CLT
203762011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
20377
20378 PR target/43872
20379 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20380 return condition with !cfun->calls_alloca.
20381
0e1ee172
RG
203822011-03-17 Richard Guenther <rguenther@suse.de>
20383
20384 PR bootstrap/48148
20385 * lto-cgraph.c (input_overwrite_node): Clear the abstract
20386 origin for decls in other ltrans units.
20387 (input_varpool_node): Likewise.
20388
f8bce518
RG
203892011-03-17 Richard Guenther <rguenther@suse.de>
20390
20391 PR middle-end/48165
20392 * tree-object-size.c (compute_object_offset): Properly return
20393 the offset operand of MEM_REFs as sizetype.
20394
1b6fa860
JJ
203952011-03-17 Jakub Jelinek <jakub@redhat.com>
20396
dabd47e7
JJ
20397 PR rtl-optimization/48141
20398 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20399 * dse.c: Include params.h.
20400 (active_local_stores_len): New variable.
20401 (add_wild_read, dse_step1): Clear it when setting active_local_stores
20402 to NULL.
20403 (record_store, check_mem_read_rtx): Decrease it when removing
20404 from the chain.
20405 (scan_insn): Likewise. Increase it when adding to chain, if it
20406 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20407 set active_local_stores to NULL before the addition.
20408 * Makefile.in (dse.o): Depend on $(PARAMS_H).
20409
1b6fa860
JJ
20410 PR rtl-optimization/48141
20411 * dse.c (record_store): If no positions are needed in an insn
20412 that cannot be deleted, at least unchain it from active_local_stores.
20413
7b5cb7d6
DS
204142011-03-16 Dodji Seketeli <dodji@redhat.com>
20415
20416 PR debug/47510
20417 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20418 (lookup_type_die_strip_naming_typedef): ... here.
20419 (get_context_die): Use it.
20420 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20421 the anonymous struct named by the naming typedef.
20422
585e9d9d
L
204232011-03-16 H.J. Lu <hongjiu.lu@intel.com>
20424
20425 PR target/48154
20426 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20427 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20428
6261ab0e
JL
204292011-03-16 Jeff Law <law@redhat.com>
20430
20431 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 20432 check for operands of conditional. Allow type to be a pointer.
6261ab0e 20433
0b0081ec
RG
204342011-03-16 Richard Guenther <rguenther@suse.de>
20435
20436 PR tree-optimization/48149
20437 * fold-const.c (fold_binary_loc): Fold
20438 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20439
64a3d647
RG
204402011-03-16 Richard Guenther <rguenther@suse.de>
20441
20442 PR tree-optimization/26134
20443 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20444 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20445 (non_rewritable_mem_ref_base): Handle complex type component
20446 accesses, constrain offsets for vector and complex extracts
20447 more properly.
20448
ef13324e
RG
204492011-03-16 Richard Guenther <rguenther@suse.de>
20450
20451 PR tree-optimization/48146
20452 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20453 operands avoiding the need for renaming.
20454
f0eddb90
RG
204552011-03-16 Richard Guenther <rguenther@suse.de>
20456
20457 * gimple-fold.c (maybe_fold_reference): Open-code relevant
20458 constant folding. Move MEM_REF canonicalization first.
20459 Rely on fold_const_aggregate_ref for initializer folding.
20460 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20461
e42348b8
JJ
204622011-03-16 Jakub Jelinek <jakub@redhat.com>
20463
29f10e71
JJ
20464 PR middle-end/48136
20465 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20466 arg0/arg1 or their arguments are always fold converted to matching
20467 types.
20468
e42348b8
JJ
20469 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20470 to nargs.
20471
55b46574
RO
204722011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20473
20474 PR lto/46944
20475 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20476 Handle in-tree gold.
20477 (ld_vers): Extract binutils version for gold.
20478 (gcc_cv_ld_hidden): Handle gold here.
20479 (gcc_cv_lto_plugin): Determine level of linker plugin support.
20480 * configure: Regenerate.
20481 * config.in: Regenerate.
20482 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20483 -fuse-linker-plugin otherwise.
20484 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
20485 (LINK_COMMAND_SPEC): Use it.
20486 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20487
2b1c5433
JJ
204882011-03-16 Jakub Jelinek <jakub@redhat.com>
20489
c2969d8e
JJ
20490 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20491 * calls.c: Remove debug.h include.
20492 (emit_call_1): Don't call virtual_call_token debug hook.
20493 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20494 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20495 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20496 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20497 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20498 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20499 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20500 dwarf2out_virtual_call): Remove.
20501 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20502 copy_call_info and virtual_call hooks.
20503 (dwarf2out_init): Don't initialize vcall_insn_table,
20504 debug_dcall_section and debug_vcall_section.
20505 (prune_unused_types): Don't mark nodes from dcall_table.
20506 (dwarf2out_finish): Don't output dcall or vcall tables.
20507 * final.c (final_scan_insn): Don't call direct_call or
20508 virtual_call debug hooks.
20509 * debug.h (struct gcc_debug_hooks): Remove direct_call,
20510 virtual_call_token, copy_call_info and virtual_call hooks.
20511 (debug_nothing_uid): Remove prototype.
20512 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20513 copy_call_info and virtual_call hooks.
20514 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20515 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20516 * debug.c (do_nothing_debug_hooks): Likewise.
20517 (debug_nothing_uid): Remove.
20518 * doc/invoke.texi (-fenable-icf-debug): Remove.
20519 * common.opt (-fenable-icf-debug): Likewise.
20520
325f5379
JJ
20521 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20522 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20523 call's MEM. Handle functions returning aggregate through a hidden
20524 first pointer. For virtual calls add clobbered pc to call arguments
20525 chain.
20526 * dwarf2out.c (gen_subprogram_die): Emit
20527 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20528 can't be emitted.
20529
a58a8e4b
JJ
20530 PR debug/45882
20531 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20532 * rtl.h (ENTRY_VALUE_EXP): Define.
20533 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20534 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20535 * print-rtl.c (print_rtx): Likewise.
20536 * gengtype.c (adjust_field_rtx_def): Likewise.
20537 * var-tracking.c (vt_add_function_parameter): Adjust
20538 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20539 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20540 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20541 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20542 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20543
2b1c5433
JJ
20544 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20545 Call var_location debug hook even on CALL_INSNs.
20546 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20547 * rtl.def (ENTRY_VALUE): New.
20548 * dwarf2out.c: Include cfglayout.h.
20549 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20550 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20551 (struct call_arg_loc_node): New type.
20552 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20553 tail_call_site_count): New variables.
20554 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20555 DW_TAG_GNU_call_site_parameter.
20556 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20557 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20558 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20559 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20560 and DW_AT_GNU_all_source_call_sites.
20561 (mem_loc_descriptor): Handle ENTRY_VALUE.
20562 (add_src_coords_attributes): Don't add enything if
20563 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20564 (dwarf2out_abstract_function): Save and clear call_arg_location,
20565 call_site_count and tail_call_site_count around dwarf2out_decl call.
20566 (gen_call_site_die): New function.
20567 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20568 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20569 (dwarf2out_function_decl): Clear call_arg_locations,
20570 call_arg_loc_last, set call_site_count and tail_call_site_count
20571 to -1 and free block_map.
20572 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20573 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
20574 followed by any real instructions.
20575 (dwarf2out_begin_function): Set call_site_count and
20576 tail_call_site_count to 0.
20577 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20578 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20579 attempt to force a DIE for it and worst case remove the attribute.
20580 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20581 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20582 the decl itself.
20583 * var-tracking.c: Include tm_p.h.
20584 (vt_stack_adjustments): For calls call note_register_arguments.
20585 (argument_reg_set): New variable.
20586 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20587 ensure the VALUE is resolved.
20588 (call_arguments): New variable.
20589 (prepare_call_arguments): New function.
20590 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20591 (struct expand_loc_callback_data): Add ignore_cur_loc field.
20592 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20593 always use the best expression.
20594 (vt_expand_loc): Add ignore_cur_loc argument.
20595 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20596 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20597 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20598 note for all calls.
20599 (vt_add_function_parameter): Use cselib_lookup_from_insn.
20600 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20601 argument. Don't call cselib_preserve_only_values and
20602 cselib_reset_table.
20603 (note_register_arguments): New function.
20604 (vt_initialize): Compute argument_reg_set. Call
20605 vt_add_function_parameters before processing basic blocks instead of
20606 afterwards. For calls call prepare_call_arguments before calling
20607 cselib_process_insn.
20608 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20609 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20610 (var-tracking.o): Depend on $(TM_P_H).
20611 * cfglayout.h (insn_scope): New prototype.
20612 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20613 * cfglayout.c (insn_scope): No longer static.
20614 * insn-notes.def (CALL_ARG_LOCATION): New.
20615 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20616 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20617 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20618 nothing for DECL_EXTERNAL BLOCK_VARS.
20619
9ef13bd0
AM
206202011-03-16 Alan Modra <amodra@gmail.com>
20621
20622 PR target/45844
20623 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20624 create invalid offset address for vsx splat insn.
20625 * config/rs6000/predicates.md (splat_input_operand): New.
20626 * config/rs6000/vsx.md (vsx_splat_*): Use it.
20627
56b67510
XDL
206282011-03-15 Xinliang David Li <davidxl@google.com>
20629
20630 PR c/47837
20631 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20632 (normalize_preds): New function.
20633 (is_use_properly_guarded): Normalize def predicates.
20634
80fffdef
RR
206352011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20636
732f37c6 20637 PR target/46788
80fffdef
RR
20638 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20639 in the output template.
20640
930672ad
RG
206412011-03-15 Richard Guenther <rguenther@suse.de>
20642
20643 PR middle-end/47650
20644 * tree-pretty-print.c (dump_function_declaration): Properly
20645 dump unprototyped and varargs function types.
20646
c7ee7b45
RG
206472011-03-15 Richard Guenther <rguenther@suse.de>
20648
20649 PR tree-optimization/13954
20650 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20651 and friends.
20652
b2ad5e37
RG
206532011-03-15 Richard Guenther <rguenther@suse.de>
20654
20655 PR tree-optimization/48037
20656 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20657 selects into BIT_FIELD_REFs.
20658 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20659 vector select.
20660
7ee93d4e
JJ
206612011-03-15 Jakub Jelinek <jakub@redhat.com>
20662
20663 PR tree-optimization/48129
20664 * builtins.c (fold_builtin_snprintf): Convert to type of
20665 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20666 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20667
e106efc7
RG
206682011-03-15 Richard Guenther <rguenther@suse.de>
20669
20670 PR tree-optimization/41490
20671 * tree-ssa-dce.c (propagate_necessity): Handle returns without
20672 value but with VUSE.
20673 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20674 return statements.
20675 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20676 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20677 * tree-tailcall.c (find_tail_calls): Ignore returns.
20678
17dea42f
RG
206792011-03-15 Richard Guenther <rguenther@suse.de>
20680
20681 PR middle-end/48031
20682 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
20683 or variable-indexed array accesses when in gimple form.
20684
01c77a60
RG
206852011-03-15 Richard Guenther <rguenther@suse.de>
20686
16cc4440 20687 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 20688
77b0791e
AM
206892011-03-15 Alan Modra <amodra@gmail.com>
20690
20691 PR target/48032
20692 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
20693 presume symbol_refs without a symbol_ref_decl are suitably
20694 aligned, nor other trees we may see here. Handle anchor symbols.
20695 (legitimate_constant_pool_address_p): Comment. Add mode param.
20696 Check cmodel=medium addresses. Adjust all calls.
20697 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
20698 creating cmodel=medium optimized access to locals.
20699 * config/rs6000/constraints.md (R): Pass QImode to
20700 legitimate_constant_pool_address_p.
20701 * config/rs6000/predicates.md (input_operand): Pass mode to
20702 legitimate_constant_pool_address_p.
20703 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
20704 Update prototype.
20705
35f61ba4
MM
207062011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
20707
20708 PR target/48053
20709 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
20710 64-bit constants being loaded into registers other than GPRs such
20711 as loading 0 into a VSX register.
20712
07332e6d
RO
207132011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20714
16cc4440 20715 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 20716
de888d90
JJ
207172011-03-14 Jakub Jelinek <jakub@redhat.com>
20718
ba3ceb2d
JJ
20719 PR middle-end/47917
20720 * builtins.c (fold_builtin_snprintf): New function.
20721 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
20722 (fold_builtin_4): Likewise.
20723
2e64f8b8
JJ
20724 PR middle-end/38878
20725 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
20726 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
20727 and C - X == X also strip nops from +/-/p+ operand.
20728 When optimizing -X == C, fold C to arg0's type.
20729
de888d90
JJ
20730 PR debug/47946
20731 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
20732 emit it as add_AT_int instead of add_AT_unsigned.
20733
207342011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
20735
20736 * unwind-dw2.c: Include sys/sdt.h if it exists.
20737 (_Unwind_DebugHook): Use STAP_PROBE2.
20738 * config.in, configure: Rebuild.
20739 * configure.ac: Check for sys/sdt.h.
20740
d34abfd2
UB
207412011-03-14 Uros Bizjak <ubizjak@gmail.com>
20742
20743 * config/i386/i386.md (ROUND_FLOOR): New constant.
20744 (ROUND_CEIL): Ditto.
20745 (ROUND_TRUNC): Ditto.
20746 (ROUND_MXCSR): Ditto.
20747 (ROUND_NO_EXC): Ditto.
20748 (rint<mode>2): Use new defines instead of numerical constants.
20749 (floor<mode>2): Ditto.
20750 (ceil<mode>2): Ditto.
20751 (btrunc<mode>2): Ditto.
20752 * config/i386/i386-builtin-types.def: Define ROUND function type
20753 aliases.
20754 * config/i386/i386.c (enum ix86_builtins): Add
20755 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
20756 (struct builtin_description): Add
20757 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
20758 (ix86_expand_sse_round): New static function.
20759 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
20760 function types.
20761 (ix86_builtin_vectorized_function): Handle
20762 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20763
87f9e23d
TT
207642011-03-14 Tom Tromey <tromey@redhat.com>
20765
20766 * c-parser.c (c_parser_asm_string_literal): Clear
20767 warn_overlength_strings.
20768
b3ab9ea2
TT
207692011-03-14 Tom Tromey <tromey@redhat.com>
20770
20771 * c-parser.c (disable_extension_diagnostics): Save
20772 warn_overlength_strings.
20773 (restore_extension_diagnostics): Restore warn_overlength_strings.
20774
6bd73dd8
JJ
207752011-03-14 Jakub Jelinek <jakub@redhat.com>
20776
20777 * BASE-VER: Change to 4.7.0.
20778
7f4d6e1b
RG
207792011-03-14 Richard Guenther <rguenther@suse.de>
20780
20781 PR middle-end/48098
20782 * tree.c (build_vector_from_val): Adjust assert to requirements
20783 and reality.
20784
c6104ef1
JJ
207852011-03-14 Jakub Jelinek <jakub@redhat.com>
20786
20787 PR bootstrap/48102
d34abfd2 20788 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 20789
dfa95e19
AT
207902011-03-14 Andreas Tobler <andreast@fgznet.ch>
20791
f60c2554 20792 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
20793 terms of target_flags_explicit. Adjust copyright year.
20794
20795 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
20796 * config/rs6000/t-freebsd: New file. Add override for
20797 LIB2FUNCS_EXTRA.
20798
bb322018
CD
207992011-03-13 Chris Demetriou <cgd@google.com>
20800
20801 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
20802 (-fno-diagnostics-show-option): this, to reflect current default.
20803 (-Werror=): Update text about -fno-diagnostics-show-option.
20804
12b1c80b
PB
208052011-03-12 Peter Bergner <bergner@vnet.ibm.com>
20806
20807 PR target/48053
20808 * config/rs6000/predicates.md (easy_vector_constant_add_self,
20809 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
20810 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
20811 mode is not V2DImode or V2DFmode.
20812 (vspltis_constant): Do not handle V2DImode and V2DFmode.
20813 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
20814 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
20815 registers to 0.
20816 (movdi_internal64): Likewise.
20817
57d598f7
SP
208182011-03-12 Sebastian Pop <sebastian.pop@amd.com>
20819
20820 PR tree-optimization/47127
20821 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
20822 parameter.
20823 (set_cloog_options): Same.
20824 (scop_to_clast): Same.
20825 (print_clast_stmt): Do not call cloog_state_malloc and
20826 cloog_state_free.
20827 (print_generated_program): Same.
20828 (gloog): Same.
20829 * graphite-clast-to-gimple.h (cloog_state): Declared.
20830 (scop_to_clast): Adjust declaration.
20831 * graphite.c (cloog_state): Defined here.
20832 (graphite_initialize): Call cloog_state_malloc.
20833 (graphite_finalize): Call cloog_state_free.
20834
f231b5ff
JM
208352011-03-11 Jason Merrill <jason@redhat.com>
20836
20837 * attribs.c (lookup_attribute_spec): Take const_tree.
20838 * tree.h: Adjust.
20839
6a4e2bd5
JM
208402011-03-11 Joseph Myers <joseph@codesourcery.com>
20841
20842 * config/sparc/sparc.c (sparc_option_override): Use
20843 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
20844
a758fd67
RG
208452011-03-11 Richard Guenther <rguenther@suse.de>
20846
20847 PR tree-optimization/48067
20848 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
20849 multiplication result will be only used once on the target
20850 stmt.
20851
03dfda54
RG
208522011-03-11 Richard Guenther <rguenther@suse.de>
20853
20854 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
20855
5f11a50a
RG
208562011-03-11 Richard Guenther <rguenther@suse.de>
20857
20858 PR lto/48073
20859 * tree.c (find_decls_types_r): Do not walk types only reachable
20860 from IDENTIFIER_NODEs.
20861
4074f163
JJ
208622011-03-11 Jakub Jelinek <jakub@redhat.com>
20863
20864 PR middle-end/48044
20865 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
20866 all vnode->force_output nodes as needed.
20867
30f7cdcd
JM
208682011-03-11 Jason Merrill <jason@redhat.com>
20869
20870 PR c++/48069
20871 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
20872 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
20873
62ecfeb8
MJ
208742011-03-11 Martin Jambor <mjambor@suse.cz>
20875
20876 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
20877 cgraph_node.
20878
e89e03ab
JJ
208792011-03-11 Jakub Jelinek <jakub@redhat.com>
20880
20881 PR tree-optimization/48063
20882 * ipa-inline.c (cgraph_decide_inlining): Don't try to
20883 inline functions called once if !tree_can_inline_p (node->callers).
20884
efbe978b 208852011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 20886
efbe978b
EB
20887 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
20888 extra_objs.
9d6193a7
CL
20889 * config/score/score3.c: Delete.
20890 * config/score/score3.h: Delete.
20891 * config/score/mul-div.S: Delete.
20892 * config/score/sfp-machine.h: Add new file.
20893 * config/score/constraints.md: Add new file.
20894 * config/score/t-score-softfp: Add new file.
efbe978b 20895 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
20896 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
20897 (score7_extra_constraint): Delete.
efbe978b 20898 (score7_option_override): Remove unused code.
9d6193a7
CL
20899 * config/score/score.c: Remove score3 and score5 define and code.
20900 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 20901 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
20902 * config/score/score.opt: Remove score3 and score5 options.
20903
5de27cca
JDA
209042011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20905
20906 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
20907 when _HPUX_SOURCE is defined.
20908 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
20909
18d92053
JM
209102011-03-10 Jason Merrill <jason@redhat.com>
20911
20912 PR c++/48029
20913 * stor-layout.c (layout_type): Don't set structural equality
20914 on arrays of incomplete type.
20915 * tree.c (type_hash_eq): Handle comparing them properly.
20916
67a2f76d
JJ
209172011-03-10 Jakub Jelinek <jakub@redhat.com>
20918
20919 PR debug/48043
18d92053 20920 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
20921 result mode matches original rtl mode.
20922
d845b2f9
NC
209232011-03-10 Nick Clifton <nickc@redhat.com>
20924
20925 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 20926 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 20927
db7ec035
JJ
209282011-03-09 Jakub Jelinek <jakub@redhat.com>
20929
20930 PR rtl-optimization/47866
20931 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
20932 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
20933 if target wasn't scalar.
20934 * function.c (assign_stack_temp_for_type): Assert that neither
20935 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
20936 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
20937 macro.
20938 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
20939
5d304e47
AK
209402011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20941
20942 * config/s390/s390-protos.h (s390_label_align): New prototype.
20943 * config/s390/s390.c (s390_label_align): New function.
20944 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
20945
93b826f0
MM
209462011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20947
20948 PR target/47755
20949 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
20950 V2DI/V2DF constants. Only all 0's or all 1's are easy.
20951 (output_vec_const_move): Ditto.
20952
ef78aed6
AS
209532011-03-08 Anatoly Sokolov <aesok@post.ru>
20954
20955 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
20956 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
20957 * config/mips/mips.c (mips_preferred_reload_class): Make static.
20958 Change 'rclass' argument and result type to reg_class_t.
20959 (TARGET_PREFERRED_RELOAD_CLASS): Define.
20960
5f892aa0
GJL
209612011-03-08 Georg-Johann Lay <avr@gjlay.de>
20962
9e43ad68
UB
20963 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
20964 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
20965 (TARGET_MEMORY_MOVE_COST): Define.
20966 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 20967
32bd2409
JJ
209682011-03-08 Jakub Jelinek <jakub@redhat.com>
20969
530a4800
JJ
20970 PR debug/47881
20971 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
20972 removed anything.
20973
32bd2409
JJ
20974 PR tree-optimization/48022
20975 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
20976 for EQ/NE_EXPR.
20977
c7148991
JJ
209782011-03-07 Jakub Jelinek <jakub@redhat.com>
20979
20980 PR debug/47991
20981 * var-tracking.c (find_use_val): Return NULL for
20982 cui->sets && cui->store_p BLKmode MEMs.
20983
43070a6e
AS
209842011-03-07 Anatoly Sokolov <aesok@post.ru>
20985
20986 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
20987 Remove.
20988 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
20989 xstormy16_print_operand_address): Remove.
20990 * config/stormy16/stormy16.c (xstormy16_print_operand,
20991 xstormy16_print_operand_address): Make static.
20992 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
20993
efbe978b 209942011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
20995
20996 PR target/47862
20997 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
20998 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
20999 before definition.
21000
cec8ac0b
ZD
210012011-03-07 Zdenek Dvorak <ook@ucw.cz>
21002
21003 PR bootstrap/48000
21004 * cfgloopmanip.c (fix_bb_placements): Return immediately
21005 if FROM is BASE_LOOP's header.
21006
59527282
PW
210072011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
21008
21009 * gimplify.c (gimplify_function_tree): Fix building calls
21010 to __builtin_return_address.
21011
617718f7
AM
210122011-03-07 Alan Modra <amodra@gmail.com>
21013
21014 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
21015 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
21016 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
21017 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
21018 return_mode args.
21019 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
21020 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
21021 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
21022 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
21023 * config/rs6000/rs6000.c
21024 (rs6000_elf_end_indicate_exec_stack): Rename to..
21025 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
21026 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
21027 (rs6000_file_start): ..here.
21028 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
21029 file scope variables.
21030 (call_ABI_of_interest): New function.
21031 (init_cumulative_args): Set above vars when function return value
21032 is a float, vector, or small struct.
21033 (rs6000_function_arg_advance_1): Likewise for function args.
21034 (rs6000_va_start): Set rs6000_passes_float if variable arg function
21035 references float args.
21036
38528d50
MX
210372011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
21038
21039 * doc/cfg.texi: Remove "See" before @ref.
21040 * doc/invoke.texi: Likewise.
21041
f42cf4f4
JM
210422011-03-05 Jason Merrill <jason@redhat.com>
21043
21044 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21045
804a304d
AG
210462011-03-05 Anthony Green <green@moxielogic.com>
21047
21048 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21049
634ee309
ZD
210502011-03-05 Zdenek Dvorak <ook@ucw.cz>
21051
21052 PR rtl-optimization/47899
21053 * cfgloopmanip.c (fix_bb_placements): Fix first argument
21054 to flow_loop_nested_p when moving the loop upward.
21055
6fe471c8
RE
210562011-03-05 Richard Earnshaw <rearnsha@arm.com>
21057
21058 PR target/47719
21059 * arm.md (movhi_insn_arch4): Accept any immediate constant.
21060
cc58ceee
JJ
210612011-03-05 Jakub Jelinek <jakub@redhat.com>
21062
21063 PR tree-optimization/47967
21064 * ipa-cp.c (build_const_val): Return NULL instead of creating
21065 VIEW_CONVERT_EXPR for mismatching sizes.
21066 (ipcp_create_replace_map): Return NULL if build_const_val failed.
21067 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21068 give up on versioning.
21069
ea868305
AM
210702011-03-05 Alan Modra <amodra@gmail.com>
21071
21072 PR target/47986
21073 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21074 full cmodel medium/large lo_sum + high addresses.
21075
bc6ce334
AK
210762011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21077
21078 * config/s390/s390.c (s390_decompose_address): Reject non-literal
21079 pool references in UNSPEC_LTREL_OFFSET.
21080
87e7b310
JH
210812011-03-04 Jan Hubicka <jh@suse.cz>
21082
21083 PR lto/47497
21084 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21085 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
21086 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21087 Add node pointers.
87e7b310
JH
21088 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21089 cgraph_add_thunk): Add node pointers.
21090 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21091 associated to right node.
21092 (input_node): Update use of cgraph_same_body_alias
21093 and cgraph_add_thunk.
21094
d9c64246
CF
210952011-03-04 Changpeng Fang <changpeng.fang@amd.com>
21096
21097 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
21098 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21099 modes when the flag -mprefer-avx128 is on.
d9c64246 21100
08707076
RS
211012011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
21102
21103 * dwarf2out.c (compare_loc_operands): Fix address handling.
21104
52517c81
AM
211052011-03-04 Alan Modra <amodra@gmail.com>
21106
21107 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21108
b147c5b9
RG
211092011-03-04 Richard Guenther <rguenther@suse.de>
21110
21111 PR middle-end/47968
21112 * expmed.c (extract_bit_field_1): Prefer vector modes that
21113 vec_extract patterns can handle.
21114
8750672f
RG
211152011-03-04 Richard Guenther <rguenther@suse.de>
21116
21117 PR middle-end/47975
21118 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21119
9eac0f2a
RH
211202011-03-04 Richard Henderson <rth@redhat.com>
21121
21122 * explow.c (emit_stack_save): Remove 'after' parameter.
21123 (emit_stack_restore): Likewise.
21124 * expr.h: Update to match.
21125 * builtins.c, calls.c, stmt.c: Likewise.
21126 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21127 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21128 * function.c (expand_function_end): Insert the emit_stack_save
21129 sequence before parm_birth_insn instead of after.
21130
dfee1406
UB
211312011-03-03 Uros Bizjak <ubizjak@gmail.com>
21132
21133 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21134 (ssse3_pmaddubsw128): Ditto.
21135 (ssse3_pmaddubsw): Ditto.
21136
f1d4c3de
SE
211372011-03-03 Steve Ellcey <sje@cup.hp.com>
21138
21139 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21140
71f3a3f5
JJ
211412011-03-03 Jakub Jelinek <jakub@redhat.com>
21142
423ed416
JJ
21143 PR c/47963
21144 * gimplify.c (omp_add_variable): Only call omp_notice_variable
21145 on TYPE_SIZE_UNIT if it is a DECL.
21146
71f3a3f5
JJ
21147 PR debug/47283
21148 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21149 first operand is not is_gimple_mem_ref_addr, try to fold it.
21150 If the operand still isn't is_gimple_mem_ref_addr, clear
21151 MEM_EXPR on op0.
21152
4b1a5c0d
RG
211532011-03-03 Richard Guenther <rguenther@suse.de>
21154
21155 PR middle-end/47283
21156 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21157 match comment.
21158 (refs_may_alias_p_1): For release branches return true if
21159 we are confused by our input.
21160
b46616fd
AK
211612011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21162
21163 * config/s390/s390.c (s390_function_value): Rename to ...
21164 (s390_function_and_libcall_value): ... this.
21165 (s390_function_value): New function.
21166 (s390_libcall_value): New function.
dfee1406 21167 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
21168 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21169 target macro definitions.
21170 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21171
46d8fabb
JM
211722011-03-02 Joseph Myers <joseph@codesourcery.com>
21173
21174 * config/i386/freebsd64.h (CC1_SPEC): Define.
21175 * config/i386/linux64.h (CC1_SPEC): Define.
21176 * config/i386/x86-64.h (CC1_SPEC): Don't define.
21177
6b1ce545
AS
211782011-03-02 Anatoly Sokolov <aesok@post.ru>
21179
21180 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21181 Remove.
21182 * config/stormy16/stormy16.c: Include reload.h.
21183 (xstormy16_memory_move_cost): New function.
21184 (TARGET_MEMORY_MOVE_COST): Define.
21185
34161e98
RS
211862011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
21187
21188 PR rtl-optimization/47925
21189 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21190 with side effects. Remove the more-specific check for volatile asms.
21191
f60a97cf
AM
211922011-03-02 Alan Modra <amodra@gmail.com>
21193
21194 PR target/47935
21195 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21196 toc relative addresses for valid offsets.
21197
f2ca11ca
RG
211982011-03-01 Richard Guenther <rguenther@suse.de>
21199
21200 PR tree-optimization/47890
21201 * tree-vect-loop.c (get_initial_def_for_induction): Set
21202 related stmt properly.
21203
7a00d9ea
RG
212042011-03-01 Richard Guenther <rguenther@suse.de>
21205
21206 PR lto/47924
21207 * lto-streamer.c (lto_record_common_node): Also register
21208 the canonical type.
21209
06c7edcc
RG
212102011-03-01 Richard Guenther <rguenther@suse.de>
21211
21212 PR lto/46911
21213 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21214 Do not stream DECL_ABSTRACT_ORIGIN.
21215 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21216 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21217 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21218 Do not stream DECL_ABSTRACT_ORIGIN.
21219 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21220 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21221
998871e9
AS
212222011-02-28 Anatoly Sokolov <aesok@post.ru>
21223
21224 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21225 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 21226 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
21227 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21228 Add 'outgoing' argument.
21229 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21230 function.
21231 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21232 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21233
94369251
KT
212342011-02-28 Kai Tietz <kai.tietz@onevision.com>
21235
21236 PR debug/28047
21237 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21238 (lookup_filename): Likewise.
b2e2ea67 21239 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 21240
80a832cd
JJ
212412011-02-28 Bernd Schmidt <bernds@codesourcery.com>
21242 Jakub Jelinek <jakub@redhat.com>
21243
21244 PR middle-end/47893
21245 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21246 (assign_stack_local_1): Change last argument type to int.
21247 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21248 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 21249 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
21250 (assign_stack_local): Adjust caller.
21251 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21252 of assign_stack_local, pass 0 as last argument.
21253 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21254 callers.
21255
1b500976
JJ
212562011-02-28 Jakub Jelinek <jakub@redhat.com>
21257
f61c6f34
JJ
21258 PR debug/47283
21259 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21260 Use target address_mode and pointer_mode hooks instead of hardcoded
21261 Pmode and ptr_mode. Handle some simple cases of extending if
21262 POINTERS_EXTEND_UNSIGNED < 0.
21263 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21264 Call convert_debug_memory_address.
21265 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21266 convert_debug_memory_address.
21267
1b500976
JJ
21268 PR middle-end/46790
21269 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21270 * configure: Regenerated.
21271 * config.in: Regenerated.
21272 * varasm.c (default_function_section): Return NULL
b2e2ea67 21273 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 21274
2f2935b6
MJ
212752011-02-28 Martin Jambor <mjambor@suse.cz>
21276
21277 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21278 the description to match the printed values.
21279
474086eb
RG
212802011-02-28 Richard Guenther <rguenther@suse.de>
21281
21282 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21283 of the copied scope tree.
21284
15bf6f3a
RW
212852011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21286
21287 * doc/extend.texi (Function Attributes): Avoid deeply (and
21288 wrongly) nested tables.
21289
f6b439c9
JJ
212902011-02-27 Jakub Jelinek <jakub@redhat.com>
21291
21292 PR middle-end/47903
21293 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21294 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21295 r isn't op0 nor op1.
21296
1d8ca2c7
GJL
212972011-02-23 Georg-Johann Lay <avr@gjlay.de>
21298
21299 * config/avr/avr.md: Remove magic comment for emacs.
21300
593fca4b
GJL
213012011-02-23 Georg-Johann Lay <avr@gjlay.de>
21302
21303 PR target/45261
21304 * config/avr/avr.c (avr_option_override): Use error on bad options.
21305 (avr_help): New function.
21306 (TARGET_HELP): Define.
21307
6609216e
GJL
213082011-02-22 Georg-Johann Lay <avr@gjlay.de>
21309
21310 PR target/42240
21311 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21312 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21313
03d458af
GP
213142011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
21315
21316 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21317 (ARM Options): Ditto.
21318 (i386 and x86-64 Options): Ditto.
21319 (RX Options): Ditto.
21320 (SPARC Options): Ditto.
21321
1c379b78
TC
213222011-02-26 Tijl Coosemans <tijl@coosemans.org>
21323
21324 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21325 FreeBSD 6 and later. Generally use cpu generic.
21326
d5ed058c 213272011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 21328
d5ed058c
GP
21329 * doc/cpp.texi: Update copyright years.
21330
509d65dd 213312011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 21332
509d65dd 21333 PR target/46898
308d39cd
SB
21334 * config/lm32/lm32.md (ashrsi3): Added needed variable.
21335
509d65dd 213362011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 21337
509d65dd 21338 PR target/46898
308d39cd
SB
21339 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21340 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21341 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21342 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 21343 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
21344 (gen_int_relational): Move declarations to start of function.
21345
822ba6d7
EB
213462011-02-25 Eric Botcazou <ebotcazou@adacore.com>
21347
21348 PR tree-optimization/45470
21349 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21350 can throw internally only.
21351 * tree-vect-stmts.c (vectorizable_call): Likewise.
21352
ef795fc2
AS
213532011-02-24 Anatoly Sokolov <aesok@post.ru>
21354
21355 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21356 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21357 * config/stormy16/stormy16-protos.h
21358 (xstormy16_preferred_reload_class): Remove.
21359 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21360 static. Change 'rclass' argument and return type to reg_class_t.
21361 (TARGET_PREFERRED_RELOAD_CLASS,
21362 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21363
1c3277ee
RG
213642011-02-24 Richard Guenther <rguenther@suse.de>
21365
21366 * lto-streamer-in.c (input_bb): Do not find referenced vars
21367 in debug statements.
21368
67e18edb
JM
213692011-02-23 Jason Merrill <jason@redhat.com>
21370
21371 * common.opt (fabi-version): Document v5 and v6.
21372
b14fad9d
RG
213732011-02-23 Richard Guenther <rguenther@suse.de>
21374
21375 PR tree-optimization/47849
21376 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21377
7fcf46f5
JZ
213782011-02-23 Jie Zhang <jie@codesourcery.com>
21379
21380 * opts-common.c (decode_cmdline_option): Print empty string
21381 argument as "" in decoded->orig_option_with_args_text.
21382 * gcc.c (execute): Print empty string argument as ""
21383 in the verbose output.
21384 (do_spec_1): Keep empty string argument.
21385
f85b70fd
NF
213862011-02-23 Nathan Froyd <froydnj@codesourcery.com>
21387
21388 * config.gcc: Declare score-* and crx-* obsolete.
21389
b152a615
JZ
213902011-02-23 Jie Zhang <jie@codesourcery.com>
21391
21392 PR rtl-optimization/47763
21393 * web.c (web_main): Ignore naked clobber when replacing register.
21394
bb6e77bc
AS
213952011-02-22 Anatoly Sokolov <aesok@post.ru>
21396
21397 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21398 Remove.
21399
68bf6491
SP
214002011-02-22 Sebastian Pop <sebastian.pop@amd.com>
21401
21402 PR doc/47848
21403 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21404
88ee1fc7
MS
214052011-02-22 Mike Stump <mikestump@comcast.net>
21406
21407 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21408 assembler.
21409 * configure: Regenerate.
21410
6042d1dd
CLT
214112011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
21412
21413 PR rtl-optimization/46002
21414 * ira-color.c (update_copy_costs): Change class intersection
21415 test to reg_class_contents[] test of 'hard_regno'.
21416
7de97f9e
JM
214172011-02-21 Joseph Myers <joseph@codesourcery.com>
21418
21419 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21420 than Driver option.
21421 * config/hpux11.opt (mt): Likewise.
21422 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21423 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21424 * config/vax/elf.opt (mno-asm-pic): Likewise.
21425 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21426
d1d46f9f
MS
214272011-02-21 Mike Stump <mikestump@comcast.net>
21428
21429 PR target/47822
21430 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21431 tree so we can get save the type.
21432 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21433 for CFString instead of trying to use past the end of the builtins.
21434 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21435 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21436 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21437 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21438 Rename to darwin_builtin_cfstring.
21439 (darwin_init_cfstring_builtins): Return the built type.
21440
23e0d930
UB
214412011-02-21 Uros Bizjak <ubizjak@gmail.com>
21442
21443 PR target/47840
21444 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21445 (_mm256_insert_epi64): Use _mm_insert_epi64.
21446
192997cf
AS
214472011-02-21 Anatoly Sokolov <aesok@post.ru>
21448
21449 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21450 * config/stormy16/stormy16-protos.h
21451 (xstormy16_mode_dependent_address_p): Remove.
21452 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21453 Make static. Change return type to bool. Change argument type to
21454 const_rtx. Remove dead code.
21455 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21456
e292d003
RG
214572011-02-21 Richard Guenther <rguenther@suse.de>
21458
21459 PR lto/47820
21460 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21461 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21462 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21463 TUs context.
23e0d930 21464 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
21465 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21466
77f846e9
RG
214672011-02-20 Richard Guenther <rguenther@suse.de>
21468
21469 PR lto/47822
21470 * tree.c (free_lang_data_in_decl): Clean builtins from
21471 the TU decl BLOCK_VARS.
23e0d930 21472
b2cddfc8
AO
214732011-02-19 Alexandre Oliva <aoliva@redhat.com>
21474
21475 PR debug/47620
21476 PR debug/47630
21477 * haifa-sched.c (fix_tick_ready): Skip tick computation
21478 for debug insns.
21479
becf4c11
RG
214802011-02-19 Richard Guenther <rguenther@suse.de>
21481
21482 PR lto/47647
21483 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21484 Remove lazy BLOCK_VARS streaming.
21485 (lto_input_ts_block_tree_pointers): Likewise.
21486 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21487
27f98305
JM
214882011-02-19 Joseph Myers <joseph@codesourcery.com>
21489
21490 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21491
064bf3f4
JM
214922011-02-19 Joseph Myers <joseph@codesourcery.com>
21493
21494 * config/i386/biarch32.h, config/i386/mach.h,
21495 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21496
9215ddc3
JJ
214972011-02-19 Jakub Jelinek <jakub@redhat.com>
21498
21499 PR target/47800
21500 * config/i386/i386.md (peephole2 for shift and plus): Use
21501 operands[1] original mode in the first insn.
21502
8b021004
MS
215032011-02-18 Mike Stump <mikestump@comcast.net>
21504
65ded153 21505 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 21506
f84ae14c
JH
215072011-02-18 Jan Hubicka <jh@suse.cz>
21508
21509 PR middle-end/47788
65ded153
EB
21510 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21511 to zero when the function is not inlinable at all.
f84ae14c 21512
eddabc80
JDA
215132011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21514
21515 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21516 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21517 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21518 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21519 * config/pa/t-pa64: Likewise.
21520 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21521
ca3da783
JJ
215222011-02-18 Jakub Jelinek <jakub@redhat.com>
21523
21524 PR driver/47787
21525 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21526
430aa868
JDA
215272011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21528
21529 PR target/47792
21530 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21531
4bf7ff7e
AS
215322011-02-18 Anatoly Sokolov <aesok@post.ru>
21533
21534 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21535 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21536 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21537 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21538 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21539 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21540 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21541 m32r_load_postinc_p, m32r_store_preinc_predec_p,
21542 m32r_legitimate_address_p): New functions.
21543 * config/m32r/constraints.md (constraint "S"): Don't use
21544 STORE_PREINC_PREDEC_P.
21545 (constraint "U"): Don't use LOAD_POSTINC_P.
21546
7efcf910
CLT
215472011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
21548
21549 PR rtl-optimization/46178
21550 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21551 compute ira_hard_regno_cover_class[].
21552
237d6259
RG
215532011-02-18 Richard Guenther <rguenther@suse.de>
21554
21555 PR lto/47798
21556 * lto-streamer.h (lto_global_var_decls): Declare.
21557 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21558 statics for global var processing.
21559
12d80acc
RG
215602011-02-18 Richard Guenther <rguenther@suse.de>
21561
21562 PR tree-optimization/47737
21563 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21564 edge dominance check.
21565
abfea58d
JJ
215662011-02-18 Jakub Jelinek <jakub@redhat.com>
21567
21568 PR debug/47780
21569 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21570 avoid invalid rtx sharing.
21571
f73c8882
GP
215722011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
21573
21574 * doc/cpp.texi (Obsolete Features): Add background on the
21575 origin of assertions.
21576
d764a8e6
IS
215772011-02-17 Iain Sandoe <iains@gcc.gnu.org>
21578
21579 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 21580 objc_abi == 2.
d764a8e6
IS
21581 * config/darwin.c (output_objc_section_asm_op): Added support for
21582 ABI v1 and v2.
21583 (is_objc_metadata): New.
21584 (darwin_objc2_section): New.
21585 (darwin_objc1_section): New.
21586 (machopic_select_section): Added support for ABI v1 and v2.
21587 (darwin_emit_objc_zeroed): New.
21588 (darwin_output_aligned_bss): Detect objc metadata and treat it
21589 appropriately.
21590 (darwin_asm_output_aligned_decl_common): Same.
21591 (darwin_asm_output_aligned_decl_local): Same.
21592 * config/darwin-sections.def: Updated for ABI v1 and v2.
21593 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21594 compiling Objective-C code for the NeXT runtime, default to using
21595 ABI version 0 for 32-bit, and version 2 for 64-bit.
21596
0a8134ca
JM
215972011-02-17 Joseph Myers <joseph@codesourcery.com>
21598
21599 * common.opt (optimize_fast): New Variable.
21600 * opts.c (default_options_optimization): Use opts->x_optimize_fast
21601 instead of local variable ofast.
21602
0a256240
NP
216032011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
21604
21605 * doc/invoke.texi (fobjc-abi-version): Documented.
21606 (fobjc-nilcheck): Documented.
21607 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21608 version.
21609
fa381cb2
JM
216102011-02-17 Joseph Myers <joseph@codesourcery.com>
21611
21612 PR driver/47390
21613 * common.opt (export-dynamic): New Driver option.
21614 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21615
5437eaa6
JM
216162011-02-17 Joseph Myers <joseph@codesourcery.com>
21617
21618 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21619
bb7e6d55
AO
216202011-02-17 Alexandre Oliva <aoliva@redhat.com>
21621 Jan Hubicka <jh@suse.cz>
21622
21623 PR debug/47106
21624 PR debug/47402
21625 * cfgexpand.c (account_used_vars_for_block): Remove.
21626 (estimated_stack_frame_size): Use referenced vars.
21627 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21628 that were referenced in the original function. Test src_fn
21629 rather than cfun. Drop redundant get_var_ann.
21630 (setup_one_parameter): Drop redundant get_var_ann.
21631 (declare_return_variable): Likewise.
21632 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21633 (copy_arguments_for_versioning): Drop redundant get_var_ann.
21634 * ipa-inline.c (compute_inline_parameters): Do not compute
21635 disregard_inline_limits here.
bb7e6d55
AO
21636 (compute_inlinable_for_current, pass_inlinable): New.
21637 (pass_inline_parameters): Require PROP_referenced_vars.
21638 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 21639 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
21640 (cgraph_analyze_function): Set .disregard_inline_limits.
21641 * tree-sra.c (convert_callers): Compute inliner parameters
21642 only for functions already in SSA form.
21643
f181a8a7
JM
216442011-02-17 Joseph Myers <joseph@codesourcery.com>
21645
21646 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21647 -mlittle-endian-data.
21648
c6869789
JM
216492011-02-17 Joseph Myers <joseph@codesourcery.com>
21650
21651 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21652 -mno-fpu, not -fpu and -no-fpu.
21653 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21654 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21655
fbf4bfd3
UB
216562011-02-17 Uros Bizjak <ubizjak@gmail.com>
21657
21658 PR target/43653
21659 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21660 input reload with PLUS RTX.
21661
70be5dc7
JM
216622011-02-16 Joseph Myers <joseph@codesourcery.com>
21663
21664 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21665 of InverseVar(MDMX).
21666
30b1646e
JM
216672011-02-16 Joseph Myers <joseph@codesourcery.com>
21668
21669 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21670 --m4-340.
21671
ab7b71e9
JM
216722011-02-16 Joseph Myers <joseph@codesourcery.com>
21673
21674 * config/mn10300/mn10300.opt (mno-crt0): New.
21675
466f3f08
JM
216762011-02-16 Joseph Myers <joseph@codesourcery.com>
21677
21678 * config/m68k/uclinux.opt (static-libc): New Driver option.
21679
8226cd7b
JM
216802011-02-16 Joseph Myers <joseph@codesourcery.com>
21681
21682 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
21683
45cab1d7
JM
216842011-02-16 Joseph Myers <joseph@codesourcery.com>
21685
21686 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
21687 %{muser-extend-enabled}.
21688
65aab64f
RG
216892011-02-16 Richard Guenther <rguenther@suse.de>
21690
21691 PR tree-optimization/47738
21692 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
21693 the TODO from tree_predictive_commoning.
21694
fc2fa4fb
JL
216952011-02-15 Jeff Law <law@redhat.com>
21696
21697 Revert
21698 2011-01-25 Jeff Law <law@redhat.com>
21699
21700 PR rtl-optimization/37273
21701 * ira-costs.c (scan_one_insn): Detect constants living in memory and
21702 handle them like argument loads from stack slots. Do not double
21703 count memory for memory constants and argument loads from stack slots.
21704
e3a69bb4
MM
217052011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
21706
21707 PR target/47755
21708 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
21709 mode for vector constants. Remove code that checks for TImode.
21710
de650422
AO
217112011-02-15 Alexandre Oliva <aoliva@redhat.com>
21712
21713 PR debug/47106
21714 PR debug/47402
21715 * cgraph.h (compute_inline_parameters): Return void.
21716 * ipa-inline.c (compute_inline_parameters): Adjust.
21717
30925d94
AO
217182011-02-15 Alexandre Oliva <aoliva@redhat.com>
21719
21720 PR debug/47106
21721 PR debug/47402
21722 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
21723 rather than decl.
21724 * cfgexpand.c (estimated_stack_frame_size): Likewise.
21725 * ipa-inline.c (compute_inline_parameters): Adjust.
21726
1b9a784a
AO
217272011-02-15 Alexandre Oliva <aoliva@redhat.com>
21728
21729 PR debug/47106
21730 PR debug/47402
21731 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
21732 Adjust all users. Pass FN to...
21733 * tree-flow-inline.h (first_referenced_var): ... this. Add
21734 fn argument.
21735 * ipa-struct-reorg.c: Adjust.
21736 * tree-dfa.c: Adjust.
21737 * tree-into-ssa.c: Adjust.
21738 * tree-sra.c: Adjust.
21739 * tree-ssa-alias.c: Adjust.
21740 * tree-ssa-live.c: Adjust.
21741 * tree-ssa.c: Adjust.
21742 * tree-ssanames.c: Adjust.
21743 * tree-tailcall.c: Adjust.
21744
27c6b086
AO
217452011-02-15 Alexandre Oliva <aoliva@redhat.com>
21746
21747 PR debug/47106
21748 PR debug/47402
21749 * tree-flow.h (referenced_var_lookup): Add fn parameter.
21750 Adjust all callers.
21751 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
21752 * tree-flow-inline.h: Adjust.
21753 * gimple-pretty-print.c: Adjust.
21754 * tree-into-ssa.c: Adjust.
21755 * tree-ssa.c: Adjust.
21756 * cfgexpand.c: Adjust.
21757
679e8183
NF
217582011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21759
fbf4bfd3
UB
21760 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
21761 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21762 (EXTRA_CONSTRAINT): Delete.
21763 * config/iq2000/constraints.md: New file.
21764 * config/iq2000/iq2000.md: Include it.
679e8183
NF
21765 (define_insn ""): Delete.
21766 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
21767 unsupported constraint letters from patterns.
21768 (call_value, call_value_internal1): Likewise.
21769 (call_value_multiple_internal1): Likewise.
21770
a45d420a
NC
217712011-02-15 Nick Clifton <nickc@redhat.com>
21772
21773 * config/mn10300/mn10300.c: Include tm-constrs.h.
21774 (struct liw_data): New data structure describing an LIW candidate
21775 instruction.
21776 (extract_bundle): Use struct liw_data. Allow small integer
21777 operands for some instructions.
21778 (check_liw_constraints): Use struct liw_data. Remove swapped
21779 parameter. Add comments describing the checks. Fix bug when
21780 assigning the source of liw1 to the source of liw2.
21781 (liw_candidate): Delete. Code moved into extract_bundle.
21782 (mn10300_bundle_liw): Use struct liw_data. Check constraints
21783 before swapping.
21784 * config/mn10300/predicates.md (liw_operand): New predicate.
21785 Allows registers and small integer constants.
21786 * config/mn10300/constraints.md (O): New constraint. Accetps
21787 integers in the range -8 to +7 inclusive.
21788 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
21789 for moving a small integer into a register. Give this alternative
21790 LIW attributes.
21791 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
21792 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
21793 using the J,K,L and M constraints,
21794 (liw): Remove SI mode on second operands to allow for HI and QI
21795 mode values.
21796 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
21797 instruction.
21798
48feba28
RG
217992011-02-15 Richard Guenther <rguenther@suse.de>
21800
21801 PR tree-optimization/47743
21802 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
21803 for a non-type-compatible VN lookup bail out.
21804
ad1c1eeb
NF
218052011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21806
21807 * config/fr30/constraints.md: New file.
21808 * config/fr30/fr30.md: Include it.
21809 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
21810 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21811 (EXTRA_CONSTRAINT): Delete.
21812
49ac143d
NF
218132011-02-15 Nathan Froyd <froydnj@codesourcery.com>
21814
21815 * config/frv/constraints.md: New file.
21816 * config/frv/predicates.md: Include it.
21817 * config/frv/frv.c (reg_class_from_letter): Delete.
21818 (frv_option_override): Don't initialize it.
21819 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
21820 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
21821 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
21822 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21823 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
21824 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21825 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
21826 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
21827 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
21828 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
21829 (REG_CLASS_FROM_CONSTRAINT): Delete.
21830
c95f9494
JJ
218312011-02-15 Jakub Jelinek <jakub@redhat.com>
21832
21833 PR middle-end/47581
21834 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
21835 if frame size is 0 in a leaf function.
21836
13aed611
RO
218372011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21838
21839 PR pch/14940
21840 * config/alpha/host-osf.c: New file.
21841 * config/alpha/x-osf: New file.
21842 * config.host (alpha*-dec-osf*): Use it.
21843
b09c3081
AS
218442011-02-14 Anatoly Sokolov <aesok@post.ru>
21845
21846 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21847 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
21848 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
21849 (rx_mode_dependent_address_p): ...this. Make static. Change argument
21850 type to const_rtx.
21851 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21852
d634083b
NF
218532011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21854
21855 * config/stormy16/constraints.md: New file.
21856 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
21857 Use satisfies_constraint_Q and satisfies_constraint_R.
21858 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
21859 Delete.
21860 (xstormy16_legitiamte_address_p): Declare.
21861 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
21862 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21863 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 21864 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
21865 Un-staticize.
21866 (xstormy16_extra_constraint_p): Delete.
21867
c7dd803e
EB
218682011-02-14 Eric Botcazou <ebotcazou@adacore.com>
21869
21870 PR tree-optimization/46494
21871 * loop-unroll.c (split_edge_and_insert): Adjust comment.
21872 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
21873 (pass_rtl_loop_done): Add TODO_verify_flow.
21874 * fwprop.c (pass_rtl_fwprop): Likewise.
21875 * modulo-sched.c (pass_sms): Likewise.
21876 * tree-ssa-dom.c (pass_dominator): Likewise.
21877 * tree-ssa-loop-ch.c (pass_ch): Likewise.
21878 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
21879 (pass_tree_loop_done): Likewise.
21880 * tree-ssa-pre.c (execute_pre): Likewise.
21881 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
21882 * tree-ssa-sink.c (pass_sink_code): Likewise.
21883 * tree-vrp.c (pass_vrp): Likewise.
21884
c6150df6
NF
218852011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21886
c7dd803e
EB
21887 * config/v850/constraints.md: New file.
21888 * config/v850/v850.md: Include it.
21889 * config/v850/predicates.md (reg_or_0_operand): Use
21890 satisfies_constraint_G.
21891 (special_symbolref_operand): Use satisfies_constraint_K.
21892 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
21893 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
21894 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
21895 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
21896 (EXTRA_CONSTRAINT): Delete.
21897 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
21898 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
21899 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 21900
30dd1ea3
AS
219012011-02-14 Anatoly Sokolov <aesok@post.ru>
21902
21903 PR target/47696
21904 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
21905 description.
21906
944f4bb3
NF
219072011-02-14 Nathan Froyd <froydnj@codesourcery.com>
21908
21909 * config/mcore/constraints.md: New file.
21910 * config/mcore/mcore.md: Include it.
21911 * config/mcore/mcore.c (reg_class_from_letter): Delete.
21912 * config/mcore/mcore.h (reg_class_from_letter): Delete.
21913 (REG_CLASS_FROM_LETTER): Delete.
21914 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
21915 insn_const_int_ok_for_constraint.
21916 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
21917 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
21918 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
21919 (EXTRA_CONSTRAINT): Delete.
21920
ad56a54c
RO
219212011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21922
21923 PR ada/41929
21924 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
21925 (IS_SIGHANDLER): Define.
21926 (sparc64_is_sighandler): New function, split off from
21927 sparc64_fallback_frame_state.
21928 (sparc_is_sighandler): New function, split off from
21929 sparc_fallback_frame_state.
21930 (sparc64_fallback_frame_state): Merge with ...
21931 (sparc_fallback_frame_state): ... this into ...
21932 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
21933 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
21934 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
21935 stack instead of hardcoded offsets.
ad56a54c 21936
fbf4bfd3 219372011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
21938
21939 PR target/45808
21940 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
21941
029c8f3e
RW
219422011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
21943
21944 * configure: Regenerate.
21945
a016dc83
JM
219462011-02-12 Joseph Myers <joseph@codesourcery.com>
21947
21948 PR driver/45731
21949 * gcc.c (asm_options): Correct spec matching --target-help.
21950
8957a0ec
MJ
219512011-02-12 Martin Jambor <mjambor@suse.cz>
21952
21953 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
21954 to gimple call error.
21955
6ef828bc
MS
219562011-02-12 Mike Stump <mikestump@comcast.net>
21957
21958 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
21959 comments in backslash regions.
21960
a4015be5
MS
219612011-02-12 Mike Stump <mikestump@comcast.net>
21962 Jakub Jelinek <jakub@redhat.com>
21963 Iain Sandoe <iains@gcc.gnu.org>
21964
21965 PR target/47324
21966 * dwarf2out.c (output_cfa_loc): When required, apply the
21967 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
21968 (output_loc_sequence): Likewise.
21969 (output_loc_operands_raw): Likewise.
21970 (output_loc_sequence_raw): Likewise.
21971 (output_cfa_loc): Likewise.
21972 (output_loc_list): Suppress register number adjustment when
21973 calling output_loc_sequence()
21974 (output_die): Likewise.
21975
5378dda2
AS
219762011-02-12 Anatoly Sokolov <aesok@post.ru>
21977
21978 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21979 Remove macros.
21980 * config/xtensa/xtensa.c (xtensa_register_move_cost,
21981 xtensa_memory_move_cost): New functions.
21982 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
21983
f3d533d3
AO
219842011-02-12 Alexandre Oliva <aoliva@redhat.com>
21985
21986 PR lto/47225
21987 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
21988 in the current directory.
21989 * configure: Rebuilt.
21990
9d53403c
IS
219912011-02-12 Iain Sandoe <iains@gcc.gnu.org>
21992
21993 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 21994 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
21995 correct indents of the preceding block.
21996
a350a6c8
IS
219972011-02-12 Iain Sandoe <iains@gcc.gnu.org>
21998
21999 * gcc.c (driver_handle_option): Concatenate the argument to -F with
22000 the switch.
22001
bab79a40
JM
220022011-02-11 Joseph Myers <joseph@codesourcery.com>
22003
22004 * common.opt (nostartfiles): New Driver option.
22005
1bbc6693
XDL
220062011-02-11 Xinliang David Li <davidxl@google.com>
22007
22008 PR tree-optimization/47707
22009 * tree-chrec.c (convert_affine_scev): Keep type precision.
22010
1da7d8c0
EB
220112011-02-11 Eric Botcazou <ebotcazou@adacore.com>
22012
22013 PR tree-optimization/47420
22014 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
22015
220162011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
22017
22018 PR rtl-optimization/47614
22019 * rtl.h (check_for_inc_dec): Declare.
22020 * dse.c (check_for_inc_dec): Externalize...
22021 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
22022 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
22023
4df47bca
JM
220242011-02-11 Joseph Myers <joseph@codesourcery.com>
22025
22026 PR driver/47678
22027 * gcc.c (main): Do not compile inputs if there were errors in
22028 option handling.
22029 * opts-common.c (read_cmdline_option): Check for wrong language
22030 after other error checks.
22031
61502ca8
NF
220322011-02-11 Nathan Froyd <froydnj@codesourcery.com>
22033
22034 * cgraph.c: Fix comment typos.
22035 * cgraph.h: Likewise.
22036 * cgraphunit.c: Likewise.
22037 * ipa-cp.c: Likewise.
22038 * ipa-inline.c: Likewise.
22039 * ipa-prop.c: Likewise.
22040 * ipa-pure-const.c: Likewise.
22041 * ipa-ref.c: Likewise.
22042 * ipa-reference.c: Likewise.
22043
b63f974e
JJ
220442011-02-11 Jakub Jelinek <jakub@redhat.com>
22045
d50c5e0c
JJ
22046 PR debug/47684
22047 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 22048
6dd2a13c
RO
220492011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22050
22051 PR testsuite/47400
22052 * doc/sourcebuild.texi (Require Support): Document
22053 dg-require-ascii-locale.
22054
4a087ccf
MX
220552011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
22056
22057 * doc/lto.texi (Write summary): Fix missing parentheses.
22058
a4403164
DD
220592011-02-10 DJ Delorie <dj@redhat.com>
22060
22061 * config/m32c/m32c.c (m32c_option_override): Disable
22062 -fcombine-stack-adjustments until flag value tracking and compare
22063 optimization can be rewritten.
22064
4fac45bd
PB
220652011-02-10 Peter Bergner <bergner@vnet.ibm.com>
22066
22067 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22068 PROCESSOR_POWER7.
22069 (PROCESSOR_DEFAULT64): Likewise.
22070
72602cd1
RH
220712011-02-10 Richard Henderson <rth@redhat.com>
22072
22073 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22074 change from 2011-02-03.
22075 * config/rx/rx.c (flags_from_code): Likewise.
22076 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22077 is valid, n/pz otherwise.
22078 (rx_select_cc_mode): Return CCmode if Y is not zero.
22079
ea57f573
RG
220802011-02-10 Richard Guenther <rguenther@suse.de>
22081
ea4c3e65 22082 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 22083
92b1d23b
RG
220842011-02-10 Richard Guenther <rguenther@suse.de>
22085
22086 PR tree-optimization/47677
22087 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22088
525a2d06
JJ
220892011-02-10 Jakub Jelinek <jakub@redhat.com>
22090
22091 PR target/47665
22092 * combine.c (make_compound_operation): Only change shifts into
22093 multiplication for SCALAR_INT_MODE_P.
22094
06c969bd
JZ
220952011-02-10 Jie Zhang <jie@codesourcery.com>
22096
22097 PR testsuite/47622
22098 Revert
22099 2011-02-05 Jie Zhang <jie@codesourcery.com>
22100 PR debug/42631
22101 * web.c (entry_register): Don't clobber the number of the
22102 first uninitialized reference in used[].
22103
282ec48e
RG
221042011-02-09 Richard Guenther <rguenther@suse.de>
22105
22106 PR tree-optimization/47664
22107 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22108 all edges again.
22109
df98c3e8
DE
221102011-02-09 David Edelsohn <dje.gcc@gmail.com>
22111
d0f21cd6
DE
22112 PR target/46481
22113 PR target/47032
df98c3e8
DE
22114 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22115 PROCESSOR_POWER7.
22116 (PROCESSOR_DEFAULT64): Same.
22117 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22118
67b6839f
RO
221192011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22120
22121 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22122
4fd73214
MJ
221232011-02-09 Martin Jambor <mjambor@suse.cz>
22124
22125 PR middle-end/45505
22126 * tree-sra.c (struct access): New flags grp_scalar_read and
22127 grp_scalar_write. Changed description of assignment read and write
22128 flags.
22129 (dump_access): Dump new flags, reorder all of them.
22130 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22131 to detect multiple scalar reads.
22132 (analyze_access_subtree): Use the new scalar read write flags instead
22133 of the old flags. Adjusted comments.
22134
91140cd3
DD
221352011-02-08 DJ Delorie <dj@redhat.com>
22136
22137 PR target/47548
22138 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22139 patterns.
22140
4254bbfe
JM
221412011-02-08 Joseph Myers <joseph@codesourcery.com>
22142
22143 * config/m68k/uclinux.opt: New.
22144 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22145
f1fda84e
JM
221462011-02-08 Joseph Myers <joseph@codesourcery.com>
22147
22148 * config/cris/elf.opt (sim): New Driver option.
22149
4933ae74
JM
221502011-02-08 Joseph Myers <joseph@codesourcery.com>
22151
22152 * config/xtensa/elf.opt: New.
22153 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22154
4ad70280
JM
221552011-02-08 Joseph Myers <joseph@codesourcery.com>
22156
22157 * config/vax/elf.opt: New.
22158 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22159
20893707
JM
221602011-02-08 Joseph Myers <joseph@codesourcery.com>
22161
22162 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22163
b8e7038e
JM
221642011-02-08 Joseph Myers <joseph@codesourcery.com>
22165
22166 * config/gnu-user.opt: New.
22167 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22168 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22169 *-*-uclinux*): Use gnu-user.opt.
22170
e1c5225a
TS
221712011-02-08 Thomas Schwinge <thomas@schwinge.name>
22172
22173 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22174 * config/i386/gnu.h (CPP_SPEC): Likewise.
22175
5e46b0c6
ILT
221762011-02-08 Ian Lance Taylor <iant@google.com>
22177
22178 * common.opt (fcx-limited-range): Add SetByCombined flag.
22179 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22180 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22181 (fassociative-math, freciprocal-math): Likewise.
22182 (funsafe-math-optimizations): Likewise.
22183 * opth-gen.awk: Handle SetByCombined.
22184 * optc-gen.awk: Likewise.
ea4c3e65 22185 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
22186 (set_unsafe_math_optimizations_flags): Likewise.
22187 * doc/options.texi (Option properties): Document SetByCombined.
22188
32243d46
JM
221892011-02-08 Joseph Myers <joseph@codesourcery.com>
22190
22191 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22192 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22193 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22194 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22195 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22196
479c1fb3
SP
221972011-02-08 Sebastian Pop <sebastian.pop@amd.com>
22198
22199 PR tree-optimization/46834
22200 PR tree-optimization/46994
22201 PR tree-optimization/46995
22202 * graphite-sese-to-poly.c (used_outside_reduction): New.
22203 (detect_commutative_reduction): Call used_outside_reduction.
22204 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22205 translate_scalar_reduction_to_array only when at least one
22206 loop-phi/close-phi tuple has been detected.
22207
3865a06f
RG
222082011-02-08 Richard Guenther <rguenther@suse.de>
22209
22210 PR middle-end/47639
22211 * tree-vect-generic.c (expand_vector_operations_1): Update
22212 stmts here ...
22213 (expand_vector_operations): ... not here. Cleanup EH info
22214 and the CFG if required.
22215
62902f3f
RG
222162011-02-08 Richard Guenther <rguenther@suse.de>
22217
22218 PR tree-optimization/47641
22219 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22220 require type compatibility.
22221
0efb9d64
AK
222222011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22223
22224 * gimple-low.c (lower_function_body): Don't remove the location of
22225 the return statement here.
22226 (lower_gimple_return): Do it here instead but only if the return
22227 statement is actually used twice.
22228
034b8ae4
RG
222292011-02-08 Richard Guenther <rguenther@suse.de>
22230
22231 PR tree-optimization/47632
22232 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22233 unused up_to_stmt parameter, return whether cfg-cleanup is
22234 necessary, remove EH info properly.
22235 (forward_propagate_into_gimple_cond): Adjust caller.
22236 (forward_propagate_into_cond): Likewise.
22237 (forward_propagate_comparison): Likewise.
22238 (tree_ssa_forward_propagate_single_use_vars): Make
22239 forward_propagate_comparison case similar to the two others.
22240
298362c8
NC
222412011-02-08 Nick Clifton <nickc@redhat.com>
22242
22243 * config/mn10300/mn10300.opt (mliw): New command line option.
22244 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22245 (liw_bundling): New automaton.
22246 (liw): New attribute.
22247 (liw_op): New attribute.
22248 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22249 (movsi_internal): Add LIW attributes.
22250 (andsi3): Likewise.
22251 (iorsi3): Likewise.
22252 (xorsi3): Likewise.
22253 (addsi3): Separate register and immediate alternatives.
22254 Add LIW attributes.
22255 (subsi3): Likewise.
22256 (cmpsi): Likewise.
22257 (aslsi3): Likewise.
22258 (lshrsi3): Likewise.
22259 (ashrsi3): Likewise.
22260 (liw): New pattern.
22261 * config/mn10300/mn10300.c (liw_op_names): New
22262 (mn10300_print_operand): Handle 'W' operand descriptor.
22263 (extract_bundle): New function.
22264 (check_liw_constraints): New function.
22265 (liw_candidate): New function.
22266 (mn10300_bundle_liw): New function.
22267 (mn10300_reorg): New function.
22268 (TARGET_MACHINE_DEPENDENT_REORG): Define.
22269 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22270 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22271 __LIW__ or __NO_LIW__.
22272 * doc/invoke.texi: Describe the -mliw command line option.
22273
90488014
JDA
222742011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22275
22276 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22277 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22278 pthread_mutex_unlock): Remove.
22279 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22280 * config/pa/t-pa64: Likewise.
22281 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22282 shared libc if not linking against libpthread.
22283 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22284
689ff841
IS
222852011-02-07 Iain Sandoe <iains@gcc.gnu.org>
22286
22287 PR target/47558
22288 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22289 on 10.6 and later to ensure that we always use the unwinder from
22290 the system. Only add -no_compact_unwind when tarteting darwin
22291 10.6 or later.
22292
821014aa
SE
222932011-02-07 Steve Ellcey <sje@cup.hp.com>
22294
22295 PR target/46997
22296 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22297 (vec_interleave_lowv2sf): Ditto.
22298 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22299 (vec_extract_oddv2sf): Ditto.
22300
41cf94fb
MS
223012011-02-07 Mike Stump <mikestump@comcast.net>
22302
62dea57d 22303 PR target/42333
41cf94fb
MS
22304 Add __ieee_divdc3 entry point.
22305 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22306 entry point.
22307 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22308 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22309 * config/darwin.c (darwin_rename_builtins): Add.
22310 * config/darwin-protos.h (darwin_rename_builtins): Add.
22311
ee09a3dd
MM
223122011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
22313
22314 PR target/47636
22315 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22316 for the condition.
22317
83296cd0
MS
223182011-02-07 Mike Stump <mikestump@comcast.net>
22319
ea4c3e65 22320 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 22321
0f4e946f
DC
223222011-02-07 Denis Chertykov <chertykov@gmail.com>
22323
22324 PR target/47534
22325 * config/avr/libgcc.S (exit): Move .endfunc
22326
1ec87690
RG
223272011-02-07 Richard Guenther <rguenther@suse.de>
22328
22329 PR tree-optimization/47615
22330 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22331 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22332 (run_scc_vn): Initialize it.
22333 (visit_reference_op_load): Use it.
22334 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22335
b46ae6da
UW
223362011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
22337
22338 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22339 DImode trapping arithmetic libfuncs.
22340
c0aae19c
RG
223412011-02-07 Richard Guenther <rguenther@suse.de>
22342
22343 PR tree-optimization/47621
22344 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22345 two duplicates ...
22346 (execute_update_addresses_taken): ... here. Make it more
22347 conservative in what we accept.
22348
295d926b
JM
223492011-02-06 Joseph Myers <joseph@codesourcery.com>
22350
22351 * config/sparc/freebsd.h (ASM_SPEC): Define.
22352 * config/sparc/vxworks.h (ASM_SPEC): Define.
22353
bdeb2471
JM
223542011-02-06 Joseph Myers <joseph@codesourcery.com>
22355
22356 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22357
d5d3781a
SB
223582011-02-06 Steven Bosscher <steven@gcc.gnu.org>
22359
22360 * doc/invoke.texi: Remove reference to compiler internals from
22361 user documentation.
22362
22363 * reg-notes.def: Remove REG_VALUE_PROFILE.
22364 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22365
c42c09fc
JJ
223662011-02-05 Jakub Jelinek <jakub@redhat.com>
22367
22368 PR middle-end/47610
22369 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 22370 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 22371
beea2755
JZ
223722011-02-05 Jie Zhang <jie@codesourcery.com>
22373
22374 PR debug/42631
22375 * web.c (entry_register): Don't clobber the number of the
22376 first uninitialized reference in used[].
22377
a130584a
SP
223782011-02-04 Sebastian Pop <sebastian.pop@amd.com>
22379
22380 PR tree-optimization/46194
22381 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22382 (build_classic_dist_vector_1): Do not represent classic distance
22383 vectors when the access functions are variating in different loops.
22384
962101ac
JM
223852011-02-04 Joseph Myers <joseph@codesourcery.com>
22386
22387 * config/mips/iris6.opt: New.
22388 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22389
55eaaa5b
RH
223902011-02-04 Richard Henderson <rth@redhat.com>
22391 Steve Ellcey <sje@cup.hp.com>
22392
22393 PR target/46997
22394 * config/ia64/predicates.md (mux1_brcst_element): New.
22395 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22396 * config/ia64/ia64.c (ia64_unpack_assemble): New.
22397 (ia64_unpack_sign): New.
22398 (ia64_expand_unpack): Rewrite using new routines.
22399 (ia64_expand_widen_sum): Ditto.
22400 (ia64_expand_dot_prod_v8qi): Ditto.
22401 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22402 routines, add endian check.
22403 (pmpy2_even): Rename from pmpy2_r, add endian check.
22404 (pmpy2_odd): Rename from pmpy2_l, add endian check.
22405 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22406 (vec_widen_smult_hi_v4hi): Ditto.
22407 (vec_widen_umult_lo_v4hi): Ditto.
22408 (vec_widen_umult_hi_v4hi): Ditto.
22409 (mulv2si3): Change endian checks.
22410 (sdot_prodv4hi): Rewrite with new calls.
22411 (udot_prodv4hi): New.
22412 (vec_pack_ssat_v4hi): Add endian check.
22413 (vec_pack_usat_v4hi): Ditto.
22414 (vec_pack_ssat_v2si): Ditto.
22415 (max1_even): Rename from max1_r, add endian check.
22416 (max1_odd): Rename from max1_l, add endian check.
22417 (*mux1_rev): Format change.
22418 (*mux1_mix): Ditto.
22419 (*mux1_shuf): Ditto.
22420 (*mux1_alt): Ditto.
22421 (*mux1_brcst_v8qi): Use new predicate.
22422 (vec_extract_evenv8qi): Remove endian check.
22423 (vec_extract_oddv8qi): Ditto.
22424 (vec_interleave_lowv4hi): Format change.
22425 (vec_interleave_highv4hi): Ditto.
22426 (mix2_even): Rename from mix2_r, add endian check.
22427 (mix2_odd): Rename from mux2_l, add endian check.
22428 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22429 (vec_extract_evenodd_helper): Format change.
22430 (vec_extract_evenv4hi): Remove endian check.
22431 (vec_extract_oddv4hi): Remove endian check.
22432 (vec_interleave_lowv2si): Format change.
22433 (vec_interleave_highv2si): Format change.
22434 (vec_initv2si): Remove endian check.
22435 (vecinit_v2si): Add endian check.
22436 (reduc_splus_v2sf): Add endian check.
22437 (reduc_smax_v2sf): Ditto.
22438 (reduc_smin_v2sf): Ditto.
22439 (vec_initv2sf): Remove endian check.
22440 (fpack): Add endian check.
22441 (fswap): Add endian check.
22442 (vec_interleave_highv2sf): Add endian check.
22443 (vec_interleave_lowv2sf): Add endian check.
22444 (fmix_lr): Add endian check.
22445 (vec_setv2sf): Format change.
22446 (*vec_extractv2sf_0_be): Use shift to extract operand.
22447 (*vec_extractv2sf_1_be): New.
22448 (vec_pack_trunc_v4hi): Add endian check.
22449 (vec_pack_trunc_v2si): Format change.
22450
dcde5957
JJ
224512011-02-04 Jakub Jelinek <jakub@redhat.com>
22452
22453 PR inline-asm/23200
22454 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 22455 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
22456 (stmt_is_replaceable_p): New function.
22457 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22458 callers.
22459 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22460 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22461 SSA_NAME_DEF_STMT.
22462 * tree-flow.h (stmt_is_replaceable_p): New prototype.
22463
a64a8e5a
JM
224642011-02-04 Joseph Myers <joseph@codesourcery.com>
22465
22466 * config/rs6000/xilinx.opt: New.
22467 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22468
4da2ed2f
JM
224692011-02-04 Joseph Myers <joseph@codesourcery.com>
22470
22471 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22472
a6e508f9
AS
224732011-02-03 Anatoly Sokolov <aesok@post.ru>
22474
22475 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22476 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22477 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22478 secondary_reload_info, xtensa_secondary_reload): Remove.
22479 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22480 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22481 (xtensa_preferred_reload_class): Make static. Change return and
22482 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22483 Use CONST_DOUBLE_P predicate.
22484 (xtensa_preferred_output_reload_class): New function.
22485 (xtensa_secondary_reload): Make static.
22486
82dc0de3
JM
224872011-02-03 Joseph Myers <joseph@codesourcery.com>
22488
22489 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22490 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22491 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22492
7fece979
JJ
224932011-02-03 Jakub Jelinek <jakub@redhat.com>
22494
22495 PR middle-end/31490
22496 * output.h (SECTION_RELRO): Define.
22497 (SECTION_MACH_DEP): Adjust.
22498 (get_variable_section): New prototype.
22499 * varpool.c (varpool_finalize_named_section_flags): New function.
22500 (varpool_assemble_pending_decls): Call it.
22501 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22502 * cgraphunit.c (cgraph_output_in_order): Call
22503 varpool_finalize_named_section_flags.
22504 * varasm.c (get_section): Allow section flags conflicts between
22505 relro and read-only sections if the section hasn't been declared yet.
22506 Set SECTION_OVERRIDE after diagnosing section type conflict.
22507 (get_variable_section): No longer static.
22508 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22509 readonly sections that need relocations.
22510 (decl_readonly_section_1): New function.
22511 (decl_readonly_section): Use it.
22512
22513 Revert:
509d65dd 22514 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
22515 Steve Ellcey <sje@cup.hp.com>
22516
22517 PR middle-end/31490
22518 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22519 if section attribute used.
22520
d18d5478
JJ
225212011-02-03 Jakub Jelinek <jakub@redhat.com>
22522
22523 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22524 * config/darwin.c (SECTION_NO_ANCHOR): Define.
22525 (darwin_init_sections): Remove assertion.
22526
6479ed4b
NC
225272011-02-03 Nick Clifton <nickc@redhat.com>
22528
22529 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22530 lt and ge.
38be4072 22531 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
22532 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22533 instead of "n" and "pz".
22534 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22535 CC_FLAG_S.
22536
89843f5d
JJ
225372011-02-03 Jakub Jelinek <jakub@redhat.com>
22538
65450d64
JJ
22539 PR target/47312
22540 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22541 fma, expand FMA_EXPR as fma{,f,l} call.
22542
7d58701c
JJ
22543 PR lto/47274
22544 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22545 copy them into a unsigned char variable and pass address of it to
22546 lto_output_data_stream.
22547
89843f5d
JJ
22548 PR target/47564
22549 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22550 around backend_init_target and lang_dependent_init_target calls.
22551 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22552 (verify_cgraph_node): Don't call set_cfun here. Use
22553 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22554 Set error_found for incorrectly represented calls to thunks.
22555
4deef538
AO
225562011-02-03 Alexandre Oliva <aoliva@redhat.com>
22557
22558 PR debug/43092
22559 PR rtl-optimization/43494
22560 * rtl.h (for_each_inc_dec_fn): New type.
22561 (for_each_inc_dec): Declare.
22562 * rtlanal.c (struct for_each_inc_dec_ops): New type.
22563 (for_each_inc_dec_find_inc_dec): New fn.
22564 (for_each_inc_dec_find_mem): New fn.
22565 (for_each_inc_dec): New fn.
22566 * dse.c (struct insn_size): Remove.
22567 (replace_inc_dec, replace_inc_dec_mem): Remove.
22568 (emit_inc_dec_insn_before): New fn.
22569 (check_for_inc_dec): Use it, along with for_each_inc_dec.
22570 (canon_address): Pass mem modes to cselib_lookup.
22571 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
22572 (cselib_lookup_from_insn): Likewise.
22573 (cselib_subst_to_values): Likewise.
22574 * cselib.c (find_slot_memmode): New var.
22575 (cselib_find_slot): New fn. Use it instead of
22576 htab_find_slot_with_hash everywhere.
22577 (entry_and_rtx_equal_p): Use find_slot_memmode.
22578 (autoinc_split): New fn.
22579 (rtx_equal_for_cselib_p): Rename and implement in terms of...
22580 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
22581 Deal with autoinc. Special-case recursion into MEMs.
22582 (cselib_hash_rtx): Likewise.
22583 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
22584 address and MEM modes.
22585 (cselib_subst_to_values): Add memmode, pass it on.
22586 Deal with autoinc.
22587 (cselib_lookup): Add memmode argument, pass it on.
22588 (cselib_lookup_from_insn): Add memmode.
22589 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22590 (struct cselib_record_autoinc_data): New.
22591 (cselib_record_autoinc_cb): New fn.
22592 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
22593 mode to cselib_lookup. Reset autoinced REGs here instead of...
22594 (cselib_process_insn): ... here.
22595 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22596 to cselib_lookup.
22597 (add_uses): Likewise, also to cselib_subst_to_values.
22598 (add_stores): Likewise.
276e0224 22599 * sched-deps.c (add_insn_mem_dependence): Pass mode to
4deef538
AO
22600 cselib_subst_to_values.
22601 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
22602 * gcse.c (do_local_cprop): Adjusted.
22603 * postreload.c (reload_cse_simplify_set): Adjusted.
22604 (reload_cse_simplify_operands): Adjusted.
22605 * sel-sched-dump (debug_mem_addr_value): Pass mode.
22606
1551d44a
AO
226072011-02-03 Alexandre Oliva <aoliva@redhat.com>
22608
22609 PR tree-optimization/45122
22610 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22611 unsafe assumptions when there's more than one loop exit.
22612
c9485473
MM
226132011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
22614
22615 PR target/47272
22616 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22617 Document using vector double with the load/store builtins, and
22618 that the load/store builtins always use Altivec instructions.
22619
22620 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22621 to use altivec memory instructions, even on VSX.
22622 (vector_altivec_store_<mode>): Ditto.
22623
22624 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22625 function.
22626
22627 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22628 V2DF, V2DI support to load/store overloaded builtins.
22629
22630 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22631 altivec load/store builtins for V2DF/V2DI types.
22632
22633 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22634 set avoid indexed addresses on power6 if -maltivec.
22635 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22636 vector_altivec_load/vector_altivec_store builtins.
22637 (altivec_expand_st_builtin): Ditto.
22638 (altivec_expand_builtin): Add VSX memory builtins.
22639 (rs6000_init_builtins): Add V2DI types to internal types.
22640 (altivec_init_builtins): Add support for V2DF/V2DI altivec
22641 load/store builtins.
22642 (rs6000_address_for_altivec): Insure memory address is appropriate
22643 for Altivec.
22644
22645 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22646 vec_vsx_ld and vec_vsx_st.
22647 (vsx_store_<mode>): Ditto.
22648
22649 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22650 variables to hold long long types for VSX vector memory builtins.
22651 (RS6000_BTI_unsigned_long_long): Ditto.
22652 (long_long_integer_type_internal_node): Ditti.
22653 (long_long_unsigned_type_internal_node): Ditti.
22654
22655 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22656 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22657 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22658
22659 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22660 short cuts.
22661 (vec_vsx_st): Ditto.
22662
b24d1acf
JM
226632011-02-02 Joseph Myers <joseph@codesourcery.com>
22664
22665 * config/pa/pa-hpux10.opt: New.
22666 * config/hpux11.opt (pthread): New Driver option.
22667 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22668 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22669
aa18dd0f
JM
226702011-02-02 Joseph Myers <joseph@codesourcery.com>
22671
22672 * config/ia64/vms.opt: New.
22673 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22674
28fc3eee
MM
226752011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
22676
22677 PR target/47580
22678 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22679 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22680 generator functions.
22681 (vsx_floatuns<VSi><mode>2): Ditto.
22682 (vsx_fix_trunc<mode><VSi>2): Ditto.
22683 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
22684
b5838b1f
JM
226852011-02-02 Joseph Myers <joseph@codesourcery.com>
22686
22687 * config/i386/djgpp.opt (posix): New Driver option.
22688
0db8fa89
GP
226892011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
22690
22691 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
22692 Move to the unsupported targets list.
22693
9cd4f22a
PB
226942011-02-02 Peter Bergner <bergner@vnet.ibm.com>
22695
22696 PR rtl-optimization/47525
22697 * df-scan.c: Update copyright years.
22698 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
22699 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
22700
9ed8059c
RO
227012011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22702
22703 * config/i386/sysv4.h (TARGET_VERSION): Remove.
22704 (SUBTARGET_RETURN_IN_MEMORY): Remove.
22705 (ASM_OUTPUT_ASCII): Remove.
22706 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
22707
2a737389
JL
227082011-02-02 Jeff Law <law@redhat.com>
22709
22710 PR middle-end/47543
22711 * reload.c (find_reloads_address): Handle reg+d address where both
22712 components are invalid by reloading the entire address.
22713
9dac82c4
SP
227142011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22715 Richard Guenther <rguenther@suse.de>
22716
22717 PR tree-optimization/40979
22718 PR bootstrap/47044
22719 * passes.c (init_optimization_passes): After LIM call copy_prop
22720 and DCE to clean up.
22721 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
22722
14dd9aab
SP
227232011-02-02 Sebastian Pop <sebastian.pop@amd.com>
22724
22725 PR tree-optimization/47576
22726 PR tree-optimization/47555
22727 * doc/invoke.texi (scev-max-expr-complexity): Documented.
22728 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22729 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
22730 * tree-scalar-evolution.c (follow_ssa_edge): Use
22731 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
22732
5cbf5c20
RG
227332011-02-02 Richard Guenther <rguenther@suse.de>
22734
22735 PR tree-optimization/47566
22736 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
22737
83d70792
AO
227382011-02-02 Alexandre Oliva <aoliva@redhat.com>
22739
e829c321
AO
22740 PR debug/47106
22741 PR debug/47402
22742 * tree-inline.c (declare_return_variable): Remove unused caller
22743 variable.
22744
83d70792
AO
22745 PR debug/47106
22746 PR debug/47402
22747 * tree-flow-inline.h (clear_is_used, is_used_p): New.
22748 * cfgexpand.c (account_used_vars_for_block): Use them.
22749 * tree-nrv.c (tree_nrv): Likewise.
22750 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
22751 (dump_scope_block): Likewise.
22752 (remove_unused_locals): Likewise.
22753
aaa2ac93
AO
22754 PR debug/47106
22755 PR debug/47402
22756 * tree-inline.c (declare_return_variable): Add result decl to
22757 local decls only once.
22758 * gimple-low.c (record_vars_into): Mark newly-created variables
22759 as referenced.
22760
a59d15cf
AO
227612011-02-02 Alexandre Oliva <aoliva@redhat.com>
22762
22763 PR debug/47498
22764 PR debug/47501
22765 PR debug/45136
22766 PR debug/45130
22767 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22768 debug insns.
22769 (no_real_insns_p, schedule_block, set_priorities): Drop special
22770 treatment of boundary debug insns.
38be4072 22771 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
22772 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
22773 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22774 (BOUNDARY_DEBUG_INSN_P): Likewise.
22775 (SCHEDULE_DEBUG_INSN_P): Likewise.
22776 * sched-rgn.c (init_ready_list): Drop special treatment of
22777 boundary debug insns.
22778 * final.c (rest_of_clean_state): Clear notes' BB.
22779
6fc2f091
JM
227802011-02-01 Joseph Myers <joseph@codesourcery.com>
22781
22782 * config/openbsd.opt (assert=): New Driver option.
22783
fc523387
JM
227842011-02-01 Joseph Myers <joseph@codesourcery.com>
22785
22786 * config/i386/nto.opt: New.
22787 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
22788
6d9821e5
JM
227892011-02-01 Joseph Myers <joseph@codesourcery.com>
22790
22791 * config/i386/netware.opt: New.
22792 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
22793
cef932d4
JM
227942011-02-01 Joseph Myers <joseph@codesourcery.com>
22795
22796 * config/interix.opt (posix): New Driver option.
22797
22843acd
DD
227982011-02-01 DJ Delorie <dj@redhat.com>
22799
56490b74
DD
22800 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
22801
22843acd
DD
22802 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
22803 class for A0/A1.
22804
199c8f2f
SP
228052011-02-01 Sebastian Pop <sebastian.pop@amd.com>
22806
22807 PR tree-optimization/47561
22808 * toplev.c (process_options): Print the Graphite flags. Add
22809 flag_loop_flatten to the list of options requiring Graphite.
22810
926bcf22
JM
228112011-02-01 Joseph Myers <joseph@codesourcery.com>
22812
22813 * config/i386/cygming.opt (posix): New Driver option.
22814
59793c51
JM
228152011-02-01 Joseph Myers <joseph@codesourcery.com>
22816
22817 * config/arm/vxworks.opt: New.
22818 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
22819
183c38a4
JM
228202011-02-01 Joseph Myers <joseph@codesourcery.com>
22821
22822 * config/alpha/elf.opt: New.
22823 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
22824 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
22825
9939e416
RG
228262011-02-01 Richard Guenther <rguenther@suse.de>
22827
22828 PR tree-optimization/47559
22829 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
22830 store-motion on references that can throw.
22831
4a3c9687
BS
228322011-02-01 Bernd Schmidt <bernds@codesourcery.com>
22833
22834 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
22835 * tree-pass.h (TDF_CSELIB): New macro.
22836 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
22837 cselib_lookup): Check for it rather than for TDF_DETAILS.
22838
dd3b31fb
L
228392011-02-01 H.J. Lu <hongjiu.lu@intel.com>
22840
22841 PR driver/47547
22842 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
22843 is HOST_BIT_BUCKET.
22844
22845 * opts.c (finish_options): Don't add x_aux_base_name if it is
22846 HOST_BIT_BUCKET.
22847
34c1de79
RG
228482011-02-01 Richard Guenther <rguenther@suse.de>
22849
22850 PR tree-optimization/47555
22851 Revert
22852 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
22853
22854 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
22855
dd2804d2
SB
228562011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
22857
22858 PR gcc/46692
22859 * config/lm32/t-lm32: Add multilib for all CPU options.
22860
3fd3b156
RG
228612011-02-01 Richard Guenther <rguenther@suse.de>
22862
22863 PR tree-optimization/47541
22864 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
22865 sure to have a field at offset zero.
22866
f16072b6
JM
228672011-01-31 Joseph Myers <joseph@codesourcery.com>
22868
22869 * config/arc/arc.opt (EB, EL): New Driver options.
22870
6456cf2e
JM
228712011-01-31 Joseph Myers <joseph@codesourcery.com>
22872
22873 * config/alpha/osf5.opt: New.
22874 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
22875
cdde6ab4
JM
228762011-01-31 Joseph Myers <joseph@codesourcery.com>
22877
22878 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
22879
7633415c
SP
228802011-01-31 Sebastian Pop <sebastian.pop@amd.com>
22881
22882 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
22883 -floop-interchange.
22884 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
22885 is an alias of -floop-interchange and that it requires the
22886 Graphite infrastructure.
22887 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
22888 flag_loop_interchange based on the value of flag_tree_loop_linear.
22889
0425d6f5
JJ
228902011-01-31 Jakub Jelinek <jakub@redhat.com>
22891 Richard Guenther <rguenther@suse.de>
22892
22893 PR tree-optimization/47538
22894 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
22895 type instead of r1type, except for comparisons. For right
22896 shifts and comparisons punt if there are mismatches in
22897 sizetype vs. non-sizetype types.
22898
500b16c3
RO
228992011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22900
22901 * doc/sourcebuild.texi (Effective-Target Keywords): Document
22902 avx_runtime.
22903
e279edb0
RO
229042011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22905
22906 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
22907 version number.
22908 * configure: Regenerate.
22909
c6092243
RO
229102011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22911
22912 * configure.ac (gcc_cv_ld_static_option): Define.
22913 (gcc_cv_ld_dynamic_option): Define.
22914 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
22915 instead.
22916 (HAVE_LD_STATIC_DYNAMIC): Update message.
22917 (LD_STATIC_OPTION): Define.
22918 (LD_DYNAMIC_OPTION): Define.
22919 * configure: Regenerate.
22920 * config.in: Regenerate.
22921 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
22922 HAVE_LD_STATIC_DYNAMIC]: Use them.
22923
d7862be3
NC
229242011-01-31 Nick Clifton <nickc@redhat.com>
22925
22926 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
22927 registers inside interrupt handlers if the handler is not a leaf
22928 function.
22929
ba4ec0e0
NC
229302011-01-31 Nick Clifton <nickc@redhat.com>
22931
22932 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
22933 reg_renumber returning an INVALID_REGNUM.
22934
29a63921
AO
229352011-01-31 Alexandre Oliva <aoliva@redhat.com>
22936
22937 PR libgcj/44341
22938 * doc/install.texi: Document host options discarded when cross
22939 configuring target libraries.
22940
ef591d3f
AO
229412011-01-31 Alexandre Oliva <aoliva@redhat.com>
22942
22943 Reverted:
22944 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
22945 PR debug/45136
22946 PR debug/45130
22947 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
22948 debug insns.
22949 (no_real_insns_p, schedule_block, set_priorities): Drop special
22950 treatment of boundary debug insns.
38be4072 22951 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
22952 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
22953 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
22954 (BOUNDARY_DEBUG_INSN_P): Likewise.
22955 (SCHEDULE_DEBUG_INSN_P): Likewise.
22956 * sched-rgn.c (init_ready_list): Drop special treatment of
22957 boundary debug insns.
22958 * final.c (rest_of_clean-state): Clear notes' BB.
22959
61052244
AM
229602011-01-31 Alan Modra <amodra@gmail.com>
22961
22962 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
22963 toc relative expressions as we do in print_operand_address.
22964
c4c8962b
KH
229652011-01-30 Kazu Hirata <kazu@codesourcery.com>
22966
22967 * doc/extend.texi: Follow spelling conventions.
22968 * doc/invoke.texi: Fix a typo.
22969
e543b94c
JM
229702011-01-30 Joseph Myers <joseph@codesourcery.com>
22971
22972 * config/hpux11.opt: New.
22973 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
22974 ia64*-*-hpux*): Use hpux11.opt.
22975
509d65dd 229762011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
22977
22978 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
22979 to tmake_file.
22980
7be03a0e
GP
229812011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
22982
22983 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
22984 support sites.
22985
419d1d37
GP
229862011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
22987
b596ed64
GP
22988 * doc/install.texi (Binaries): Remove outdated reference for
22989 Motorola 68HC11/68HC12 downloads.
22990
229912011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 22992
419d1d37
GP
22993 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
22994 Drepper's paper.
22995
4406d0e9
JW
229962011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
22997
22998 PR bootstrap/47147
22999 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
23000 used by NetBSD.
23001
38be4072 230022011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
23003
23004 * value-prof.c (check_counter): Corrected error message.
23005
0cd98787
JZ
230062011-01-29 Jie Zhang <jie@codesourcery.com>
23007
23008 * config/arm/arm.c (arm_legitimize_reload_address): New.
23009 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
23010 arm_legitimize_reload_address.
38be4072 23011 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 23012
9b798ac5
ILT
230132011-01-28 Ian Lance Taylor <iant@google.com>
23014
23015 * godump.c (go_define): Ignore macros whose definitions include
23016 two adjacent operands.
23017
591e29d9
JJ
230182011-01-28 Jakub Jelinek <jakub@redhat.com>
23019
23020 PR target/42894
23021 * varasm.c (force_const_mem): Store copy of x in desc->constant
23022 instead of x itself.
23023 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
23024 itself into REG_EQUAL note.
23025
62dcc44a
JM
230262011-01-28 Joseph Myers <joseph@codesourcery.com>
23027
23028 * config/freebsd.opt (posix, rdynamic): New Driver options.
23029
c9f58b9a
RO
230302011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23031
23032 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
23033 -Bstatic/-Bdynamic.
23034 * configure: Regenerate.
23035
5f02b9db
JM
230362011-01-27 Joseph Myers <joseph@codesourcery.com>
23037
23038 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23039 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23040
5df97412
AS
230412011-01-27 Anatoly Sokolov <aesok@post.ru>
23042
23043 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23044 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23045 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23046 (s390_preferred_reload_class): Make static. Change return and
23047 'rclass' argument type to reg_class_t.
23048
779d4b91
JH
230492011-01-27 Jan Hubicka <jh@suse.cz>
23050
23051 PR middle-end/46949
23052 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23053 (process_function_and_variable_attributes): Check defined weakrefs.
23054
e80b21ed
MJ
230552011-01-27 Martin Jambor <mjambor@suse.cz>
23056
23057 PR tree-optimization/47228
23058 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23059 build_ref_for_offset.
23060
6dcc4f31
UW
230612011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23062
23063 * config/spu/spu-elf.h (ASM_SPEC): Remove.
23064
509d65dd 230652011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
23066
23067 PR rtl-optimization/46856
23068 * postreload.c (reload_combine_recognize_const_pattern): Do not
23069 separate cc0 setter and user on cc0 targets.
23070
04af8788
NP
230712011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
23072
23073 PR c/43082
23074 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23075 passed a VOID_TYPE expression, immediately emit an error and
23076 return error_mark_node.
23077
f7a60085
JL
230782011-01-26 Jeff Law <law@redhat.com>
23079
23080 PR rtl-optimization/47464
23081 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23082 rather than may_trap_p as needed.
23083
5c2917ec
DD
230842011-01-26 DJ Delorie <dj@redhat.com>
23085
23086 PR rtl-optimization/46878
23087 * combine.c (insn_a_feeds_b): Check for the implicit cc0
23088 setter/user dependency as well.
23089
bef16e87
EB
230902011-01-26 Eric Botcazou <ebotcazou@adacore.com>
23091
23092 PR rtl-optimization/44469
23093 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23094 after removing trivially dead basic blocks.
23095
c75d884b
JM
230962011-01-26 Joseph Myers <joseph@codesourcery.com>
23097
23098 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23099 * config/frv/frv.h (LINK_SPEC): Likewise.
23100 * config/i386/netware.h (LINK_SPEC): Likewise.
23101 * config/m68k/linux.h (ASM_SPEC): Likewise.
23102 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23103 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23104 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23105 * config/sparc/linux.h (ASM_SPEC): Likewise.
23106 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23107 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23108
d3153553
JM
231092011-01-26 Joseph Myers <joseph@codesourcery.com>
23110
23111 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23112 * config/frv/frv.h (ASM_SPEC): Likewise.
23113 * config/m68k/linux.h (ASM_SPEC): Likewise.
23114 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23115 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23116 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23117 * config/sparc/linux.h (ASM_SPEC): Likewise.
23118 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23119 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23120
b89b1e9d
JM
231212011-01-26 Joseph Myers <joseph@codesourcery.com>
23122
23123 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23124 * config/frv/frv.h (LINK_SPEC): Likewise.
23125 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23126
12eb1a9c
JM
231272011-01-26 Joseph Myers <joseph@codesourcery.com>
23128
23129 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23130 * config/frv/frv.h (ASM_SPEC): Likewise.
23131 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23132 * config/m68k/linux.h (ASM_SPEC): Likewise.
23133 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23134 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23135 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23136 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23137 * config/sparc/linux.h (ASM_SPEC): Likewise.
23138 * config/sparc/linux64.h (ASM_SPEC): Likewise.
23139 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23140 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23141
e435f098
SE
231422011-01-26 Steve Ellcey <sje@cup.hp.com>
23143
23144 PR target/46997
23145 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23146 (*mux2): Ditto.
23147 (vec_extract_evenodd_help): Ditto.
23148 (vec_extract_evenv4hi): Ditto.
23149 (vec_extract_oddv4hi): Ditto.
23150 (vec_interleave_lowv2si): Ditto.
23151 (vec_interleave_highv2si): Ditto.
23152 (vec_extract_evenv2si): Ditto.
23153 (vec_extract_oddv2si: Ditto.
23154 (vec_pack_trunc_v2si): Ditto.
23155
34f0eee0
JH
231562011-01-22 Jan Hubicka <jh@suse.cz>
23157
23158 PR target/47237
23159 * cgraph.h (cgraph_local_info): New field can_change_signature.
23160 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23161 signature can change.
23162 (ipcp_estimate_growth): Call sequence simplify only if calle signature
23163 can change.
23164 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23165 (cgraph_function_versioning): We can not change signature of functions
23166 that don't allow that.
23167 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23168 (lto_input_node): Likewise.
38be4072
UB
23169 * ipa-inline.c (compute_inline_parameters): Compute
23170 local.can_change_signature.
34f0eee0 23171 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
23172 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23173 functions that can not change signature.
34f0eee0 23174 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
23175 init_cumulative_args): Do not use local calling conventions
23176 for functions that can not change signature.
34f0eee0 23177
980ca891
JH
231782011-01-22 Jan Hubicka <jh@suse.cz>
23179
23180 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23181
768e3c60
RG
231822011-01-26 Richard Guenther <rguenther@suse.de>
23183
23184 PR tree-optimization/47190
61052244
AM
23185 * cgraphunit.c (process_common_attributes): New function.
23186 (process_function_and_variable_attributes): Use it.
768e3c60 23187
21d6a1c7
RG
231882011-01-26 Richard Guenther <rguenther@suse.de>
23189
23190 PR lto/47423
23191 * cgraphbuild.c (record_eh_tables): Record reference to personality
23192 function.
23193
48bb58b1
AO
231942011-01-26 Alexandre Oliva <aoliva@redhat.com>
23195
23196 PR debug/45454
23197 * sel-sched.c (moveup_expr): Don't let debug insns prevent
23198 non-debug insns from moving up.
23199
58c741a6
DK
232002011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23201
23202 PR target/40125
23203 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23204 t-dlldir{,-x} fragment for build and add it to tmake_file.
23205 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23206 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23207 * config/i386/t-dlldir: New file.
23208 (SHLIB_DLLDIR): Define.
23209 * config/i386/t-dlldir-x: New file.
23210 (SHLIB_DLLDIR): Define.
23211 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23212 (SHLIB_INSTALL): Use it.
23213
bff99262
CLT
232142011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
23215
23216 PR target/47246
23217 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23218 lower bound of the allowed Thumb-2 coprocessor load/store
23219 index range to -256. Add explaining comment.
23220
82c03907
ILT
232212011-01-25 Ian Lance Taylor <iant@google.com>
23222
23223 * godump.c (go_define): Improve lexing of macro expansion to only
23224 accept expressions which match Go spec.
23225
47ea1edf
DK
232262011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
23227
d4dba752 23228 PR c++/43601
47ea1edf
DK
23229 * tree.c (handle_dll_attribute): Handle it.
23230 * doc/extend.texi (@item dllexport): Mention it.
23231 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23232
744f0946
ILT
232332011-01-25 Ian Lance Taylor <iant@google.com>
23234
23235 PR tree-optimization/26854
23236 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23237 (decl_jump_unsafe): Move higher in file, with no other change.
23238 (bind): Set has_jump_unsafe_decl if appropriate.
23239 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23240 (check_earlier_gotos): Likewise.
23241 (c_check_switch_jump_warnings): Likewise.
23242
5734f2b3
JW
232432011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
23244
23245 * doc/invoke.texi (Warning Options): Add missing hyphen.
23246 (-fprofile-dir): Minor grammatical fixes.
23247 (-fbranch-probabilities): Likewise.
23248
9bdbdcef
AO
232492011-01-25 Alexandre Oliva <aoliva@redhat.com>
23250
23251 PR debug/45136
23252 PR debug/45130
23253 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23254 debug insns.
23255 (no_real_insns_p, schedule_block, set_priorities): Drop special
23256 treatment of boundary debug insns.
38be4072 23257 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
23258 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23259 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23260 (BOUNDARY_DEBUG_INSN_P): Likewise.
23261 (SCHEDULE_DEBUG_INSN_P): Likewise.
23262 * sched-rgn.c (init_ready_list): Drop special treatment of
23263 boundary debug insns.
23264 * final.c (rest_of_clean-state): Clear notes' BB.
23265
b305e3da
SP
232662011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23267
23268 * Makefile.in (LAMBDA_H): Removed.
23269 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23270 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23271 lambda-trans.o, and tree-loop-linear.o.
23272 (lto-symtab.o): Remove dependence on LAMBDA_H.
23273 (tree-loop-linear.o): Remove rule.
23274 (lambda-mat.o): Same.
23275 (lambda-trans.o): Same.
23276 (lambda-code.o): Same.
23277 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23278 (tree-vect-slp.o): Same.
23279 * hwint.h (gcd): Moved here.
23280 (least_common_multiple): Same.
23281 * lambda-code.c: Removed.
23282 * lambda-mat.c: Removed.
23283 * lambda-trans.c: Removed.
23284 * lambda.h: Removed.
23285 * tree-loop-linear.c: Removed.
23286 * lto-symtab.c: Do not include lambda.h.
23287 * omega.c (gcd): Removed.
23288 * passes.c (init_optimization_passes): Remove pass_linear_transform.
23289 * tree-data-ref.c (print_lambda_vector): Moved here.
23290 (lambda_vector_copy): Same.
23291 (lambda_matrix_copy): Same.
23292 (lambda_matrix_id): Same.
23293 (lambda_vector_first_nz): Same.
23294 (lambda_matrix_row_add): Same.
23295 (lambda_matrix_row_exchange): Same.
23296 (lambda_vector_mult_const): Same.
23297 (lambda_vector_negate): Same.
23298 (lambda_matrix_row_negate): Same.
23299 (lambda_vector_equal): Same.
23300 (lambda_matrix_right_hermite): Same.
23301 * tree-data-ref.h: Do not include lambda.h.
23302 (lambda_vector): Moved here.
23303 (lambda_matrix): Same.
23304 (dependence_level): Same.
23305 (lambda_transform_legal_p): Removed declaration.
23306 (lambda_collect_parameters): Same.
23307 (lambda_compute_access_matrices): Same.
23308 (lambda_vector_gcd): Same.
23309 (lambda_vector_new): Same.
23310 (lambda_vector_clear): Same.
23311 (lambda_vector_lexico_pos): Same.
23312 (lambda_vector_zerop): Same.
23313 (lambda_matrix_new): Same.
23314 * tree-flow.h (least_common_multiple): Removed declaration.
23315 * tree-parloops.c (lambda_trans_matrix): Moved here.
23316 (LTM_MATRIX): Same.
23317 (LTM_ROWSIZE): Same.
23318 (LTM_COLSIZE): Same.
23319 (LTM_DENOMINATOR): Same.
23320 (lambda_trans_matrix_new): Same.
23321 (lambda_matrix_vector_mult): Same.
23322 (lambda_transform_legal_p): Same.
23323 * tree-pass.h (pass_linear_transform): Removed declaration.
23324 * tree-ssa-loop.c (tree_linear_transform): Removed.
23325 (gate_tree_linear_transform): Removed.
23326 (pass_linear_transform): Removed.
23327 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23328 flag_loop_interchange.
23329
6bdfdb96
JJ
233302011-01-25 Jakub Jelinek <jakub@redhat.com>
23331
23332 PR tree-optimization/47265
23333 PR tree-optimization/47443
23334 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23335 if name still has some uses.
23336
e4cba915
MJ
233372011-01-25 Martin Jambor <mjambor@suse.cz>
23338
23339 PR tree-optimization/47382
23340 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23341 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23342
509d65dd 233432011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
23344
23345 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23346 sjlj_except_unwind_info.
23347
194313e2
RG
233482011-01-25 Richard Guenther <rguenther@suse.de>
23349
23350 PR tree-optimization/47426
23351 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23352 visible functions results escape.
23353
147a0bcf
JJ
233542011-01-25 Jakub Jelinek <jakub@redhat.com>
23355
23356 PR target/45701
23357 * config/arm/arm.c (any_sibcall_uses_r3): New function.
23358 (arm_get_frame_offsets): Use it.
23359
db963b52
SP
233602011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23361 Jakub Jelinek <jakub@redhat.com>
23362
23363 PR tree-optimization/47271
23364 * tree-if-conv.c (bb_postdominates_preds): New.
23365 (if_convertible_bb_p): Call bb_postdominates_preds.
23366 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23367 (predicate_scalar_phi): Call bb_postdominates_preds.
23368
bcddd3b9
NC
233692011-01-25 Nick Clifton <nickc@redhat.com>
23370
23371 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23372 * config/rx/rx.c (rx_function_value): Likewise.
23373 (rx_promote_function_mode): Likewise.
23374 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23375 in order to make it legitimate.
38be4072
UB
23376 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23377 make sure that the first operand is the same as the result register.
bcddd3b9
NC
23378 (addsi3_unspec): Delete.
23379 (subdi3): Do not accept immediate operands.
23380 (subdi3_internal): Likewise.
23381
7e6cb022
JL
233822011-01-25 Jeff Law <law@redhat.com>
23383
23384 PR rtl-optimization/37273
23385 * ira-costs.c (scan_one_insn): Detect constants living in memory and
23386 handle them like argument loads from stack slots. Do not double
23387 count memory for memory constants and argument loads from stack slots.
23388
9ffa621e
JJ
233892011-01-25 Jakub Jelinek <jakub@redhat.com>
23390
23391 PR tree-optimization/47427
23392 PR tree-optimization/47428
23393 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23394 coalesce if the new root var would be TREE_READONLY.
23395
5bd6e652
RG
233962011-01-25 Richard Guenther <rguenther@suse.de>
23397
23398 PR middle-end/47414
23399 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23400 correct type for TBAA.
23401
7c48ea69
SP
234022011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23403
23404 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23405 (close_phi_written_to_memory): Call for_each_index with
23406 dr_indices_valid_in_loop.
23407
38013f25
SP
234082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23409
23410 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23411 when it is initialized.
23412
5c640e29
SP
234132011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23414
23415 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23416 call to graphite_find_data_references_in_stmt.
23417 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23418 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
23419 call to graphite_find_data_references_in_stmt.
23420 (analyze_drs_in_stmts): Same.
23421 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23422 in which the scalar analysis of indices is performed.
23423 (create_data_ref): Same. Update call to dr_analyze_indices.
23424 (find_data_references_in_stmt): Update call to create_data_ref.
23425 (graphite_find_data_references_in_stmt): Same.
23426 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23427 declaration.
23428 (create_data_ref): Same.
23429 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23430 call to create_data_ref.
23431
ac53c069
SP
234322011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23433
23434 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 23435 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 23436
3d17df15
SP
234372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23438
23439 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23440 VAR_DECL, PARM_DECL, and RESULT_DECL.
23441
c513da01
SP
234422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23443
23444 * graphite-dependences.c (reduction_dr_1): Allow several reductions
23445 in a reduction PBB.
23446 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23447 that have already been marked as PBB_IS_REDUCTION.
23448
3a292d59
SP
234492011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23450
23451 * graphite-scop-detection.c (same_close_phi_node): New.
23452 (remove_duplicate_close_phi): New.
23453 (make_close_phi_nodes_unique): New.
23454 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23455
ba858447
SP
234562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23457
23458 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23459 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23460 of both data references to be the same.
23461
8d865c56
SP
234622011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23463
38be4072
UB
23464 * graphite-dependences.c (build_lexicographical_constraint): Remove
23465 the gdim parameter.
23466 (build_lexicographical_constraint): Adjust call to
23467 ppl_powerset_is_empty.
8d865c56
SP
23468 (dependence_polyhedron): Same.
23469 (graphite_legal_transform_dr): Same.
23470 (graphite_carried_dependence_level_k): Same.
38be4072
UB
23471 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23472 parameter.
8d865c56
SP
23473 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23474
50034a36
SP
234752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23476
23477 * graphite-sese-to-poly.c
23478 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23479 (close_phi_written_to_memory): New.
23480 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23481 and unshare_expr.
23482
0deada9e
SP
234832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23484
23485 * doc/install.texi: Update the expected version number of PPL to 0.11.
23486 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23487 #if PPL_VERSION_MINOR < 11.
23488
d7d3d6af
SP
234892011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23490
23491 * graphite-dependences.c: Include graphite-cloog-util.h.
23492 (new_poly_ddr): Inlined into dependence_polyhedron.
23493 (free_poly_ddr): Moved close by new_poly_ddr.
23494 (dependence_polyhedron_1): Renamed dependence_polyhedron.
23495 Early return NULL when ppl_powerset_is_empty returns true.
23496 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
23497 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
23498 (graphite_legal_transform_dr): Call new_poly_ddr.
23499 (graphite_carried_dependence_level_k): Same.
23500 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
23501 (dot_transformed_deps_stmt_1): Removed.
23502 (dot_deps_stmt_1): Call dot_deps_stmt_2.
23503 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
23504 (dot_deps_1): Call dot_deps_2.
23505 * Makefile.in (graphite-dependences.o): Add missing dependence on
23506 graphite-cloog-util.h.
23507
28c5db57
SP
235082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23509
23510 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23511 (build_lexicographical_constraint): Same.
23512 (dependence_polyhedron_1): Same.
23513 (graphite_legal_transform_dr): Same.
23514 (graphite_carried_dependence_level_k): Same.
23515 * graphite-ppl.c (ppl_powerset_is_empty): New.
23516 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23517 * tree-data-ref.c (dump_data_reference): Print the basic block index.
23518
5168d98f
SP
235192011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23520
23521 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23522 the "a followed by b" relation and document it.
23523
4a40293a
SP
235242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23525
23526 * graphite-dependences.c (build_lexicographical_constraint): Stop the
23527 iteration when the bag of constraints is empty.
23528
271fb6fa
SP
235292011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23530
23531 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23532
92d23680
SP
235332011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23534
23535 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23536 nest and two loop depths as parameters.
23537 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23538 lst_perfect_nestify.
23539
2f51deff
SP
235402011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23541
23542 * graphite-dependences.c (print_pddr): Call
23543 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23544
07f3593c
SP
235452011-01-25 Sebastian Pop <sebastian.pop@amd.com>
23546
23547 * graphite-ppl.c (debug_gmp_value): New.
23548 * graphite-ppl.h (debug_gmp_value): Declared.
23549
3fae6099
TG
235502011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
23551
23552 * doc/install.texi: Document availability of cloog-0.16.
23553
1c3ba85b
SP
235542011-01-25 Vladimir Kargov <kargov@gmail.com>
23555
23556 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23557 invalid postdominance info.
23558
e8ba94fc
JH
235592011-01-24 Jan Hubicka <jh@suse.cz>
23560
23561 PR c/21659
23562 * doc/extend.texi (weak pragma): Drop claim that it must
23563 appear before definition.
23564 * varasm.c (merge_weak, declare_weak): Only sanity check
23565 that DECL is not output at a time it is declared weak.
23566
2b6e2d13
KZ
235672011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
23568
23569 * machmode.def: Fixed comments.
1c3ba85b 23570
9841210f
KT
235712011-01-24 Kai Tietz <kai.tietz@onevision.com>
23572
23573 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23574
235752011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
23576
23577 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 23578 WORDS_BIG_ENDIAN.
e046112d 23579
a6c5070a
L
235802011-01-24 H.J. Lu <hongjiu.lu@intel.com>
23581
23582 PR target/46519
23583 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23584 (block_info): Add scanned and prev.
23585 (move_or_delete_vzeroupper_2): Return if the basic block
23586 has been scanned and the upper 128bit state is unchanged
23587 from the last scan.
23588 (move_or_delete_vzeroupper_1): Return true if the exit
23589 state is changed.
23590 (move_or_delete_vzeroupper): Visit basic blocks using the
23591 work-list based algorithm based on vt_find_locations in
23592 var-tracking.c.
23593
23594 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23595
a40d79d7
NC
235962011-01-24 Nick Clifton <nickc@redhat.com>
23597
23598 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23599 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23600 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
23601 then define __v850e1__.
23602 * doc/invoke.texi: Document -mv850es.
23603
440eb8de
RH
236042011-01-24 Richard Henderson <rth@redhat.com>
23605
23606 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23607 compound unordered comparisons.
23608 * config/rx/rx.c (rx_split_fp_compare): Remove.
23609 * config/rx/rx-protos.h: Update.
23610 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23611 (cbranchsf4): Don't call rx_split_fp_compare.
23612 (*cbranchsf4): Use rx_split_cbranch.
23613 (*cmpsf): Don't accept "i" constraint.
23614 (*conditional_branch): Only valid after reload.
23615 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
23616
3ff79f99
MM
236172011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
23618
23619 PR target/47385
23620 * config/rs6000/altivec.md (vector constant splitters): Add
23621 support for creating vector single precision constants if -mvsx is
23622 used and we would create the constant using Altivec primitives.
23623
ff3d9d08
BS
236242011-01-23 Bernd Schmidt <bernds@codesourcery.com>
23625 Richard Sandiford <rdsandiford@googlemail.com>
23626
23627 PR rtl-optimization/47166
23628 * reload1.c (emit_reload_insns): Disable the spill_reg_store
23629 mechanism for PRE_MODIFY and POST_MODIFY.
23630 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23631 reloadreg.
23632
7fcaf152
AS
236332011-01-23 Andreas Schwab <schwab@linux-m68k.org>
23634
8788adb6 23635 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 23636
d09b58c4
JH
236372011-01-22 Jan Hubicka <jh@suse.cz>
23638
23639 PR lto/47333
23640 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23641
e8ff8c5a
JH
236422011-01-22 Jan Hubicka <jh@suse.cz>
23643
23644 PR tree-optimization/43884
23645 PR lto/44334
8788adb6 23646 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
23647 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23648
ccaed3ba
AS
236492011-01-22 Anatoly Sokolov <aesok@post.ru>
23650
23651 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23652 * config/s390/s390.c (s390_register_move_cost,
23653 s390_memory_move_cost): New.
23654 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23655
0cecee06
UW
236562011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23657
23658 PR middle-end/47401
23659 * except.c (sjlj_assign_call_site_values): Move setting the
23660 crtl->uses_eh_lsda flag to ...
23661 (sjlj_mark_call_sites): ... here.
23662 (sjlj_emit_function_enter): Support NULL dispatch label.
23663 (sjlj_build_landing_pads): In a function with no landing pads
23664 that still has must-not-throw regions, generate code to register
23665 a personality function with empty LSDA.
23666
e692f276
RH
236672011-01-21 Richard Henderson <rth@redhat.com>
23668
1b7ae0b7
RH
23669 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23670
3843787f
RH
23671 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23672
e692f276
RH
23673 * compare-elim.c: New file.
23674 * Makefile.in (OBJS-common): Add it.
23675 (compare-elim.o): New.
23676 * common.opt (fcompare-elim): New.
23677 * opts.c (default_options_table): Add OPT_fcompare_elim.
23678 * tree-pass.h (pass_compare_elim_after_reload): New.
23679 * passes.c (init_optimization_passes): Add it.
23680 * recog.h: Protect against re-inclusion.
23681 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
23682 * doc/invoke.texi (-fcompare-elim): Document it.
23683 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
23684 * doc/tm.texi: Rebuild.
23685
9a7c2050
NC
236862011-01-22 Nick Clifton <nickc@redhat.com>
23687
23688 * config/rx/rx.md (cstoresf4): Pass comparison operator to
23689 rx_split_fp_compare.
23690
15ba5696
NC
236912011-01-22 Nick Clifton <nickc@redhat.com>
23692
23693 * config/rx/rx.md (UNSPEC_CONST): New.
23694 (deallocate_and_return): Wrap the amount popped off the stack in
23695 an UNSPEC_CONST in order to stop it being rejected by
23696 -mmax-constant-size.
23697 (pop_and_return): Add a "(return)" rtx.
23698 (call): Drop the immediate operand.
23699 (call_internal): Likewise.
23700 (call_value): Likewise.
23701 (call_value_internal): Likewise.
23702 (sibcall_internal): Likewise.
23703 (sibcall_value_internal): Likewise.
23704 (sibcall): Likewise. Generate an explicit call using
23705 sibcall_internal.
23706 (sibcall_value): Likewise.
23707 (mov<>): FAIL if a constant operand is not legitimate.
23708 (addsi3_unpsec): New pattern.
9a7c2050 23709
38be4072 23710 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
23711 (ok_for_max_constant): New function.
23712 (gen_safe_add): New function.
23713 (rx_expand_prologue): Use gen_safe_add.
23714 (rx_expand_epilogue): Likewise.
23715 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
23716 UNSPEC CONSTs.
23717
caaf13d3
JL
237182011-01-21 Jeff Law <law@redhat.com>
23719
23720 PR tree-optimization/47053
23721 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
23722 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
23723 statements are deleted.
23724 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
23725 is nonempty, then purge dead edges and cleanup the CFG.
23726
12c30f2f
AO
237272011-01-21 Alexandre Oliva <aoliva@redhat.com>
23728
23729 PR debug/47402
23730 Temporarily revert:
23731 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
23732 PR debug/47106
23733 * tree-dfa.c (create_var_ann): Mark variable as used.
23734
7360d2ac
JJ
237352011-01-21 Jakub Jelinek <jakub@redhat.com>
23736
aaa52a96
JJ
23737 PR middle-end/45566
23738 * except.c (convert_to_eh_region_ranges): Emit queued no-region
23739 notes from other section in hot/cold partitioning even if
23740 last_action is -3. Increment call_site_base.
23741
7360d2ac
JJ
23742 PR rtl-optimization/47366
23743 * fwprop.c (forward_propagate_into): Return bool. If
23744 any changes are made, -fnon-call-exceptions is used and
23745 REG_EH_REGION note is present, call purge_dead_edges
23746 and return true if it purged anything.
23747 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
23748 any EH edges were purged.
23749
e90b336f
JL
237502011-01-21 Jeff Law <law@redhat.com>
23751
23752 PR rtl-optimization/41619
23753 * caller-save.c (setup_save_areas): Break out code to determine
23754 which hard regs are live across calls by examining the reload chains
23755 so that it is always used.
23756 Eliminate code which checked REG_N_CALLS_CROSSED.
23757
3ffe07e1
JJ
237582011-01-21 Jakub Jelinek <jakub@redhat.com>
23759
23760 PR tree-optimization/47355
23761 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
23762 NOP has non-debug uses beyond PHIs in new_bb.
23763
1c7d0b34
AO
237642011-01-21 Alexandre Oliva <aoliva@redhat.com>
23765
23766 PR debug/47106
23767 * cfgexpand.c (account_used_vars_for_block): Only account vars
23768 that are annotated as used.
23769 (estimated_stack_frame_size): Don't set TREE_USED.
23770 * tree-dfa.c (create_var_ann): Mark variable as used.
23771
f99cc488
RG
237722011-01-21 Richard Guenther <rguenther@suse.de>
23773
23774 PR middle-end/47395
23775 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
23776
3bc27de7
RG
237772011-01-21 Richard Guenther <rguenther@suse.de>
23778
23779 PR tree-optimization/47365
23780 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
23781 (vn_reference_lookup_pieces): Adjust.
23782 (vn_reference_lookup): Likewise.
23783 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
23784 (vn_reference_lookup_3): Only look through kills if in
23785 VN_WALKREWRITE mode.
23786 (vn_reference_lookup_pieces): Adjust.
23787 (vn_reference_lookup): Likewise.
23788 (visit_reference_op_load): Likewise.
23789 (visit_reference_op_store): Likewise.
23790 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
23791 (compute_avail): Likewise.
23792 (eliminate): Likewise.
23793
d8debb1d
JJ
237942011-01-21 Jakub Jelinek <jakub@redhat.com>
23795
23796 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
23797 DECL_IGNORED_P non-reg vars if they are used.
23798
3a2df831
JJ
23799 PR tree-optimization/47391
23800 * varpool.c (const_value_known_p): Return false if
23801 decl is volatile.
23802
1dd584a2
KT
238032011-01-21 Kai Tietz <kai.tietz@onevision.com>
23804
23805 PR bootstrap/47215
23806 * config/i386/i386.c (ix86_local_alignment): Handle
23807 case for va_list_type_node is nil.
23808 (ix86_canonical_va_list_type): Likewise.
23809
7f9f095e
AM
238102011-01-21 Alan Modra <amodra@gmail.com>
23811
23812 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
23813 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
23814
837b01f6
RR
238152011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23816
23817 * config/arm/arm.md (define_attr type): Rename f_load
23818 and f_store to f_fpa_load and f_fpa_store. Update.
23819 (write_conflict): Deal with rename fallout.
23820 (*push_fp_multi): Likewise.
23821 * config/arm/fpa.md (f_load): Use f_fpa_load.
23822 (f_store): Use f_fpa_store.
23823 (*movsf_fpa): Likewise.
23824 (*movdf_fpa): Likewise.
23825 (*movxf_fpa): Likewise.
23826 (*thumb2_movsf_fpa): Likewise.
23827 (*thumb2_movdf_fpa): Likewise.
23828 (*thumb2_movxf_fpa): Likewise.
23829 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
23830 f_loadd and f_stored.
23831 (*thumb2_movdi_vfp): Likewise.
23832 (*thumb2_movsf_vfp): Fix attribute to f_loads.
23833 (*thumb2_movsi_vfp): Likewise.
23834 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
23835 Use f_loads instead of f_load.
23836 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
23837
a1a79768
AS
238382011-01-20 Anatoly Sokolov <aesok@post.ru>
23839
23840 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
23841 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
23842 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
23843 (xtensa_mode_dependent_address_p): New function.
23844 (constantpool_address_p): Make static. Change return type to bool.
23845 Change argument type to const_rtx. Use CONST_INT_P predicate.
23846
427f6cec
AO
238472011-01-20 Alexandre Oliva <aoliva@redhat.com>
23848
23849 PR debug/46583
23850 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
23851
583ac69c
JJ
238522011-01-20 Jakub Jelinek <jakub@redhat.com>
23853
23854 PR debug/47283
23855 * cfgexpand.c (expand_debug_expr): Instead of generating
23856 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
23857 etc. handling.
23858
93e452ed
RG
238592011-01-20 Richard Guenther <rguenther@suse.de>
23860
23861 PR middle-end/47370
23862 * tree-inline.c (remap_gimple_op_r): Recurse manually for
23863 the pointer operand of MEM_REFs.
23864
28fc44f3
JJ
238652011-01-20 Jakub Jelinek <jakub@redhat.com>
23866
23867 PR tree-optimization/46130
23868 * ipa-split.c (consider_split): If return_bb contains non-virtual
23869 PHIs other than for retval or if split_function would not adjust it,
23870 refuse to split.
23871
ddd268f2
RG
238722011-01-20 Richard Guenther <rguenther@suse.de>
23873
23874 PR tree-optimization/47167
23875 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
23876 Revert previous change, only avoid enumeral type changes.
23877
882020aa
MS
238782011-01-19 Mike Stump <mikestump@comcast.net>
23879
23880 * doc/tm.texi.in (BRANCH_COST): Englishify.
23881 * doc/tm.texi (BRANCH_COST): Likewise.
23882
7edb6247
DS
238832011-01-19 Dodji Seketeli <dodji@redhat.com>
23884
23885 PR c++/47291
23886 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
23887 (gen_scheduled_generic_parms_dies): New functions.
23888 (gen_struct_or_union_type_die): Schedule template parameters DIEs
23889 generation for the end of CU compilation.
23890 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 23891
23d5ed5d
AO
238922011-01-19 Alexandre Oliva <aoliva@redhat.com>
23893
23894 PR debug/46240
23895 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
23896 debug bind stmt on merge edges.
23897
37d6a488
AO
238982011-01-19 Alexandre Oliva <aoliva@redhat.com>
23899
23900 PR debug/47079
23901 PR debug/46724
23902 * function.c (instantiate_expr): Instantiate incoming rtl of
23903 implicit arguments, and recurse on VALUE_EXPRs.
23904 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
23905 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
23906
689f2c82
AO
239072011-01-19 Alexandre Oliva <aoliva@redhat.com>
23908
23909 * c-parser.c (c_parser_for_statement): Initialize
23910 collection_expression.
23911
03029de4
JM
239122011-01-19 Joseph Myers <joseph@codesourcery.com>
23913
23914 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
23915
3e03217e
JM
239162011-01-19 Joseph Myers <joseph@codesourcery.com>
23917
23918 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
23919 (LINK_SHLIB_SPEC): Don't use %(link_path).
23920 (SUBTARGET_EXTRA_SPECS): Remove link_path.
23921
5bbe9b3f
JM
239222011-01-19 Joseph Myers <joseph@codesourcery.com>
23923
23924 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
23925 (NO_SHARED_LIB_SUPPORT): Remove.
23926 (LINK_SHLIB_SPEC): Remove one conditional definition.
23927
368e0b39
JM
239282011-01-19 Joseph Myers <joseph@codesourcery.com>
23929
23930 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
23931 %{call_shared}.
23932 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
23933 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
23934 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
23935 %{call_shared} and conditionals on these options not being passed.
23936 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
23937 %{call_shared}.
23938
ed7656f6
JJ
239392011-01-19 Jakub Jelinek <jakub@redhat.com>
23940
68457901
JJ
23941 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
23942 simplify.
23943
ed7656f6
JJ
23944 * ipa-split.c: Spelling fixes.
23945
e0d1958f
RH
239462011-01-19 Richard Henderson <rth@redhat.com>
23947
23948 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
23949 (*mulsi3): Likewise.
23950
27098b6b
RH
23951 * longlong.h [__mn10300__] (count_leading_zeros): New.
23952 [__mn10300__] (umul_ppmm, smul_ppmm): New.
23953 [__mn10300__] (add_ssaaaa, subddmmss): New.
23954 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
23955 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
23956
d6be7c36
UW
239572011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
23958
23959 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
23960
b1efde2a
RH
239612011-01-19 Richard Henderson <rth@redhat.com>
23962
44217823
RH
23963 * config/mn10300/mn10300.md (addsi3_flags): New.
23964 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
23965 (subsi3_flags, subc_internal, subdi3): New.
23966 (subdi3_internal, *subdi3_degenerate): New.
23967 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
23968
37a185d7
RH
23969 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
23970 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
23971 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
23972 * config/mn10300/mn10300-protos.h: Update.
23973 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
23974 (return_ret): Likewise. Rename from return_internal_regs.
23975 (return_internal): Remove.
23976
040c5757
RH
23977 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
23978 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
23979 (mn10300_legitimate_constant_p): Likewise.
23980 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
23981 (mn10300_frame_size): New.
23982 (mn10300_expand_prologue): Use it.
23983 (mn10300_expand_epilogue): Likewise.
23984 (mn10300_initial_offset): Likewise.
23985 * config/mn10300/mn10300-protos.h: Update.
23986 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
23987 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
23988 (prologue, epilogue, return_internal): Tidy output code.
23989 (mn10300_store_multiple_operation, return): Likewise.
23990 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
23991 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
23992 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
23993 (load_pic, am33_load_pic): New.
23994 (mn10300_load_pic0, mn10300_load_pic1): New.
23995
bad41521
RH
23996 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
23997 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
23998 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
23999 (cc_flags_for_mode, cc_flags_for_code): New.
24000 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
24001 overflow flag is not valid. Validate that the flags we need
24002 for the comparison are valid.
24003 (mn10300_output_cmp): Remove.
24004 (mn10300_output_add): New.
24005 (mn10300_select_cc_mode): Use cc_flags_for_code.
24006 (mn10300_split_cbranch): New.
24007 (mn10300_match_ccmode): New.
24008 (mn10300_split_and_operand_count): New.
24009 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
24010 to the function.
24011 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
24012 (addsi3): ... here. Use mn10300_output_add.
24013 (*addsi3_flags): New.
24014 (*am33_subsi3, *mn10300_subsi3): Merge...
24015 (subsi3): ... here. Use attribute isa.
24016 (*subsi3_flags): New.
24017 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
24018 when possible.
24019 (*am33_andsi3, *mn10300_andsi3): Merge...
24020 (andsi3): ... here.
24021 (*andsi3_flags): New.
24022 (andsi3 splitters): New.
24023 (*am33_iorsi3, *mn10300_iorsi3): Merge...
24024 (iorsi3): ... here.
24025 (*iorsi3_flags): New.
24026 (*am33_xorsi3, *mn10300_xorsi3): Merge...
24027 (xorsi3): ... here.
24028 (*xorsi3_flags): New.
24029 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
24030 (one_cmplsi2): ... here.
24031 (*one_cmplsi2_flags): New.
24032 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
24033 instead of "dax" in constraints. Use mn10300_split_cbranch.
24034 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
24035 use matching constraints to eliminate a self-comparison.
24036 (*integer_conditional_branch): Rename from integer_conditional_branch.
24037 Use int_mode_flags to match CC_REG.
24038 (*cbranchsi4_btst, *btstsi): New.
24039 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
24040 mn10300_split_cbranch.
24041 (*am33_cmpsf): Rename from am33_cmpsf.
24042 (*float_conditional_branch): Rename from float_conditional_branch.
24043 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24044 (zero_extendqisi2): ... here.
24045 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24046 (zero_extendhisi2): ... here.
24047 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24048 (extendqisi2): ... here.
24049 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24050 (extendhisi2): ... here.
24051 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24052 (ashlsi3): ... here.
24053 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24054 (lshrsi3): ... here.
24055 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24056 (ashrsi3): ... here.
24057 (consecutive add peephole): Remove.
24058 * config/mn10300/predicates.md (label_ref_operand): New.
24059 (int_mode_flags): New.
24060 (CCZN_comparison_operator): New.
24061
9efb4993
RH
24062 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24063 (throughput_42_latency_43): New reservation.
24064 (mulsidi3, umulsidi3): New expanders.
24065 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
24066 the MDR register to allocation; separately allocate the low and
24067 high parts of the DImode result.
24068 (umulsidi3_internal): Similarly.
24069 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24070 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
24071 (udivsi3, umodsi3): Remove.
24072 (udivmodsi4, divmodsi4): New expanders.
24073 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
24074 (*divmodsi4): Simiarly.
24075 (ext_internal): New.
24076
c25a21f5
RH
24077 * config/mn10300/constraints.md ("z"): New constraint.
24078 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24079 (FIXED_REGISTERS): Don't fix MDR.
24080 (CALL_USED_REGSITERS): Reformat nicely.
24081 (REG_ALLOC_ORDER): Add MDR.
24082 (enum regclass): Add MDR_REGS.
24083 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24084 (IRA_COVER_CLASSES): Add MDR_REGS.
24085 (REGNO_REG_CLASS): Handle MDR_REG.
24086 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24087 (mn10300_register_move_cost): Likewise.
24088 * config/mn10300/mn10300.md (MDR_REG): New.
24089 (*movsi_internal): Handle moves to/from MDR_REGS.
24090
36846b26
RH
24091 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24092 POST_MODIFY.
24093 (mn10300_secondary_reload): Tidy combination reload classes.
24094 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24095 addresses for AM33. Allow symbolic offsets for reg+imm.
24096 (mn10300_regno_in_class_p): New.
24097 (mn10300_legitimize_reload_address): New.
24098 * config/mn10300/mn10300.h (enum reg_class): Remove
24099 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24100 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
24101 SP_OR_GENERAL_REGS.
24102 (REG_CLASS_NAMES): Update to match.
24103 (REG_CLASS_CONTENTS): Likewise.
24104 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24105 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24106 (REGNO_IN_RANGE_P): Remove.
24107 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24108 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24109 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24110 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24111 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24112 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24113 (REGNO_GENERAL_P): New.
24114 (HAVE_POST_MODIFY_DISP): New.
24115 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24116 (LEGITIMIZE_RELOAD_ADDRESS): New.
24117 * config/mn10300/mn10300-protos.h: Update.
24118
8b119bb6
RH
24119 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24120 DATA_REGS for AM33 stack-pointer destination.
24121 (mn10300_preferred_output_reload_class): Likewise.
24122 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24123 into a form appropriate for ...
24124 (TARGET_SECONDARY_RELOAD): New.
24125 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24126 * config/mn10300/mn10300-protos.h: Update.
24127 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24128 reload_insi; use the "A" constraint for the scratch; handle AM33
24129 moves of sp to non-address registers.
24130
b1efde2a
RH
24131 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24132 (*movqi_internal): ... here.
24133 (*am33_movhi, *mn10300_movhi): Merge into...
24134 (*movhi_internal): ... here.
24135 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
24136 as the source/destination of moves from/to SP.
24137 (movsf): Only allow for AM33-2.
1c3ba85b 24138 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
24139 any integer constant constraint. Only allow for AM33-2. Tidy
24140 all of the alternative outputs.
24141 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24142 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
24143 for MN103.
24144 (udivsi3, umodsi3): New patterns for MN103 only.
24145
b899fd78
JR
241462011-01-19 Joern Rennecke <amylaar@spamcop.net>
24147
24148 * doc/tm.texi.in: Spell out that a lack of register class unions
24149 can lead to ICEs.
24150 * doc/tm.texi: Regenerate.
24151
afaaa67d
JJ
241522011-01-19 Jakub Jelinek <jakub@redhat.com>
24153
2e0642cd
JJ
24154 PR rtl-optimization/47337
24155 * dce.c (check_argument_store): New function.
24156 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
24157
afaaa67d
JJ
24158 PR tree-optimization/47290
24159 * tree-eh.c (infinite_empty_loop_p): New function.
24160 (cleanup_empty_eh): Use it.
24161
d2cd871f
SE
241622011-01-18 Steve Ellcey <sje@cup.hp.com>
24163
24164 PR target/46997
24165 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24166 (a64_expand_widen_sum): Ditto.
24167 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24168 (vec_extract_evenodd_help): Ditto.
24169 (vec_extract_evenv4hi): Ditto.
24170 (vec_extract_oddv4hi): Ditto.
24171 (vec_extract_evenv2si): Ditto.
24172 (vec_extract_oddv2si): Ditto.
24173 (vec_extract_evenv2sf): Ditto.
24174 (vec_extract_oddv2sf): Ditto.
24175 (vec_pack_trunc_v4hi: Ditto.
24176 (vec_pack_trunc_v2si): Ditto.
24177 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24178 (vec_interleave_highv8qi): Ditto.
24179 (mix1_r): Ditto.
24180 (vec_extract_oddv8qi): Ditto.
24181 (vec_interleave_lowv4hi): Ditto.
24182 (vec_interleave_highv4hi): Ditto.
24183 (vec_interleave_lowv2si): Ditto.
24184 (vec_interleave_highv2si): Ditto.
24185
41a1208a
JDA
241862011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24187
24188 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24189 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24190 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
24191 (pa_c_mode_for_suffix): New.
24192 (TARGET_EXPAND_BUILTIN): Define.
24193 (TARGET_C_MODE_FOR_SUFFIX): Define.
24194 (pa_builtins): Define.
24195 (pa_init_builtins): Register __float128 type and init new support
24196 builtins.
24197 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24198 * config/pa/quadlib.c (_U_Qfcopysign): New.
24199
1ecad98e
EB
242002011-01-18 Eric Botcazou <ebotcazou@adacore.com>
24201
24202 PR middle-end/46894
24203 * explow.c (allocate_dynamic_stack_space): Do not assume more than
24204 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24205 are defined.
24206
d4f2460a
UW
242072011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
24208
24209 PR tree-optimization/47179
24210 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24211 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24212
4994da65
RG
242132011-01-18 Richard Guenther <rguenther@suse.de>
24214
24215 PR rtl-optimization/47216
24216 * emit-rtl.c: Include tree-flow.h.
24217 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24218 of replicating it with different semantics.
24219 * Makefile.in (emit-rtl.o): Adjust.
24220
1eb458d1
RR
242212011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24222
38be4072 24223 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 24224 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 24225
e7ef91dc
JJ
242262011-01-18 Jakub Jelinek <jakub@redhat.com>
24227
24228 PR rtl-optimization/47299
24229 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 24230 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
24231 * expmed.c (expand_widening_mult): Don't try to optimize constant
24232 multiplication if op0 has VOIDmode. Convert op1 constant to mode
24233 before using it.
24234
535b7874
RW
242352011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24236
24237 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
24238 spacing after 'e.g.', typos, comma, hyphenation.
24239
27bf36f3
RH
242402011-01-17 Richard Henderson <rth@redhat.com>
24241
8a5b5449
RH
24242 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24243 (rx_restricted_mem_operand): New.
24244 (rx_shift_operand): Use register_operand.
24245 (rx_source_operand, rx_compare_operand): Likewise.
24246 * config/rx/rx.md (addsi3_flags): New expander.
24247 (adddi3): Rewrite as expander.
24248 (adc_internal, *adc_flags, adddi3_internal): New patterns.
24249 (subsi3_flags): New expander.
24250 (subdi3): Rewrite as expander.
24251 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24252
784f69be
RH
24253 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24254 (rx_init_builtins): Remove sat builtin.
24255 (rx_expand_builtin): Likewise.
24256 * config/rx/rx.md (ssaddsi3): New.
24257 (*sat): Rename from sat. Represent the CC_REG input.
24258
f033541c
RH
24259 * config/rx/predicates.md (rshift_operator): New.
24260 * config/rx/rx.c (rx_expand_insv): Remove.
24261 * config/rx/rx-protos.h: Update.
24262 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
24263 operand to the canonical position.
24264 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24265 (*bitclr, *bitclr_in_memory): Similarly.
24266 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24267 (insv): Retain the zero_extract in the expansion.
24268
34fee389
RH
24269 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24270 (bswaphi2, bitinvert, revw): Likewise.
24271
265c835f
RH
24272 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24273 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24274 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24275 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24276 (bitset, bitset_in_memory): Likewise.
24277 (bitinvert, bitinvert_in_memory): Likewise.
24278 (bitclr, bitclr_in_memory): Likewise.
24279 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24280 (rx_strend, rx_cmpstrn): Likewise.
24281 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
24282 (bitop peep2 patterns): Remove.
24283
b4d83be3
RH
24284 * config/rx/rx.c (rx_match_ccmode): New.
24285 * config/rx/rx-protos.h: Update.
24286 * config/rx/rx.md (abssi2): Clobber, don't set flags.
24287 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24288 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24289 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24290 (fix_truncsfsi2, floatsisf2): Likewise.
24291 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24292 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24293 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24294 (*subsi3_flags, *xorsi3_flags): New.
24295
d0acb939
RH
24296 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24297
c06fc3d9
RH
24298 * config/rx/rx.c (rx_print_operand): Remove workaround for
24299 unsplit comparison operations.
24300
2882702b
RH
24301 * config/rx/rx.md (movsicc): Split after reload.
24302 (*movsicc): Merge *movsieq and *movsine via match_operator.
24303 (*stcc): New pattern.
24304
6f7310f2
RH
24305 * config/rx/rx.c (rx_float_compare_mode): Remove.
24306 * config/rx/rx.h (rx_float_compare_mode): Remove.
24307 * config/rx/rx.md (cstoresi4): Split after reload.
24308 (*sccc): New pattern.
24309
e963cb1a
RH
24310 * config/rx/predicates.md (label_ref_operand): New.
24311 (rx_z_comparison_operator): New.
24312 (rx_zs_comparison_operator): New.
24313 (rx_fp_comparison_operator): New.
24314 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24315 Validate that the flags are set properly for the comparison.
24316 (rx_gen_cond_branch_template): Remove.
24317 (rx_cc_modes_compatible): Remove.
24318 (mode_from_flags): New.
24319 (flags_from_code): Rename from flags_needed_for_conditional.
24320 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24321 (rx_select_cc_mode): Likewise.
24322 (rx_split_fp_compare): New.
24323 (rx_split_cbranch): New.
24324 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24325 (*cbranchsi4): Use match_operator and rx_split_cbranch.
24326 (*cbranchsf4): Similarly.
24327 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
24328 match_operator and rx_split_cbranch.
24329 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24330 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
24331 (*cmpsi): Rename from cmpsi.
24332 (*tstsi): Rename from tstsi.
24333 (*cmpsf): Rename from cmpsf; use CC_Fmode.
24334 (*conditional_branch): Rename from conditional_branch.
24335 (*reveresed_conditional_branch): Remove.
24336 (b<code>): Remove expander.
24337 * config/rx/rx-protos.h: Update.
24338
af530bb4
RH
24339 * config/rx/rx.c (rx_compare_redundant): Remove.
24340 * config/rx/rx.md (cmpsi): Don't use it.
24341 * config/rx/rx-protos.h: Update.
24342
27bf36f3
RH
24343 * config/rx/rx-modes.def (CC_F): New mode.
24344 * config/rx/rx.c (rx_select_cc_mode): New.
24345 * config/rx/rx.h (SELECT_CC_MODE): Use it.
24346 * config/rx/rx-protos.h: Update.
24347
d7fde127
RH
243482011-01-17 Richard Henderson <rth@redhat.com>
24349
24350 * except.c (dump_eh_tree): Fix stray ; after for statement.
24351
6ff38230
RG
243522011-01-17 Richard Guenther <rguenther@suse.de>
24353
24354 PR tree-optimization/47313
24355 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24356 handling before copying the body. Properly deal with
24357 by-reference result in SSA form.
24358
114ce554
ILT
243592011-01-17 Ian Lance Taylor <iant@google.com>
24360
bf5cd92b 24361 PR target/47219
114ce554
ILT
24362 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24363 (struct_value_alias_set): Don't define.
24364 (sparc_option_override): Don't set sparc_sr_alias_set and
24365 struct_value_alias_set.
24366 (save_or_restore_regs): Use gen_frame_mem rather than calling
24367 set_mem_alias_set.
24368 (sparc_struct_value_rtx): Likewise.
24369
98c6d93c
L
243702011-01-17 H.J. Lu <hongjiu.lu@intel.com>
24371
24372 PR target/47318
7a81008b 24373 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
24374 (_mm_maskstore_pd): Likewise.
24375 (_mm_maskload_ps): Likewise.
24376 (_mm_maskstore_ps): Likewise.
24377 (_mm256_maskload_pd): Change mask to __m256i.
24378 (_mm256_maskstore_pd): Likewise.
24379 (_mm256_maskload_ps): Likewise.
24380 (_mm256_maskstore_ps): Likewise.
24381
24382 * config/i386/i386-builtin-types.def: Updated.
24383 (ix86_expand_special_args_builtin): Likewise.
24384
24385 * config/i386/i386.c (bdesc_special_args): Update
24386 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24387 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24388 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24389 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24390
24391 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24392 Use <avxpermvecmode> on mask register.
24393 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24394
b9361af2 243952011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
24396 Michael Haubenwallner <michael.haubenwallner@salomon.at>
24397 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
24398
24399 PR target/46655
24400 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24401 if <= USHRT_MAX in 32-bit mode.
24402
b7ae9eb5
RW
244032011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24404
24405 * doc/install.texi (Configuration, Specific): Wrap long
24406 lines in examples. Allow line wrapping in long options
24407 and URLs where beneficial for PDF output.
24408
4377fad9
RS
244092011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
24410
24411 * config/mips/mips.c (mips_classify_symbol): Don't return
24412 SYMBOL_PC_RELATIVE for nonlocal labels.
24413
55959ffa 244142011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 24415
55959ffa
EB
24416 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24417
244182011-01-15 Jan Hubicka <jh@suse.cz>
24419
24420 PR tree-optimization/47276
be46831f
JH
24421 * ipa.c (function_and_variable_visibility): Do not try to mark alias
24422 declarations as needed.
24423
05842ff5
MJ
244242011-01-15 Martin Jambor <mjambor@suse.cz>
24425
24426 * common.opt (fdevirtualize): New flag.
24427 * doc/invoke.texi (Option Summary): Document it.
24428 * opts.c (default_options_table): Add devirtualize flag.
24429 * ipa-prop.c (detect_type_change): Return immediately if
24430 devirtualize flag is not set.
24431 (detect_type_change_ssa): Likewise.
24432 (compute_known_type_jump_func): Likewise.
24433 (ipa_analyze_virtual_call_uses): Likewise.
24434
f65cf2b7
MJ
244352011-01-14 Martin Jambor <mjambor@suse.cz>
24436
24437 PR tree-optimization/45934
24438 PR tree-optimization/46302
24439 * ipa-prop.c (type_change_info): New type.
24440 (stmt_may_be_vtbl_ptr_store): New function.
24441 (check_stmt_for_type_change): Likewise.
24442 (detect_type_change): Likewise.
24443 (detect_type_change_ssa): Likewise.
24444 (compute_complex_assign_jump_func): Check for dynamic type change.
24445 (compute_complex_ancestor_jump_func): Likewise.
24446 (compute_known_type_jump_func): Likewise.
24447 (compute_scalar_jump_functions): Likewise.
24448 (ipa_analyze_virtual_call_uses): Likewise.
24449 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24450
eb5bb0fd
JM
244512011-01-14 Joseph Myers <joseph@codesourcery.com>
24452
24453 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24454 * config/i386/i386.opt (msse5): New Alias.
24455
f2060fbe
JM
244562011-01-14 Joseph Myers <joseph@codesourcery.com>
24457
24458 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24459 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24460 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24461 * config/sparc/sparc.h (CC1_SPEC): Likewise.
24462
3a7b4385
JM
244632011-01-14 Joseph Myers <joseph@codesourcery.com>
24464
24465 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24466 -mcpu options.
24467 * config/sparc/linux64.h (CC1_SPEC): Likewise.
24468 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24469 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24470 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24471 Likewise.
24472 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24473
a7b778f8
JM
244742011-01-14 Joseph Myers <joseph@codesourcery.com>
24475
38be4072 24476 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 24477
a7edae0a
MS
244782011-01-14 Mike Stump <mikestump@comcast.net>
24479
24480 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24481 * config/fr30/fr30.md: Likweise
24482 (movsi_push): Likewise.
24483 (movsi_pop): Likewise.
24484 (enter_func): Likewise.
24485 * config/moxie/moxie.md (movsi_push): Likewise.
24486 (movsi_pop): Likewise.
24487
cbabf03f
JM
244882011-01-14 Joseph Myers <joseph@codesourcery.com>
24489
24490 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24491 %{no_archive} %{exact_version}.
24492 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24493 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24494 %{no_archive} %{exact_version}.
24495 * config/mips/openbsd.h (LINK_SPEC): Likewise.
24496 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24497 * config/mips/vxworks.h: Likewise.
24498
438da41a
JM
244992011-01-14 Joseph Myers <joseph@codesourcery.com>
24500
38be4072 24501 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 24502
da290a42
JM
245032011-01-14 Joseph Myers <joseph@codesourcery.com>
24504
24505 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24506 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24507
8989d00e
JM
245082011-01-14 Joseph Myers <joseph@codesourcery.com>
24509
24510 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24511 -nodefaultlib.
24512
a3010a69
JM
245132011-01-14 Joseph Myers <joseph@codesourcery.com>
24514
24515 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24516 for mcpu not cpu.
24517 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24518 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24519 not cpu.
24520 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24521 Don't handle -shlib.
24522
e7f2f537
JM
245232011-01-14 Joseph Myers <joseph@codesourcery.com>
24524
24525 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24526 (CC1_SPEC): Don't handle -profile.
24527
34830bfd
JM
245282011-01-14 Joseph Myers <joseph@codesourcery.com>
24529
24530 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24531 * config/mips/mips.h (CC1_SPEC): Likewise.
24532
b2d36e74
JM
245332011-01-14 Joseph Myers <joseph@codesourcery.com>
24534
24535 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24536 * config/mips/mips.h (CC1_SPEC): Likewise.
24537
dabadc52
JM
245382011-01-14 Joseph Myers <joseph@codesourcery.com>
24539
24540 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24541 * config/m32r/linux.h (LINK_SPEC): Likewise.
24542 * config/mips/linux.h (LINK_SPEC): Likewise.
24543 * config/mips/linux64.h (LINK_SPEC): Likewise.
24544 * config/sparc/linux.h (LINK_SPEC): Likewise.
24545 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24546 LINK_SPEC): Likewise.
24547 * config/xtensa/linux.h (LINK_SPEC): Likewise.
24548
43ee6785
JM
245492011-01-14 Joseph Myers <joseph@codesourcery.com>
24550
24551 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24552 %{version:-v}.
24553 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24554
45e79dfd
JM
245552011-01-14 Joseph Myers <joseph@codesourcery.com>
24556
24557 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24558 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24559
37e9e71d
JM
245602011-01-14 Joseph Myers <joseph@codesourcery.com>
24561
24562 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24563
bb127cd8
RO
245642011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24565
24566 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24567 supports -Bstatic/-Bdynamic.
24568 * configure: Regenerate.
24569
89a012ea 245702011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 24571 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
24572
24573 PR target/46037
24574 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24575 when checking debug_info_level. Test write_symbols instead of
24576 debug_hooks->var_location when setting flag_var_tracking_uninit.
24577
7352c013
RG
245782011-01-14 Richard Guenther <rguenther@suse.de>
24579
24580 PR tree-optimization/47179
24581 * target.def (ref_may_alias_errno): New target hook.
24582 * targhooks.h (default_ref_may_alias_errno): Declare.
24583 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24584 (default_ref_may_alias_errno): New function.
24585 * target.h (struct ao_ref_s): Declare.
24586 * tree-ssa-alias.c: Include target.h.
24587 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24588 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24589 (targhooks.o): Likewise.
24590 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24591 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24592
9a6c9288
RG
245932011-01-14 Richard Guenther <rguenther@suse.de>
24594
24595 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
24596
0fdb0d27
RG
245972011-01-14 Richard Guenther <rguenther@suse.de>
24598
24599 PR tree-optimization/47280
24600 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24601 return CFG changes.
24602 (tree_ssa_forward_propagate_single_use_vars): Deal with
24603 CFG changes from associate_plusminus.
24604
8f66db3b
RG
246052011-01-14 Richard Guenther <rguenther@suse.de>
24606
24607 PR middle-end/47281
24608 Revert
24609 2011-01-11 Richard Guenther <rguenther@suse.de>
24610
280d9630
EB
24611 PR tree-optimization/46076
24612 * tree-ssa.c (useless_type_conversion_p): Conversions from
24613 unprototyped to empty argument list function types are useless.
8f66db3b 24614
6c0c92e6
RG
246152011-01-14 Richard Guenther <rguenther@suse.de>
24616
24617 PR tree-optimization/47286
280d9630 24618 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 24619
db09f943
MJ
246202011-01-14 Martin Jambor <mjambor@suse.cz>
24621
24622 PR middle-end/46823
24623 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24624
dde8a3a4
AS
246252011-01-13 Anatoly Sokolov <aesok@post.ru>
24626
24627 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24628 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24629 * config/xtensa/xtensa.c (xtensa_libcall_value,
24630 xtensa_function_value_regno_p): New functions.
24631 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24632
a2b63a20
KT
246332011-01-13 Kai Tietz <kai.tietz@onevision.com>
24634
24635 PR c++/47213
24636 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24637 PE specific hook.
24638 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24639 New function prototype.
24640 * config/i386/winnt.c (i386_pe_assemble_visibility):
24641 Warn only if attribute was specified by user.
24642
b41f0b34
MM
246432011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24644
24645 PR target/47251
24646 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24647 floating point.
24648 (floatunsdidf2_fcfidu): Ditto.
24649
3f3c098d
AK
246502011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24651
24652 * config/s390/s390.c (print_operand_address): Replace 'error' with
24653 'output_operand_lossage'.
24654 (print_operand): Likewise.
24655
29fa95ed
JL
246562011-01-13 Jeff Law <law@redhat.com>
24657
280d9630 24658 PR rtl-optimization/39077
29fa95ed
JL
24659 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24660 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24661 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24662 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24663 * gcse.c (prune_insertions_deletions): New function.
24664 (compute_pre_data): Use it.
24665
71d12276
DS
246662011-01-13 Dodji Seketeli <dodji@redhat.com>
24667
24668 PR debug/PR46973
24669 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24670 static function.
61052244 24671 (prune_unused_types_mark): Use it.
71d12276 24672
9b0f04e7
AB
246732011-01-13 Andrey Belevantsev <abel@ispras.ru>
24674
24675 PR rtl-optimization/45352
1c3ba85b 24676 * sel-sched.c: Update copyright years.
9b0f04e7 24677 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 24678 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 24679
d6a3e264
RH
246802011-01-12 Richard Henderson <rth@redhat.com>
24681
a49b692a
RH
24682 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
24683 (TARGET_MD_ASM_CLOBBERS): New.
24684
126b1483
RH
24685 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
24686 (TARGET_DELEGITIMIZE_ADDRESS): New.
24687
f3d9d2e0
RH
24688 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
24689 (clzsi2, *bsch): New patterns.
24690
d84760c9
RH
24691 * config/mn10300/mn10300.md (INT): New mode iterator.
24692 (*mov<INT>_clr): New pattern, and peep2 to generate it.
24693
ec815d65
RH
24694 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
24695 flag_split_wide_types.
24696
d6a3e264
RH
24697 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
24698 (mn10300_trampoline_init): Rewrite without a template, an immediate
24699 load and a direct branch.
24700 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
24701
0f8ab434
AS
247022011-01-12 Anatoly Sokolov <aesok@post.ru>
24703
24704 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
24705 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
24706 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
24707 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
24708
d8a24b65
KT
247092011-01-12 Kai Tietz <kai.tietz@onevision.com>
24710
24711 PR debug/47209
24712 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
24713 of type.
24714
56e22cab
JH
247152011-01-12 Jan Hubicka <jh@suse.cz>
24716
24717 PR driver/47244
24718 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
24719 (PLUGIN_COND_CLOSE): New macro.
24720 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
24721
4b18b3c2
RG
247222011-01-12 Richard Guenther <rguenther@suse.de>
24723
24724 PR lto/47259
24725 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
24726 register variables in a MEM_REF.
24727
8e38461c
JM
247282011-01-12 Joseph Myers <joseph@codesourcery.com>
24729
24730 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
24731 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
24732 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
24733 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
24734 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
24735 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
24736 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
24737 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
24738 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
24739 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
24740 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
24741 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
24742 * config/gnu-user.h: New. Copied from linux.h.
24743 (LINUX_TARGET_STARTFILE_SPEC): Rename to
24744 GNU_USER_TARGET_STARTFILE_SPEC.
24745 (LINUX_TARGET_ENDFILE_SPEC): Rename to
24746 GNU_USER_TARGET_ENDFILE_SPEC.
24747 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
24748 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
24749 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
24750 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
24751 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
24752 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
24753 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
24754 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
24755 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
24756 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
24757 * config/arm/linux-eabi.h (CC1_SPEC): Use
24758 GNU_USER_TARGET_CC1_SPEC.
24759 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
24760 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
24761 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
24762 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
24763 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
24764 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
24765 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
24766 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
24767
a570fc16
RG
247682011-01-12 Richard Guenther <rguenther@suse.de>
24769
24770 PR other/46946
24771 * doc/invoke.texi (ffast-math): Document it is turned on
24772 with -Ofast.
24773
b0223c3e
JH
247742011-01-12 Jan Hubicka <jh@suse.cz>
24775
24776 PR tree-optimization/47233
ca1e00b3
EB
24777 * opts.c (common_handle_option): Disable ipa-reference with profile
24778 feedback.
b0223c3e 24779
1c3ba85b 247802011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
24781
24782 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
24783 error message.
24784
d853ee42
NP
247852011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
24786
24787 * c-parser.c (c_lex_one_token): Updated and reindented some
24788 comments. No changes in code.
24789
4053a5a0
ILT
247902011-01-11 Ian Lance Taylor <iant@google.com>
24791
24792 * godump.c (go_output_var): Don't output the variable if there is
24793 already a type with the same name.
24794
fa3e04d2
ILT
247952011-01-11 Ian Lance Taylor <iant@google.com>
24796
24797 * godump.c (go_format_type): Don't generate float80.
24798
885fe07c
RH
247992011-01-11 Richard Henderson <rth@redhat.com>
24800
72d6e3c5
RH
24801 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
24802 declaration. Rewrite for both speed and size.
24803 (mn10300_address_cost_1): Remove.
24804 (mn10300_register_move_cost): New.
24805 (mn10300_memory_move_cost): New.
24806 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
24807 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
24808 extensions, shifts, BSWAP, CLZ.
24809 (mn10300_wide_const_load_uses_clr): Remove.
24810 (TARGET_REGISTER_MOVE_COST): New.
24811 (TARGET_MEMORY_MOVE_COST): New.
24812 * config/mn10300/mn10300-protos.h: Update.
24813 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
24814
df37c023
RH
24815 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
24816 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
24817 * config/mn10300/mn10300-protos.h: Update.
24818 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
24819 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
24820 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
24821 (*test_int_bitfield, *test_byte_bitfield): Remove.
24822 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 24823 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 24824
85a337b5
RH
24825 * config/mn10300/constraints.md ("c"): Rename from "A".
24826 ("A", "D"): New constraint letters.
24827 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
24828 (fmssf4, fnmasf4, fnmssf4): Likewise.
24829
a5c727e3
RH
24830 * config/mn10300/mn10300.md (isa): New attribute.
24831 (enabled): New attribute.
24832
0d9e23f4
RH
24833 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
24834 (abssf2, negsf2): Define only for hardware fp.
24835 (sqrtsf2): Reformat.
24836 (addsf3, subsf3, mulsf3): Merge expander and insn.
24837
c157b3f0
RH
24838 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
24839 (DEBUGGER_AUTO_OFFSET): Remove.
24840 (DEBUGGER_ARG_OFFSET): Remove.
24841
cc909bba
RH
24842 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
24843 Emit register stores with the same offsets as the hardware.
24844 (mn10300_store_multiple_operation): Don't check that the register
24845 save offsets are monotonic.
24846 * config/mn10300/mn10300-protos.h: Update.
24847
e3b5c2f3
RH
24848 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
24849
885fe07c
RH
24850 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
24851 in terms of the value on the stack, not the MDR register.
24852
6e701822
JH
248532011-01-11 Jan Hubicka <jh@suse.cz>
24854
24855 PR lto/45721
24856 PR lto/45375
24857 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
24858 (symbol_alias_set_destroy, symbol_alias_set_contains,
24859 propagate_aliases_backward): Declare.
24860 * lto-streamer-out.c (struct sets): New sturcture.
24861 (trivally_defined_alias): New function.
24862 (output_alias_pair_p): Rewrite.
24863 (output_unreferenced_globals): Fix output of alias pairs.
24864 (produce_symtab): Likewise.
24865 * ipa.c (function_and_variable_visibility): Set weak alias destination
24866 as needed in lto.
24867 * varasm.c (symbol_alias_set_t): Remove.
24868 (symbol_alias_set_destroy): Export.
24869 (propagate_aliases_forward, propagate_aliases_backward): New functions
24870 based on ...
24871 (compute_visible_aliases): ... this one; remove.
24872 (trivially_visible_alias): New
24873 (trivially_defined_alias): New.
24874 (remove_unreachable_alias_pairs): Rewrite.
24875 (finish_aliases_1): Reorganize code checking if alias is defined.
24876 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
24877 in LTO mode.
24878
1b248907
RG
248792011-01-11 Richard Guenther <rguenther@suse.de>
24880
24881 PR tree-optimization/46076
24882 * tree-ssa.c (useless_type_conversion_p): Conversions from
24883 unprototyped to empty argument list function types are useless.
24884
b1923f0a
RG
248852011-01-11 Richard Guenther <rguenther@suse.de>
24886
24887 PR middle-end/45235
24888 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
24889 volatile MEMs as MEM_READONLY_P.
24890
e98965af
RG
248912011-01-11 Richard Guenther <rguenther@suse.de>
24892
24893 PR tree-optimization/47239
24894 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
24895
9f9ca914
JL
248962011-01-11 Jeff Law <law@redhat.com>
24897
1ee3ea05 24898 PR tree-optimization/47086
9f9ca914
JL
24899 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
24900 IVs from statements that might throw.
24901
345fdcb7
JH
249022011-01-10 Jan Hubicka <jh@suse.cz>
24903
24904 PR lto/45375
24905 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
24906
c459c97b
JH
249072011-01-10 Jan Hubicka <jh@suse.cz>
24908
24909 PR lto/45375
24910 * profile.c (read_profile_edge_counts): Ignore profile inconistency
24911 when correcting profile.
24912
06c9eb51
JH
249132011-01-10 Jan Hubicka <jh@suse.cz>
24914
24915 PR lto/46083
24916 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
24917 DECL_FINI_PRIORITY.
24918 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
24919 Restore DECL_FINI_PRIORITY.
24920
ae9fd815
RW
249212011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24922
24923 * doc/gimple.texi: Fix quoting of multi-word return values in
24924 @deftypefn statements. Ensure presence of return value. Wrap
24925 overlong @deftypefn lines.
24926 (is_gimple_operand, is_gimple_min_invariant_address): Remove
24927 descriptions of removed functions.
24928 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
24929 of multi-word return value in @deftypefn statement.
24930
0ecb4a7c
RW
249312011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24932
24933 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
24934 (Conditional Expressions, Logical Operators)
24935 (Statement and operand traversals): Do not indent smallexample
24936 code. Fix duplicate function argument in example.
24937
2e5e346d
JL
249382011-01-10 Jeff Law <law@redhat.com>
24939
1ee3ea05 24940 PR tree-optimization/47141
2e5e346d
JL
24941 * ipa-split.c (split_function): Handle case where we are
24942 returning a value and the return block has a virtual operand phi.
24943
cf9712cc
JH
249442011-01-10 Jan Hubicka <jh@suse.cz>
24945
1c3ba85b 24946 PR tree-optimization/47234
cf9712cc
JH
24947 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
24948 (pass_feedback_split_functions): Declare.
24949 * passes.c (init_optimization_passes): Add ipa-split as subpass of
24950 tree-profile.
24951 * ipa-split.c (gate_split_functions): Update comments; disable
24952 split-functions for profile_arc_flag and branch_probabilities.
24953 (gate_feedback_split_functions): New function.
24954 (execute_feedback_split_functions): New function.
24955 (pass_feedback_split_functions): New global var.
24956
94cd932c
L
249572011-01-10 H.J. Lu <hongjiu.lu@intel.com>
24958
24959 PR lto/46760
24960 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
24961 calling gimple_call_set_cannot_inline.
24962
fbbfcaf1
IS
249632011-01-10 Iain Sandoe <iains@gcc.gnu.org>
24964
24965 * config/darwin-sections.def: Remove unused section.
24966
d06865bf
DK
249672011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
24968
24969 PR c++/47218
24970 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
24971
96bbfbac
NP
249722011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
24973
24974 PR objc/47232
24975 * c-parser.c (c_parser_declaration_or_fndef): Improved
24976 error message.
24977
1ba6516f
KT
249782011-01-09 Kai Tietz <kai.tietz@onevision.com>
24979
24980 * config/i386/winnt.c (i386_pe_start_function): Make sure
24981 to switch back to function's section.
24982
0c5d770e
IS
249832011-01-09 Iain Sandoe <iains@gcc.gnu.org>
24984
24985 PR gcc/46902
24986 PR testsuite/46912
24987 * plugin.c: Move include of dlfcn.h from here...
24988 * system.h: ... to here.
24989
249902011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
24991
24992 * doc/cpp.texi (C++ Named Operators): Fix markup for header
24993 file name.
24994 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
24995 two extra empty pages in PDF output.
24996
046608a3
NP
249972011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
24998
24999 PR objc/47078
25000 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
25001 for error recovery purposes behave as if it was not specified so
25002 that the default type is usd.
25003
8cb114b9
JH
250042011-01-07 Jan Hubicka <jh@suse.cz>
25005
25006 PR tree-optmization/46469
25007 * ipa.c (function_and_variable_visibility): Clear needed flags on
25008 nodes with external decls; handle weakrefs merging correctly.
25009
b294a75e
JM
250102011-01-07 Joseph Myers <joseph@codesourcery.com>
25011
25012 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
25013 not false.
25014
96bdf9b4
JH
250152011-01-07 Jan Hubicka <jh@suse.cz>
25016
f60c2554 25017 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
25018 and no longer claim that gold is required for linker plugin.
25019 * configure: Regenerate.
25020 * gcc.c (PLUGIN_COND): New macro.
25021 (LINK_COMMAND_SPEC): Use it.
25022 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
25023 * config.in (HAVE_LTO_PLUGIN): New.
25024 * configure.ac (--with-lto-plugin): New parameter; autodetect
25025 HAVE_LTO_PLUGIN.
25026
17afc0fe
JH
250272011-01-07 Jan Hubicka <jh@suse.cz>
25028
25029 PR tree-optimization/46367
25030 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
25031 when we can update original.
25032 (cgraph_mark_inline_edge): Sanity check.
25033 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
25034
d4c48c0f
UW
250352011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25036
25037 * config/spu/spu.h (ASM_COMMENT_START): Define.
25038
96f5b137
L
250392011-01-07 H.J. Lu <hongjiu.lu@intel.com>
25040
25041 PR driver/42445
25042 * gcc.c (%>S): New.
25043 (SWITCH_KEEP_FOR_GCC): Likewise.
25044 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25045 (do_spec_1): Handle "%>".
25046
25047 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25048
c6a8f6de
JJ
250492011-01-07 Jakub Jelinek <jakub@redhat.com>
25050
c21bbd7a
JJ
25051 PR target/47201
25052 * config/i386/i386.c (ix86_delegitimize_address): If
25053 simplify_gen_subreg fails, return orig_x.
25054
c6a8f6de
JJ
25055 PR bootstrap/47187
25056 * value-prof.c (gimple_stringop_fixed_value): Handle
25057 lhs of the call properly.
25058
fe95fbf9
JH
250592011-01-07 Jan Hubicka <jh@suse.cz>
25060
25061 PR lto/45375
25062 * lto-opt.c (lto_reissue_options): Set flag_shlib.
25063
14d11d40
IS
250642011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25065
72e961c8
EB
25066 * target.def (function_switched_text_sections): New hook.
25067 * doc/tm.texi: Regenerated.
25068 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 25069 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
25070 (final_scan_insn): Call function_switched_text_sections when a
25071 mid-function section change occurs.
14d11d40 25072 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
25073 * config/darwin-protos.h (darwin_function_switched_text_sections):
25074 Likewise.
14d11d40 25075 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 25076 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 25077
0b764288
IS
250782011-01-07 Iain Sandoe <iains@gcc.gnu.org>
25079
25080 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
25081 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
25082 the secondary code fragment when outputting for DWARF == 2.
25083
2ac6bb04
AS
250842011-01-07 Anatoly Sokolov <aesok@post.ru>
25085
25086 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25087 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25088 Remove.
25089 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25090 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25091
9f82de11
EB
250922011-01-06 Eric Botcazou <ebotcazou@adacore.com>
25093
25094 PR debug/46704
280d9630
EB
25095 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25096 when it is not empty.
9f82de11
EB
25097
250982011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 25099
1ed72abf 25100 Bobcat Enablement
14b52538 25101 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 25102 (case ${target}): Add btver1.
14b52538 25103 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 25104 -march=native recognize btver1 processors.
14b52538 25105 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 25106 btver1 def_and_undef
14b52538 25107 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
25108 btver1 cost table.
25109 (m_BTVER1): New definition.
25110 (m_AMD_MULTIPLE): Includes m_BTVER1.
25111 (initial_ix86_tune_features): Add btver1 tune.
25112 (processor_target_table): Add btver1 entry.
25113 (static const char *const cpu_names): Add btver1 entry.
25114 (software_prefetching_beneficial_p): Add btver1.
25115 (ix86_option_override_internal): Add btver1 instruction sets.
25116 (ix86_issue_rate): Add btver1.
25117 (ix86_adjust_cost): Add btver1.
14b52538 25118 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
25119 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25120 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
25121 * config/i386/i386.md (define_attr "cpu"): Add btver1.
25122
e1a973d8
RO
251232011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25124
25125 PR target/43309
25126 * config/i386/i386.c (legitimize_tls_address)
25127 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25128 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25129 (tls_initial_exec_64_sun): New pattern.
25130
c73f67c5
GP
251312011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
25132
25133 * doc/invoke.texi (Overall Options): Improve wording and markup
25134 of the description of -wrapper.
25135
bc4c6f9c
JM
251362011-01-06 Joseph Myers <joseph@codesourcery.com>
25137
25138 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25139 rdynamic, threads): New Driver options.
25140
adb75db0
RO
251412011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25142
25143 PR target/38118
25144 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25145 if coming from .tdata.
25146 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25147
402c1cb4
JH
251482011-01-06 Jan Hubicka <jh@suse.cz>
25149
25150 PR lto/47188
25151 * collect2.c (main): Do not enable LTOmode when plugin is active.
25152
a4da6485
RO
251532011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25154
25155 PR other/45915
25156 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25157 --version output if supported.
25158 * configure: Regenerate.
25159
028dbdf4
JM
251602011-01-06 Joseph Myers <joseph@codesourcery.com>
25161
25162 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25163 Driver options.
25164
dfe776dd
JJ
251652011-01-06 Jakub Jelinek <jakub@redhat.com>
25166
25167 PR c/47150
25168 * c-convert.c (convert): When converting a complex expression
25169 other than COMPLEX_EXPR to a different complex type, ensure
25170 c_save_expr is called instead of save_expr, unless in_late_binary_op.
25171 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25172 when converting COMPLEX_TYPE.
25173
210dedfe
IR
251742011-01-06 Ira Rosen <irar@il.ibm.com>
25175
25176 PR tree-optimization/47139
25177 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25178 only the last reduction value is used outside the loop. Update
25179 documentation.
25180
cd33a412
JM
251812011-01-05 Joseph Myers <joseph@codesourcery.com>
25182
25183 * config/rtems.opt: New.
25184 * config.gcc (*-*-rtems*): Use rtems.opt.
25185
819edd94
CF
251862011-01-05 Changpeng Fang <changpeng.fang@amd.com>
25187
25188 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25189 processors do not support 3DNow instructions.
25190
dc242c4a
UW
251912011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25192
25193 * config/spu/spu.c (spu_option_override): Set parameter
25194 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25195
be286227
JH
251962011-01-05 Jan Hubicka <jh@suse.cz>
25197
25198 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25199 at the command line.
25200
644e637f
MJ
252012011-01-05 Martin Jambor <mjambor@suse.cz>
25202
25203 PR lto/47162
25204 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25205 deltas on streamed outgoing edges.
25206 (output_node_opt_summary): Output info for outgoing edges only when
25207 the node is in new parameter set.
25208 (output_cgraph_opt_summary): New parameter set, passed to the two
25209 aforementioned functions. Update its forward declaration and its
25210 callee too.
25211
7bd11157
TT
252122011-01-05 Tom Tromey <tromey@redhat.com>
25213
25214 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25215 operator to c_finish_omp_atomic.
25216 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25217 (build_unary_op): Update.
25218 (build_modify_expr): Update.
25219 (build_asm_expr): Update.
25220
f626b979
UW
252212011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25222
25223 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25224 newly inserted insns.
25225 (pad_bb): Likewise.
25226 (spu_emit_branch_hint): Likewise.
25227 (insert_hbrp_for_ilb_runout): Likewise.
25228 (spu_machine_dependent_reorg): Call df_finish_pass after
25229 schedule_insns returns.
25230
4c825c02
UW
252312011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25232
25233 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25234
5e9fba51
EB
252352011-01-05 Eric Botcazou <ebotcazou@adacore.com>
25236
25237 PR tree-optimization/47005
25238 * tree-sra.c (struct access): Add 'non_addressable' bit.
25239 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25240 (decide_one_param_reduction): Return 0 if the parameter is passed by
25241 reference and one of the accesses in the group is non_addressable.
25242
3ebb5ca6
EB
252432011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25244
25245 PR tree-optimization/47056
25246 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25247 (mark_load): Likewise. Handle FUNCTION_DECL specially.
25248 (mark_store): Likewise. Pass STMT to ipa_record_reference.
25249
d5d4d14e
EB
252502011-01-04 Eric Botcazou <ebotcazou@adacore.com>
25251
25252 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25253 initializer. Skip view conversions from aggregate types.
25254
d996ef70
KT
252552011-01-04 Kai Tietz <kai.tietz@onevision.com>
25256
25257 PR bootstrap/47055
25258 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25259
509d65dd 252602011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
25261
25262 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25263 obvious typo.
25264
55c623b5
UW
252652011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25266
25267 * function.c (thread_prologue_and_epilogue_insns): Do not crash
25268 on empty epilogue sequences.
25269
b98d6b35
JM
252702011-01-04 Joseph Myers <joseph@codesourcery.com>
25271
25272 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25273 non-static): New Driver options.
25274
a0d43bac
JZ
252752011-01-04 Jie Zhang <jie@codesourcery.com>
25276
25277 PR driver/47137
25278 * gcc.c (default_compilers[]): Set combinable field to 0
25279 for all assembly languages.
25280
2b18eb32
MX
252812011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
25282
25283 * config/mips/loongson3a.md: New file.
25284 * config/mips/mips.md: Include loongson3a.md.
25285 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25286 TUNE_LOONGSON_3A.
25287
42a48c4f
EB
252882011-01-03 Eric Botcazou <ebotcazou@adacore.com>
25289
25290 PR middle-end/47017
25291 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25292 instead of convert_memory_address_addr_space on the base expression.
25293
9c1732c4
UW
252942011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25295
25296 * config/spu/spu.c (spu_option_override): Update error text
25297 for bad -march= / -mtune= values.
25298
aa474365
UW
252992011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25300
25301 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25302 if branch-hint optimization will be performed.
25303
9766135b
JJ
253042011-01-03 Jakub Jelinek <jakub@redhat.com>
25305
371556ee
JJ
25306 PR tree-optimization/47148
25307 * ipa-split.c (split_function): Convert arguments to
25308 DECL_ARG_TYPE if possible.
25309
1ac12fa2
JJ
25310 PR tree-optimization/47155
25311 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25312 when computing uns.
25313
9766135b
JJ
25314 PR rtl-optimization/47157
25315 * combine.c (try_combine): If undobuf.other_insn becomes
25316 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25317 and set *new_direct_jump_p too.
25318
f4a2e571
SP
253192011-01-03 Sebastian Pop <sebastian.pop@amd.com>
25320
25321 PR tree-optimization/47021
25322 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25323
9f8e43c0
JJ
253242011-01-03 Jakub Jelinek <jakub@redhat.com>
25325
25326 * gcc.c (process_command): Update copyright notice dates.
25327 * gcov.c (print_version): Likewise.
25328 * gcov-dump.c (print_version): Likewise.
25329 * mips-tfile.c (main): Likewise.
25330 * mips-tdump.c (main): Likewise.
25331
1a2e38f3
MJ
253322011-01-03 Martin Jambor <mjambor@suse.cz>
25333
25334 PR tree-optimization/46801
25335 * tree-sra.c (type_internals_preclude_sra_p): Check whether
25336 aggregate fields start at byte boundary instead of the bit-field flag.
25337
56b721c5
L
253382011-01-03 H.J. Lu <hongjiu.lu@intel.com>
25339
25340 PR driver/47137
25341 * gcc.c (main): Revert revision 168407.
25342
839d549b
MJ
253432011-01-03 Martin Jambor <mjambor@suse.cz>
25344
25345 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25346
4ce99a20 253472011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
25348
25349 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25350 vector optab to expand vector/scalar shift, update gimple to vector.
25351
76df0ae6
MJ
253522011-01-03 Martin Jambor <mjambor@suse.cz>
25353
25354 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25355 a thunk.
25356
ce47fda3
MJ
253572011-01-03 Martin Jambor <mjambor@suse.cz>
25358
25359 PR tree-optimization/46984
25360 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25361 HOST_WIDE_INT.
25362 (cgraph_create_indirect_edge): Fixed line length.
25363 (cgraph_indirect_call_info): Declare.
25364 (cgraph_make_edge_direct) Update declaration.
25365 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25366 (cgraph_create_indirect_edge): Use it.
25367 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
25368 callees.
25369 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25370 the new thunk_delta representation.
25371 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25372 HOST_WIDE_INT.
25373 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25374 (ipa_read_indirect_edge_info): Likewise.
25375 * lto-cgraph.c (output_edge_opt_summary): New function.
25376 (output_node_opt_summary): Call it on all outgoing edges.
25377 (input_edge_opt_summary): New function.
25378 (input_node_opt_summary): Call it on all outgoing edges.
25379
1e67fa1f
L
253802011-01-02 H.J. Lu <hongjiu.lu@intel.com>
25381
25382 PR driver/47137
25383 * gcc.c (main): Don't check have_o when settting combine_inputs.
25384
6656b2ac
EB
253852011-01-02 Eric Botcazou <ebotcazou@adacore.com>
25386
25387 * regrename.c: Add general comment describing the pass.
25388 (struct du_head): Remove 'length' field.
25389 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25390 (regrename_optimize): Do not sort chains. Rework comments, add others.
25391 Force renaming to the preferred class (if any) in the first pass and do
25392 not consider registers that belong to it in the second pass.
25393 (create_new_chain): Do not set 'length' field.
25394 (scan_rtx_reg): Likewise.
25395
bc470c24
JJ
253962011-01-02 Jakub Jelinek <jakub@redhat.com>
25397
4e996296
JJ
25398 PR tree-optimization/47140
25399 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25400 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25401 to bit_value_binop.
25402
bc470c24 25403 PR rtl-optimization/47028
6656b2ac
EB
25404 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25405 parm_birth_insn instead of at the beginning of first bb.
bc470c24 25406
5af62fcd 254072011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
25408
25409 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25410 Remove the word "see" before "@pxref".
25411 * doc/rtl.texi: Remove the word "see" before "@pxref".
25412
0e20c89f
JH
254132011-01-01 Jan Hubicka <jh@suse.cz>
25414
6656b2ac
EB
25415 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25416 memory.
0e20c89f 25417
220e83ca
KT
254182011-01-01 Kai Tietz <kai.tietz@onevision.com>
25419
25420 PR target/38662
6656b2ac 25421 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 25422
ad41bd84 25423\f
797103eb 25424Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
25425
25426Copying and distribution of this file, with or without modification,
25427are permitted in any medium without royalty provided the copyright
25428notice and this notice are preserved.