]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
part of restore of powerpc-darwin Ada bootstrap
[gcc.git] / gcc / ChangeLog
CommitLineData
558c362a
IS
12011-09-08 Iain Sandoe <iains@gcc.gnu.org>
2
3 *config/darwin-driver.c (darwin_find_version_from_kernel): New routine
4 cut from ... (darwin_default_min_version): Amended to provide defaults
5 for the cross directory case.
6 (darwin_driver_init): call darwin_default_min_version unconditionally.
7 * config/darwin.h (DEF_MIN_OSX_VERSION): New.
8 * config/darwin9.h: Likewise.
9 * config/darwin10.h: Likewise.
10 * config/rs6000/darwin7.h: Likewise.
11
1542d97a
JJ
122011-09-08 Jakub Jelinek <jakub@redhat.com>
13
14 PR target/50310
15 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
16 code early if TARGET_AVX.
17 (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
18
601a5d76
JJ
192011-09-07 Jakub Jelinek <jakub@redhat.com>
20
21 * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
22 duplicates.
23
24 PR target/50310
25 * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
26 "mode" attribute computation.
27
8ffa0351
BS
282011-09-07 Bernd Schmidt <bernds@codesourcery.com>
29
30 * regrename.c (struct du_head): Make nregs signed.
31 (closed_chains): Remove.
32 (create_new_chain): Return the new chain.
33 (chain_from_id): New static function.
34 (dump_def_use_chain): Change argument to be an int, indicating
35 the first ID to print. All callers changed.
36 (merge_overlapping_regs): Use chain_from_id. Assert that
37 chains don't conflict with themselves.
38 (rename_chains): Take no argument. Iterate over id_to_chain
39 rather to find chains to rename. Clear tick before the main
40 loop.
41 (struct incoming_reg_info): New struct.
42 (struct bb_rename_info): New struct.
43 (init_rename_info, set_incoming_from_chain, merge_chains): New
44 static functions.
45 (regrename_analyze): New static function, broken out of
46 regrename_optimize. Record and make use of open chain information
47 at basic block boundaries, and merge chains where possible.
48 (scan_rtx_reg): Make this_nregs signed. Don't update
49 closed_chains.
50 (build_def_use): Return a bool to indicate success. All callers
51 changed. Don't initialize global data here.
52 (regrename_optimize): Move most code out of here into
53 regrename_analyze.
54 * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
55 range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
56 static inline functions.
57 * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
58
ca1ae7e3
BS
59 * bb-reorder.c (insert_section_boundary_note): Don't check
60 optimize_function_for_speed_p.
61 (gate_handle_partition_blocks): Do it here instead.
62 (gate_handle_reorder_blocks): Move preliminary checks here ...
63 (rest_of_handle_reorder_blocks): ... from here.
64
128c61ee
MJ
652011-09-07 Martin Jambor <mjambor@suse.cz>
66
67 PR middle-end/50301
68 * ipa-cp.c (find_more_values_for_callers_subset): Check jump
69 function index bounds.
70 (perhaps_add_new_callers): Likewise.
71
da990dc0
MJ
722011-09-07 Martin Jambor <mjambor@suse.cz>
73
74 PR tree-optimization/49911
75 * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
76 enumerations to the corresponding plain integer type.
77
747633c5
RG
782011-09-07 Richard Guenther <rguenther@suse.de>
79
80 PR tree-optimization/50319
81 * tree-if-conv.c (set_bb_predicate): Assert we only set
82 canonical predicates.
83 (add_to_predicate_list): Simplify. Allow TRUTH_NOT_EXPR
84 around canonical predicates.
85 (predicate_bbs): Do not re-gimplify already canonical
86 predicates. Properly unshare them though.
87 (find_phi_replacement_condition): Simplify.
88
723d95fe
RS
892011-09-07 Richard Sandiford <richard.sandiford@linaro.org>
90
91 PR target/49030
92 * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
93 * config/arm/arm.c (maybe_get_arm_condition_code): New function,
94 reusing the old code from get_arm_condition_code. Return ARM_NV
95 for invalid comparison codes.
96 (get_arm_condition_code): Redefine in terms of
97 maybe_get_arm_condition_code.
98 * config/arm/predicates.md (arm_comparison_operator): Use
99 maybe_get_arm_condition_code.
100
e8642944
RG
1012011-09-07 Richard Guenther <rguenther@suse.de>
102
103 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
104 Canonicalize negated predicates by swapping edges.
105 (forward_propagate_into_cond): Likewise.
106
601f64e2
RG
1072011-09-07 Richard Guenther <rguenther@suse.de>
108
109 PR tree-optimization/50213
110 * tree-flow.h (simple_iv_increment_p): Declare.
111 * tree-ssa-dom.c (simple_iv_increment_p): Export. Also handle
112 POINTER_PLUS_EXPR.
113 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
114 not propagate simple IV counter increments.
115
1aeee5ad
IS
1162011-09-07 Eric Botcazou <ebotcazou@adacore.com>
117 Iain Sandoe <iains@gcc.gnu.org>
118
119 * config/rs6000/rs6000.c (compute_save_world_info): Test
120 cfun->has_nonlocal_label to determine if the out-of-line save
121 world call may be used.
122
da73162f
NC
1232011-09-07 Nick Clifton <nickc@redhat.com>
124
125 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
126 label on the parallel part of the insn.
127
5d506c77
JJ
1282011-09-07 Jakub Jelinek <jakub@redhat.com>
129
130 PR debug/50191
131 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
132 avoid_constant_pool_reference first instead of last.
133
7b50d234
MM
1342011-09-06 Michael Meissner <meissner@linux.vnet.ibm.com>
135
136 * doc/configfiles.texi (Configuration Files): Update documentation
137 about tm_p.h and remove FIXME comment.
138
8092dd90
UB
1392011-09-06 Uros Bizjak <ubizjak@gmail.com>
140
141 * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
142 (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
143
cf8fd309
IS
1442011-09-06 Iain Sandoe <iains@gcc.gnu.org>
145
146 * config/darwin10.h Remove duplicate LIB_SPEC.
147
df7b0cc4
EI
1482011-09-06 Enkovich Ilya <ilya.enkovich@intel.com>
149
150 PR middle-end/44382
151 * target.def (reassociation_width): New hook.
152
153 * doc/tm.texi.in (reassociation_width): Likewise.
154
155 * doc/tm.texi (reassociation_width): Likewise.
156
157 * doc/invoke.texi (tree-reassoc-width): New param documented.
158
159 * hooks.h (hook_int_uint_mode_1): New default hook.
160
161 * hooks.c (hook_int_uint_mode_1): Likewise.
162
163 * config/i386/i386.h (ix86_tune_indices): Add
164 X86_TUNE_REASSOC_INT_TO_PARALLEL and
165 X86_TUNE_REASSOC_FP_TO_PARALLEL.
166
167 (TARGET_REASSOC_INT_TO_PARALLEL): New.
168 (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
169
170 * config/i386/i386.c (initial_ix86_tune_features): Add
171 X86_TUNE_REASSOC_INT_TO_PARALLEL and
172 X86_TUNE_REASSOC_FP_TO_PARALLEL.
173
174 (ix86_reassociation_width) implementation of
175 new hook for i386 target.
176
177 * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
178
179 * tree-ssa-reassoc.c (get_required_cycles): New function.
180 (get_reassociation_width): Likewise.
181 (swap_ops_for_binary_stmt): Likewise.
182 (rewrite_expr_tree_parallel): Likewise.
183
184 (rewrite_expr_tree): Refactored. Part of code moved into
185 swap_ops_for_binary_stmt.
186
187 (reassociate_bb): Now checks reassociation width to be used
188 and call rewrite_expr_tree_parallel instead of rewrite_expr_tree
189 if needed.
190
df2f6100
RG
1912011-09-06 Richard Guenther <rguenther@suse.de>
192
193 PR tree-optimization/47025
194 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
195 uses nothing.
196 (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
197 BUILT_IN_FREE.
198 (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
199 definitely points to.
200 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
201 BUILT_IN_VA_START doesn't let its va_list argument escape.
202 * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
203 not make any previous stores necessary.
204
124f1be6
MJ
2052011-09-06 Martin Jambor <mjambor@suse.cz>
206
207 * ipa-inline.h (struct inline_summary): Move versionable flag...
208 * cgraph.h (struct cgraph_local_info): ...here
209 * ipa-cp.c (determine_versionability): Use the new versionable flag.
210 (determine_versionability): Likewise.
211 (ipcp_versionable_function_p): Likewise.
212 (ipcp_generate_summary): Likewise.
213 * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
214 versionable flag.
215 (compute_inline_parameters): Do not clear the versionable flag.
216 (inline_read_section): Do not stream the versionable flag.
217 (inline_write_summary): Likewise.
218 * lto-cgraph.c (lto_output_node): Stream the versionable flag.
219 (input_overwrite_node): Likewise.
220
1a60c352
RG
2212011-09-06 Richard Guenther <rguenther@suse.de>
222
223 PR tree-optimization/48149
224 * tree-ssa-sccvn.c (vn_get_expr_for): Simplify. Fix tuplification bug.
225 (vn_valueize): Move earlier.
226 (valueize_expr): Use vn_valueize.
227 (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
228 operands.
229 (simplify_unary_expression): Simplify.
230
5a7d7f9c
RG
2312011-09-06 Richard Guenther <rguenther@suse.de>
232
233 PR tree-optimization/48317
234 * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
235 trailing array.
236 (sizeof_vn_nary_op): New inline function.
237 (vn_nary_op_lookup_pieces): Adjust.
238 (vn_nary_op_insert_pieces): Likewise.
239 * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
240 (init_vn_nary_op_from_pieces): Adjust signature. Deal with
241 any number of operands.
242 (vn_nary_length_from_stmt): New function.
243 (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
244 (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
245 sized temporary.
246 (vn_nary_op_lookup): Likewise.
247 (vn_nary_op_lookup_stmt): Likewise.
248 (vn_nary_op_insert_into): Likewise.
249 (vn_nary_op_insert_stmt): Likewise.
250 (visit_use): Handle CONSTRUCTOR as nary.
251 * tree-ssa-pre.c (phi_translate_1): Adjust.
252 (create_expression_by_pieces): Likewise.
253 (compute_avail): Likewise.
254
8f40ccea
IR
2552011-09-06 Ira Rosen <ira.rosen@linaro.org>
256
257 * config/arm/arm.c (arm_preferred_simd_mode): Check
258 TARGET_NEON_VECTORIZE_DOUBLE instead of
259 TARGET_NEON_VECTORIZE_QUAD.
260 (arm_autovectorize_vector_sizes): Likewise.
261 * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
262 mask of mvectorize-with-neon-double. Add RejectNegative.
263 (mvectorize-with-neon-double): New.
264
32dba5ef
RG
2652011-09-06 Richard Guenther <rguenther@suse.de>
266
267 * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify
268 matching.
269
1255c03a
TV
2702011-09-06 Tom de Vries <tom@codesourcery.com>
271
272 * recog.c (asm_labels_ok): New function.
273 (check_asm_operands): Use asm_labels_ok.
274
81a478c8
RS
2752011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
276
277 PR target/49606
278 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
279 (PMODE_INSN): New macro.
280 * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
281 (mips_got_load, mips_expand_synci_loop): Likewise.
282 (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
283 cprestore patterns.
284 (mips_emit_loadgp): Use PMODE_INSN. Handle SImode and DImode
285 copygp_mips16 patterns.
286 (mips_expand_prologue): Handle SImode and DImode potential_cprestore
287 and use_cprestore patterns.
288 (mips_override_options): Check for incompatible -mabi and -mlong
289 combinations.
290 * config/mips/mips.md (unspec_got<mode>): Rename to...
291 (unspec_got_<mode>): ...this.
292 (copygp_mips16): Use the Pmode iterator.
293 (potential_cprestore, cprestore, use_cprestore): Likewise.
294 (clear_cache, indirect_jump): Use PMODE_INSN.
295 (indirect_jump<mode>): Rename to...
296 (indirect_jump_<mode>): ...this.
297 (tablejump): Use PMODE_INSN.
298 (tablejump<mode>): Rename to...
299 (tablejump_<mode>): ...this.
300 (exception_receiver): Handle restore_gp_si and restore_gp_di.
301 (restore_gp): Use the Pmode iterator.
302 * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
303 PMODE_INSN.
304
1ab9ec7b
RS
3052011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
306
307 * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
308 Fix the type of the BIT_AND_EXPR.
309
0913b2d6
DM
3102011-09-05 David S. Miller <davem@davemloft.net>
311
312 * config.host: Add driver-sparc.o and sparc/x-sparc on
313 native sparc*-*-linux* builds.
314 * config/sparc/driver-sparc.c: Correct Linux strings.
315 * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
316 * config/sparc/linux64.h: Likewise.
317 * doc/invoke.texi: Document that Linux also supports
318 -mcpu=native and -mtune=native on sparc.
319
3e64c239
DM
320 * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
321 PROCESSOR_NIAGARA4): New.
322 * config/sparc/sparc.opt: Handle new processor types.
323 * config/sparc/sparc.md: Add to "cpu" attribute.
324 * config/sparc/sparc.h (TARGET_CPU_niagara3,
325 TARGET_CPU_niagara4): New, treat as niagara2.
326 * config/sparc/linux64.h: Handle niagara3 and niagara4
327 like niagara2.
328 * config/sparc/sol2.h: Likewise.
329 * config/sparc/niagara2.md: Schedule niagara3 like
330 niagara2.
331 * config/sparc/sparc.c (sparc_option_override): Add
332 niagara3 and niagara4 handling.
333 (sparc32_initialize_trampoline): Likewise.
334 (sparc64_initialize_trampoline): Likewise.
335 (sparc_use_sched_lookahead): Likewise.
336 (sparc_issue_rate): Likewise.
337 (sparc_register_move_cost): Likewise.
338 * config/sparc/driver-sparc.c (cpu_names): Use niagara3
339 and niagara4 as appropriate.
340 * doc/invoke.texi: Document new processor types.
70847a48
DM
341 * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
342 and --with-tune options.
3e64c239 343
4f4f4f54
DM
344 * config/sparc/sol2-64.h: Move ...
345 * config/sparc/default-64.h: ... to here. Update comment.
346 * config.gcc: Update Solaris sparc to use default-64.h, also
347 prefix this header into the list on sparc64-*-linux.
348 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
349 TARGET_64BIT_DEFAULT is defined. Remove commented out reference
350 to MASK_HARD_QUAD.
351
1e3a7e86
GJL
3522011-09-05 Georg-Johann Lay <avr@gjlay.de>
353
354 PR target/50289
355 * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
356 that contain global register variable.
357
e1ab3876
RG
3582011-09-05 Richard Guenther <rguenther@suse.de>
359
360 * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
361
830c740f
RG
3622011-09-05 Richard Guenther <rguenther@suse.de>
363
364 * stor-layout.c (layout_type): Use size_binop for array size
365 calculations.
366
c149e487 3672011-09-05 Georg-Johann Lay <avr@gjlay.de>
0913b2d6 368
c149e487
GJL
369 * config/avr/avr.h (progmem_section): Remove Declaration.
370 * config/avr/avr.c (progmem_section): Make static and rename to
371 progmem_swtable_section.
372 (avr_output_addr_vec_elt): No need to switch sections.
373 (avr_asm_init_sections): Use output_section_asm_op as section
374 callback for progmem_swtable_section.
375 (avr_output_progmem_section_asm_op): Remove Function.
376 (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
377 (avr_asm_function_rodata_section): New static Function.
378 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
379 alignment 2**1 for jump tables.
380
c5ceeb87
JH
3812011-09-04 Jan Hubicka <jh@suse.cz>
382
383 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
384 parameter is SSA name.
385
5b970a1a
RG
3862011-09-04 Richard Guenther <rguenther@suse.de>
387
388 Revert
389 2011-08-31 Richard Guenther <rguenther@suse.de>
390
391 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
392 special-casing.
393
c0c19685
IS
3942011-09-04 Iain Sandoe <iains@gcc.gnu.org>
395
396 PR debug/49901
397 * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
398
ad949bcc
JJ
3992011-09-04 Jakub Jelinek <jakub@redhat.com>
400 Ira Rosen <ira.rosen@linaro.org>
401
402 PR tree-optimization/50208
403 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
404 argument. Check that def_stmt is inside the loop.
405 (vect_recog_widen_mult_pattern): Update calls to
406 vect_handle_widen_mult_by_cons.
407 (vect_operation_fits_smaller_type): Check that def_stmt is
408 inside the loop.
409
7cd3603b
IR
4102011-09-04 Ira Rosen <ira.rosen@linaro.org>
411
412 * tree-vectorizer.c (vect_print_dump_info): Print line
413 number when dumping to a file.
414 (vectorize_loops): Add new messages to dump file.
415
606d9a09
MJ
4162011-09-03 Martin Jambor <mjambor@suse.cz>
417
418 * ipa-prop.h (ipa_jump_func_t): New typedef.
419 (struct ipa_edge_args): Removed field argument_count, field
420 jump_functions turned into a vector.
421 (ipa_set_cs_argument_count): Removed.
422 (ipa_get_cs_argument_count): Updated to work on vectors.
423 (ipa_get_ith_jump_func): Likewise.
424 * ipa-prop.c (ipa_count_arguments): Removed.
425 (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
426 jump functions. Update caller.
427 (compute_pass_through_member_ptrs): Likewise.
428 (compute_cst_member_ptr_arguments): Likewise.
429 (ipa_compute_jump_functions_for_edge): Get number of arguments from
430 the statement, allocate vector.
431 (ipa_compute_jump_functions): Do not call ipa_count_arguments.
432 (duplicate_ipa_jump_func_array): Removed.
433 (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
434 (ipa_read_node_info): Allocate vector.
435
15768583
JDA
4362011-09-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
437
8f15b605 438 PR middle-end/50232
15768583
JDA
439 * config/pa/pa.md (return): Define "return" insn pattern.
440 (epilogue): Use it when no epilogue is needed.
441 * config/pa/pa.c (pa_can_use_return_insn): New function.
442 * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
443
13868f40
EB
4442011-09-03 Eric Botcazou <ebotcazou@adacore.com>
445
446 * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
447 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
448 Force at least BITS_PER_UNIT alignment on the new variable.
449
58265ea6
GF
4502011-09-02 Gary Funck <gary@intrepid.com>
451
452 * opts.c (print_specific_help): Fix off-by-one compare in
453 assertion check.
454 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
455 CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
456 Increase by +5 to allow for more languages.
457 * optc-gen.awk: Generate #if that ensures that the number of
458 languages is within the implementation-defined limit.
459
dde460d4
MM
4602011-09-02 Michael Matz <matz@suse.de>
461
462 PR middle-end/50260
463 * ipa-split.c (split_function): Call add_referenced_var.
464
465 * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
466 (cond_if_else_store_replacement_1): Ditto.
467 * tree-ssa-pre.c (get_representative_for): Ditto.
468 (create_expression_by_pieces): Ditto.
469 (insert_into_preds_of_block): Ditto.
470 * tree-sra.c (create_access_replacement): Ditto.
471 (get_replaced_param_substitute): Ditto.
472
6bd9bf42
BS
4732011-09-02 Bernd Schmidt <bernds@codesourcery.com>
474
475 * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
476 automata_options.
477 (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
478 (l1w, s1w, l2w, s2w): Define in the main automaton.
479 (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
480 units.
481 * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
482 (c6x_unit_names): Add the new units.
483 (c6x_unit_codes): New static array.
484 (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
485 UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
486 UNIT_QID_SIDE_OFFSET): New macros.
487 (RESERVATION_S2): Adjust value.
488 (c6x_option_override): Compute c6x_unit_codes.
489 (assign_reservations): Take the unit_mask of the last instruction
490 into account. Detect floating point reservations by looking for
491 the new units. Don't assign reservations if the field is already
492 nonzero.
493 (struct c6x_sched_context): Add member prev_cycle_state_ctx.
494 (init_sched_state): Initialize it.
495 (c6x_clear_sched_context): Free it.
496 (insn_set_clock): Clear reservation.
497 (prev_cycle_state): New static variable.
498 (c6x_init_sched_context): Save it.
499 (c6x_sched_init): Allocate space for it and clear it.
500 (c6x_sched_dfa_pre_cycle_insn): New static function.
501 (c6x_dfa_new_cycle): Save state at the start of a new cycle.
502 (c6x_variable_issue): Only record units in the unit_mask that
503 were not set at the start of the cycle.
504 (c6x_variable_issue): Compute and store the unit_mask from the
505 current state.
506 (reorg_split_calls): Ensure the new information remains correct.
507 (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
508 TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
509 * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
510 * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
511 Add special reservations.
512 * config/c6x/c6x-sched.md: Regenerate.
513
d7da5cc8
MJ
5142011-09-02 Martin Jambor <mjambor@suse.cz>
515
516 * ipa-prop.h (ipa_node_params): Removed fields
517 called_with_var_arguments and node_versionable.
518 (ipa_set_called_with_variable_arg): Removed.
519 (ipa_is_called_with_var_arguments): Likewise.
520 * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
521 (determine_versionability): Do not check for type attributes and va
522 builtins. Record versionability into inline summary.
523 (initialize_node_lattices): Do not check
524 ipa_is_called_with_var_arguments.
525 (propagate_constants_accross_call): Likewise, ignore arguments we do
526 not have PARM_DECLs for, set variable flag for parameters that were
527 not passed a value.
528 (create_specialized_node): Dump info that we cannot change signature.
529 * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
530 number of arguments.
531 (ipa_make_edge_direct_to_target): Likewise.
532 (ipa_update_after_lto_read): Likewise.
533 (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
534 * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
535 they were remapped.
536
e9e1d143
RG
5372011-09-02 Richard Guenther <rguenther@suse.de>
538
539 PR tree-optimization/27460
540 PR middle-end/29269
541 * doc/md.texi (vcond): Document.
542 * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
543 optab with two modes.
544 * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
545 (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
546 (vcond_optab): Adjust.
547 (vcondu_optab): Likewise.
548 (expand_vec_cond_expr_p): Adjust prototype.
549 * optabs.c (get_vcond_icode): Adjust.
550 (expand_vec_cond_expr_p): Likewise.
551 (expand_vec_cond_expr): Likewise.
552 * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
553 vector type.
554 (vectorizable_condition): Allow differing types for comparison
555 and result.
556 * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
557 for the comparison.
558 * config/i386/sse.md (vcond<mode>): Split to
559 vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
560 vcond<V_128:mode><VI124_128:mode> and
561 vcondu<V_128:mode><VI124_128:mode>.
562 (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
563 (vconduv2di): Likewise.
564 * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
565 (vcondu<mode>): Likewise.
566 * config/ia64/vect.md (vcond<mode>): Likewise.
567 (vcondu<mode>): Likewise.
568 (vcondv2sf): Likewise.
569 * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
570 * config/rs6000/paired.md (vcondv2sf): Likewise.
571 * config/rs6000/vector.md (vcond<mode>): Likewise.
572 (vcondu<mode>): Likewise.
573 * config/spu/spu.md (vcond<mode>): Likewise.
574 (vcondu<mode>): Likewise.
575
aa547a51
RG
5762011-09-02 Richard Guenther <rguenther@suse.de>
577
578 * pretty-print.h (pp_unsigned_wide_integer): New.
579 * tree-pretty-print.c (dump_generic_node): Print unsigned
580 host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
581
42ea8b27
RS
5822011-09-02 Richard Sandiford <richard.sandiford@linaro.org>
583
584 PR target/49987
585 * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
586 valid CONST_VECTOR operands.
587 (rs6000_expand_vector_init): Likewise.
588
81fa35bd
MJ
5892011-09-02 Martin Jambor <mjambor@suse.cz>
590
591 * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
592 * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
593 BINFO_VTABLE. Parameter delta removed, all callers updated.
594 * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
595 BINFO_VTABLE.
596 * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
597 all calls.
598 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
599 handling of thunk_delta.
600 * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
601 (devirtualization_time_bonus): Do not handle thunk deltas.
602 (ipcp_discover_new_direct_edges): Likewise.
603 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
604 (try_make_edge_direct_simple_call): Likewise.
605 (try_make_edge_direct_virtual_call): Likewise.
606 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
607 parameter set as unused.
608 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
609 * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. Mark
610 parameter set as unused.
611 (output_edge_opt_summary): Likewise. Mark both parameters as unused.
612 (input_edge_opt_summary): Likewise.
613 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
614 BINFO_VIRTUALS at all.
615 * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
616
5d882cc1
RG
6172011-09-02 Richard Guenther <rguenther@suse.de>
618
8092dd90
UB
619 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
620 (ccp_fold_stmt): Continue replacing args when folding alloca fails.
5d882cc1 621
4e71066d
RG
6222011-08-31 Richard Guenther <rguenther@suse.de>
623
624 * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
625 handling here, from ...
626 (expand_expr_real_1): ... here.
627 * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
628 and VEC_COND_EXPR.
629 * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
630 a GIMPLE_TERNARY_RHS.
631 * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
632 and VEC_COND_EXPR here ...
633 (verify_gimple_assign_single): ... not here.
634 * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
635 * tree-object-size.c (cond_expr_object_size): Adjust.
636 (collect_object_sizes_for): Likewise.
637 * tree-scalar-evolution.c (interpret_expr): Don't handle
638 ternary RHSs.
8092dd90 639 * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
4e71066d
RG
640 (ssa_forward_propagate_and_combine): Adjust.
641 * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
642 as ternary.
643 * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
644 * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
645 * tree-vect-stmt.c (vectorizable_condition): Likewise.
646 * tree-vrp.c (extract_range_from_cond_expr): Likewise.
647 (extract_range_from_assignment): Likewise.
648
67b2c493
RS
6492011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
650
651 * config/i386/i386.md: Use (match_test ...) for attribute tests.
652 * config/i386/mmx.md: Likewise.
653 * config/i386/sse.md: Likewise.
654 * config/i386/predicates.md (call_insn_operand): Use
655 (not (match_test "...")) instead of (match_test "!...")
656 * config/i386/constraints.md (w): Likewise.
657
0c0d3957
RS
6582011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
659
660 * doc/md.texi: Describe the use of match_tests in attribute tests.
661 * rtl.def (MATCH_TEST): Update commentary.
662 * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
663 (write_test_expr, walk_attr_value): Handle MATCH_TEST.
664
091ace58
RS
6652011-08-31 Richard Sandiford <rdsandiford@googlemail.com>
666
667 * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
668 (attr_string): Use copy_md_ptr_loc.
669
201176d3
MJ
6702011-08-31 Martin Jambor <mjambor@suse.cz>
671
672 PR middle-end/49886
673 * ipa-inline-analysis.c (compute_inline_parameters): Set
674 can_change_signature of noes with typde attributes.
675 * ipa-split.c (split_function): Do not skip any arguments if
676 can_change_signature is set.
677
51093fca
MJ
6782011-08-31 Martin Jambor <mjambor@suse.cz>
679
680 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
681 check removed.
682
32950a5d
RG
6832011-08-31 Richard Guenther <rguenther@suse.de>
684
685 * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
686 special-casing.
687
680fba09
MG
6882011-08-31 Marc Glisse <marc.glisse@inria.fr>
689
690 * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
691
1fed1006
TV
6922011-08-31 Tom de Vries <tom@codesourcery.com>
693
694 PR middle-end/43513
695 * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
696 * tree-ssa-ccp.c (params.h): Include.
697 (fold_builtin_alloca_for_var): New function.
698 (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
699
c683a53a
UB
7002011-08-30 Uros Bizjak <ubizjak@gmail.com>
701
702 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
703 Handle FMA option.
704
5de35240
AS
7052011-08-30 Andrew Stubbs <ams@codesourcery.com>
706
707 * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
708 b3 and b4 unsigned.
709
f8dd28d6
AS
7102011-08-30 Andrew Stubbs <ams@codesourcery.com>
711
712 * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
713 when code is SET.
714
315f5f1b
RG
7152011-08-30 Richard Guenther <rguenther@suse.de>
716
717 PR middle-end/48571
718 * gimple.h (maybe_fold_offset_to_address): Remove.
719 (maybe_fold_offset_to_reference): Likewise.
720 (maybe_fold_stmt_addition): Likewise.
721 (may_propagate_address_into_dereference): Likewise.
722 * tree-inline.c (remap_gimple_op_r): Do not reconstruct
723 array references.
724 * gimple-fold.c (canonicalize_constructor_val): Likewise.
725 Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
726 addresses instead.
727 (may_propagate_address_into_dereference): Remove.
728 (maybe_fold_offset_to_array_ref): Likewise.
729 (maybe_fold_offset_to_reference): Likewise.
730 (maybe_fold_offset_to_address): Likewise.
731 (maybe_fold_stmt_addition): Likewise.
732 (fold_gimple_assign): Do not reconstruct array references but
733 instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
734 MEM_REF addresses.
735 (gimple_fold_stmt_to_constant_1): Likewise.
736 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
737 * gimplify.c (gimplify_conversion): Likewise.
738 (gimplify_expr): Likewise.
739
2ddd46d6
IT
7402011-08-30 Ilya Tocar <ilya.tocar@intel.com>
741
742 * config/i386/fmaintrin.h: New.
743 * config.gcc: Add fmaintrin.h.
744 * config/i386/i386.c
745 (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
746 <IX86_BUILTIN_VFMADDSD3>: Likewise.
747 * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
748 (*fmai_fmadd_<mode>): Likewise.
749 (*fmai_fmsub_<mode>): Likewise.
750 (*fmai_fnmadd_<mode>): Likewise.
751 (*fmai_fnmsub_<mode>): Likewise.
752 * config/i386/immintrin.h: Add fmaintrin.h.
753
e12da141
BS
7542011-08-30 Bernd Schmidt <bernds@codesourcery.com>
755
756 * genautomata.c (NO_COMB_OPTION): New macro.
757 (no_comb_flag): New static variable.
758 (gen_automata_option): Handle NO_COMB_OPTION.
759 (comb_vect_p): False if no_comb_flag.
760 (add_vect): Move computation of min/max values. Return early if
761 no_comb_flag.
762 * doc/md.texi (automata_option): Document no-comb-vect.
763
070f36cf
BS
764 * config/i386/i386.c (get_pc_thunk_name): Change prefix to
765 "__x86.get_pc_thunk".
766
9645d434
BS
767 * bb-reorder.c (insert_section_boundary_note): Only do it if
768 we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
769
cb89a171
CB
7702011-08-30 Christian Bruel <christian.bruel@st.com>
771
772 * coverage.c (coverage_init): Check flag_branch_probabilities instead of
773 flag_profile_use.
c683a53a 774
3167ec4a
MM
7752011-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
776
777 * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
778 to off. Document switch.
779 * doc/invoke.texi (-msave-toc-indirect): Ditto.
780
e621f530
JJ
7812011-08-29 Jakub Jelinek <jakub@redhat.com>
782
783 * gthr-posix.h (__gthread_active_p): Do not use preprocessor
784 conditionals and comments inside macro arguments.
785
8092dd90
UB
7862011-08-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
787 Richard Guenther <rguenther@suse.de>
544d960a
AS
788
789 * tree.h (constant_boolean_node): Adjust prototype.
790 * fold-const.c (fold_convert_loc): Move aggregate conversion
791 leeway down.
792 (constant_boolean_node): Make value parameter boolean, add
793 vector type handling.
794 (fold_unary_loc): Use constant_boolean_node.
795 (fold_binary_loc): Preserve types properly when folding
796 COMPLEX_EXPR <__real x, __imag x>.
797 * gimplify.c (gimplify_expr): Handle vector comparison.
798 * tree.def (EQ_EXPR, ...): Document behavior on vector typed
799 comparison.
800 * tree-cfg.c (verify_gimple_comparison): Verify vector typed
801 comparisons.
802
776bebcd
JJ
8032011-08-29 Jakub Jelinek <jakub@redhat.com>
804
805 PR middle-end/48722
806 * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
807 reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
808 (verify_rtl_sharing): Likewise and verify_rtx_sharing
809 in there too.
810 (unshare_all_rtl_in_chain): For CALL_INSNs
811 copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
812
4d59a001
RG
8132011-08-29 Richard Guenther <rguenther@suse.de>
814
815 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
816 on the built ADDR_EXPR.
817
304fe432
JJ
8182011-08-29 Jakub Jelinek <jakub@redhat.com>
819
820 PR debug/50215
821 * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
822 before adding ENTRY_VALUE to val->locs.
823
76725a03
MP
8242011-08-28 Mikael Pettersson <mikpe@it.uu.se>
825
826 PR bootstrap/50218
827 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
828 comp.
829
26898771
BS
8302011-08-27 Bernd Schmidt <bernds@codesourcery.com>
831
832 * doc/rtl.texi (simple_return): Document.
833 (parallel, PATTERN): Here too.
834 * doc/md.texi (return): Mention it's allowed to expand to simple_return
835 in some cases.
836 (simple_return): Document standard pattern.
837 * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
838 * final.c (final_scan_insn): Use ANY_RETURN_P on body.
839 * reorg.c (function_return_label, function_simple_return_label):
840 New static variables, replacing...
841 (end_of_function_label): ... this.
842 (simplejump_or_return_p): New static function.
843 (optimize_skip, steal_delay_list_from_fallthrough,
844 fill_slots_from_thread): Use it.
845 (relax_delay_slots): Likewise. Use ANY_RETURN_P on body.
846 (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
847 (find_end_label): Take a new arg which is one of the two return
848 rtxs. Depending on which, set either function_return_label or
849 function_simple_return_label. All callers changed.
850 (make_return_insns): Make both kinds.
851 (dbr_schedule): Adjust for two kinds of end labels.
852 * function.c (emit_return_into_block): Set JUMP_LABEL properly.
853 * genemit.c (gen_exp): Handle SIMPLE_RETURN.
854 (gen_expand, gen_split): Use ANY_RETURN_P.
855 * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
856 * rtl.def (SIMPLE_RETURN): New code.
857 * ifcvt.c (find_if_case_1): Be more careful about
858 redirecting jumps to the EXIT_BLOCK.
859 * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
860 returnjump_p_1): Handle SIMPLE_RETURNs.
861 * print-rtl.c (print_rtx): Likewise.
862 * rtl.c (copy_rtx): Likewise.
863 * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
864 * combine.c (simplify_set): Likewise.
865 * resource.c (find_dead_or_set_registers, mark_set_resources):
866 Likewise.
867 * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
868 copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
869 (init_emit_regs): Initialize simple_return_rtx.
870 * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
871 force_nonfallthru_and_redirect.
872 * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
873 (GR_SIMPLE_RETURN): New enum value.
874 (simple_return_rtx): New macro.
875 * basic-block.h (force_nonfallthru_and_redirect): Adjust
876 declaration.
877 * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
878 argument. All callers changed. Be careful about what kinds of
879 returnjumps to generate.
880 * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
881 ix86_pad_short_function): Likewise.
882 * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
883 of return.
884 * config/mips/mips.md (any_return): New code_iterator.
885 (optab): Add cases for return and simple_return.
886 (return): Expand to a simple_return.
887 (simple_return): New pattern.
888 (*<optab>, *<optab>_internal for any_return): New patterns.
889 (return_internal): Remove.
890 * config/mips/mips.c (mips_expand_epilogue): Make the last insn
891 a simple_return_internal.
892
3b0eee5d
UB
8932011-08-27 Uros Bizjak <ubizjak@gmail.com>
894
895 * config/i386/sse.md (*absneg<mode>2): Fix split condition.
896 (vec_extract_lo_<mode>): Prevent both operands in memory.
897 (vec_extract_lo_v16hi): Ditto.
898 (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
899
9002011-08-27 Uros Bizjak <ubizjak@gmail.com>
901
902 * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
903 (*sse2_mulv4si3): Ditto.
904 (mulv2di3): Ditto.
905 * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
906 notes to REG_EQUAL.
907
b807694e
UB
9082011-08-27 Uros Bizjak <ubizjak@gmail.com>
909
910 PR target/50202
911 * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
912 when all outputs are unused.
3b0eee5d 913 (sse4_2_pcmpistr): Ditto.
b807694e 914
734dfb47
UB
9152011-08-26 Uros Bizjak <ubizjak@gmail.com>
916
917 * config/i386/i386.md (round<mode>2): New expander.
918 * config/i386/i386.c (enum ix86_builtins): Add
919 IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
920 (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
921 descriptions.
922 (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
923 (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
924
44782c0c
UB
9252011-08-26 Uros Bizjak <ubizjak@gmail.com>
926
927 PR middle-end/50083
928 * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
929 only when TARGET_C99_FUNCTIONS.
930 <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
931 <BUILT_IN_RINT{,F,L}>: Ditto.
932
0b11d702
MM
9332011-08-26 Michael Matz <matz@suse.de>
934 Jakub Jelinek <jakub@redhat.com>
935
936 PR lto/50165
937 * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
938 don't call strlen twice, use memcpy.
939
f13677ba
L
9402011-08-26 H.J. Lu <hongjiu.lu@intel.com>
941
942 * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
943 * config/i386/bmiintrin.h: Likewise.
944 * config/i386/lzcntintrin.h: Likewise.
945
946 * config/i386/immintrin.h: Include <lzcntintrin.h>,
947 <bmiintrin.h> and <bmi2intrin.h>.
948
a26479f3
RO
9492011-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
950
951 PR target/50166
952 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
953 * configure: Regenerate.
954
f1a89dd0
JJ
9552011-08-26 Jakub Jelinek <jakub@redhat.com>
956
957 PR c/50179
958 * c-typeck.c (c_process_expr_stmt): Skip over nops and
959 call mark_exp_read even if exprv is ADDR_EXPR.
960
fd3e0a33
RS
9612011-08-26 Richard Sandiford <richard.sandiford@linaro.org>
962
963 * df-problems.c (df_note_bb_compute): Pass uses rather than defs
964 to df_set_dead_notes_for_mw.
965
315036fe
RG
9662011-08-26 Richard Guenther <rguenther@suse.de>
967
968 * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
969
d8af4ba3
ZD
9702011-08-26 Zdenek Dvorak <ook@ucw.cz>
971 Tom de Vries <tom@codesourcery.com>
972
973 * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
974 (struct ivopts_data): Add loop_single_exit_p field.
975 (niter_for_exit): Change parameter desc_p into return value. Return
976 desc if desc->may_be_zero. Free desc if unused.
977 (niter_for_single_dom_exit): Change return type.
978 (find_induction_variables): Handle changed return type of
979 niter_for_single_dom_exit. Dump may_be_zero.
980 (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
981 (set_use_iv_cost): Add and handle comp parameter.
982 (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
983 comp argument to set_use_iv_cost.
984 (strip_wrap_conserving_type_conversions, expr_equal_p)
985 (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
986 (may_eliminate_iv): Add comp parameter. Handle new return type of
987 niter_for_exit. Use loop_single_exit_p. Use iv_elimination_compare_lt.
988 (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
989 and may_eliminate_iv.
990 (rewrite_use_compare): Move call to iv_elimination_compare to ...
991 (may_eliminate_iv): Here.
992 (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
993
fd1777ca
TV
9942011-08-26 Tom de Vries <tom@codesourcery.com>
995
996 * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
997 accessing TREE_TYPE.
998
990b31f7
JL
9992011-08-26 Jiangning Liu <jiangning.liu@arm.com>
1000
44782c0c
UB
1001 * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
1002 (*ior_scc_scc_cmp): Likewise
1003 (*and_scc_scc): Likewise.
1004 (*and_scc_scc_cmp): Likewise.
1005 (*and_scc_scc_nodom): Likewise.
1006 (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
990b31f7 1007
8840ae2b
JJ
10082011-08-26 Jakub Jelinek <jakub@redhat.com>
1009
1010 * rtlanal.c (nonzero_bits1): Handle CLRSB.
1011
321358d4
RG
10122011-08-26 Richard Guenther <rguenther@suse.de>
1013
1014 * expr.c (string_constant): Handle &MEM_REF.
1015
c2b640a7
AS
10162011-08-26 Andrew Stubbs <ams@codesourcery.com>
1017
1018 * config/arm/arm.c (struct four_ints): New type.
1019 (count_insns_for_constant): Delete function.
1020 (find_best_start): Delete function.
1021 (optimal_immediate_sequence): New function.
1022 (optimal_immediate_sequence_1): New function.
1023 (arm_gen_constant): Move constant splitting code to
1024 optimal_immediate_sequence.
1025 Rewrite constant negation/invertion code.
1026
10272011-08-26 Andrew Stubbs <ams@codesourcery.com>
1028
1029 * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
1030 * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
1031 Remove prototype. Remove static function type.
1032 * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
1033 Add arch attribute.
1034 * config/arm/constraints.md (Pj, PJ): New constraints.
1035
58a2bda0
RR
10362011-08-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1037
44782c0c
UB
1038 * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
1039 ("cortex_a9_multiply_long"): New and use above. Handle all
58a2bda0 1040 long multiply cases.
44782c0c
UB
1041 ("cortex_a9_multiply"): Handle smmul and smmulr.
1042 ("cortex_a9_mac"): Handle smmla.
58a2bda0 1043
42aa5124
RH
10442011-08-25 Richard Henderson <rth@redhat.com>
1045
1046 PR 50132
1047 PR 49864
1048 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
1049 non-constant stack adjutment.
1050 * expr.c (find_args_size_adjust): Break out from ...
1051 (fixup_args_size_notes): ... here.
1052 * rtl.h (find_args_size_adjust): Declare.
1053
a02f398d
UB
10542011-08-25 Uros Bizjak <ubizjak@gmail.com>
1055
1056 * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
1057 sse4 and sse4_noavx.
1058 (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
1059 (*pushdf_rex64): Change Y2 register constraint to x.
1060 (*movdf_internal_rex64): Ditto.
1061 (*zero_extendsidi2_rex64): Ditto.
1062 (*movdi_internal): Change Y2 register constraint to x
1063 and update "isa" attribute.
1064 (*pushdf): Ditto.
1065 (*movdf internal): Ditto.
1066 (zero_extendsidi2_1): Ditto.
1067 (*truncdfdf_mixed): Ditto.
1068 (*truncxfdf2_mixed): Ditto.
1069 * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
1070 register constraint to x.
1071 (*movv2sf_internal_rex64): Ditto.
1072 (*mov<mode>_internal): Change Y2 register constraint to x
1073 and add "isa" attribute.
1074 (*movv2sf_internal): Ditto.
1075 (*vec_extractv2si_1): Ditto.
1076 * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
1077 constraints to x and update "isa" attribute.
1078 (*vec_interleave_highv2df): Change Y3 registerconstraint
1079 to x and update "isa" attribute.
1080 (*vec_interleave_lowv2df): Ditto.
1081 (*vec_concatv2df): Change Y2 register constraint to x and
1082 update "isa" attribute.
1083 (sse2_loadld): Ditto.
1084 (*vec_extractv2di_1): Ditto.
1085 (*vec_dupv4si): Ditto.
1086 (*vec_dupv2di): Ditto.
1087 (*vec_concatv4si): Ditto.
1088 (vec_concatv2di): Ditto.
1089 * config/i386/constraints.md (Y2): Remove.
1090 (Y3): Ditto.
1091 (Y4): Ditto.
1092
f24acbef
BS
10932011-08-25 Bernd Schmidt <bernds@codesourcery.com>
1094
1095 * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
1096 dump_def_use_chain): Don't declare.
1097 (mark_conflict, create_new_chain): Move before users.
1098 (regrename_optimize): Move to near end of file.
1099
c331eabe
GJL
11002011-08-25 Georg-Johann Lay <avr@gjlay.de>
1101
1102 * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
1103 (secondary_input_reload_class): Remove Prototype.
1104 * config/avr/avr.c (byte_immediate_operand): Remove Function.
1105 * config/avr/avr.md (setmemhi): Use u8_operand.
1106 (strlenhi): Use const0_rtx for comparison.
1107 * config/avr/avr.h (avr_reg_order): Remove Declaration.
1108
61af7eb4
GJL
11092011-08-25 Georg-Johann Lay <avr@gjlay.de>
1110
1111 * config/avr/avr.c (reg_class_tab): Make local to
1112 avr_regno_reg_class. Return smallest register class available.
a02f398d 1113
f2814222 11142011-08-25 Georg-Johann Lay <avr@gjlay.de>
f24acbef 1115
f2814222
GJL
1116 * config/avr/avr.c (STR_PREFIX_P): New Define.
1117 (avr_asm_declare_function_name): Use it.
1118 (avr_asm_named_section): Use it.
1119 (avr_section_type_flags): Use it.
1120
1e6a9047
BS
11212011-08-25 Bernd Schmidt <bernds@codesourcery.com>
1122
1123 * doc/md.texi (automata_option): Document collapse-ndfa.
1124 * genautomata.c (COLLAPSE_OPTION): New macro.
1125 (collapse_flag): New static variable.
1126 (struct description): New member normal_decls_num.
1127 (struct automaton): New members advance_ainsn and collapse_ainsn.
1128 (gen_automata_option): Check for COLLAPSE_OPTION.
1129 (collapse_ndfa_insn_decl): New static variable.
1130 (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
a02f398d 1131 (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
1e6a9047
BS
1132 (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
1133 necessary. Use normal_decls_num rather than decls_num, remove
1134 test for special decls.
a02f398d 1135 (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
1e6a9047
BS
1136 (make_automaton); Likewise. Use the new advance_cycle_insn member
1137 of struct automaton.
1138 (create_composed_state): Disallow advance-cycle arcs if collapse_flag
1139 is set.
1140 (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
1141 transition. Create the necessary transitions for it.
1142 (create_ainsns): Return void. Take an automaton_t argument, and
1143 update its ainsn_list, advance_ainsn and collapse_ainsn members. All
1144 callers changed.
1145 (COLLAPSE_NDFA_VALUE_NAME): New macro.
1146 (output_tables): Output code to define it.
1147 (output_internal_insn_code_evaluation): Output code to accept
1148 const0_rtx as collapse-ndfa transition.
1149 (output_default_latencies, output_print_reservation_func,
1150 output_print_description): Reorganize loops to use normal_decls_num
1151 as loop bound; remove special case for advance_cycle_insn_decl.
1152 (initiate_automaton_gen): Handle COLLAPSE_OPTION.
1153 (check_automata_insn_issues): Check for collapse_ainsn.
1154 (expand_automate): Allocate sufficient space. Initialize
1155 normal_decls_num.
1156
07f10472 11572011-08-25 Georg-Johann Lay <avr@gjlay.de>
1e6a9047 1158
07f10472
GJL
1159 * config/avr/avr.md: Fix indentation from r177991.
1160
d3e80850
BS
11612011-08-25 Bernd Schmidt <bernds@codesourcery.com>
1162
1163 * regrename.c (struct du_head): Remove member terminated.
1164 (create_new_chain): Don't initialize it.
1165 (scan_rtx_reg): Don't set or test it, test the open_chains_set
1166 bitmap instead.
1167 (tick, this_tick): New global variables, moved out of
1168 regrename_optimize.
1169 (current_id, open_chains, closed_chains, open_chains_set,
1170 live_in_chains, live_hard_regs): Reorder declarations.
1171 (dump_def_use_chain): Move function earlier in the file.
1172 (rename_chains): New static function, broken out of
1173 regrename_optimize.
1174 (regrename_optimize): Use it. Remove #if 0'ed code.
1175
8619577f
BRF
11762011-08-25 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
1177
1178 * varasm.c: (default_binds_local_p_1): Commentary typo fix.
1179
25963ac4
L
11802011-08-24 H.J. Lu <hongjiu.lu@intel.com>
1181
8020d73e 1182 PR target/50172
a02f398d 1183 * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
25963ac4 1184
9fcb758b
RG
11852011-08-24 Richard Guenther <rguenther@suse.de>
1186
1187 * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
1188 ref in the basic-block case. Move stripping array-refs
1189 to the place we create an access-function for it. Remove
1190 bogus stripping down a MEM_REF to its base.
1191
e66132e1
RG
11922011-08-24 Richard Guenther <rguenther@suse.de>
1193
1194 * fold-const.c (fold_comparison): Fold &a < &a + 4 even
1195 with -fno-strict-overflow.
1196
76f60b19
RG
11972011-08-24 Richard Guenther <rguenther@suse.de>
1198
1199 * tree-vectorizer.c (vect_print_dump_info): Avoid the
1200 file and location clutter when dumping to dump files.
1201
6f0faeed
SB
12022011-08-24 Simon Baldwin <simonb@google.com>
1203
1204 * gengtype-state.c (write_state): Remove timestamped header line.
1205
c5bc3df6
JM
12062011-08-24 Joseph Myers <joseph@codesourcery.com>
1207
1208 * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
1209 (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
1210 (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
1211 (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
1212 (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
1213 (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
1214 (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
1215 rules.
1216 (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
1217
295409e1
JM
12182011-08-24 Joseph Myers <joseph@codesourcery.com>
1219
1220 * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
1221
8c330caa
RG
12222011-08-24 Richard Guenther <rguenther@suse.de>
1223
1224 PR tree-optimization/50067
1225 * tree-data-ref.c (dr_analyze_indices): Do not add an access
1226 function for a MEM_REF base that has no evolution in the loop
1227 nest or that is not analyzable.
1228
d7b17703
VM
12292011-08-23 Vladimir Makarov <vmakarov@redhat.com>
1230
1231 * ira.c (ira_init_register_move_cost): Check small subclasses
1232 through ira_reg_class_max_nregs and ira_available_class_regs.
1233
78d8c16c
UB
12342011-08-23 Uros Bizjak <ubizjak@gmail.com>
1235
1236 * config/i386/constraints.md (Yp): New register constraint.
1237 * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
1238 Yp register constraint.
1239 (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
1240 (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
1241 (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
1242
2ddfea8a
KY
12432011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
1244
1245 * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
1246
a3a704a4
MH
12472011-08-23 Mark Heffernan <meheff@google.com>
1248
1249 PR middle-end/38509
1250 * common.opt (Wfree-nonheap-object): New option.
1251 * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
1252 * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
1253 to warning.
1254 (expand_builtin): Make warning conditional.
1255
82feeb8d
L
12562011-08-23 Uros Bizjak <ubizjak@gmail.com>
1257
1258 * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
1259 (length_immediate): Handle imulx, ishiftx and rotatex.
1260 (imm_disp): Ditto.
1261 (isa): Add bmi2.
1262 (enabled): Handle bmi2.
82feeb8d
L
1263 (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
1264 (*umul<mode><dwi>3): Ditto. Add imulx BMI2 alternative.
1265 (*bmi2_umulditi3_1): New insn pattern.
1266 (*bmi2_umulsidi3_1): Ditto.
78d8c16c 1267 (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
82feeb8d
L
1268 (*bmi2_ashl<mode>3_1): New insn pattern.
1269 (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
78d8c16c 1270 (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
1271 (*bmi2_ashlsi3_1_zext): New insn pattern.
1272 (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
78d8c16c 1273 (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
1274 (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
1275 (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
1276 (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
1277 flags dependency.
1278 (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
1279 (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
1280 (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
1281 flags dependency.
1282 (*bmi2_rorx<mode>3_1): New insn pattern.
1283 (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
78d8c16c 1284 (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
82feeb8d
L
1285 (*rotatert<mode>3_1 splitter): Ditto.
1286 (*bmi2_rorxsi3_1_zext): New insn pattern.
1287 (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
78d8c16c 1288 (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
82feeb8d
L
1289 (*rotatertsi3_1_zext splitter): Ditto.
1290
12912011-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
1292
78d8c16c 1293 * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
82feeb8d
L
1294 (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
1295 (ix86_handle_option): Handle OPT_mbmi2 case.
1296 * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
1297 (x86_64-*-*): Likewise.
1298 * config/i386/bmi2intrin.h: New file.
1299 * config/i386/cpuid.h (bit_BMI2): New.
1300 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1301 BMI2 feature.
1302 * config/i386/i386-c.c (ix86_target_macros_internal):
1303 Conditionally define __BMI2__.
1304 * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
1305 Handle BMI2 option.
1306 (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
1307 (print_reg): New code.
1308 (ix86_print_operand): Likewise.
1309 (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1310 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1311 IX86_BUILTIN_PEXT64.
1312 (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1313 IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1314 IX86_BUILTIN_PEXT64.
1315 * config/i386/i386.h (TARGET_BMI2): New.
1316 * config/i386/i386.md (UNSPEC_PDEP): New.
1317 (UNSPEC_PEXT): Likewise.
1318 (*bmi2_bzhi_<mode>3): Likewise.
1319 (*bmi2_pdep_<mode>3): Likewise.
1320 (*bmi2_pext_<mode>3): Likewise.
1321 * config/i386/i386.opt (mbmi2): New.
1322 * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
1323 is defined.
1324 * doc/extend.texi: Document BMI2 built-in functions.
1325 * doc/invoke.texi: Document -mbmi2.
1326
e2f00837
JJ
13272011-08-23 Jakub Jelinek <jakub@redhat.com>
1328
1329 PR middle-end/50161
1330 * simplify-rtx.c (simplify_const_unary_operation): If
78d8c16c 1331 op is CONST_INT, don't look at op_mode, but use instead mode.
e2f00837
JJ
1332 * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
1333 CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
1334 operation and TRUNCATE/ZERO_EXTEND if needed.
1335 * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
1336 Document that operand mode must be same as operation mode,
1337 or VOIDmode.
1338 * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
1339 *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
1340 *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
1341 *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
1342 use the mode of operand for the operation and add truncate
1343 or zero_extend around if needed.
1344 * config/c6x/c6x.md (ctzdi2): Likewise.
1345 * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
1346
d466b407
MM
13472011-08-12 Michael Matz <matz@suse.de>
1348
1349 * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
1350 (gimple_expand_cfg): Merge alignment info for coalesced pointer
1351 SSA names.
1352
02f5d6c5
RG
13532011-08-23 Richard Guenther <rguenther@suse.de>
1354
1355 * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
1356 * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
1357 * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
1358 from ...
1359 * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
1360 (mem_refs_may_alias_p): Adjust.
1361 * tree-data-ref.h (dr_may_alias_p): Adjust.
1362 * tree-data-ref.c: Include tree-affine.h.
1363 (dr_analyze_indices): Do nothing for the non-loop case.
1364 (dr_may_alias_p): Distinguish loop and non-loop case. Disambiguate
1365 more cases in the non-loop case.
1366 * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
1367 calls to dr_may_alias_p.
1368 (write_alias_graph_to_ascii_ecc): Likewise.
1369 (write_alias_graph_to_ascii_dot): Likewise.
1370 (build_alias_set_optimal_p): Likewise.
1371
336ecb65
RG
13722011-08-23 Richard Guenther <rguenther@suse.de>
1373
1374 PR tree-optimization/50162
1375 * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
1376
b8324815
RG
13772011-08-23 Richard Guenther <rguenther@suse.de>
1378
1379 * tree-data-ref.c (dr_analyze_indices): Add comments, handle
1380 REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
78d8c16c 1381 (create_data_ref): Also dump access functions for the created data-ref.
b8324815 1382
1707583b
UB
13832011-08-22 Uros Bizjak <ubizjak@gmail.com>
1384 Kirill Yukhin <kirill.yukhin@intel.com>
1385
1386 PR target/50155
1387 * config/i386/sse.md (VI_AVX2): New.
1388 (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
1389 (*<plusminus_insn><mode>3): Ditto.
d913744e 1390 (<sse2_avx2>_andnot<mode>3): Ditto.
1707583b
UB
1391 (*andnot<mode>3): Fix order of cond operands.
1392 Add asserts for correct TARGET_xxx.
1393 (*<any_logic:code><mode>3): Ditto.
1394
c4831cff
AS
13952011-08-22 Anatoly Sokolov <aesok@post.ru>
1396
1397 * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
1398 * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
1399 * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
1400 regclass argument type to reg_class_t. Change 'max' and 'v' vars
1401 and return types to unsigned char. Use reg_class_contents instead
1402 of class_contents.
1403 (TARGET_CLASS_MAX_NREGS): Define.
1404
60418b5d
BS
14052011-08-22 Bernd Schmidt <bernds@codesourcery.com>
1406
1407 * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
1408 to make computed_jump_p return true.
1409
e3aa9eba
RO
14102011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1411
1412 * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
1413 (PICFLAG_FOR_TARGET): Substitute.
1414 * aclocal.m4: Regenerate.
1415 * configure: Regenerate.
1416
671d9f12
DS
14172011-08-22 Dodji Seketeli <dodji@redhat.com>
1418
1419 * c-family/c-pch.c (c_common_read_pch): Re-set line table right
1420 after reading in the pch.
1421
b0894e1f
L
14222011-08-22 H.J. Lu <hongjiu.lu@intel.com>
1423
44782c0c 1424 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
b0894e1f
L
1425 * configure: Regenerated.
1426
e4269c78
JJ
14272011-08-22 Jakub Jelinek <jakub@redhat.com>
1428
ad885386
JJ
1429 PR tree-optimization/50133
1430 * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
1431 from stmt instead of some statement around gsi.
1432
e4269c78
JJ
1433 PR middle-end/50141
1434 * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
1435 innerdecl is a VAR_DECL.
1436
977e83a3
KY
14372011-08-22 Kirill Yukhin <kirill.yukhin@intel.com>
1438
1439 * config/i386/avx2intrin.h: New file.
1440 * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
1441 PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
1442 V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
1443 V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
1444 V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
1445 V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
1446 V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
1447 V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
1448 V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
1449 V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
1450 V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
1451 V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
1452 V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
1453 V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
1454 V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
1455 V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
1456 V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
1457 V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
1458 VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
1459 VOID_FTYPE_PV8SI_V8SI_V8SI,
1460 V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
1461 V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
1462 V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
1463 V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
1464 V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
1465 V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
1466 V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
1467 V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
1468 V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
1469 V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
1470 V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
1471 V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
1472 V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
1473 V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
1474 V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
1475 V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
1476 V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
1477 V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
1478 V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
1479 V4DI_FTYPE_V4DI_INT_CONVERT,
1480 V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
1481 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
1482 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1483 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1484 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1485 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1486 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1487 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1488 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1489 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1490 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1491 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1492 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1493 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1494 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1495 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1496 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1497 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1498 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1499 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1500 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1501 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1502 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1503 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1504 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1505 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1506 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1507 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1508 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1509 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1510 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1511 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1512 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1513 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1514 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1515 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1516 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1517 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1518 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1519 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1520 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1521 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1522 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1523 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1524 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1525 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1526 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1527 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1528 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1529 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1530 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1531 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1532 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1533 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1534 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1535 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1536 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1537 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1538 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1539 IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
1540 IX86_BUILTIN_VBROADCASTSS_PS256,
1541 IX86_BUILTIN_VBROADCASTSD_PD256,
1542 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1543 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1544 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1545 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1546 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1547 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1548 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1549 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1550 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1551 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1552 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1553 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1554 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
1555 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1556 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1557 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1558 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1559 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
1560 IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
1561 IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
1562 IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
1563 IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
1564 IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
1565 IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
1566 IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
1567 IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
1568 (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
1569 IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1570 IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1571 IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1572 IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
1573 (bdesc_args): Add IX86_BUILTIN_MPSADBW256,
1574 IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1575 IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1576 IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1577 IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1578 IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1579 IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1580 IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1581 IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1582 IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1583 IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1584 IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1585 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1586 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1587 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1588 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1589 IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1590 IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1591 IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1592 IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1593 IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1594 IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1595 IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1596 IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1597 IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1598 IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1599 IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1600 IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1601 IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1602 IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1603 IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1604 IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1605 IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1606 IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1607 IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1608 IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1609 IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1610 IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1611 IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1612 IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1613 IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1614 IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1615 IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1616 IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1617 IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1618 IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1619 IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1620 IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1621 IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1622 IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1623 IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1624 IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1625 IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1626 IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1627 IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1628 IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1629 IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1630 IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1631 IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
1632 IX86_BUILTIN_VBROADCASTSD_PD256,
1633 IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1634 IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1635 IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1636 IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1637 IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1638 IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1639 IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1640 IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1641 IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1642 IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1643 IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1644 IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1645 IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1646 IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
1647 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
1648 IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
1649 IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
1650 IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
1651 IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
1652 IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
1653 IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
1654 IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
1655 IX86_BUILTIN_GATHERDIV8SI.
1656 (ix86_preferred_simd_mode): Support AVX2 modes.
eb3e9f60 1657 (ix86_expand_args_builtin): Support AVX2 builtins.
977e83a3
KY
1658 (ix86_expand_special_args_builtin): Likewise.
1659 (ix86_expand_builtin): Likewise.
1660 * config/i386/i386.md (UNSPEC_VPERMSI): New.
1661 (UNSPEC_VPERMDF): Likewise.
1662 (UNSPEC_VPERMSF): Likewise.
1663 (UNSPEC_VPERMDI): Likewise.
1664 (UNSPEC_VPERMTI): Likewise.
1665 (UNSPEC_GATHER): Likewise.
1666 (ssemodesuffix): Extend.
1667 * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1668 is defined.
1669 * config/i386/predicates.md (const1248_operand): New.
8b46e440 1670 * config/i386/sse.md (VI1_AVX2): New mode iterator.
977e83a3
KY
1671 (VI2_AVX2): Likewise.
1672 (VI4_AVX2): Likewise.
1673 (VI8_AVX2): Likewise.
1674 (VIMAX_AVX2): Likewise.
1675 (SSESCALARMODE): Likewise.
1676 (VI12_AVX2): Likewise.
1677 (VI24_AVX2): Likewise.
eb3e9f60 1678 (VI124_AVX2): Likewise.
977e83a3
KY
1679 (VI248_AVX2): Likewise.
1680 (VI48_AVX2): Likewise.
1681 (VI4SD_AVX2): Likewise.
1682 (V48_AVX2): Likewise.
eb3e9f60
UB
1683 (AVX256MODE2P): Likewise.
1684 (AVXMODE48P_DI): Likewise.
1685 (sse2_avx2): New mode attribute.
977e83a3
KY
1686 (ssse3_avx2): Likewise.
1687 (sse4_1_avx2): Likewise.
1688 (avx_avx2): Likewise.
eb3e9f60 1689 (ssebytemode): Likewise.
977e83a3 1690 (AVXTOSSEMODE): Likewise.
977e83a3
KY
1691 (AVXMODE48P_DI): Likewise.
1692 (gthrfirstp): Likewise.
1693 (gthrlastp): Likewise.
eb3e9f60
UB
1694 (lshift): New code_iterator
1695 (lshift): New code attribute.
1696 (lshift): Likewise.
1697 (ssescalarmodesuffix): Update.
1698 (sseunpackmode): Likewise.
1699 (ssepackmode): Likewise.
1700 (avx2_vec_dupv4sf): New insn pattern.
977e83a3
KY
1701 (avx2_vec_dupv8sf): Likewise.
1702 (avx2_interleave_highv4di): Likewise.
1703 (avx2_interleave_lowv4di): Likewise.
eb3e9f60
UB
1704 (avx2_umulv4siv4di3): Likewise
1705 (*avx2_umulv4siv4di3): Likewise
1706 (avx2_pmaddwd): Likewise.
977e83a3 1707 (*avx2_pmaddwd): Likewise.
eb3e9f60
UB
1708 (avx2_lshrqv4di3): Likewise.
1709 (avx2_lshlqv4di3): Likewise.
977e83a3 1710 (avx2_lshl<mode>3): Likewise.
eb3e9f60
UB
1711 (avx2_<umaxmin:code><mode>3): Likewise.
1712 (*avx2_<umaxmin:code><mode>3): Likewise.
1713 (avx2_<smaxmin:code><mode>3): Likewise.
1714 (*avx2_<smaxmin:code><mode>3): Likewise.
977e83a3
KY
1715 (avx2_eq<mode>3): Likewise.
1716 (*avx2_eq<mode>3): Likewise.
1717 (avx2_gt<mode>3): Likewise.
977e83a3
KY
1718 (avx2_interleave_highv32qi): New.
1719 (avx2_interleave_lowv32qi): Likewise.
1720 (avx2_interleave_highv16hi): Likewise.
1721 (avx2_interleave_lowv16hi): Likewise.
1722 (avx2_interleave_highv8si): Likewise.
1723 (avx2_interleave_lowv8si): Likewise.
eb3e9f60 1724 (avx2_pshufd): Likewise.
977e83a3
KY
1725 (avx2_pshufd_1): Likewise.
1726 (avx2_pshuflwv3): Likewise.
1727 (avx2_pshuflw_1): Likewise.
1728 (avx2_pshufhwv3): Likewise.
1729 (avx2_pshufhw_1): Likewise.
1730 (avx2_uavgv32qi3): Likewise.
1731 (*avx2_uavgv32qi3): Likewise.
1732 (avx2_uavgv16hi3): Likewise.
1733 (*avx2_uavgv16hi3): Likewise.
eb3e9f60 1734 (avx2_pmovmskb): Likewise.
977e83a3
KY
1735 (avx2_phaddwv16hi3): Likewise.
1736 (avx2_phadddv8si3): Likewise.
1737 (avx2_phaddswv16hi3): Likewise.
1738 (avx2_phsubwv16hi3): Likewise.
1739 (avx2_phsubdv8si3): Likewise.
1740 (avx2_phsubswv16hi3): Likewise.
1741 (avx2_pmaddubsw256): Likewise.
1742 (avx2_umulhrswv16hi3): Likewise.
1743 (*avx2_umulhrswv16hi3): Likewise.
eb3e9f60
UB
1744 (avx2_packusdw): Likewise.
1745 (avx2_pblendd<mode>): Likewise.
977e83a3
KY
1746 (avx2_<code>v16qiv16hi2): Likewise.
1747 (avx2_<code>v8qiv8si2): Likewise.
1748 (avx2_<code>v8hiv8si2): Likewise.
1749 (avx2_<code>v4qiv4di2): Likewise.
1750 (avx2_<code>v4hiv4di2): Likewise.
1751 (avx2_<code>v4siv4di2): Likewise.
1752 (avx2_pbroadcast<mode>): Likewise.
1753 (avx2_permvarv8si): Likewise.
1754 (avx2_permv4df): Likewise.
1755 (avx2_permvarv8sf): Likewise.
1756 (avx2_permv4di): Likewise.
1757 (avx2_permv2ti): Likewise.
1758 (avx2_vec_dupv4df): Likewise.
1759 (avx2_vbroadcasti128_<mode>): Likewise.
1760 (avx2_vec_set_lo_v4di): Likewise.
1761 (avx2_vec_set_hi_v4di): Likewise.
eb3e9f60 1762 (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
977e83a3
KY
1763 (avx2_extracti128): Likewise.
1764 (avx2_inserti128): Likewise.
1765 (avx2_ashrvv8si): Likewise.
1766 (avx2_ashrvv4si): Likewise.
1767 (avx2_<lshift>vv8si): Likewise.
1768 (avx2_<lshift>v<mode>): Likewise.
1769 (avx2_<lshift>vv2di): Likewise.
1770 (avx2_gathersi<mode>): Likewise.
1771 (*avx2_gathersi<mode>): Likewise.
1772 (avx2_gatherdi<mode>): Likewise.
1773 (*avx2_gatherdi<mode>): Likewise.
1774 (avx2_gatherdi<mode>256): Likewise.
1775 (*avx2_gatherdi<mode>256): Likewise.
8b46e440
UB
1776 (<plusminus_insn><mode>3): Use VI mode iterator.
1777 (*<plusminus_insn><mode>3): Use VI mode iterator.
eb3e9f60
UB
1778 (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1779 sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
1780 (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1781 *sse2_<plusminus_insn><mode>3. Use VI12_AVX2 mode iterator.
8b46e440
UB
1782 (mul<mode>3): Rename from mulv8hi3. Use VI2_AVX2 mode iterator.
1783 (*mul<mode>3): Rename from *mulv8hi3. Use VI2_AVX2 mode iterator.
eb3e9f60
UB
1784 (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1785 Use VI2_AVX2 mode iterator.
1786 (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
8b46e440
UB
1787 Use VI2_AVX2 mode iterator.
1788 (mul<mode>3): Rename from mulv4si3. Use VI4_AVX2 mode iterator.
1789 (*mul<mode>3): Rename from *mulv4si3. Use VI4_AVX2 mode iterator.
1790 (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1791 Use VI4_AVX2 mode iterator.
1792 (ashr<mode>3): Use VI24_AVX2 mode iterator.
1793 (lshr<mode>3): Use VI248_AVX2 mode iterator.
1794 (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1795 Use VIMAX_AVX2 mode iterator.
1796 (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1797 Use VI mode iterator.
1798 (*andnot<mode>3): Update for AVX2.
1799 (*<any_logic:code><mode>3): Likewise.
eb3e9f60 1800 (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
8b46e440 1801 Use VI1_AVX mode iterator.
eb3e9f60 1802 (<sse2_avx2>_packssdw): Rename from sse2_packssdw.
8b46e440 1803 Use VI2_AVX mode iterator.
eb3e9f60 1804 (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
8b46e440
UB
1805 Use VI1_AVX mode iterator.
1806 (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1807 Use VI8_AVX2 mode iterator.
1808 (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1809 Use VI1_AVX2 mode iterator.
1810 (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1811 Use VI124_AVX2 mode iterator.
1812 (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1813 Use SSESCALARMODE mode iterator.
1814 (abs<mode>2): Use VI124_AVX2 mode iterator.
1815 (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1816 Use VI8_AVX2 mode iterator.
1817 (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1818 Use VI1_AVX2 mode iterator.
1819 (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1820 Use VI1_AVX2 mode iterator.
1821 (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1822 Use VI2_AVX2 mode iterator.
eb3e9f60 1823 (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440 1824 avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
eb3e9f60 1825 (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
8b46e440
UB
1826 avx_maskstore<ssemodesuffix><avxsizesuffix>.
1827 Use V48_AVX2 mode iterator.
977e83a3
KY
1828 * doc/extend.texi: Document AVX2 built-in functions.
1829 * doc/invoke.texi: Document -mavx2.
1830
1ad1ae80
MK
18312011-08-22 Matthias Klose <doko@debian.org>
1832
1833 Revert:
1834 2011-07-11 Arthur Loiret <aloiret@debian.org>
1835 Matthias Klose <doko@debian.org>
1836 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1837 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1838 convention.
1839 * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1840
fbddb81d
MP
18412011-08-22 Mikael Pettersson <mikpe@it.uu.se>
1842
1843 PR bootstrap/50146
1844 * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1845 to #ifndef HONOR_REG_ALLOC_ORDER block.
1846
8f06d483
RH
18472011-08-21 Richard Henderson <rth@redhat.com>
1848
1849 * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1850 * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1851 * resource.c (next_insn_no_annul): Likewise.
1852 (mark_set_resources): Likewise.
1853 * reorg.c (delete_from_delay_slot): Likewise.
1854 (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
1855 (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
1856
38acd291
UB
18572011-08-21 Uros Bizjak <ubizjak@gmail.com>
1858
1859 * config/i386/i386.md (any_div): Remove.
1860 (sgnprefix): Update for removal.
1861 (u): Ditto.
1862
51935358
VM
18632011-08-20 Vladimir Makarov <vmakarov@redhat.com>
1864
1865 * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
1866 for ira_reg_class_max_nregs. Increase pressure by 1.
1867 (mark_pseudo_regno_subword_dead): Use allocno class
1868 for ira_reg_class_max_nregs.
1869
2b28ecea
RH
18702011-08-20 Richard Henderson <rth@redhat.com>
1871
1872 * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
38acd291 1873 config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
2b28ecea
RH
1874 config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
1875 config/c6x/ltf.c: Adjust include path for soft-fp.
1876
9ce7ad7f
L
18772011-08-20 H.J. Lu <hongjiu.lu@intel.com>
1878
1879 PR other/46770
1880 * config.gcc (tm_file): Add initfini-array.h if
1881 .init_arrary/.fini_array are supported.
1882
1883 * crtstuff.c: Don't generate .ctors nor .dtors sections if
1884 USE_INITFINI_ARRAY is defined.
1885
1886 * output.h (default_elf_init_array_asm_out_constructor): New.
1887 (default_elf_fini_array_asm_out_destructor): Likewise.
1888 * varasm.c (elf_init_array_section): Likewise.
1889 (elf_fini_array_section): Likewise.
1890 (get_elf_initfini_array_priority_section): Likewise.
1891 (default_elf_init_array_asm_out_constructor): Likewise.
1892 (default_elf_fini_array_asm_out_destructor): Likewise.
1893
1894 * config/initfini-array.h: New.
1895
894113c3
RS
18962011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
1897
1898 * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
1899 OK for ST_REGS and FP_REGS before taking those classes into account.
1900
9e187b31
RS
19012011-08-20 Richard Sandiford <rdsandiford@googlemail.com>
1902
1903 * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
1904 before checking for annulled branches.
1905
f0cac80b
UB
19062011-08-20 Uros Bizjak <ubizjak@gmail.com>
1907
1908 * config/i386/i386.c (ix86_binary_operator_ok): Use
1909 satisfies_constraint_L.
1910
198cb166
UB
19112011-08-20 Uros Bizjak <ubizjak@gmail.com>
1912 Michael Matz <matz@suse.de>
1913
1914 * config/i386/i386.c (ix86_expand_round_sse4): Expand as
1915 trunc (a + copysign (nextafter (0.5, 0.0), a)).
1916
f47a61f3
AS
19172011-08-20 Anatoly Sokolov <aesok@post.ru>
1918
1919 * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1920 * doc/tm.texi: Regenerate.
1921 * targhooks.c (default_preferred_output_reload_class): Don't use
1922 PREFERRED_OUTPUT_RELOAD_CLASS macro.
1923 * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1924
94e3faf6
JJ
19252011-08-20 Jakub Jelinek <jakub@redhat.com>
1926
1927 PR tree-optimization/48739
1928 * tree-ssa.c: Include cfgloop.h.
198cb166
UB
1929 (execute_update_addresses_taken): When updating ssa, if in loop closed
1930 SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
94e3faf6
JJ
1931 * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1932
3bb19a90
VM
19332011-08-19 Vladimir Makarov <vmakarov@redhat.com>
1934
1935 PR rtl-optimization/49936
1936 * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1937 for calculation of max register move costs.
1938
02ee3d31
JM
19392011-08-19 Joseph Myers <joseph@codesourcery.com>
1940
1941 * c-parser.c (c_parser_postfix_expression): Convert operands of
1942 __builtin_complex to their semantic types.
1943
54f6892e
L
19442011-08-19 H.J. Lu <hongjiu.lu@intel.com>
1945
1946 PR middle-end/49721
1947 * explow.c (convert_memory_address_addr_space): Also permute the
1948 conversion and addition of constant for zero-extend.
1949
d4a83c10
JM
19502011-08-19 Joseph Myers <joseph@codesourcery.com>
1951
198cb166 1952 * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
d4a83c10
JM
1953 * doc/extend.texi (__builtin_complex): Document.
1954
a6f969f4
AS
19552011-08-19 Andrew Stubbs <ams@codesourcery.com>
1956
1957 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1958 beyond conversions.
1959 (convert_mult_to_widen): Convert constant inputs to the right type.
1960 (convert_plusminus_to_widen): Don't automatically reject inputs that
1961 are not an SSA_NAME.
1962 Convert constant inputs to the right type.
1963
75161d2c
AS
19642011-08-19 Andrew Stubbs <ams@codesourcery.com>
1965
1966 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1967 to the correct type.
1968
6a228c2c
AS
19692011-08-19 Andrew Stubbs <ams@codesourcery.com>
1970
1971 * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1972 unsigned inputs of different modes.
1973 (convert_plusminus_to_widen): Likewise.
1974
26a855d7
AS
19752011-08-19 Andrew Stubbs <ams@codesourcery.com>
1976
1977 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
1978 'type'.
1979 Use 'type' from caller, not inferred from 'rhs'.
1980 Don't reject non-conversion statements. Do return lhs in this case.
1981 (is_widening_mult_p): Add new argument 'type'.
1982 Use 'type' from caller, not inferred from 'stmt'.
1983 Pass type to is_widening_mult_rhs_p.
1984 (convert_mult_to_widen): Pass type to is_widening_mult_p.
1985 (convert_plusminus_to_widen): Likewise.
1986
ff63d754
AS
19872011-08-19 Andrew Stubbs <ams@codesourcery.com>
1988
1989 * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
1990 Ensure the the larger type is the first operand.
1991
db719f50
AS
19922011-08-19 Andrew Stubbs <ams@codesourcery.com>
1993
1994 * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
1995 unsupported unsigned multiplies to signed.
1996 (convert_plusminus_to_widen): Likewise.
1997
cefb4d4f
AS
19982011-08-19 Andrew Stubbs <ams@codesourcery.com>
1999
2000 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
2001 conversion statement separating multiply-and-accumulate.
2002
2946bd34
RG
20032011-08-19 Richard Guenther <rguenther@suse.de>
2004
2005 PR tree-optimization/50067
2006 * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
2007 offset only if we accounted for it.
2008
5dfe80ba
AS
20092011-08-19 Andrew Stubbs <ams@codesourcery.com>
2010
2011 * config/arm/arm.md (maddhidi4): Remove '*' from name.
2012 * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
2013 * optabs.c (find_widening_optab_handler_and_mode): New function.
2014 (expand_widen_pattern_expr): Use find_widening_optab_handler.
2015 (expand_binop_directly): Likewise.
2016 (expand_binop): Likewise.
2017 * optabs.h (find_widening_optab_handler): New macro define.
2018 (find_widening_optab_handler_and_mode): New prototype.
2019 * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
2020 type precision rules.
2021 (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
2022 * tree-ssa-math-opts.c (build_and_insert_cast): New function.
2023 (is_widening_mult_rhs_p): Allow widening by more than one mode.
2024 Explicitly disallow mis-matched input types.
2025 (convert_mult_to_widen): Use find_widening_optab_handler, and cast
2026 input types to fit the new handler.
2027 (convert_plusminus_to_widen): Likewise.
2028
a484f6ba
AS
20292011-08-19 Andrew Stubbs <ams@codesourcery.com>
2030
2031 * expr.c (expand_expr_real_2): Use widening_optab_handler.
2032 * genopinit.c (optabs): Use set_widening_optab_handler for $N.
2033 (gen_insn): $N now means $a must be wider than $b, not consecutive.
2034 * optabs.c (widened_mode): New function.
2035 (expand_widen_pattern_expr): Use widening_optab_handler.
2036 (expand_binop_directly): Likewise.
2037 (expand_binop): Likewise.
2038 * optabs.h (widening_optab_handlers): New struct.
2039 (optab_d): New member, 'widening'.
2040 (widening_optab_handler): New function.
2041 (set_widening_optab_handler): New function.
2042 * tree-ssa-math-opts.c (convert_mult_to_widen): Use
2043 widening_optab_handler.
2044 (convert_plusminus_to_widen): Likewise.
2045
c4b3a0a0
JM
20462011-08-19 Joseph Myers <joseph@codesourcery.com>
2047
2048 * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
2049 pedantic.
198cb166 2050 * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
c4b3a0a0
JM
2051 * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
2052
f6d08ab2
JM
20532011-08-19 Joseph Myers <joseph@codesourcery.com>
2054
2055 * opth-gen.awk: Do not declare target save/restore structures and
2056 functions if IN_RTS defined.
2057
a3f94870
JY
20582011-08-19 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
2059
2060 PR target/49437
2061 * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
2062 when stack was realigned in interrupt handler prologue.
2063
bbceee64
JM
20642011-08-18 Joseph Myers <joseph@codesourcery.com>
2065
2066 * c-decl.c (shadow_tag_warned): Check for _Noreturn.
2067 (quals_from_declspecs): Assert _Noreturn not present.
2068 (grokdeclarator): Handle _Noreturn.
2069 (build_null_declspecs): Initialize noreturn_p.
2070 (declspecs_add_scspec): Handle RID_NORETURN.
2071 * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
2072 (c_parser_attributes): Handle RID_NORETURN.
2073 * c-tree.h (struct c_declspecs): Add noreturn_p.
2074 * ginclude/stdnoreturn.h: New.
2075 * Makefile.in (USER_H): Add stdnoreturn.h.
2076
7afac110
KY
20772011-08-18 Kirill Yukhin <kirill.yukhin@intel.com>
2078
2079 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
2080 (OPTION_MASK_ISA_AVX_UNSET): Update.
2081 (OPTION_MASK_ISA_AVX2_UNSET): New.
2082 (ix86_handle_option): Handle OPT_mavx2 case.
2083 * config/i386/cpuid.h (bit_AVX2): New.
2084 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2085 AVX2 feature.
2086 * config/i386/i386-c.c (ix86_target_macros_internal):
2087 Conditionally define __AVX2__.
198cb166
UB
2088 * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
2089 Define "core-avx2" processor alias. Handle avx2 option.
7afac110
KY
2090 (ix86_valid_target_attribute_inner_p): Handle avx2 option.
2091 * config/i386/i386.h (TARGET_AVX2): New.
2092 * config/i386/i386.opt (mavx2): New.
2093 * doc/invoke.texi: Document -mavx2.
2094
6277a710
VM
20952011-08-18 Vladimir Makarov <vmakarov@redhat.com>
2096
2097 PR rtl-optimization/49890
2098 * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
2099 subclasses of class which is superset of a pressure class.
2100
df385b9c
L
21012011-08-18 H.J. Lu <hongjiu.lu@intel.com>
2102 Igor Zamyatin <igor.zamyatin@intel.com>
2103
2104 * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
2105 with HOST_WIDE_INT for isa_flag.
2106 (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
2107 isa variables.
2108
2109 * config/i386/i386.c (ix86_target_string): Replace int with
2110 HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa.
2111 (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
2112 (pta_flags): Removed.
2113 (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
2114 (pta): Use HOST_WIDE_INT on flags.
2115 (builtin_isa): Use HOST_WIDE_INT on isa.
2116 (ix86_add_new_builtins): Likewise.
2117 (def_builtin): Use HOST_WIDE_INT on mask.
2118 (def_builtin_const): Likewise.
2119 (builtin_description): Likewise.
2120
2121 * config/i386/i386.opt (ix86_isa_flags): Replace int with
2122 HOST_WIDE_INT.
2123 (ix86_isa_flags_explicit): Likewise.
2124 (x_ix86_isa_flags_explicit): Likewise.
2125
9181a6e5
VM
21262011-08-17 Vladimir Makarov <vmakarov@redhat.com>
2127
2128 PR rtl-optimization/50107
2129 * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
2130 (ira_hard_reg_in_set_p): New.
2131
2132 * ira-color.c (calculate_saved_nregs): New.
2133 (assign_hard_reg): Use it. Set up allocated_hard_reg_p for all
2134 hard regs.
2135 (allocno_reload_assign, fast_allocation): Use
2136 ira_hard_reg_set_intersection_p instead of
2137 ira_hard_reg_not_in_set_p.
2138
2139 * ira.c (setup_reg_renumber): Use
2140 ira_hard_reg_set_intersection_p instead of
2141 ira_hard_reg_not_in_set_p.
2142 (setup_allocno_assignment_flags, calculate_allocation_cost): Use
2143 ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
2144
2145 * ira-costs.c (ira_tune_allocno_costs): Use
2146 ira_hard_reg_set_intersection_p instead of
2147 ira_hard_reg_not_in_set_p.
2148
99114bbf
L
21492011-08-18 H.J. Lu <hongjiu.lu@intel.com>
2150 Igor Zamyatin <igor.zamyatin@intel.com>
2151
2152 * hwint.h (HOST_WIDE_INT_1): New.
2153
2154 * opt-functions.awk (switch_bit_fields): Initialize the
2155 host_wide_int field.
2156 (host_wide_int_var_name): New.
2157 (var_type_struct): Check and return HOST_WIDE_INT.
2158
2159 * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
2160
2161 * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
2162
2163 * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly
2164 check masks for HOST_WIDE_INT.
2165
2166 * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
2167 (option_enabled): Likewise.
2168 (get_option_state): Likewise.
2169
2170 * opts.h (cl_option): Add cl_host_wide_int. Change var_value
2171 to HOST_WIDE_INT.
2172
5b880ea6
RO
21732011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2174 Marc Glisse <marc.glisse@normalesup.org>
2175
2176 PR libstdc++-v3/1773
2177 * target.def (decl_mangling_context): New C++ hook.
2178 * doc/tm.texi: Regenerate.
2179 * config/sol2-cxx.c, config/sol2-stubs.c: New files.
2180 * config/sol2-protos.h: Group by source file.
2181 (solaris_cxx_decl_mangling_context): Declare.
2182 * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
2183 * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
2184 Use $<.
2185 * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
2186 Add sol2-stubs.o to extra_objs.
2187
4dee9718
JJ
21882011-08-18 Jakub Jelinek <jakub@redhat.com>
2189
f44157f8
JJ
2190 PR target/50009
2191 * stor-layout.c (update_alignment_for_field): Don't ICE on
2192 packed flexible array members if ms_bitfield_layout_p.
2193
2a63286d
JJ
2194 PR target/50092
2195 * config/i386/i386.c (assign_386_stack_local): Call validize_mem
2196 on the result before returning it.
2197
4dee9718
JJ
2198 PR debug/50017
2199 * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
2200 is a debug stmt, use location of the first non-debug stmt after it.
2201
b28e37f1
RS
22022011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
2203
2204 * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
2205 (arm_size_rtx_costs): Likewise.
2206
6b8045e1
RG
22072011-08-18 Richard Guenther <rguenther@suse.de>
2208
2209 * tree.h (tree_int_cst_msb): Remove.
2210 * tree.c (tree_int_cst_msb): Likewise.
2211 (tree_int_cst_sign_bit): Move from ...
2212 * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
2213
68f932c4
RS
22142011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
2215
2216 * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
2217 * doc/tm.texi: Regenerate.
2218 * target.def (rtx_costs): Add an opno parameter.
2219 * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2220 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2221 * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2222 (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2223 * cse.c (COST_IN): Add an opno parameter.
2224 (notreg_cost): Likewise. Update call to rtx_cost.
2225 (COST, fold_rtx): Update accordingly.
2226 * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
2227 * expmed.c (emit_store_flag): Likewise.
2228 * optabs.c (avoid_expensive_constant): Add an opno parameter.
2229 Update call to rtx_cost.
2230 (expand_binop_directly, expand_binop): Likewise.
2231 (expand_twoval_binop, prepare_cmp_insn): Likewise.
2232 * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
2233 (set_src_cost, get_full_set_src_cost): Update accordingly.
2234 * rtlanal.c (rtx_cost): Add an opno parameter. Update call
2235 to target hook.
2236 (get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
2237 (default_adress_cost): Update calls to rtx_cost.
2238
2239 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
2240 (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
2241 (arm_rtx_costs): Add an opno parameter.
2242 * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
2243 adjust any recursive rtx-cost calls.
2244 * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
2245 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2246 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2247 * config/cris/cris.c (cris_rtx_costs): Likewise.
2248 * config/frv/frv.c (frv_rtx_costs): Likewise.
2249 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2250 * config/i386/i386.c (ix86_rtx_costs): Likewise.
2251 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2252 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2253 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2254 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2255 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2256 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2257 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2258 * config/mep/mep.c (mep_rtx_cost): Likewise.
2259 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2260 * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
2261 (mips_zero_extend_cost): Add an opno parameter.
2262 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2263 * config/mn10300/mn10300.c (mn10300_address_cost): Update call
2264 to rtx_cost.
2265 (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
2266 rtx-cost calls.
2267 * config/pa/pa.c (hppa_rtx_costs): Likewise.
2268 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2269 * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
2270 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2271 (rs6000_debug_rtx_costs): Likewise.
2272 * config/s390/s390.c (s390_rtx_costs): Likewise.
2273 * config/score/score-protos.h (score_rtx_costs): Likewise.
2274 * config/score/score.c (score_rtx_costs): Likewise.
2275 * config/sh/sh.c (andcosts): Update call to rtx_cost.
2276 (sh_rtx_costs): Add an opno parameter.
2277 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2278 * config/spu/spu.c (spu_rtx_costs): Likewise.
2279 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2280 * config/v850/v850.c (v850_rtx_costs): Likewise.
2281 * config/vax/vax.c (vax_rtx_costs): Likewise.
2282 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2283
5e8f01f4
RS
22842011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
2285
2286 * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
2287 * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
2288 rtx_cost.
2289 * calls.c (precompute_register_parameters): Likewise.
2290 * combine.c (expand_compound_operation, make_extraction): Likewise.
2291 (force_to_mode, distribute_and_simplify_rtx): Likewise.
2292 * dse.c (find_shift_sequence): Likewise.
2293 * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
2294 * expr.c (compress_float_constant): Likewise.
2295 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2296 * gcse.c (want_to_gcse_p): Likewise.
2297 * ifcvt.c (noce_try_sign_mask): Likewise.
2298 * loop-doloop.c (doloop_optimize): Likewise.
2299 * loop-invariant.c (create_new_invariant): Likewise.
2300 * optabs.c (avoid_expensive_constant): Likewise.
2301 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
2302 (try_replace_in_use, reload_cse_move2add): Likewise.
2303 * reload1.c (calculate_elim_costs_all_insns): Likewise.
2304 (note_reg_elim_costly): Likewise.
2305 * rtlanal.c (insn_rtx_cost): Likewise.
2306 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2307 * stmt.c (lshift_cheap_p): Likewise.
2308 * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
2309 * config/avr/avr.c (final_prescan_insn): Likewise.
2310 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2311 * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
2312
d51102f3
RS
23132011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
2314
2315 * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
2316 * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
2317 * cfgloopanal.c (seq_cost): Likewise.
2318 * loop-invariant.c (create_new_invariant): Likewise.
2319 * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
2320 (reload_cse_move2add): Use get_full_set_rtx_cost.
2321
fdb4f315
RG
23222011-08-18 Richard Guenther <rguenther@suse.de>
2323
2324 * expr.c (get_inner_reference): Fix typo in last change.
2325
4c9cf7af
PC
23262011-08-18 Paolo Carlini <paolo.carlini@oracle.com>
2327 Joseph Myers <joseph@codesourcery.com>
2328
2329 PR tree-optimization/49963
2330 * hwint.c (absu_hwi): Define.
2331 * hwint.h (absu_hwi): Declare.
2332 * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
2333 of abs_hwi.
2334 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2335 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2336
97919ae7
RG
23372011-08-18 Richard Guenther <rguenther@suse.de>
2338
2339 * expr.c (get_inner_reference): Sign-extend the constant
2340 twos-complement offset before doing arbitrary precision
2341 arithmetic on it.
2342 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2343 (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
2344 to get_constraint_for_ptr_offset.
2345
b566132b
KK
23462011-08-17 Kaz Kojima <kkojima@gcc.gnu.org>
2347
2348 PR target/50068
2349 * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
2350
0d82a1c8
RG
23512011-08-17 Richard Guenther <rguenther@suse.de>
2352
2353 * tree.h (convert_to_ptrofftype_loc): New function.
2354 (convert_to_ptrofftype): Define.
2355 * builtins.c (expand_builtin_bzero): Use size_type_node.
2356 (fold_builtin_bzero): Likewise.
2357 (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
2358 * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
2359 * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
2360 (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
2361 * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
198cb166 2362 * fold-const.c (build_range_check): Negate using the original type.
0d82a1c8
RG
2363 (fold_unary_loc): Use fold_build_pointer_plus_loc.
2364 * gimple-fold.c (gimple_adjust_this_by_delta): Use
2365 convert_to_ptrofftype.
2366 * gimplify.c (gimplify_self_mod_expr): Likewise.
2367 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
2368 (graphite_create_new_loop_guard): Likewise.
2369 * graphite-sese-to-poly.c (my_long_long): Remove.
2370 (scop_ivs_can_be_represented): Adjust.
2371 * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
2372 * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
2373 * tree-loop-distribution.c (build_size_arg_loc): Use
2374 size_type_node.
2375 (generate_memset_zero): Simplify.
2376 * tree-mudflap.c: Use fold_convert, not convert.
2377 * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
2378 its own type.
2379 (determine_offset): Likewise for DR_STEP.
2380 (valid_initializer_p): Likewise.
2381 * tree-profile.c (prepare_instrumented_value): Convert the pointer
2382 to an integer type of same size.
2383 * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
2384 to sizetype without need.
2385 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2386 * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
2387 * tree-ssa-loop-manip.c (create_iv): Likewise.
2388 (determine_exit_conditions): Adjust comment.
2389 * tree-ssa-pre.c (create_expression_by_pieces): Use
2390 convert_to_ptrofftype.
2391 * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
2392 * varasm.c (array_size_for_constructor): Compute using double_ints.
2393
0b01f619
UW
23942011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2395
2396 * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
2397 when generating an integer result where possible. Short-cut
2398 comparison against 0 also for QImode.
2399
2ea0be59
UW
24002011-08-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2401
2402 * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
2403 * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
2404 prototype.
2405 * config/spu/spu.c (spu_legitimize_reload_address): New function.
2406 (spu_legitimate_address_p): Do not check displacement if the base
2407 is an eliminable stack register.
2408
b05933f5
AS
24092011-08-16 Anatoly Sokolov <aesok@post.ru>
2410
2411 * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
2412 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2413 * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
2414 m32c_preferred_output_reload_class): Remove.
2415 * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
2416 Change rclass argument and return types to reg_class_t. Use
2417 reg_class_subset_p instead of class_sizes.
2418 (m32c_preferred_output_reload_class): Make static. Change rclass
2419 argument and return types to reg_class_t.
2420 (TARGET_PREFERRED_RELOAD_CLASS,
2421 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2422
c9c8f2e8
KT
24232011-08-16 Kai Tietz <ktietz@redhat.com>
2424
2425 * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
2426
e8dbf8b5
RG
24272011-08-16 Richard GUenther <rguenther@suse.de>
2428
2429 PR tree-optimization/50082
2430 * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
2431 warnings here, instead of ...
2432 (ssa_forward_propagate_and_combine): ... here.
2433 (forward_propagate_into_comparison_1): Adjust.
2434 (forward_propagate_into_comparison): Likewise.
2435 (forward_propagate_into_gimple_cond): Likewise.
2436 (forward_propagate_into_cond): Likewise.
2437
870d0521
AS
24382011-08-16 Andreas Schwab <schwab@redhat.com>
2439
2440 * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
2441 instead of ggc_alloc_zone_vec_rtvec_def.
2442
370f4759
RG
24432011-08-16 Richard Guenther <rguenther@suse.de>
2444
2445 * tree.h (ptrofftype_p): New helper function.
2446 * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
2447 offset verification.
2448 (verify_gimple_assign_binary): Likewise.
2449 * tree.c (build2_stat): Likewise.
2450 * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
2451 (reset_evolution_in_loop): Likewise.
2452 * tree-chrec.h (build_polynomial_chrec): Likewise.
2453
c5058418
LW
24542011-08-16 Liang Wang <lwang1@marvell.com>
2455
2456 * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
2457 ggc_alloc_zone_vec_rtvec_def.
2458
a1bc7628
RG
24592011-08-16 Richard Guenther <rguenther@suse.de>
2460
2461 * tree-vrp.c (extract_range_from_multiplicative_op_1): New
2462 helper factored out from ...
2463 (extract_range_from_binary_expr_1): ... here. Re-structure
2464 to not glob handling too different tree codes.
2465
efec771a
RH
24662011-08-15 Richard Henderson <rth@redhat.com>
2467
2468 PR middle-end/50006
2469 * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
2470 setting out to include allocate_stack named pattern as well.
2471 * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
2472 * stmt.c (expand_stack_restore): Likewise.
2473
d510820a
RG
24742011-08-15 Richard Guenther <rguenther@suse.de>
2475
2476 PR middle-end/50082
2477 * fold-const.c (maybe_canonicalize_comparison_1): Properly
2478 convert the modified operand to the other operand type.
2479 (fold_comparison): Call maybe_canonicalize_comparison_1 with
2480 useless conversions stripped from comparison operands.
2481
1a0fcfa9
RG
24822011-08-15 Richard Guenther <rguenther@suse.de>
2483
2484 * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
2485 (extract_range_from_unary_expr_1): Restructure.
2486
4f9dbaaa
RG
24872011-08-15 Richard Guenther <rguenther@suse.de>
2488
2489 PR tree-optimization/50058
2490 * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
2491 copy matching.
2492
3598da80
RR
24932011-08-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2494
2495 PR target/50022
2496 * config/arm/arm.c (output_move_double): Add 2 parameters
2497 to count the number of insns emitted and whether to emit or not.
2498 Use the flag to decide when to emit and count number of instructions
2499 that will be emitted.
2500 Handle case where output_move_double might be called for calculating
2501 lengths with an invalid constant.
2502 (arm_count_output_move_double_insns): Define.
2503 * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
2504 (output_move_double): Adjust prototype.
2505 * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
2506 output_move_double.
2507 ("*movdi_vfp_cortexa8"): Likewise and add attribute
2508 for ce_count.
2509 * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
2510 ("*movdf_soft_insn"): Likewise.
2511 * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
2512 ("*cirrus_thumb2_movdi"): Likewise.
2513 ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
2514 ("*cirrus_movdf_hard_insn"): Likewise.
2515 * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
2516 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
2517 ("mov<mode>_internal VMMX"): Likewise.
2518 * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
2519
f4ab7b99
UB
25202011-08-14 Uros Bizjak <ubizjak@gmail.com>
2521
2522 * config/i386/i386.c (ix86_expand_round_sse4): New function.
2523 * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
2524 * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
2525 for TARGET_ROUND.
2526
2527 (rint<mode>2): Simplify TARGET_ROUND check.
2528 (floor<mode>2): Ditto.
2529 (ceil<mode>2): Ditto.
2530 (btrunc<mode>2): Ditto.
2531
12e502c6
AS
25322011-08-14 Anatoly Sokolov <aesok@post.ru>
2533
2534 * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
2535 as mmix_preferred_output_reload_class.
2536
f3713778 25372011-08-14 Georg-Johann Lay <avr@gjlay.de>
f4ab7b99 2538
f3713778
GJL
2539 * PR target/49903
2540 * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
2541 (branch_unspec): New insn.
2542 (branch): Beauty farm.
2543 * config/avr/avr.c (compare_condition): Use JUMP_P. Test SET_SRC
2544 to be IF_THEN_ELSE.
2545 (avr_compare_pattern, avr_reorg_remove_redundant_compare):
2546 New static functions.
2547 (avr_reorg): Use them. Use next_real_insn instead of NEXT_INSN.
2548 Use CONST_INT_P. Beauty.
2549
7b4ef662
RH
25502011-08-12 Richard Henderson <rth@redhat.com>
2551
2552 PR rtl-opt/49994
2553 * sched-init.h (struct deps_desc): Add sched_before_next_jump.
2554 * sched-deps.c (init_deps): Clear it.
2555 (deps_analyze_insn): Consume it.
2556 (sched_analyze_insn): Fill it.
2557
10c241af
RR
25582011-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2559
198cb166 2560 PR target/48328
10c241af
RR
2561 * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
2562 for tbh instructions.
2563
198cb166 25642011-08-12 Diego Novillo <dnovillo@google.com>
412288f1
DN
2565
2566 * data-streamer.h (streamer_write_zero): Rename from output_zero.
f4ab7b99
UB
2567 (streamer_write_uhwi): Rename from lto_output_uleb128.
2568 (streamer_write_hwi): Rename from output_sleb128.
2569 (streamer_write_string): Rename from lto_output_string.
2570 (streamer_string_index): Rename from lto_string_index.
2571 (streamer_write_string_with_length): Rename from
2572 lto_output_string_with_length.
2573 (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
2574 (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
2575 (streamer_read_string): Rename from lto_input_string.
2576 (streamer_read_indexed_string): Rename from input_string_internal.
2577 (streamer_read_uhwi): Rename from lto_input_uleb128.
2578 (streamer_read_hwi): Rename from lto_input_sleb128.
2579 (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
2580 (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
2581 (streamer_write_enum): Rename from lto_output_enum.
2582 (streamer_read_enum): Rename from lto_input_enum.
2583 (streamer_write_record_start): Rename from output_record_start.
2584 (streamer_read_record_start): Rename from input_record_start.
2585 (streamer_write_bitpack): Rename from lto_output_bitpack.
2586 (streamer_read_bitpack): Rename from lto_input_bitpack.
2587 (streamer_write_char_stream): Rename from lto_output_1_stream.
2588 (streamer_read_uchar): Rename from lto_input_1_unsigned.
2589 * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
2590 (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
2591 (streamer_read_string_cst): Rename from input_string_cst.
2592 (streamer_read_chain): Rename from lto_input_chain.
2593 (streamer_alloc_tree): Rename from lto_materialize_tree.
2594 (streamer_read_tree_body): Rename from lto_input_tree_pointers.
2595 (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
2596 (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
2597 (streamer_read_integer_cst): Rename from lto_input_integer_cst.
2598 (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
2599 (streamer_write_chain): Rename from lto_output_chain.
2600 (streamer_write_tree_header): Rename from lto_output_tree_header.
2601 (streamer_pack_tree_bitfields): Rename from pack_value_fields.
2602 (streamer_write_tree_body): Rename from lto_output_tree_pointers.
2603 (streamer_write_integer_cst): Rename from lto_output_integer_cst.
2604 (streamer_write_builtin): Rename from lto_output_builtin_tree.
2605 (streamer_check_handled_ts_structures): Rename from
2606 check_handled_ts_structures.
2607 (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
2608 (streamer_tree_cache_insert_at): Rename from
2609 lto_streamer_cache_insert_at.
2610 (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
2611 (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
2612 (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
2613 (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
2614 (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
2615 * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
2616 (write_identifier): Rename from output_identifier.
2617 (write_ts_common_tree_pointers): Rename from
2618 lto_output_ts_common_tree_pointers.
2619 (write_ts_vector_tree_pointers): Rename from
2620 lto_output_ts_vector_tree_pointers.
2621 (write_ts_complex_tree_pointers): Rename from
2622 lto_output_ts_complex_tree_pointers.
2623 (write_ts_decl_minimal_tree_pointers): Rename from
2624 lto_output_ts_decl_minimal_tree_pointers.
2625 (write_ts_decl_common_tree_pointers): Rename from
2626 lto_output_ts_decl_common_tree_pointers.
2627 (write_ts_decl_non_common_tree_pointers): Rename from
2628 lto_output_ts_decl_non_common_tree_pointers.
2629 (write_ts_decl_with_vis_tree_pointers): Rename from
2630 lto_output_ts_decl_with_vis_tree_pointers.
2631 (write_ts_field_decl_tree_pointers): Rename from
2632 lto_output_ts_field_decl_tree_pointers.
2633 (write_ts_function_decl_tree_pointers): Rename from
2634 lto_output_ts_function_decl_tree_pointers.
2635 (write_ts_type_common_tree_pointers): Rename from
2636 lto_output_ts_type_common_tree_pointers.
2637 (write_ts_type_non_common_tree_pointers): Rename from
2638 lto_output_ts_type_non_common_tree_pointers.
2639 (write_ts_list_tree_pointers): Rename from
2640 lto_output_ts_list_tree_pointers.
2641 (write_ts_vec_tree_pointers): Rename from
2642 lto_output_ts_vec_tree_pointers.
2643 (write_ts_exp_tree_pointers): Rename from
2644 lto_output_ts_exp_tree_pointers.
2645 (write_ts_block_tree_pointers): Rename from
2646 lto_output_ts_block_tree_pointers.
2647 (write_ts_binfo_tree_pointers): Rename from
2648 lto_output_ts_binfo_tree_pointers.
2649 (write_ts_constructor_tree_pointers): Rename from
2650 lto_output_ts_constructor_tree_pointers.
2651 (write_ts_target_option): Rename from lto_output_ts_target_option.
2652 (write_ts_translation_unit_decl_tree_pointers): Rename from
2653 lto_output_ts_translation_unit_decl_tree_pointers.
2654 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
2655 Rename from lto_streamer_cache_add_to_node_array.
2656 (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2657 (record_common_node): Rename from lto_record_common_node.
412288f1
DN
2658
2659 * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2660 declarations.
2661 * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2662 function.
2663 * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2664 unused function.
2665 * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2666 (ipa-reference.o): Likewise.
2667 * lto-section-out.c: Include data-streamer.h.
2668 * ipa-reference.c: Include data-streamer.h.
2669
9b0f6f5e
NC
26702011-08-12 Nick Clifton <nickc@redhat.com>
2671
f4ab7b99 2672 * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
9b0f6f5e
NC
2673 * doc/md.texi (cmpstrn): Note that the comparison stops if both
2674 fetched bytes are zero.
2675 (cmpstr): Likewise.
2676 (cmpmem): Note that the comparison does not stop if both of the
2677 fetched bytes are zero.
2678
6c32ee74
UB
26792011-08-12 Uros Bizjak <ubizjak@gmail.com>
2680
2681 * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2682 BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2683 * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2684 BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2685 to integer_type_node.
2686 * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2687 BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2688 * builtins.c (expand_builtin_in): Ditto.
2689 (mathfn_built_in_1): Ditto.
2690 (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2691 BUILT_IN_IFLOOR.
2692 (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2693 BUILT_IN_IROUND.
2694 (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2695 BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2696 BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2697
d9fbc86e
RB
26982011-08-12 Richard Guenther <rguenther@suse.de>
2699
198cb166 2700 * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
d9fbc86e
RB
2701
27022011-08-12 Romain Geissler <romain.geissler@gmail.com>
f895fc2a
RG
2703
2704 * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2705
20fe71c2
RS
27062011-08-12 Richard Sandiford <rdsandiford@googlemail.com>
2707
2708 * config/arm/arm.c (get_label_padding): New function.
c789cb77 2709 (create_fix_barrier, arm_reorg): Use it.
20fe71c2 2710
88b590c5
UB
27112011-08-11 Uros Bizjak <ubizjak@gmail.com>
2712
2713 PR target/49781
2714 * config/i386/i386.md (*lea_5_zext): New.
2715 (*lea_6_zext): Ditto.
2716 * config/i386/predicates.md (const_32bit_mask): New predicate.
2717 (lea_address_operand): Reject AND.
2718 * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2719 const_32bit_mask immediate.
2720 (ix86_print_operand_address): Handle AND.
2721 (memory_address_length): Ditto.
2722
4309e92c 27232011-08-11 Romain Geissler <romain.geissler@gmail.com>
88b590c5 2724 Brian Hackett <bhackett1024@gmail.com>
4309e92c
RG
2725
2726 * plugin.def: Add event for finish_decl.
2727 * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2728 * c-decl.c (finish_decl): Invoke callbacks on above event.
2729 * doc/plugins.texi: Document above event.
2730
25aa059e
RG
27312011-08-11 Richard Guenther <rguenther@suse.de>
2732
2733 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2734 lookups, make looking through aggregate copies stronger.
2735
6bfd73a6
RH
27362011-08-11 Richard Henderson <rth@redhat.com>
2737
2738 PR bootstrap/50018
2739 * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2740
022676dc
RG
27412011-08-11 Richard Guenther <rguenther@suse.de>
2742
2743 * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2744 * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2745 (vrp_visit_stmt): Likewise.
2746
8d2b0410
RG
27472011-08-11 Richard Guenther <rguenther@suse.de>
2748
2749 PR middle-end/50040
2750 * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2751 load of the other piece with TREE_NO_WARNING.
2752 * tree-flow.h (warn_uninit): Adjust prototype.
2753 * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2754 the base variable and the expression that is used separately.
2755 Properly query all TREE_NO_WARNING flags.
2756 (struct walk_data): Remove.
2757 (warn_uninitialized_var): Likewise.
2758 (warn_uninitialized_vars): Do not walk gimple pieces but simply
2759 look at all SSA uses of the statement. Handle unused memory
2760 separately.
2761 * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2762
78926be1
KI
27632011-08-11 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
2764
88b590c5 2765 * config/rx/rx.md (movsicc): Allow register to register transfers.
78926be1
KI
2766 (*movsicc): Likewise.
2767 (*stcc): Restrict this pattern to EQ and NE compares.
2768 (*stcc_reg): New pattern. Works for any comparison but only for
2769 register transfers.
2770
b9393656
DN
27712011-08-11 Diego Novillo <dnovillo@google.com>
2772
2773 * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2774 Call stream_write_tree instead of output_record_start.
2775 (lto_output_ts_binfo_tree_pointers): Likewise.
2776
2777 * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2778 Convert it to a macro.
2779 (stream_read_tree): Likewise.
2780
2781 * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2782 * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2783
2784 * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2785 and tree_read_bitfields.
2786 * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2787 (lto_write_tree): Call it.
2788 * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2789 * streamer-hooks.h (struct streamer_hooks): Remove fields
2790 name, is_streamable and alloc_tree. Update all users.
2791 * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2792 (lto_materialize_tree): ... here.
2793 Handle CALL_EXPR codes.
2794 Remove call to lto_streamer_cache_append.
88b590c5 2795 * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
b9393656
DN
2796 * tree-streamer.h (tree_read_bitfields): Declare.
2797
2798 * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2799 (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2800 * tree-streamer.h (stream_read_tree): New. Replace all calls
2801 to lto_input_tree with it.
2802 (stream_write_tree): New. Replace all calls to lto_output_tree,
2803 lto_output_tree_ref and lto_output_tree_or_ref with it.
2804 * lto-streamer-in.c (lto_read_tree): Inline code from
2805 lto_streamer_read_tree.
2806 (lto_input_tree): Move from tree-streamer-in.c.
2807 * lto-streamer-out.c (lto_output_tree_ref): Make static.
2808 Remove handling of NULL values for EXPR.
2809 Do not handle EXPRs that are not indexable.
2810 (lto_write_tree): Move from tree-streamer-out.c.
2811 Inline lto_streamer_write_tree.
2812 (lto_output_tree): Move from tree-streamer-out.c.
2813 If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2814 * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2815 (lto_preload_common_nodes): Likewise.
2816 Remove assertions and adjustments for nodes
2817 main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2818 (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
88b590c5 2819 lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
b9393656
DN
2820 * lto-streamer.h (lto_input_tree): Declare.
2821 (lto_output_tree_ref): Remove.
2822 * streamer-hooks.h (struct streamer_hooks): Remove fields
2823 preload_common_nodes, indexable_with_decls_p,
2824 pack_value_fields, unpack_value_fields and output_tree_header.
2825 Update all users.
2826 * tree-streamer-in.c (lto_materialize_tree): Make extern.
2827 (lto_input_tree_pointers): Likewise.
2828 (lto_read_tree): Move to lto-streamer-in.c.
2829 (lto_input_integer_cst): Make extern.
2830 (lto_get_pickled_tree): Likewise.
2831 (lto_get_builtin_tree): Likewise.
2832 (lto_input_tree): Move to lto-streamer-in.c.
2833 * tree-streamer-out.c (pack_value_fields): Make extern.
2834 (lto_output_tree_or_ref): Remove. Replace all callers with
2835 calls to stream_write_tree.
2836 (lto_output_builtin_tree): Make extern.
2837 (lto_streamer_write_tree): Inline into lto_write_tree.
2838 (lto_output_tree_pointers): Make extern.
2839 (lto_output_tree_header): Likewise.
2840 (lto_output_integer_cst): Likewise.
2841 (lto_write_tree): Move to lto-streamer-out.c.
2842 (lto_output_tree): Likewise.
88b590c5 2843 * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
b9393656
DN
2844 (preload_common_nodes): Likewise.
2845 (lto_streamer_cache_create): Call it.
2846 * tree-streamer.h: Include streamer-hooks.h.
2847 (stream_write_tree): New.
2848 (stream_read_tree): New.
2849 (lto_input_tree): Remove.
2850 (lto_materialize_tree): Declare.
2851 (lto_input_tree_pointers): Declare.
2852 (lto_get_pickled_tree): Declare.
2853 (lto_get_builtin_tree): Declare.
2854 (lto_input_integer_cst): Declare.
2855 (lto_output_tree_header): Declare.
2856 (pack_value_fields): Declare.
2857 (lto_output_tree_pointers): Declare.
2858 (lto_output_integer_cst): Declare.
2859 (lto_output_builtin_tree): Declare.
2860
ca31ca94
SG
28612011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
2862
2863 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
2864 only if producer writes to the register given by regno.
2865
f0898307
SG
28662011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
2867 Alexander Monakov <amonakov@ispras.ru>
2868
2869 * sched-deps.c (sched_get_condition_with_rev): Rename to ...
2870 (sched_get_condition_with_rev_uncached): ... this. Factor out
2871 condition caching logic into ...
2872 (sched_get_condition_with_rev): ... this. Reimplement. Do not
2873 attempt to use cache for instructions with zero luid.
2874 (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
2875 * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
2876
0d9439b0
SG
28772011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
2878
2879 * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
2880 get_seqno_for_a_jump. Update the caller.
2881 (get_seqno_by_succs): New. Use it ...
2882 (get_seqno_for_a_jump): ... here to find a seqno if looking at
2883 predecessors was not sufficient.
2884 (get_seqno_by_preds): Include head in iteration range, exclude insn.
2885
5c416724
DM
28862011-08-11 Dmitry Melnik <dm@ispras.ru>
2887
2888 * sel-sched-ir.c (invalidate_av_set): Remove the assert.
2889
cf3d5824
SG
28902011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
2891
2892 * sel-sched-ir.h (register_unavailable_p): Declare.
2893 * sel-sched-ir.c (register_unavailable_p): New. Use it...
2894 (set_unavailable_target_for_expr): ... here to properly test
2895 availability of a register.
2896 (speculate_expr): Ditto.
2897 * sel-sched.c (substitute_reg_in_expr): Ditto.
2898 (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
2899
944499ed
SG
29002011-08-11 Sergey Grechanik <mouseentity@ispras.ru>
2901
2902 * sel-sched.c (verify_target_availability): Fix usage of
2903 hard_regno_nregs.
2904
6bf2d156
DM
29052011-08-11 Dmitry Melnik <dm@ispras.ru>
2906
2907 * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
2908 recognized by cannot_copy_insn_p hook and volatile instructions.
2909
bf3a40e9
DM
29102011-08-11 Dmitry Melnik <dm@ispras.ru>
2911
2912 * sel-sched-ir.c (merge_expr_data): Take maximum spec.
2913
f9bf5a8e
RS
29142011-08-11 Richard Sandiford <richard.sandiford@linaro.org>
2915
2916 * doc/md.texi (define_bypass): Say that the instruction names can
2917 be filename-style globs.
2918 * Makefile.in (FNMATCH_H): Define.
2919 (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
2920 * genattrtab.c: Include fnmatch.h.
2921 (bypass_list): Change field name from "insn" to "pattern".
2922 (gen_bypass_1): Update accordingly.
2923 (process_bypasses): Use fnmatch to check for matches between
2924 insn reservations and define_bypasses.
2925 * genautomata.c: Include fnmatch.h.
2926 (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2927 and out_pattern respectively.
2928 (gen_bypass, insert_bypass): Update accordingly.
2929 (for_each_matching_insn, process_bypass_2, process_bypass_1)
2930 (process_bypass): New functions.
2931 (process_decls): Use process_bypass. Update after field name changes.
2932
7ece3881 29332011-08-11 Georg-Johann Lay <avr@gjlay.de>
78926be1 2934
7ece3881
GJL
2935 PR target/49687
2936 * config/avr/avr.md (smulqi3_highpart): New insn.
2937 (umulqi3_highpart): New insn.
2938 (*subqi3.ashiftrt7): New insn.
2939 (smulhi3_highpart): New expander.
2940 (umulhi3_highpart): Nex expander.
2941 (*smulhi3_highpart_call): New insn.
2942 (*umulhi3_highpart_call): New insn.
2943 (extend_u): New code attribute.
2944 (extend_prefix): Rename code attribute to extend_su.
2945 * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2946 widening QI/HI multiply.
2947
fb2c2b16
IR
29482011-08-11 Ira Rosen <ira.rosen@linaro.org>
2949
2950 PR tree-optimization/50039
2951 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2952 that DEF_STMT has a stmt_vec_info.
2953
b126811e
RG
29542011-08-10 Richard Guenther <rguenther@suse.de>
2955
2956 * tree.h (can_trust_pointer_alignment): Remove.
2957 * builtins.c (can_trust_pointer_alignment): Remove.
2958
0e3a99ae
AS
29592011-08-10 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2960
2961 * c-typeck.c (scalar_to_vector): New function. Try scalar to
2962 vector conversion.
2963 (stv_conv): New enum for scalar_to_vector return type.
2964 (build_binary_op): Adjust.
2965 * doc/extend.texi: Description of scalar to vector expansion.
2966
0eb77834
RG
29672011-08-10 Richard Guenther <rguenther@suse.de>
2968
2969 * tree.h (get_pointer_alignment): Remove max-align argument.
2970 (get_object_alignment): Likewise.
2971 * builtins.c (get_object_alignment_1): Adjust.
2972 (get_object_alignment): Remove max-align argument.
2973 (get_pointer_alignment): Likewise.
2974 (expand_builtin_strlen): Adjust.
2975 (expand_builtin_memcpy): Likewise.
2976 (expand_builtin_mempcpy_args): Likewise.
2977 (expand_builtin_strncpy): Likewise.
2978 (expand_builtin_memset_args): Likewise.
2979 (expand_builtin_memcmp): Likewise.
2980 (expand_builtin_strcmp): Likewise.
2981 (expand_builtin_strncmp): Likewise.
2982 (get_builtin_sync_mem): Likewise.
2983 (fold_builtin_memset): Likewise.
2984 (fold_builtin_memory_op): Likewise.
2985 (expand_builtin_memory_chk): Likewise.
2986 * emit-rtl.c (get_mem_align_offset): Likewise.
2987 (set_mem_attributes_minus_bitpos): Likewise.
2988 * expr.c (expand_assignment): Likewise.
2989 (expand_expr_real_1): Likewise.
2990 * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
2991 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
2992 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
2993 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
2994 * value-prof.c (gimple_stringops_transform): Likewise.
2995
1c7836f0
PM
29962011-08-10 Paulo J. Matos <paulo.matos@csr.com>
2997
2998 * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
2999 * doc/tm.texi: Regenerate.
3000
4ada410b 30012011-08-10 Georg-Johann Lay <avr@gjlay.de>
88b590c5 3002
4ada410b
GJL
3003 PR target/29560
3004 * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
3005 (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
3006 (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
3007 Add peephole2 to map ashlhi3 to ashlqi3 if high part of
3008 shift target is unused.
3009
d1f4e15f
RG
30102011-08-10 Richard Guenther <rguenther@suse.de>
3011
3012 PR tree-optimization/49937
3013 * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
3014 using get_object_alignment_1.
3015
2813f1b1
UB
30162011-08-09 Uros Bizjak <ubizjak@gmail.com>
3017
3018 * config/i386/i386.c (ix86_emit_i387_round): New function.
3019 * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
3020 * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
3021 Use ix86_emit_i387_round to expand round function for i387 math.
3022 (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
3023 Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
3024
c6412d86
RO
30252011-08-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3026
3027 * config/sync.c: Move to ../libgcc.
2813f1b1 3028 * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
c6412d86
RO
3029 * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
3030 Remove.
3031
6e9ee54c
AS
30322011-08-09 Anatoly Sokolov <aesok@post.ru>
3033
3034 * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
3035 * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
3036 * config/mmix/mmix.c (mmix_register_move_cost): Make static.
3037 Change 'from' and 'to' arguments type to reg_class_t.
3038 (TARGET_REGISTER_MOVE_COST): Define.
3039
394b1520
VM
30402011-08-09 Vladimir Makarov <vmakarov@redhat.com>
3041
3042 PR target/50026
3043 Revert:
3044 PR rtl-optimization/49990
3045 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3046 ignore classes which can not change mode.
3047 (find_costs_and_classes): Ditto.
3048
4001900f
RG
30492011-08-09 Richard Guenther <rguenther@suse.de>
3050
3051 * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
3052 information for ranges with only negative values.
3053 (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
3054 BIT_AND_EXPR handling to handle ranges with negative values.
3055
6cf9eb27
KY
30562011-08-09 Kirill Yukhin <kirill.yukhin@intel.com>
3057
88b590c5
UB
3058 * config/i386/i386.c: Remove traling spaces.
3059 * config/i386/sse.md: Likewise.
3060 (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
3061 (*fma_fmsub_<mode>): Likewise.
3062 (*fma_fnmadd_<mode>): Likewise.
3063 (*fma_fnmsub_<mode>): Likewise.
6cf9eb27 3064
d6257cf0
NC
30652011-08-09 Nick Clifton <nickc@redhat.com>
3066
3067 * config/rx/rx.md: Disable extender peepholes at -O3.
3068
3968b050
UB
30692011-08-09 Uros Bizjak <ubizjak@gmail.com>
3070
3071 PR target/49781
3072 * config/i386/i386.md (reload_noff_load): New.
3073 (reload_noff_store): Ditto.
3074 * config/i386/i386.c (ix86_secondary_reload): Use
3075 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
3076 double-word moves from/to non-offsetable addresses instead of
3077 generating XMM temporary.
3078
2292df60
AS
30792011-08-09 Anatoly Sokolov <aesok@post.ru>
3080
3081 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
3082
1684ca6b
IR
30832011-08-09 Ira Rosen <ira.rosen@linaro.org>
3084
3085 PR tree-optimization/50014
3086 * tree-vect-loop.c (vectorizable_reduction): Get def type before
3087 calling vect_get_vec_def_for_stmt_copy ().
3088
40118062
VM
30892011-08-08 Vladimir Makarov <vmakarov@redhat.com>
3090
3091 PR rtl-optimization/49990
3092 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3093 ignore classes which can not change mode.
3094 (find_costs_and_classes): Ditto.
3095
8714c21f
RH
30962011-08-08 Richard Henderson <rth@redhat.com>
3097
3098 PR middle-end/49990
3099 * config/i386/i386.c (ix86_expand_prologue): Call
3100 for SEH target gen_prologue_use instead of gen_blockage
3101 at prologue's end.
3102
1ad663a8
MJ
31032011-08-08 Martin Jambor <mjambor@suse.cz>
3104
3105 PR middle-end/49923
3106 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
3107 memory alignment.
3108
f0efc7aa
DN
31092011-08-08 Diego Novillo <dnovillo@google.com>
3110
3111 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
3112 (DATA_STREAMER_H): New.
3113 (GIMPLE_STREAMER_H): New.
3114 (TREE_STREAMER_H): New.
3115 (STREAMER_HOOKS_H): New.
3116 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
3117 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
3118 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
3119 (data-streamer.o): New.
3120 (data-streamer-in.o): New.
3121 (data-streamer-out.o): New.
3122 (gimple-streamer-in.o): New.
3123 (gimple-streamer-out.o): New.
3124 (streamer-hooks.o): New.
3125 (tree-streamer.o): New.
3126 (tree-streamer-in.o): New.
3127 (tree-streamer-out.o): New.
3968b050 3128 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
3129 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
3130 GIMPLE_STREAMER_H and TREE_STREAMER_H.
3131 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
3132 GIMPLE_STREAMER_H and TREE_STREAMER_H.
3133 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3968b050 3134 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
f0efc7aa
DN
3135 (ipa-inline-analysis.o): Likewise.
3136 (ipa-pure-const.o): Likewise.
3137 * data-streamer-in.c: New.
3138 * data-streamer-out.c: New.
3139 * data-streamer.c: New.
3140 * data-streamer.h: New.
3141 * gimple-streamer-in.c: New.
3142 * gimple-streamer-out.c: New.
3143 * gimple-streamer.h: New.
3144 * ipa-inline-analysis.c: Include data-streamer.h.
3145 * ipa-prop.c: Include data-streamer.h.
3146 * ipa-pure-const.c: Include data-streamer.h.
3147 * lto-cgraph.c: Include data-streamer.h.
3148 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
3149 (lto_input_widest_uint_uleb128): Likewise.
3150 (lto_input_sleb128): Likewise.
3151 (bp_unpack_var_len_unsigned): Likewise.
3152 (bp_unpack_var_len_int): Likewise.
3153 * lto-section-out.c (lto_output_uleb128_stream): Move to
3154 data-streamer-out.c.
3155 (lto_output_widest_uint_uleb128_stream): Likewise.
3156 (lto_output_sleb128_stream): Likewise.
3157 (bp_pack_var_len_unsigned): Likewise.
3158 (bp_pack_var_len_int): Likewise.
3968b050 3159 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
f0efc7aa
DN
3160 (struct string_slot): Remove. Update all users.
3161 (lto_tag_check_set): Make extern.
3162 (lto_tag_check_range): Move to lto-streamer.h.
3163 (lto_tag_check): Likewise.
3164 (hash_string_slot_node): Remove. Update all users.
3165 (eq_string_slot_node): Remove. Update all users.
3166 (string_for_index): Move to data-streamer-in.c
3167 (input_string_internal): Likewise.
3168 (input_string_cst): Move to tree-streamer-in.c.
3169 (input_identifier): Likewise.
3170 (lto_input_string): Move to data-streamer-in.c
3171 (input_record_start): Move to data-streamer.h
3172 (canon_file_name): Use new definition of struct string_slot
3968b050 3173 from data-streamer.h. Set S_SLOT.LEN.
f0efc7aa
DN
3174 (lto_input_location): Make extern.
3175 (lto_input_chain): Move to tree-streamer-in.c.
3176 (lto_init_eh): Make extern.
3177 (input_phi): Move to gimple-streamer-in.c.
3178 (input_gimple_stmt): Likewise.
3179 (input_bb): Likewise.
3180 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
3181 (unpack_ts_real_cst_value_fields): Likewise.
3182 (unpack_ts_fixed_cst_value_fields): Likewise.
3183 (unpack_ts_decl_common_value_fields): Likewise.
3184 (unpack_ts_decl_wrtl_value_fields): Likewise.
3185 (unpack_ts_decl_with_vis_value_fields): Likewise.
3186 (unpack_ts_function_decl_value_fields): Likewise.
3187 (unpack_ts_type_common_value_fields): Likewise.
3188 (unpack_ts_block_value_fields): Likewise.
3189 (unpack_ts_translation_unit_decl_value_fields): Likewise.
3190 (unpack_value_fields): Likewise.
3191 (lto_materialize_tree): Likewise.
3192 (lto_input_ts_common_tree_pointers): Likewise.
3193 (lto_input_ts_vector_tree_pointers): Likewise.
3194 (lto_input_ts_complex_tree_pointers): Likewise.
3195 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
3196 (lto_input_ts_decl_common_tree_pointers): Likewise.
3197 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
3198 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
3199 (lto_input_ts_field_decl_tree_pointers): Likewise.
3200 (lto_input_ts_function_decl_tree_pointers): Likewise.
3201 (lto_input_ts_type_common_tree_pointers): Likewise.
3202 (lto_input_ts_type_non_common_tree_pointers): Likewise.
3203 (lto_input_ts_list_tree_pointers): Likewise.
3204 (lto_input_ts_vec_tree_pointers): Likewise.
3205 (lto_input_ts_exp_tree_pointers): Likewise.
3206 (lto_input_ts_block_tree_pointers): Likewise.
3207 (lto_input_ts_binfo_tree_pointers): Likewise.
3208 (lto_input_ts_constructor_tree_pointers): Likewise.
3209 (lto_input_ts_target_option): Likewise.
3210 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
3211 (lto_input_tree_pointers): Likewise.
3212 (lto_get_pickled_tree): Likewise.
3213 (lto_get_builtin_tree): Likewise.
3214 (lto_read_tree): Likewise.
3215 (lto_input_integer_cst): Likewise.
3216 (lto_input_tree): Likewise.
3217 * lto-streamer-out.c: Include data-streamer.h,
3218 gimple-streamer.h and streamer-hooks.h.
3219 (struct string_slot): Move to data-streamer.h.
3220 (hash_string_slot_node): Likewise.
3221 (eq_string_slot_node): Likewise.
3222 (lto_string_index): Move to data-streamer-out.c.
3223 (lto_output_string_with_length): Likewise.
3224 (lto_output_string): Likewise.
3225 (output_string_cst): Move to tree-streamer-out.c.
3226 (output_identifier): Likewise.
3227 (output_zero): Move to data-streamer-out.c
3228 (output_uleb128): Likewise.
3229 (output_sleb128): Likewise.
3230 (output_record_start): Move to data-streamer.h
3231 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
3232 (pack_ts_real_cst_value_fields): Likewise.
3233 (pack_ts_fixed_cst_value_fields): Likewise.
3234 (pack_ts_decl_common_value_fields): Likewise.
3235 (pack_ts_decl_wrtl_value_fields): Likewise.
3236 (pack_ts_decl_with_vis_value_fields): Likewise.
3237 (pack_ts_function_decl_value_fields): Likewise.
3238 (pack_ts_type_common_value_fields): Likewise.
3239 (pack_ts_block_value_fields): Likewise.
3240 (pack_ts_translation_unit_decl_value_fields): Likewise.
3241 (pack_value_fields): Likewise.
3242 (lto_output_chain): Likewise.
3243 (lto_output_ts_common_tree_pointers): Likewise.
3244 (lto_output_ts_vector_tree_pointers): Likewise.
3245 (lto_output_ts_complex_tree_pointers): Likewise.
3246 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
3247 (lto_output_ts_decl_common_tree_pointers): Likewise.
3248 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
3249 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
3250 (lto_output_ts_field_decl_tree_pointers): Likewise.
3251 (lto_output_ts_function_decl_tree_pointers): Likewise.
3252 (lto_output_ts_type_common_tree_pointers): Likewise.
3253 (lto_output_ts_type_non_common_tree_pointers): Likewise.
3254 (lto_output_ts_list_tree_pointers): Likewise.
3255 (lto_output_ts_vec_tree_pointers): Likewise.
3256 (lto_output_ts_exp_tree_pointers): Likewise.
3257 (lto_output_ts_block_tree_pointers): Likewise.
3258 (lto_output_ts_binfo_tree_pointers): Likewise.
3259 (lto_output_ts_constructor_tree_pointers): Likewise.
3260 (lto_output_ts_target_option): Likewise.
3261 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
3262 (lto_output_tree_pointers): Likewise.
3263 (lto_output_tree_header): Likewise.
3264 (lto_output_builtin_tree): Likewise.
3265 (lto_write_tree): Likewise.
3266 (lto_output_integer_cst): Likewise.
3267 (lto_output_tree): Likewise.
3268 (output_phi): Move to gimple-streamer-out.c.
3269 (output_gimple_stmt): Likewise.
3270 (output_bb): Likewise.
3271 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
3272 (streamer_hooks): Move to streamer-hooks.c.
3273 (check_handled_ts_structures): Move to tree-streamer.c
3274 (lto_streamer_cache_add_to_node_array): Likewise.
3275 (lto_streamer_cache_insert_1): Likewise.
3276 (lto_streamer_cache_insert): Likewise.
3277 (lto_streamer_cache_insert_at): Likewise.
3278 (lto_streamer_cache_append): Likewise.
3279 (lto_streamer_cache_lookup): Likewise.
3280 (lto_streamer_cache_get): Likewise.
3281 (lto_record_common_node): Likewise.
3282 (lto_preload_common_nodes): Likewise.
3283 (lto_streamer_cache_create): Likewise.
3284 (lto_streamer_cache_delete): Likewise.
3285 (streamer_hooks_init): Move to streamer-hooks.c.
3286 * lto-streamer.h: Include diagnostic.h
3287 (struct output_block, struct lto_input_block,
3968b050 3288 struct data_in, struct bitpack_d): Remove forward declarations.
f0efc7aa
DN
3289 (struct bitpack_d): Move to data-streamer.h.
3290 (struct lto_streamer_cache_d): Move to tree-streamer.h.
3291 (struct streamer_hooks): Move to streamer-hooks.h.
3292 (bp_pack_var_len_unsigned): Move to data-streamer.h.
3293 (bp_pack_var_len_int): Likewise.
3294 (bp_unpack_var_len_unsigned): Likewise.
3295 (bp_unpack_var_len_int): Likewise.
3296 (lto_input_location): Declare.
3297 (lto_tag_check_set): Declare.
3298 (lto_init_eh): Declare.
3299 (lto_output_tree_ref): Declare.
3300 (lto_output_location): Declare.
3301 (bitpack_create): Move to data-streamer.h.
3302 (bp_pack_value): Likewise.
3303 (lto_output_bitpack): Likewise.
3304 (lto_input_bitpack): Likewise.
3305 (bp_unpack_value): Likewise.
3306 (lto_output_1_stream): Likewise.
3307 (lto_input_1_unsigned): Likewise.
3308 (lto_output_int_in_range): Likewise.
3309 (lto_input_int_in_range): Likewise.
3310 (bp_pack_int_in_range): Likewise.
3311 (bp_unpack_int_in_range): Likewise.
3312 (lto_output_enum): Likewise.
3313 (lto_input_enum): Likewise.
3314 (bp_pack_enum): Likewise.
3315 (bp_unpack_enum): Likewise.
3316 * streamer-hooks.c: New.
3317 * streamer-hooks.h: New.
3318 * tree-streamer-in.c: New.
3319 * tree-streamer-out.c: New.
3320 * tree-streamer.c: New.
3321 * tree-streamer.h: New.
3322
ddaad3c8
RO
33232011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3324
3325 * gthr-posix95.h: Remove.
3326 * gthr.h [_PTHREADS95]: Remove.
3327 * configure.ac (enable_threads): Remove posix95.
3328 * configure: Regenerate.
3968b050 3329 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
ddaad3c8 3330
3968b050 33312011-08-08 Uros Bizjak <ubizjak@gmail.com>
473b30ce
UB
3332
3333 PR target/49781
3334 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
3335 SImode addresses.
3336 (ix86_print_operand_address): Handle zero-extended addresses.
3337 (memory_address_length): Add length of addr32 prefix for
3338 zero-extended addresses.
3339 (ix86_secondary_reload): Handle moves to/from double-word general
3340 registers from/to zero-extended addresses.
3341 * config/i386/predicates.md (lea_address_operand): Reject
3342 zero-extended operands.
3343
cca2207a
L
33442011-08-08 H.J. Lu <hongjiu.lu@intel.com>
3345
3346 PR other/48007
473b30ce 3347 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
cca2207a
L
3348
3349 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
3350 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
3351
3352 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
3353 (_Unwind_Context_Reg_Val): Likewise.
3354 (_Unwind_Get_Unwind_Word): Likewise.
3355 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
3356 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
3357 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
3358 for EXTENDED_CONTEXT_BIT.
3359 (__frame_state_for): Likewise.
3360 (uw_init_context_1): Likewise.
3361 (_Unwind_GetGR): Updated.
3362 (_Unwind_SetGR): Likewise.
3363 (_Unwind_GetGRPtr): Likewise.
3364 (_Unwind_SetGRPtr): Likewise.
3365 (_Unwind_SetGRValue): Likewise.
3366 (_Unwind_GRByValue): Likewise.
3367 (uw_install_context_1): Likewise.
3368
3369 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
3370 ASSUME_EXTENDED_UNWIND_CONTEXT.
3371 * doc/tm.texi: Regenerated.
3372
b6ee5bef
RO
33732011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3374
3375 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
3376
46135ba7
RO
33772011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3378
3379 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
3380 Linux/GNU-specific.
3381 (DEC Alpha Options, -mtune): Likewise.
3382 (MIPS Options, -march): native is supported on IRIX.
3383
e3b3fa45
RO
33842011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3385
3386 * config/sparc/driver-sparc.c: New file.
3387 * config/sparc/x-sparc: New file.
473b30ce
UB
3388 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
3389 * config/sparc/sparc.opt (native): New value for enum processor_type.
e3b3fa45
RO
3390 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
3391 * config/sparc/sparc.c (sparc_option_override): Abort if
3392 PROCESSOR_NATIVE gets here.
3393 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
3394 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
3395 DRIVER_SELF_SPECS): Define.
3396 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
3397 (SPARC Options, -mtune): Likewise.
3398 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
3399 Substitute result.
3400 * configure: Regenerate.
3401 * Makefile.in (EXTRA_GCC_LIBS): Set.
3402 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
3403 (cpp$(exeext)): Likewise.
3404
ce6bfa50
RG
34052011-08-08 Richard Guenther <rguenther@suse.de>
3406
3407 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
3408 split out from ...
3409 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
3410 by composition.
3411
daae4650
MP
34122011-08-08 Mikael Pettersson <mikpe@it.uu.se>
3413
3414 PR tree-optimization/50005
3415 * ipa-inline-analysis (remap_predicate): Add cast to
3416 silence signed/unsigned comparison warning.
3417
3e762578
RS
34182011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
3419
3420 * modulo-sched.c (get_sched_window): Use a table for the debug output.
3421 Print the current ii.
3422 (sms_schedule_by_order): Reduce whitespace in dump line.
3423
fe43febc
RS
34242011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
3425
3426 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
3427 and one loop for successors. Fix upper bound of memory range.
3428
1e46eb2a
UB
34292011-08-06 Uros Bizjak <ubizjak@gmail.com>
3430
3431 PR target/50001
3432 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
3433 (TARGET_INSTANTIATE_DECLS): New define.
3434
cc3801b0 34352011-08-06 Paolo Bonzini <bonzini@gnu.org>
473b30ce 3436 Mikael Morin <mikael.morin@sfr.fr>
cc3801b0
PB
3437
3438 * Makefile.in (INCLUDES_FOR_TARGET): New.
3439 (LIBGCC2_CFLAGS): Use it.
1e46eb2a 3440 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
cc3801b0 3441
f68c9aa8
UB
34422011-08-06 Uros Bizjak <ubizjak@gmail.com>
3443
3444 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
3445 frame->save_regs_using_mov calculation.
3446
cd7c6bc5
UB
34472011-08-06 Uros Bizjak <ubizjak@gmail.com>
3448
3449 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
3450 * config/i386/sse.md (castmode): New mode attribute.
3451 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
3452 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
3453
9911e25a
JH
34542011-08-05 Jan Hubicka <jh@suse.cz>
3455
3456 PR middle-end/49494
3457 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
3458
75d3e6e3
JH
34592011-08-05 Jan Hubicka <jh@suse.cz>
3460
3461 PR middle-end/49500
3462 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
3463 handle aliases.
3464 (create_emultls_var):New function.
3465 (ipa_lower_emutls): Handle aliases correctly.
3466
f791d333
JH
34672011-08-05 Jan Hubicka <jh@suse.cz>
3468
3469 PR middle-end/49735
3470 * ipa-inline.c (recursive_inlining): Look through aliases.
3471
f93b21e2
JM
34722011-08-05 Jason Merrill <jason@redhat.com>
3473
3474 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
3475 declarations to beginning of function.
3476
2c331232
BS
34772011-08-05 Bernd Schmidt <bernds@codesourcery.com>
3478
3479 PR rtl-optimization/49900
3480 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
3481 ensure basic blocks stay in the same order.
3482
44e95206
AH
34832011-08-05 Aldy Hernandez <aldyh@redhat.com>
3484
3485 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
3486 store_bit_field.
3487 (s390_expand_atomic): Same.
3488
6fe818aa
RH
34892011-08-05 Richard Henderson <rth@redhat.com>
3490
3491 PR rtl-opt/49977
3492 * dwarf2cfi.c (scan_insn_after): Split out of ...
3493 (scan_trace): ... here. Correctly place notes wrt sequences.
3494
7ac17442
KK
34952011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
3496 Richard Henderson <rth@redhat.com>
3497
3498 PR rtl-opt/49982
3499 * expr.c (fixup_args_size_notes): Look through no-op moves.
3500
24911a50
UB
35012011-08-05 Uros Bizjak <ubizjak@gmail.com>
3502
3503 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
3504 of "m" for operand 0. Add type and mode attribute.
3505 (*pushxf_nointeger"): Use "<" constraint for operand 0.
3506 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
3507 constraint instead of "o" for opreand 1.
3508 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
42443bdb
UB
3509 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
3510 operand 0, alternative 4.
3511 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
24911a50
UB
3512
35132011-08-05 Uros Bizjak <ubizjak@gmail.com>
3514
3515 * config/i386/predicates.md (lea_address_operand): Rename from
3516 no_seg_address_operand.
3517 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
3518 (*lea_1_zext): Ditto.
3519 (*lea_2): Ditto.
3520 (*lea_2_zext): Ditto.
3521
35222011-08-05 Uros Bizjak <ubizjak@gmail.com>
3523
3524 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
3525 parts.base and parts.index.
3526 * config/i386/predicates.md (aligned_operand): Ditto.
3527 (cmpxchg8b_pic_memory_operand): Ditto.
3528
aca0b0b3
RO
35292011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3530
3531 * config/soft-fp: Move to ../libgcc.
3532 * Makefile.in (SFP_MACHINE): Remove.
3533 (libgcc-support): Remove $(SFP_MACHINE) dependency.
3534 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
3535 * config/arm/t-arm-softfp: Move to
3536 ../libgcc/config/arm/t-softfp.
3537 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
3538 * config/c6x/t-c6x-softfp: Remove.
3539 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
3540 * config/i386/t-fprules-softfp: Move to
3541 ../libgcc/config/t-softfp-tf.
3542 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
3543 * config/ia64/t-fprules-softfp: Remove.
3544 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
3545 * config/lm32/t-fprules-softfp: Remove.
3546 * config/moxie/sfp-machine.h: Remove.
3547 * config/moxie/t-moxie-softfp: Remove.
3548 * config/rs6000/darwin-ldouble-format: Move to
3549 ../libgcc/config/rs6000/ibm-ldouble-format.
3550 * config/rs6000/darwin-ldouble.c: Move to
3551 ../libgcc/config/rs6000/ibm-ldouble.c
3552 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
3553 * config/rs6000/libgcc-ppc64.ver: Likewise.
3554 * config/rs6000/sfp-machine.h: Likewise.
3555 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
3556 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
3557 (LIB2FUNCS_EXTRA): Remove.
3558 (TARGET_LIBGCC2_CFLAGS): Remove.
3559 * config/rs6000/t-aix52: Likewise
3560 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3561 $(srcdir)/config/rs6000/darwin-ldouble.c.
3562 (SHLIB_MAPFILES): Remove.
3563 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
3564 $(srcdir)/config/rs6000/darwin-ldouble.c.
3565 * config/rs6000/t-fprules-softfp: Move to
3566 ../libgcc/config/t-softfp-sfdf.
3567 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
3568 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
3569 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
3570 $(srcdir)/config/rs6000/darwin-ldouble.c.
3571 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
3572 * config/score/t-score-softfp: Remove.
3573 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
3574 soft-fp/t-softfp from tmake_file.
3575 (arm*-*-uclinux*): Likewise.
3576 (arm*-*-ecos-elf): Likewise.
3577 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
3578 (arm*-*-rtems*): Likewise.
3579 (arm*-*-elf): Likewise.
3580 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
3581 tmake_file.
3582 (moxie-*-uclinux*): Likewise.
3583 (moxie-*-rtems*): Likewise.
3584 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
3585 tmake_file.
3586 (lm32-*-rtems*): Likewise.
3587 (lm32-*-uclinux*): Likewise.
3588 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
3589 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3590 (powerpc-*-linux*, powerpc64-*-linux*): Remove
3591 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3592 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
3593 tmake_file.
3594 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
3595 tmake_file.
3596 (tic6x-*-uclinux): Likewise.
3597 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
3598 soft-fp/t-softfp from tmake_file.
3599 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
3600 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
3601 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
24911a50 3602 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
aca0b0b3
RO
3603 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
3604
569dc494
RO
36052011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3606
3607 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
24911a50 3608 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
569dc494
RO
3609 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
3610 TPBIT, TPBIT_FUNCS.
3611 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
3612 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
3613 Remove.
3614 * config/arm/t-vxworks: Likewise.
3615 * config/arm/t-wince-pe: Likewise.
3616 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
3617 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3618 * config/bfin/t-bfin-elf: Likewise.
3619 * config/bfin/t-bfin-linux: Likewise.
3620 * config/bfin/t-bfin-uclinux: Likewise.
3621 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
3622 Remove.
3623 * config/fr30/t-fr30: Likewise.
3624 * config/frv/t-frv: Likewise.
3625 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
3626 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3627 * config/m32c/t-m32c: Likewise.
3628 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
3629 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3630 * config/mcore/t-mcore: Likewise.
3631 * config/mep/t-mep: Likewise.
3632 * config/microblaze/t-microblaze: Likewise.
3633 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
3634 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3635 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
3636 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3637 * config/mn10300/t-linux: Remove.
3638 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3639 * config/pdp11/t-pdp11: Likewise.
3640 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
3641 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
3642 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3643 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
3644 * config/rs6000/t-aix52: Likewise.
3645 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3646 $(srcdir)/config/rs6000/ppc64-fp.c.
3647 * config/rs6000/t-fprules-fpbit: Remove.
3648 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
3649 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3650 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
3651 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3652 * config/sparc/t-elf: Likewise.
3653 * config/sparc/t-leon: Likewise.
3654 * config/sparc/t-leon3: Likewise.
3655 * config/spu/t-spu-elf: Likewise.
3656 (DPBIT_FUNCS): Remove.
3657 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3658 * config/v850/t-v850: Likewise.
3659 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3660 (avr-*-*): Likewise.
3661 (h8300-*-rtems*): Set libgcc_tm_file.
3662 (h8300-*-elf*): Likewise.
3663 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3664 tmake_file.
3665 (powerpc-*-eabisim*): Likewise.
3666 (powerpc-*-elf*): Likewise.
3667 (powerpc-*-eabialtivec*): Likewise.
3668 (powerpc-xilinx-eabi*): Likewise.
3669 (powerpc-*-eabi*): Likewise.
3670 (powerpc-*-rtems*): Likewise.
3671 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3672 (powerpcle-*-elf*): Likewise.
3673 (powerpcle-*-eabisim*): Likewise.
3674 (powerpcle-*-eabi*): Likewise.
3675 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3676 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3677 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3678 Remove.
3679
201cdb74
RO
36802011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3681
3682 * Makefile.in (UNWIND_H): Remove.
3683 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3684 ../libgcc/Makefile.in.
3685 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3686 (LIBUNWINDDEP): Remove.
3687 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3688 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3689 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3690 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3691 Don't copy $(UNWIND_H).
24911a50 3692 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
201cdb74
RO
3693 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3694 * aclocal.m4: Regenerate.
3695 * configure: Regenerate.
3696 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3697 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3698 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3699 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3700 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3701 * config/arm/libunwind.S, config/arm/pr-support.c,
3702 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3703 ../libgcc/config/arm.
3704 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3705 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3706 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3707 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3708 ($(T)frvend$(objext)): Likewise.
3709 * config/ia64/t-glibc (LIB2ADDEH): Remove.
3710 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3711 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3712 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3713 ../libgcc/config/ia64.
3714 * config/ia64/t-hpux (LIB2ADDEH): Remove.
3715 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3716 * config/ia64/t-vms (LIB2ADDEH): Remove.
3717 * config/ia64/vms.h (UNW_IVMS_MODE,
3718 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3719 * config/picochip/t-picochip (LIB2ADDEH): Remove.
3720 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3721 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3722 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3723 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3724 $(srcdir)/../libgcc to refer to unwinder sources.
3725 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3726 * config/t-darwin (LIB2ADDEH): Remove.
3727 * config/t-freebsd (LIB2ADDEH): Remove.
3728 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3729 * config/t-libunwind-elf: Move to ../libgcc/config.
3730 * config/t-linux (LIB2ADDEH): Remove.
3731 * config/t-sol2 (LIB2ADDEH): Remove.
3732 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3733 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3734
cee0d6d2
L
37352011-08-05 H.J. Lu <hongjiu.lu@intel.com>
3736
3737 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3738
3739 * doc/invoke.texi: Document core-avx-i.
3740
96c891b3
RO
37412011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3742
3743 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3744
2aacf3c3
IR
37452011-08-05 Ira Rosen <ira.rosen@linaro.org>
3746
3747 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3748 result of multiple results reduction when extracting the final
3749 value using scalar code.
3750
0f36b2da
RG
37512011-08-05 Richard Guenther <rguenther@suse.de>
3752
3753 PR tree-optimization/49984
3754 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3755
8b201bc5
RG
37562011-08-05 Richard Guenther <rguenther@suse.de>
3757
3758 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3759 return true for constant integer ranges.
3760 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3761 BIT_IOR_EXPR handling.
3762
c1ea7f07
KT
37632011-08-04 Kai Tietz <ktietz@redhat.com>
3764
3765 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3766 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3767
1107f3ae
IR
37682011-08-04 Ira Rosen <ira.rosen@linaro.org>
3769
3770 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3771 pattern def statement, and its access macro.
3772 (NUM_PATTERNS): Set to 5.
3773 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3774 pattern def statement.
3775 (vect_transform_loop): Likewise.
3776 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3777 function vect_recog_over_widening_pattern ().
3778 (vect_operation_fits_smaller_type): New function.
3779 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3780 Likewise.
3781 (vect_pattern_recog_1): Move the code that marks pattern
3782 statements to vect_mark_pattern_stmts (), and call it. Update
3783 documentation.
3784 * tree-vect-stmts.c (vect_supportable_shift): New function.
3785 (vect_analyze_stmt): Handle pattern def statement.
3786 (new_stmt_vec_info): Initialize pattern def statement.
3787
6394830f
RH
37882011-08-04 Richard Henderson <rth@redhat.com>
3789
3790 PR target/49964
3791 * config/i386/i386.c (ix86_expand_call): Don't create nested
3792 PARALLELs for TARGET_VZEROUPPER.
3793 (ix86_split_call_vzeroupper): Fix extraction of the original call.
3794 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3795 recognize nested PARALLELs.
3796 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3797 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3798 *sibcall_value_pop_vzeroupper): Likewise.
3799
faf7a23d
RH
38002011-08-04 Richard Henderson <rth@redhat.com>
3801
3802 PR middle-end/49968
3803 * calls.c (expand_call): Use fixup_args_size_notes for
3804 emit_stack_restore.
3805 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3806 in non-standard modes.
3807
84f405a1
JJ
38082011-08-04 Jakub Jelinek <jakub@redhat.com>
3809
3810 * gcc.c (self_spec): New variable.
3811 (static_specs): Add self_spec.
3812 (main): Call do_self_spec on "self_spec" specs after reading
3813 user specs files. Move compare_debug handling right after that.
3814
4d320da4
RG
38152011-08-04 Richard Guenther <rguenther@suse.de>
3816
3817 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3818 (value_range_nonnegative_p): New function.
3819 (ssa_name_nonnegative_p): Use it.
3820 (value_range_constant_singleton): New function.
3821 (op_with_constant_singleton_value_range): Use it.
3822 (extract_range_from_binary_expr_1): New function, split out from ...
3823 (extract_range_from_binary_expr): ... this. Remove fallback
3824 constant folding done here.
3825
7e29ba60
RG
38262011-08-04 Richard Guenther <rguenther@suse.de>
3827
3828 PR tree-optimization/49806
3829 * tree-vrp.c (op_with_boolean_value_range_p): New function.
3830 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
3831 a new statement for a final conversion to bool.
3832
f142b5bc
RG
38332011-08-04 Romain Geissler <romain.geissler@gmail.com>
3834
3835 * gengtype-state.c: Include "bconfig.h" if
3836 GENERATOR_FILE is defined, "config.h" otherwise.
3837 * gengtype.c: Likewise.
3838 * gengtype-lex.l: Likewise.
3839 * gengtype-parse.c: Likewise.
3840 * Makefile.in (gengtype-lex.o-warn): New variable.
3841 (plugin_resourcesdir): Likewise.
3842 (plugin_bindir): Likewise.
3843 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3844 (MOSTLYCLEANFILES): Add gengtype$(exeext).
3845 (native): Depend on gengtype$(exeext) is $enable_plugin
3846 is set to "yes".
3847 (gtype.state): Depend on s-gtype. Use temporary file.
3848 (gengtype-lex.o): New rule.
3849 (gengtype-parse.o): Likewise.
3850 (gengtype-state.o): Likewise.
3851 (gengtype$(exeext)): Likewise.
3852 (install-gengtype): Likewise.
3853 (gengtype.o): Likewise.
3854 (build/gengtype.o): Depend on version.h.
3855 (build/gengtype-state): Depend on double-int.h, version.h,
3856 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
3857 (install-plugin): Depend on install-gengtype.
3858
8dd00781
JJ
38592011-08-04 Jakub Jelinek <jakub@redhat.com>
3860
3861 PR middle-end/49905
3862 * tree.h (init_attributes): New prototype.
3863 * attribs.c (init_attributes): No longer static.
3864
6eb9142a
RR
38652011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3866
3867 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
3868 maybe_suffix.
3869
63a73071
DL
38702011-08-03 David Li <davidxl@google.com>
3871
3872 * tree-optimize.c (execute_fixup_cfg): Fix up entry
3873 outgoing edge counts after inlining.
3874
90037898
DL
38752011-08-03 David Li <davidxl@google.com>
3876
3877 * profile.c (compute_branch_probabilities): Compute
3878 function frequency after profile annotation.
3879
ea6c2b0e
AM
38802011-08-04 Alan Modra <amodra@gmail.com>
3881
3882 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
3883 use_backchain_to_restore_sp initialisation.
3884 (rs6000_legitimate_offset_address_p): Simplify offset test.
3885
4b39813a
RH
38862011-08-03 Richard Henderson <rth@redhat.com>
3887
3888 * config/spu/spu.md: Use define_c_enum instead of define_constants.
3889 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
3890 (UNSPECV_NOP): New.
3891
a6365e99
RH
38922011-08-03 Richard Henderson <rth@redhat.com>
3893
3894 PR target/34888
3895 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
3896
cb3d2e33
JJ
38972011-08-03 Jakub Jelinek <jakub@redhat.com>
3898
3899 PR tree-optimization/49948
3900 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
3901
35bdbc69
AS
39022011-08-03 Anatoly Sokolov <aesok@post.ru>
3903
3904 * config/m32c/m32c.c (class_sizes): Remove.
3905 (reduce_class): Change arguments and return type to reg_class_t.
3906 Change type cc var to HARD_REG_SET. Change type best var to
3907 reg_class_t. Change type best_size var to unsigned int. Remove
3908 initialization class_sizes var. Use reg_class_size array instead
3909 of class_sizes. Use reg_class_contents array instead
3910 of class_contents.
3911
a130fb24
RG
39122011-08-03 Richard Guenther <rguenther@suse.de>
3913
3914 PR middle-end/49958
3915 * fold-const.c (fold_binary_loc): Only associate
3916 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
3917 overflow wraps.
3918
276e0224
AM
39192011-08-03 Alan Modra <amodra@gmail.com>
3920
3921 PR rtl-optimization/49941
3922 * jump.c (mark_jump_label): Comment.
3923 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3924 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3925 (mark_used_flags): Don't mark RETURN.
3926
eb723fa3
RG
39272011-08-03 Richard Guenther <rguenther@suse.de>
3928
3929 PR tree-optimization/49938
3930 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3931 deal with a POLYNOMIAL_CHREC.
3932
edc429ff
RE
39332011-08-03 Revital Eres <revital.eres@linaro.org>
3934
3935 * modulo-sched.c (calculate_stage_count,
3936 calculate_must_precede_follow, get_sched_window,
3937 try_scheduling_node_in_cycle, remove_node_from_ps): Add
3938 declaration.
3939 (update_node_sched_params, set_must_precede_follow, optimize_sc):
3940 New functions.
3941 (reset_sched_times): Call update_node_sched_params.
3942 (sms_schedule): Call optimize_sc.
3943 (get_sched_window): Change function arguments.
3944 (sms_schedule_by_order): Update call to get_sched_window.
3945 Call set_must_precede_follow.
3946 (calculate_stage_count): Add function argument.
3947
9a08d230
RH
39482011-08-02 Richard Henderson <rth@redhat.com>
3949
3950 PR target/49864
a3fef928 3951 PR target/49879
9a08d230
RH
3952 * reg-notes.def (REG_ARGS_SIZE): New.
3953 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3954 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3955 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3956 different stack levels.
3957 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
3958 (maybe_move_args_size_note): New.
3959 (combine_stack_adjustments_for_block): Use it.
3960 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
3961 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
3962 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
3963 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
3964 (cur_cfa): New.
3965 (queued_args_size): Remove.
3966 (add_cfi_args_size): Assert size is non-negative.
3967 (stack_adjust_offset, dwarf2out_args_size): Remove.
3968 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
3969 (notice_args_size, notice_eh_throw): New.
3970 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
3971 (dwarf2out_frame_debug_adjust_cfa): Likewise.
3972 (dwarf2out_frame_debug_cfa_offset): Likewise.
3973 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
3974 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
3975 (change_cfi_row): Don't emit args_size.
3976 (maybe_record_trace_start_abnormal): Split out from ...
3977 (maybe_record_trace_start): Here. Set args_size_undefined.
3978 (create_trace_edges): Update to match.
3979 (scan_trace): Handle REG_ARGS_SIZE.
3980 (connect_traces): Connect args_size between EH insns.
3981 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
3982 * explow.c (suppress_reg_args_size): New.
3983 (adjust_stack_1): Split out from ...
3984 (adjust_stack): ... here.
3985 (anti_adjust_stack): Use it.
3986 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
3987 * expr.c (mem_autoinc_base): New.
3988 (fixup_args_size_notes): New.
3989 (emit_single_push_insn_1): Rename from emit_single_push_insn.
3990 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
3991 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
3992 * reload1.c (reload_as_needed): Likewise.
3993 * rtl.h (fixup_args_size_notes): Declare.
3994
9f813990
PC
39952011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
3996
3997 PR bootstrap/49914
3998 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
3999 of abs.
4000 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
4001 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
4002
8f1594b2
RH
40032011-08-02 Richard Henderson <rth@redhat.com>
4004
4005 * config/h8300/h8300.c (push, pop): Return the insn.
4006 (h8300_swap_into_er6): Generate correct unwind info.
4007 (h8300_swap_out_of_er6): Likewise.
cde7b553
RH
4008 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
4009 complex cfa expression.
4010 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
8f1594b2 4011
3ed2c643
L
40122011-08-02 H.J. Lu <hongjiu.lu@intel.com>
4013
4014 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4015
f9b4f8c1
RH
40162011-08-02 Richard Henderson <rth@redhat.com>
4017
4018 PR target/49878
4019 * config/h8300/h8300.c (h8300_move_ok): New.
4020 * config/h8300/h8300-protos.h: Declare it.
4021 * config/h8300/h8300.md (P): New mode iterator.
4022 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
4023 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
4024 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
4025 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
4026 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
4027 and pushqi1_h8300hs_normal; use PRE_MODIFY and
4028 register_no_sp_elim_operand.
4029 (*pushhi1_h8300hs_<P>): Similarly.
4030 (pushqi1, pushhi1, pushhi1_h8300): Remove.
4031 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
4032
b7cef595
RH
40332011-08-02 Richard Henderson <rth@redhat.com>
4034
4035 PR target/49881
4036 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
4037
20906c66
JJ
40382011-08-02 Jakub Jelinek <jakub@redhat.com>
4039
4040 * c-parser.c (enum c_parser_prec): New enum, moved from within
4041 c_parser_binary_expression.
4042 (c_parser_binary_expression): Add PREC argument. Stop parsing
4043 if operator has lower or equal precedence than PREC.
4044 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
4045 callers.
4046 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
4047 Adjust c_finish_omp_atomic caller.
4048 (c_parser_omp_taskyield): New function.
4049 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
4050 (c_parser_omp_clause_name): Handle final and mergeable clauses.
4051 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
4052 functions.
4053 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
4054 and PRAGMA_OMP_CLAUSE_MERGEABLE.
4055 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
4056 (c_parser_omp_clause_reduction): Handle min and max.
4057 * c-typeck.c (c_finish_omp_clauses): Don't complain about
4058 const qualified predetermined vars in firstprivate clause.
4059 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4060 Handle MIN_EXPR and MAX_EXPR.
4061 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
4062 and OMP_CLAUSE_MERGEABLE.
4063 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
4064 and OMP_ATOMIC_CAPTURE_NEW.
4065 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
4066 OMP_CLAUSE_MERGEABLE.
4067 (omp_clause_code_name): Likewise.
4068 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4069 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
4070 and OMP_CLAUSE_MERGEABLE.
4071 (OMP_CLAUSE_FINAL_EXPR): Define.
4072 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
4073 OMP_CLAUSE_MERGEABLE.
4074 (expand_task_call): Likewise.
4075 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
4076 (expand_omp_atomic_fetch_op): Handle cases where old or new
4077 value is needed afterwards.
4078 (expand_omp_atomic): Call expand_omp_atomic_load resp.
4079 expand_omp_atomic_store.
4080 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
4081 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
4082 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
4083 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4084 * tree-nested.c (convert_nonlocal_omp_clauses,
4085 convert_local_omp_clauses): Likewise.
4086 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
4087 OMP_ATOMIC_CAPTURE_NEW): New.
4088 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
4089 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
4090 New inlines.
4091 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
4092 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
4093 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4094
9b80d091
KT
40952011-08-02 Kai Tietz <ktietz@redhat.com>
4096
4097 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
4098 boolean-type.
4099 (ssa_forward_propagate_and_combine): Interprete result of
4100 forward_propagate_comparison.
4101 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
4102 boolean-typed operands for comparisons.
4103
7ea56b23 41042011-08-02 Georg-Johann Lay <avr@gjlay.de>
276e0224 4105
7ea56b23
GJL
4106 * config/avr/libgcc.S: Gather related function in the
4107 same input section.
276e0224 4108 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
7ea56b23
GJL
4109 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
4110 references.
4111 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
4112 __udivmodsi4, __divmodsi4, __prologue_saves__,
4113 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
4114 __do_copy_data, __do_clear_bss, __do_global_ctors,
4115 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
4116
643e867f
UB
41172011-08-02 Uros Bizjak <ubizjak@gmail.com>
4118
4119 PR target/47766
4120 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
4121 (stack_protect_test): The pattern compares ptr_mode value.
4122
390fa588
AM
41232011-08-02 Alan Modra <amodra@gmail.com>
4124
4125 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
4126 note for save_LR_around_toc_setup sequence.
4127
d4be16f6
L
41282011-08-01 H.J. Lu <hongjiu.lu@intel.com>
4129
643e867f 4130 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
d4be16f6 4131
3c67fd9c
SP
41322011-08-01 Sebastian Pop <sebastian.pop@amd.com>
4133 Joseph Myers <joseph@codesourcery.com>
4134
4135 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
4136 * hwint.c: Include diagnostic-core.h.
4137 (abs_hwi): New.
4138 (gcd): Moved here...
4139 (pos_mul_hwi): New.
4140 (mul_hwi): New.
4141 (least_common_multiple): Moved here...
4142 * hwint.h (gcd): ... from here.
4143 (least_common_multiple): ... from here.
4144 (HOST_WIDE_INT_MIN): New.
4145 (HOST_WIDE_INT_MAX): New.
4146 (abs_hwi): Declared.
4147 (gcd): Declared.
4148 (pos_mul_hwi): Declared.
4149 (mul_hwi): Declared.
4150 (least_common_multiple): Declared.
4151 * omega.c (check_pos_mul): Removed.
4152 (check_mul): Removed.
4153 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
4154 mul_hwi instead of check_mul.
4155
172c08a5
RH
41562011-08-01 Richard Henderson <rth@redhat.com>
4157
4158 PR target/49881
4159 * config/avr/avr.h (PUSH_ROUNDING): New.
4160 * config/avr/avr.md (pushqi1): Rename from *pushqi.
4161 (*pushhi, *pushsi, *pushsf): Remove.
4162 (MPUSH): New mode iterator.
4163 (push<MPUSH>1): New expander.
4164
0d5e496f
AS
41652011-08-01 Anatoly Sokolov <aesok@post.ru>
4166
4167 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
4168 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
4169 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
4170 mmix_preferred_output_reload_class): Remove.
4171 * config/mmix/mmix.c (mmix_preferred_reload_class,
4172 mmix_preferred_output_reload_class): Make static. Change rclass
4173 argument and return type to reg_class_t.
4174 (TARGET_PREFERRED_RELOAD_CLASS,
4175 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4176
a44250f4
JR
41772011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
4178
4179 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
4180 handling.
4181
efd7630c
L
41822011-08-01 H.J. Lu <hongjiu.lu@intel.com>
4183
4184 PR target/47766
4185 * config/i386/i386.md (PTR): New.
4186 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
4187 (stack_protect_test): Likewise.
4188 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
4189 (stack_tls_protect_set_<mode>): Likewise.
4190 (stack_tls_protect_test_<mode>): Likewise.
4191
03acddfe
UB
41922011-08-01 Uros Bizjak <ubizjak@gmail.com>
4193
4194 PR target/49927
4195 * config/i386/i386.c (ix86_address_subreg_operand): New.
4196 (ix86_decompose_address): Use ix86_address_subreg_operand.
4197 (ix86_legitimate_address_p): Do not assert that subregs satisfy
4198 register_no_elim_operand in DImode.
4199
67f2d54f
IR
42002011-08-01 Ira Rosen <ira.rosen@linaro.org>
4201
4202 PR tree-optimization/49926
4203 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
4204 in a chain doesn't have uses both inside and outside the loop.
4205
f2c308fa 42062011-08-01 Georg-Johann Lay <avr@gjlay.de>
03acddfe 4207
f2c308fa
GJL
4208 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
4209 * config/avr/avr-devices.c (avr_mcu_types): Use it.
4210 * config/avr/avr-mcus.def (AVR_MCU): Use it.
4211 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
4212 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
4213 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
4214 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
4215 to detect if XJMP must not be skipped.
4216
bd15e32c
AM
42172011-08-02 Alan Modra <amodra@gmail.com>
4218
03acddfe
UB
4219 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
4220 Delete.
bd15e32c
AM
4221 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
4222 (rs6000_emit_prologue): Don't prematurely return when
4223 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
4224 save_toc_in_prologue case.
4225 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
4226 calls_alloca.
4227
d80de9e1 42282011-08-01 Georg-Johann Lay <avr@gjlay.de>
bd15e32c 4229
d80de9e1
GJL
4230 * config/avr/avr-devices.c: Delete SVN property svn:executable.
4231 * config/avr/predicates.md: Ditto.
4232 * config/avr/driver-avr.c: Ditto.
4233 * config/avr/genopt.sh: Set SVN property svn:executable to *.
4234
ee222ce0
L
42352011-08-01 H.J. Lu <hongjiu.lu@intel.com>
4236
4237 * calls.c (emit_library_call_value_1): Declare size only if
4238 BLOCK_REG_PADDING is defined.
4239
5fcafa60
KY
42402011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
4241
4242 PR target/49547
03acddfe 4243 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
5fcafa60
KY
4244 (x86_64-*-*): Likewise.
4245 * config/i386/i386.opt (mlzcnt): New.
4246 * config/i386/abmintrin.h: File removed.
4247 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
03acddfe 4248 * config/i386/lzcntintrin.h: ... here. New file.
5fcafa60
KY
4249 (__lzcnt): Rename to ...
4250 (__lzcnt32): ... this.
4251 * config/i386/bmiintrin.h (head): Update copyright year.
4252 (__lzcnt_u16): Removed.
4253 (__lzcnt_u32): Likewise.
4254 (__lzcnt_u64): Likewise.
4255 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
4256 is defined, remove abmintrin.h.
4257 * config/i386/cpuid.h (bit_LZCNT): New.
4258 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4259 LZCNT feature.
4260 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4261 __LZCNT__ if needed.
4262 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
4263 (ix86_option_override_internal): Handle LZCNT option.
4264 (ix86_valid_target_attribute_inner_p): Likewise.
4265 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
4266 * config/i386/i386.h (TARGET_LZCNT): New.
4267 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
4268 * config/i386/i386.md (clz<mode>2): Update insn constraint.
4269 (clz<mode>2_lzcnt): Likewise.
4270 * doc/invoke.texi: Mention -mlzcnt option.
4271 * doc/extend.texi: Likewise.
4272
655b30bf
JB
42732011-08-01 Julian Brown <julian@codesourcery.com>
4274
4275 * configure.ac (fixed-point): Add ARM support.
4276 * configure: Regenerate.
4277 * config/arm/arm.c (arm_fixed_mode_set): New struct.
4278 (arm_set_fixed_optab_libfunc): New.
4279 (arm_set_fixed_conv_libfunc): New.
4280 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
4281 ARM-specific names.
4282 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
4283 return values in SImode.
4284 (arm_return_in_msb): Return fixed-point types in the msb.
4285 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
4286 upwards.
4287 (arm_scalar_mode_supported_p): Support fixed-point modes.
4288 (arm_vector_mode_supported_p): Support vector fixed-point modes.
4289 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
4290 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
4291 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
4292 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
4293 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
4294 New mode iterators.
4295 (qaddsub_suf): New mode attribute.
4296 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
4297 vector modes.
4298 * config/arm/predicates.md (sat_shift_operator): New predicate.
4299 * config/arm/arm-fixed.md: New.
4300 * config/arm/arm.md: Include arm-fixed.md.
4301 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
4302
460b171d
JB
43032011-08-01 Julian Brown <julian@codesourcery.com>
4304
4305 * calls.c (emit_library_call_value_1): Support padding for libcall
4306 arguments and return values.
4307 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
4308 downwards in big-endian mode.
4309
b6193c94
RO
43102011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4311
4312 PR debug/49887
4313 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
4314 * config/sol2-protos.h: Likewise.
4315 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
4316 solaris_code_end.
4317 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
4318 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
4319 solaris_file_end.
4320 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
4321
0747aae4
JB
43222011-08-01 Julian Brown <julian@codesourcery.com>
4323
4324 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
4325
848fac28
JB
43262011-08-01 Julian Brown <julian@codesourcery.com>
4327
4328 * final.c (output_addr_const): Print fixed-point constants as
4329 decimal not hex.
4330
e62a2b6e
RG
43312011-08-01 Richard Guenther <rguenther@suse.de>
4332
4333 * stor-layout.c (initialize_sizetypes): Properly sign-extend
4334 bitsiztype TYPE_MAX_VALUE.
4335
f64398b5
JB
43362011-08-01 Julian Brown <julian@codesourcery.com>
4337
4338 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
4339 comparison helpers.
4340
c469244e
RH
43412011-07-31 Richard Henderson <rth@redhat.com>
4342
4343 * config/h8300/crti.asm: Add flags to .section directive.
4344 * config/h8300/crtn.asm: Likewise.
4345
b87ac615
RH
43462011-07-31 Richard Henderson <rth@redhat.com>
4347
4348 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
4349 * tree.c (build_common_tree_nodes): Likewise.
4350
05eb5cc3
KK
43512011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
4352
4353 PR target/49880
4354 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
4355 (divsi3_i1): Likewise.
4356
a3059635
BS
43572011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4358
4359 PR tree-optimization/49749
4360 * tree-ssa-reassoc.c (get_rank): New forward declaration.
4361 (PHI_LOOP_BIAS): New macro.
4362 (phi_rank): New function.
4363 (loop_carried_phi): Likewise.
4364 (propagate_rank): Likewise.
4365 (get_rank): Add calls to phi_rank and propagate_rank.
bd15e32c 4366
3ee7be4c
L
43672011-07-31 H.J. Lu <hongjiu.lu@intel.com>
4368
4369 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
4370 of TARGET_64BIT.
4371 (PTRDIFF_TYPE): Likewise.
4372
deb1f617
UB
43732011-07-31 Uros Bizjak <ubizjak@gmail.com>
4374
4375 PR target/49920
4376 * config/i386/i386.md (strset): Do not expand strset_singleop
4377 when %eax or $edi are fixed.
4378 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
4379 (*strsetsi_1): Ditto.
4380 (*strsethi_1): Ditto.
4381 (*strsetqi_1): Ditto.
4382 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
4383 (*rep_stossi): Ditto.
4384 (*rep_stosqi): Ditto.
03acddfe 4385 (*strlenqi_1): Ditto.
deb1f617
UB
4386 (cmpstrnsi): Also fail when %ecx is fixed.
4387 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
4388 (*cmpstrnqi_1): Ditto.
deb1f617
UB
4389 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
4390 (*strmovsi_1): Ditto.
4391 (*strmovhi_1): Ditto.
4392 (*strmovqi_1): Ditto.
4393 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
4394 (*rep_movsi): Ditto.
4395 (*rep_movqi): Ditto.
4396
03e69b12
MP
43972011-07-31 Mikael Pettersson <mikpe@it.uu.se>
4398
4399 PR target/47908
4400 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
4401 Disable instruction scheduling for non-ColdFire targets.
4402 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4403
dcaac07d
RE
44042011-07-31 Revital Eres <revital.eres@linaro.org>
4405
4406 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
4407 of anti-dep edge from a branch.
4408 (add_cross_iteration_register_deps): Create anti-dep edge from
4409 a branch.
4410
413e50a2
RE
44112011-07-31 Revital Eres <revital.eres@linaro.org>
4412
4413 * modulo-sched.c: Change comment.
4414 (reset_sched_times): Fix print message.
4415 (print_partial_schedule): Add print info.
4416
f047e518
TV
44172011-07-31 Tom de Vries <tom@codesourcery.com>
4418
4419 PR middle-end/43513
4420 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
4421 get_object_alignment and TYPE_ALIGN.
4422
b3421a06
TV
44232011-07-30 Tom de Vries <tom@codesourcery.com>
4424
4425 PR middle-end/43513
4426 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
4427 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
4428
cc822cc1
RO
44292011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4430
4431 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
4432 <sys/sbd.h>.
4433 (cpu_types): New array.
4434 (cputype): New function.
4435 (host_detect_local_cpu): Only define buf, f if !__sgi__.
4436 Use scaninvent instead of /proc/cpuinfo if __sgi__.
4437 * config.host: Also use driver-native.o, mips/x-native on
4438 mips-sgi-irix*.
deb1f617 4439 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
cc822cc1
RO
4440 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
4441 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
4442
25142650
JJ
44432011-07-29 Jakub Jelinek <jakub@redhat.com>
4444
4445 PR middle-end/49897
4446 PR middle-end/49898
4447 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
4448 in nested parallel and outer is a gimple_reg, mark it as addressable
4449 and set its bit in task_shared_vars bitmap too.
4450
89840058
UB
44512011-07-29 Uros Bizjak <ubizjak@gmail.com>
4452
4453 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
4454
d2da41f5
RO
44552011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4456
4457 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
4458 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
4459 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
4460 AMASK_LOCKPFTCHOK): Define.
4461 (host_detect_local_cpu): Remove buf, f, cpu_names.
4462 Define cpu_types, implver, amask.
4463 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
4464 native CPU.
4465 * config.host: Also use driver-alpha.o, alpha/x-alpha on
4466 alpha*-dec-osf*.
4467 * config/alpha/osf5.h [__alpha__ || __alpha]
4468 (host_detect_local_cpu): Declare.
4469 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
4470 (DRIVER_SELF_SPECS): Define.
4471
dadecee2
UB
44722011-07-29 Uros Bizjak <ubizjak@gmail.com>
4473
4474 PR target/47715
4475 * config/i386/i386.md (*load_tp_x32): New.
4476 (*load_tp_x32_zext): Ditto.
4477 (*add_tp_x32): Ditto.
4478 (*add_tp_x32_zext): Ditto.
4479 (*load_tp_<mode>): Disable for TARGET_X32 targets.
4480 (*add_tp_<mode>): Ditto.
4481 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
4482 ptr_mode and convert to Pmode if needed.
4483
db7ccee2 44842011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 4485
db7ccee2
GJL
4486 PR target/49687
4487 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
4488 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
4489 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
4490 Add X to register footprint: Clobber r26/r27.
4491
96d03496
RG
44922011-07-29 Richard Guenther <rguenther@suse.de>
4493
4494 * builtins.c (fold_builtin_signbit): Build the comparison
4495 with a proper type.
4496
64fb0d3a
RG
44972011-07-29 Richard Guenther <rguenther@suse.de>
4498
4499 PR tree-optimization/49893
4500 * tree-predcom.c (suitable_reference_p): Volatile references
4501 are not suitable.
4502
6130646b 45032011-07-29 Georg-Johann Lay <avr@gjlay.de>
dadecee2 4504
6130646b
GJL
4505 PR target/49313
4506 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4507 (__ctzsi2): Result for 0 may be undefined.
4508 (__ctzhi2): Result for 0 may be undefined.
4509 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4510 (__popcountsi2): Ditto. And don't clobber r26.
4511 (__popcountdi2): Ditto. And don't clobber r27.
4512 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4513 (parityhi2): New expand.
4514 (paritysi2): New expand.
4515 (popcounthi2): New expand.
4516 (popcountsi2): New expand.
4517 (clzhi2): New expand.
4518 (clzsi2): New expand.
4519 (ctzhi2): New expand.
4520 (ctzsi2): New expand.
4521 (ffshi2): New expand.
4522 (ffssi2): New expand.
4523 (copysignsf3): New insn.
4524 (bswapsi2): New expand.
4525 (*parityhi2.libgcc): New insn.
4526 (*parityqihi2.libgcc): New insn.
4527 (*paritysihi2.libgcc): New insn.
4528 (*popcounthi2.libgcc): New insn.
4529 (*popcountsi2.libgcc): New insn.
4530 (*popcountqi2.libgcc): New insn.
4531 (*popcountqihi2.libgcc): New insn-and-split.
4532 (*clzhi2.libgcc): New insn.
4533 (*clzsihi2.libgcc): New insn.
4534 (*ctzhi2.libgcc): New insn.
4535 (*ctzsihi2.libgcc): New insn.
4536 (*ffshi2.libgcc): New insn.
4537 (*ffssihi2.libgcc): New insn.
4538 (*bswapsi2.libgcc): New insn.
4539
a9b332d4
RG
45402011-07-29 Richard Guenther <rguenther@suse.de>
4541
4542 * tree-vrp.c (get_value_range): Only set parameter default
4543 definitions to varying, leave others at undefined.
4544 (extract_range_from_binary_expr): Fix undefined handling.
4545 (vrp_visit_phi_node): Handle merged undefined state.
4546
154516d9
WG
45472011-07-29 Wei Guozhi <carrot@google.com>
4548
4549 PR rtl-optimization/49799
4550 * combine.c (make_compound_operation): Check if the bit field is valid
4551 before change it to bit field extraction.
4552
e40a0b69
BS
45532011-07-29 Bernd Schmidt <bernds@codesourcery.com>
4554
4555 PR rtl-optimization/49891
4556 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
4557 newly created returnjumps.
4558
13a23442
DD
45592011-07-28 DJ Delorie <dj@redhat.com>
4560
69135c94
DD
4561 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
4562 local frame in a naked function, and produce a suitable error for
4563 that specific case.
4564
13a23442
DD
4565 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
4566 registers to be reloaded in HI classes when the target is HI.
4567
6c6c79a9
SP
45682011-07-28 Sebastian Pop <sebastian.pop@amd.com>
4569
4570 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
4571 bound_one, bound_two.
4572
0c43dbaf
SP
45732011-07-28 Sebastian Pop <sebastian.pop@amd.com>
4574
4575 PR middle-end/48648
4576 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
4577 CLAST assignments.
4578 (translate_clast): Same.
4579 (translate_clast_assignment): New.
4580
60cf26cc
SP
45812011-07-28 Sebastian Pop <sebastian.pop@amd.com>
4582
4583 PR tree-optimization/49876
4584 * sese.c (rename_uses): Do not return false on gloog_error: set
4585 the new_expr to integer_zero_node and continue code generation.
4586 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
4587
4fe249e7
JJ
45882011-07-28 Jakub Jelinek <jakub@redhat.com>
4589
4590 PR debug/49846
4591 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
4592 arguments also check if they aren't initialized with a MODE_INT
4593 mode of the same size.
4594
86f98641
AH
45952011-07-28 Aldy Hernandez <aldyh@redhat.com>
4596
4597 * expr.c (get_bit_range): Handle *MEM_REF's.
4598
dc0ff1c8
BS
45992011-07-28 Bernd Schmidt <bernds@codesourcery.com>
4600
4601 * rtlanal.c (tablejump_p): False for returns.
4602 * reorg.c (first_active_target_insn): New static function.
4603 (find_end_label): Set JUMP_LABEL for a new returnjump.
4604 (optimize_skip, get_jump_flags, rare_destination,
4605 mostly_true_jump, get_branch_condition,
4606 steal_delay_list_from_target, own_thread_p,
4607 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
4608 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4609 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
4610 * jump.c (delete_related_insns): Likewise.
4611 (jump_to_label_p): New function.
4612 (redirect_target): New static function.
4613 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
4614 (redirect_jump_1): Assert that the new label is nonnull.
4615 (redirect_jump): Likewise.
4616 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
4617 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
4618 exit block.
4619 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
4620 changed. Ensure that the right label is passed to redirect_jump.
4621 * function.c (emit_return_into_block,
4622 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
4623 ret_rtx in their JUMP_LABEL.
4624 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
4625 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
4626 pass ret_rtx as label.
4627 * cfglayout.c (fixup_reorder_chain): Use
4628 force_nonfallthru_and_redirect rather than force_nonfallthru.
4629 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
4630 * rtl.h (ANY_RETURN_P): New macro.
4631 (jump_to_label_p): Declare.
4632 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
4633 JUMP_LABELs.
4634 (mark_target_live_regs): Likewise.
4635 * basic-block.h (force_nonfallthru_and_redirect): Declare.
4636 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
4637 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
4638 alpha_tablejump_best_label): Remove functions.
4639 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
4640 alpha_tablejump_best_label): Remove declarations.
4641 * config/sh/sh.c (barrier_align, split_branches): Adjust for
4642 ret_rtx in JUMP_LABELs.
4643 * config/arm/arm.c (is_jump_table): Likewise.
4644
a2e49bb2
UB
46452011-07-28 Uros Bizjak <ubizjak@gmail.com>
4646
4647 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
4648 special predicate. Remove explicit mode checks.
4649
64153cce
JJ
46502011-07-28 Jakub Jelinek <jakub@redhat.com>
4651
a2e49bb2
UB
4652 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
4653 DW_AT_data_member_location containing just DW_OP_plus_uconst.
b3882148 4654
64153cce
JJ
4655 PR debug/49871
4656 * dwarf2out.c (size_of_die, value_format, output_die): Use
4657 DW_FORM_udata instead of DW_FORM_data[48] for
4658 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
4659
0465f4f8
L
46602011-07-28 H.J. Lu <hongjiu.lu@intel.com>
4661
844bf05b
UB
4662 * config/i386/i386.md (*tls_global_dynamic_64): Update
4663 length attribute.
0465f4f8 4664
f51c4a8a
UB
46652011-07-28 Uros Bizjak <ubizjak@gmail.com>
4666
4667 PR target/47715
4668 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
4669 tls_symbolic_operand check. Update code sequence for TARGET_X32.
4670 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
4671 (tls_dynamic_gnu2_64): Ditto.
4672 (*tls_dynamic_gnu2_lea_64): Ditto.
4673 (*tls_dynamic_gnu2_call_64): Ditto.
4674 (*tls_dynamic_gnu2_combine_64): Ditto.
4675
5e9627ca
L
46762011-07-28 H.J. Lu <hongjiu.lu@intel.com>
4677
4678 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
4679
40b9321d
L
46802011-07-28 H.J. Lu <hongjiu.lu@intel.com>
4681
4682 PR target/47364
4683 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
4684
95f89bb3
RR
46852011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
4686
4687 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
4688 before the core constraints. Adjust attributes.
a2e49bb2 4689 ("*thumb2_movdf_vfp"): Likewise.
95f89bb3 4690
98958241
KT
46912011-07-28 Kai Tietz <ktietz@redhat.com>
4692
f51c4a8a 4693 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
98958241
KT
4694 (simplify_truth_ops_using_ranges): Likewise.
4695 (build_assert_expr_for): Likewise.
4696 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
4697 and handle BIT_NOT_EXPR for truth-operation.
4698
f627fef2 46992011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 4700
f627fef2
GJL
4701 PR target/49313
4702 Undo r176835 from trunk
4703 2011-07-27 Georg-Johann Lay
4704
296799ba 47052011-07-28 Georg-Johann Lay <avr@gjlay.de>
f51c4a8a 4706
296799ba
GJL
4707 PR target/49687
4708 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
4709 Add _muluhisi3, _mulshisi3, _usmulhisi3.
4710 * config/avr/libgcc.S (__mulsi3): Rewrite.
4711 (__mulhisi3): Rewrite.
4712 (__umulhisi3): Rewrite.
4713 (__usmulhisi3): New.
4714 (__muluhisi3): New.
4715 (__mulshisi3): New.
4716 (__mulohisi3): New.
4717 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
4718 declare.
4719 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
4720 (pseudo_register_or_const_int_operand): New.
4721 (combine_pseudo_register_operand): New.
4722 (u16_operand): New.
4723 (s16_operand): New.
4724 (o16_operand): New.
4725 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
4726 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
4727 (any_extend, any_extend2): New code iterators.
4728 (extend_prefix): New code attribute.
4729 (mulsi3): Rewrite. Turn insn to expander.
4730 (mulhisi3): Ditto.
4731 (umulhisi3): Ditto.
4732 (usmulhisi3): New expander.
4733 (*mulsi3): New insn-and-split.
4734 (mulu<mode>si3): New insn-and-split.
4735 (muls<mode>si3): New insn-and-split.
4736 (mulohisi3): New insn-and-split.
4737 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
4738 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
4739 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
4740 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
4741 insn-and-split.
4742 (*mulsi3_call): Rewrite.
4743 (*mulhisi3_call): Rewrite.
4744 (*umulhisi3_call): Rewrite.
4745 (*usmulhisi3_call): New insn.
4746 (*muluhisi3_call): New insn.
4747 (*mulshisi3_call): New insn.
4748 (*mulohisi3_call): New insn.
4749 (extendqihi2): Use combine_pseudo_register_operand as predicate
4750 for operand 1.
4751 (extendqisi2): Ditto.
4752 (zero_extendqihi2): Ditto.
4753 (zero_extendqisi2): Ditto.
4754 (zero_extendhisi2): Ditto.
4755 (extendhisi2): Ditto. Don't early-clobber operand 0.
4756
d8fa1b73
UB
47572011-07-28 Uros Bizjak <ubizjak@gmail.com>
4758
4759 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
4760
3689198d
SP
47612011-07-27 Sebastian Pop <sebastian.pop@amd.com>
4762
4763 PR tree-optimization/49471
4764 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
4765 iv only when the largest type is unsigned. Do not call
4766 lang_hooks.types.type_for_size.
4767
27165edd
SP
47682011-07-27 Sebastian Pop <sebastian.pop@amd.com>
4769
4770 PR middle-end/45450
4771 * graphite-poly.c (apply_poly_transforms): Disable legality check
4772 after an openscop read.
4773
bd4a54da
SP
47742011-07-27 Sebastian Pop <sebastian.pop@amd.com>
4775
4776 PR middle-end/47691
4777 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
4778 copy_bb_and_scalar_dependences.
4779 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
4780 (graphite_copy_stmts_from_block): Update call to rename_uses.
4781 (copy_bb_and_scalar_dependences): Update call to
4782 graphite_copy_stmts_from_block.
4783 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4784
04c9ea12 47852011-07-27 Georg-Johann Lay <avr@gjlay.de>
bd4a54da 4786
04c9ea12
GJL
4787 PR target/49313
4788 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4789 (__ctzsi2): Result for 0 may be undefined.
4790 (__ctzhi2): Result for 0 may be undefined.
4791 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4792 (__popcountsi2): Ditto. And don't clobber r26.
4793 (__popcountdi2): Ditto. And don't clobber r27.
4794 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4795 (parityhi2): New expand.
4796 (paritysi2): New expand.
4797 (popcounthi2): New expand.
4798 (popcountsi2): New expand.
4799 (clzhi2): New expand.
4800 (clzsi2): New expand.
4801 (ctzhi2): New expand.
4802 (ctzsi2): New expand.
4803 (ffshi2): New expand.
4804 (ffssi2): New expand.
4805 (copysignsf3): New insn.
4806 (bswapsi2): New expand.
4807 (*parityhi2.libgcc): New insn.
4808 (*parityqihi2.libgcc): New insn.
4809 (*paritysihi2.libgcc): New insn.
4810 (*popcounthi2.libgcc): New insn.
4811 (*popcountsi2.libgcc): New insn.
4812 (*popcountqi2.libgcc): New insn.
4813 (*popcountqihi2.libgcc): New insn-and-split.
4814 (*clzhi2.libgcc): New insn.
4815 (*clzsihi2.libgcc): New insn.
4816 (*ctzhi2.libgcc): New insn.
4817 (*ctzsihi2.libgcc): New insn.
4818 (*ffshi2.libgcc): New insn.
4819 (*ffssihi2.libgcc): New insn.
4820 (*bswapsi2.libgcc): New insn.
4821
479a4921
UB
48222011-07-27 Uros Bizjak <ubizjak@gmail.com>
4823
4824 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
4825 the mode of symbolic_opreand RTXes.
4826
7aecd4e8
UB
48272011-07-27 Uros Bizjak <ubizjak@gmail.com>
4828
a2e49bb2
UB
4829 * config/i386/predicates.md (x86_64_movabs_operand): Return false
4830 for pic_32bit_operand RTXes.
7aecd4e8
UB
4831 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
4832 in DImode.
4833
eb9820c0
KT
48342011-07-27 Kai Tietz <ktietz@redhat.com>
4835
2fe83a0c
KT
4836 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
4837 for 32-bit, too.
4838 (ix86_handle_abi_attribute): Allow function attributes
4839 ms_abi/sysv_abi in 32-bit mode, too.
4840 * doc/extend.texi: Adjust attribute documentation.
4841
eb9820c0
KT
4842 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
4843 expression handling.
4844 (and_var_with_comparison_1): Likewise.
4845
1169e45d
AH
48462011-07-27 Aldy Hernandez <aldyh@redhat.com>
4847
4848 * params.h (ALLOW_STORE_DATA_RACES): New.
4849 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
4850 * Makefile.in (expr.o): Depend on PARAMS_H.
4851 * machmode.h (get_best_mode): Add argument.
4852 * fold-const.c (optimize_bit_field_compare): Add argument to
4853 get_best_mode.
4854 (fold_truthop): Same.
4855 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
4856 * expr.c (emit_group_store): Same.
4857 (copy_blkmode_from_reg): Same.
4858 (write_complex_part): Same.
4859 (optimize_bitfield_assignment_op): Add argument.
4860 Add argument to get_best_mode.
4861 (get_bit_range): New.
7aecd4e8 4862 (expand_assignment): Calculate maxbits and pass it down accordingly.
1169e45d 4863 (store_field): New argument.
7aecd4e8 4864 (expand_expr_real_2): New argument to store_field. Include params.h.
1169e45d
AH
4865 * expr.h (store_bit_field): New argument.
4866 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
4867 into account maxbits.
4868 * calls.c (store_unaligned_arguments_into_pseudos): New argument
4869 to store_bit_field.
4870 * expmed.c (store_bit_field_1): New argument. Use it.
4871 (store_bit_field): Same.
4872 (store_fixed_bit_field): Same.
4873 (store_split_bit_field): Same.
4874 (extract_bit_field_1): Pass new argument to get_best_mode.
4875 (extract_bit_field): Same.
4876 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
4877 * doc/invoke.texi: Document parameter allow-store-data-races.
4878
7bbdd4e9
JJ
48792011-07-27 Jakub Jelinek <jakub@redhat.com>
4880
7aecd4e8 4881 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
7bbdd4e9 4882
aebf4828
KT
48832011-07-27 Kai Tietz <ktietz@redhat.com>
4884
4885 * tree-vrp.c (extract_range_from_binary_expr): Remove
4886 TRUTH-binary cases and add new bitwise-cases.
4887 (extract_range_from_assignment): Likewise.
4888 (register_edge_assert_for_1): Likeiwise.
4889 (register_edge_assert_for): Likewise.
4890 (simplify_truth_ops_using_ranges): Likewise.
4891 (simplify_stmt_using_ranges): Likewise.
4892
65ceed36
L
48932011-07-26 H.J. Lu <hongjiu.lu@intel.com>
4894
4895 PR target/47372
4896 * config/i386/i386.c (ix86_delegitimize_address): Call
4897 simplify_gen_subreg for PIC with mode of x only if modes of
4898 x and orig_x are different.
4899
b56bc05b
JJ
49002011-07-26 Jakub Jelinek <jakub@redhat.com>
4901
4902 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
4903 to GC allocated copy of the string.
4904 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
4905 before .debug_line, not after it.
4906
bce26def
SP
49072011-07-26 Sebastian Pop <sebastian.pop@amd.com>
4908
4909 PR middle-end/47046
4910 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
4911 evolution_function_is_affine_p on CHREC_RIGHT.
4912
5f72e02d
SP
49132011-07-26 Sebastian Pop <sebastian.pop@amd.com>
4914
4915 * tree-data-ref.c (max_stmt_executions_tree): Do not call
4916 lang_hooks.types.type_for_size.
4917
cbc1994b
SP
49182011-07-26 Sebastian Pop <sebastian.pop@amd.com>
4919
4920 PR middle-end/47653
4921 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
4922 loops using wrapping semantics.
4923
4c7d6755
SP
49242011-07-26 Sebastian Pop <sebastian.pop@amd.com>
4925
4926 PR middle-end/48805
4927 * tree-scalar-evolution.c (instantiate_scev_r): Return
4928 chrec_dont_know for ADDR_EXPR.
4929
e207e41f
UB
49302011-07-26 Uros Bizjak <ubizjak@gmail.com>
4931 H.J. Lu <hongjiu.lu@intel.com>
4932
4933 PR target/47369
4934 PR target/49853
4935 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
4936 if legitimize_tls_address returned operand in wrong mode. Allow
4937 SImode and DImode symbolic operand for PIC. Call convert_to_mode
4938 if legitimize_pic_address returned operand in wrong mode.
4939
842eeb9b
MJ
49402011-07-26 Martin Jambor <mjambor@suse.cz>
4941
4942 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
4943 return false for invariants.
4944
98d2c0ad
UB
49452011-07-26 Uros Bizjak <ubizjak@gmail.com>
4946
4947 * config/i386/i386.md (add->lea splitter): Implement using SWI
4948 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
4949 (add->lea zext splitter): Change operand 2 predicate to
4950 x86_64_nonmemory_operand.
4951
c21510a9
RG
49522011-07-26 Richard Guenther <rguenther@suse.de>
4953
4954 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
4955 frequency makes everything hot.
4956
9f61fd17
RG
49572011-07-26 Richard Guenther <rguenther@suse.de>
4958
4959 PR tree-optimization/49840
4960 * tree-vrp.c (range_fits_type_p): Properly handle full
4961 double-int precision.
4962
5bf3d50d
MJ
49632011-07-26 Martin Jambor <mjambor@suse.cz>
4964
4965 PR bootstrap/49786
4966 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
4967 counts.
4968 (update_specialized_profile): Likewise.
4969
536e3f49
UB
49702011-07-26 Uros Bizjak <ubizjak@gmail.com>
4971 H.J. Lu <hongjiu.lu@intel.com>
4972
4973 PR target/47381
4974 PR target/49832
4975 PR target/49833
4976 * config/i386/i386.md (i): Change SImode attribute to "e".
4977 (g): Change SImode attribute to "rme".
4978 (di): Change SImode attribute to "nF".
4979 (general_operand): Change SImode attribute to x86_64_general_operand.
4980 (general_szext_operand): Change SImode attribute to
4981 x86_64_szext_general_operand.
4982 (immediate_operand): Change SImode attribute to
4983 x86_64_immediate_operand.
4984 (nonmemory_operand): Change SImode attribute to
4985 x86_64_nonmemory_operand.
4986 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
4987 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
4988 (*lea_1): Use SWI48 mode iterator.
4989 (*lea_1_zext): New insn pattern.
4990 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
4991 (*bt<mode>): Ditto.
4992 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
4993 Update operand constraints.
4994 (addsi_1_zext): Ditto.
4995 (*add<mode>2): Ditto.
4996 (*addsi_3_zext): Ditto.
4997 (*subsi_1_zext): Ditto.
4998 (*subsi_2_zext): Ditto.
4999 (*subsi_3_zext): Ditto.
5000 (*addsi3_carry_zext): Ditto.
5001 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
5002 (*mulsi3_1_zext): Ditto.
5003 (*andsi_1): Ditto.
5004 (*andsi_1_zext): Ditto.
5005 (*andsi_2_zext): Ditto.
5006 (*<any_or:code>si_1_zext): Ditto.
5007 (*<any_or:code>si_2_zext): Ditto.
5008 (*test<mode>_1): Use <general_operand> predicate for operand 1.
5009 (*and<mode>_2): Ditto.
5010 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
5011 (add->lea splitter): Check operand modes in insn constraint. Extend
5012 operands less than SImode wide to SImode.
5013 (add->lea zext splitter): Do not extend input operands to DImode.
5014 (*lea_general_1): Handle only QImode and HImode operands.
5015 (*lea_general_2): Ditto.
5016 (*lea_general_3): Ditto.
5017 (*lea_general_1_zext): Remove.
5018 (*lea_general_2_zext): Ditto.
5019 (*lea_general_3_zext): Ditto.
5020 (*lea_general_4): Check operand modes in insn constraint. Extend
5021 operands less than SImode wide to SImode.
5022 (ashift->lea splitter): Ditto.
5023 * config/i386/i386.c (ix86_print_operand_address): Print address
5024 registers with 'q' modifier on 64bit targets.
5025 * config/i386/predicates.md (pic_32bit_opreand): Define as special
5026 predicate. Reject non-SI and non-DI modes.
5027
0de204de
AP
50282011-07-25 Andrew Pinski <apinski@cavium.com>
5029
5030 PR tree-opt/49671
5031 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
5032 TREE_THIS_NOTRAP into the inner most MEM_REF.
5033 Always copy TREE_THIS_VOLATILE.
5034 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
5035 arguments are not volatile references.
5036
104fcc7a
RH
50372011-07-25 Richard Henderson <rth@redhat.com>
5038
5039 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
5040 * final.c (final_scan_insn): Don't test for it.
5041 (rest_of_clean_state): Likewise.
5042
c24a6738
RH
50432011-07-25 Richard Henderson <rth@redhat.com>
5044
5045 PR debug/49841
5046 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
5047 (emit_frame_save): Likewise.
5048 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
5049 insn onto a dummy blockage insn after the join label.
5050
200e10dc
RH
50512011-07-25 Richard Henderson <rth@redhat.com>
5052
5053 * dwarf2cfi.c (dw_trace_info): Add ID member.
5054 (get_trace_index): Remove. Change users to use ID member.
5055 (before_next_cfi_note): New.
5056 (connect_traces): Remove unreachable traces before the main loop.
5057 Look across one trace and generate remember/restore_state if needed.
5058
a5d0ce89
RH
50592011-07-25 Richard Henderson <rth@redhat.com>
5060
5061 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
5062
c344a866
JR
50632011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
5064
5065 * genattr.c (write_upcase, gen_attr <enum definition writing>):
5066 Move to ...
5067 * genattr-common.c ... here.
5068 (main): Call gen_attr.
5069 * optc-gen.awk: Make generated program include insn-attr-common.h .
5070 * Makefile.in (oprions.o): Depend on insn-attr-common.h
5071
4645179e
AS
50722011-07-25 Anatoly Sokolov <aesok@post.ru>
5073
5074 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5075 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
5076 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
5077 m32c_print_operand, m32c_print_operand_address): Remove.
5078 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
5079 Change return type to bool. Change argument type to bool.
5080 (m32c_print_operand, m32c_print_operand_address): Make static.
5081 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
5082 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5083
8175c19c
RO
50842011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5085
5086 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
5087 attributes): Document mmap.
5088
5057fa13
AS
50892011-07-25 Anatoly Sokolov <aesok@post.ru>
5090
5091 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5092 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
5093 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
5094 mmix_print_operand, mmix_print_operand_address): Remove.
5095 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
5096 Change return type to bool. Change argument type to bool.
5097 (mmix_print_operand, mmix_print_operand_address): Make static.
536e3f49 5098 (mmix_intval, mmix_output_condition): Change 'x' argument type
5057fa13
AS
5099 to const_rtx.
5100 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
5101 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5102
f4da258f 51032011-07-25 Georg-Johann Lay <avr@gjlay.de>
536e3f49 5104
f4da258f
GJL
5105 PR target/39386
5106 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
5107 shift counter for x << x and x >> x shifts.
5108
1500b428
RO
51092011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5110
5111 PR target/47124
5112 * config.gcc: Reject *-*-solaris2 configuration.
5113
59daeef4
RS
51142011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
5115
5116 PR tree-optimization/49809
5117 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
5118 gimple_get_lhs instead of gimple_assign_lhs.
5119
4d1c7421
RO
51202011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5121
5122 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
5123
7fdab8d4
RG
51242011-07-25 Richard Guenther <rguenther@suse.de>
5125
5126 PR tree-optimization/49822
5127 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5128 more. Make sure to preserve stmts with side-effects. Properly
5129 handle virtual defs, follow a longer def chain.
5130
1baae426
RG
51312011-07-22 Romain Geissler <romain.geissler@gmail.com>
5132
5133 PR plugins/45348
5134 PR plugins/48425
5135 PR plugins/46577
5136 * Makefile.in: Do not flatten c-family directory when installing
5137 plugin headers.
5138
264b47b0
EB
51392011-07-25 Eric Botcazou <ebotcazou@adacore.com>
5140
5141 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
5142 original nodes if we are dealing with virtual clones.
5143
3d02ae65
BS
51442011-07-25 Bernd Schmidt <bernds@codesourcery.com>
5145
5146 * common/config/c6x/c6x-common.c: New file.
5147
2eaa698b
RZ
51482011-07-25 Roman Zhuykov <zhroma@ispras.ru>
5149
5150 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
5151
ebeadd91
RG
51522011-07-25 Richard Guenther <rguenther@suse.de>
5153
5154 PR tree-optimization/49715
5155 * tree-vrp.c: Include expr.h and optabs.h.
5156 (range_fits_type_): New function.
5157 (simplify_float_conversion_using_ranges): Likewise.
5158 (simplify_stmt_using_ranges): Call it.
5159 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
5160 * optabs.c (can_float_p): Export.
5161 * optabs.h (can_float_p): Declare.
5162
d9256277
RG
51632011-07-25 Richard Guenther <rguenther@suse.de>
5164
5165 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
5166 (get_value_range): For out-of-range SSA names or names created
5167 after propagation return a read-only varying range.
5168 (dump_all_value_ranges): Adjust.
5169 (vrp_initialize): Likewise.
5170 (vrp_finalize): Likewise.
5171
149e741d
RH
51722011-07-24 Richard Henderson <rth@redhat.com>
5173
5174 PR debug/49831
5175 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
5176 them entirely.
5177
981dc735
RH
51782011-07-24 Richard Henderson <rth@redhat.com>
5179
5180 PR debug/49825
5181 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
5182 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
5183
3382318a
RH
51842011-07-24 Richard Henderson <rth@redhat.com>
5185
5186 PR debug/49827
5187 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
5188
2f23f97a
RH
51892011-07-24 Richard Henderson <rth@redhat.com>
5190
5191 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
5192 Zero args_size for abnormal edges. Adjust all callers.
5193
2edb462e
RH
51942011-07-24 Richard Henderson <rth@redhat.com>
5195
5196 PR debug/49825
5197 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
5198
96d5384b
L
51992011-07-24 H.J. Lu <hongjiu.lu@intel.com>
5200
5201 PR bootstrap/49835
5202 * collect2.c (demangle_flag): Removed.
5203
df45fc34
SL
52042011-07-24 Sandra Loosemore <sandra@codesourcery.com>
5205
5206 * configure.ac (demangler_in_ld): Default to yes.
5207 * configure: Regenerated.
5208 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
5209 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
5210 --no-demangle options straight through to ld. When
5211 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
5212 way that has the intended effect on Windows.
5213
829bdd4b
RH
52142011-07-23 Richard Henderson <rth@redhat.com>
5215
5216 * dwarf2cfi.c: Include basic-block.h.
5217 (dw_label_info): Remove.
5218 (trace_work_list, trace_index): New.
5219 (remember_row, emit_cfa_remember): Remove.
5220 (dw_trace_info_hash, dw_trace_info_eq): New.
5221 (get_trace_index, get_trace_info): New.
5222 (save_point_p): New.
5223 (free_cfi_row): Remove.
5224 (add_cfi): Do not emit DW_CFA_remember_state.
5225 (cfa_row_equal_p): New.
5226 (barrier_args_size): Remove.
5227 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
5228 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
5229 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
5230 (dwarf2out_cfi_begin_epilogue): Remove.
5231 (dwarf2out_frame_debug_restore_state): Remove.
5232 (connect_traces, create_pseudo_cfg): New.
5233 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
5234 * Makefile.in (dwarf2cfi.o): Update.
5235
43215a89
RH
52362011-07-23 Richard Henderson <rth@redhat.com>
5237
5238 * dwarf2cfi.c (dw_trace_info): New.
5239 (dw_label_info): New.
5240 (cie_return_save): New.
5241 (cur_trace): New.
5242 (queued_args_size): Rename from args_size. Update all users.
5243 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
5244 (def_cfa_1): Use cur_trace instead of cfa_*.
5245 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
5246 (clobbers_queued_reg_save, reg_saved_in): Likewise.
5247 (dwarf2out_frame_debug_expr): Likewise.
5248 (create_cie_data): Split out from ...
5249 (execute_dwarf2_frame): ... here. Initialize cur_trace.
5250
6ffc63e1
RH
52512011-07-23 Richard Henderson <rth@redhat.com>
5252
5253 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
5254 Update all users to match.
5255 (execute_dwarf2_frame): Free reg_saved_in_data.
5256
999646c1
RH
52572011-07-23 Richard Henderson <rth@redhat.com>
5258
5259 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
5260 (queued_reg_saves): Don't GTY. Change to a VEC.
5261 (queue_reg_save): Update to match.
5262 (dwarf2out_flush_queued_reg_saves): Likewise.
5263 (clobbers_queued_reg_save): Likewise.
5264 (reg_saved_in): Likewise.
5265 (execute_dwarf2_frame): Free queued_reg_saves.
5266
ce363ef2
RH
52672011-07-23 Richard Henderson <rth@redhat.com>
5268
5269 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
5270
57e16c96
RH
52712011-07-23 Richard Henderson <rth@redhat.com>
5272
5273 * dwarf2cfi.c (add_cfi_args_size): Split out from...
5274 (dwarf2out_args_size): ... here.
5275 (add_cfi_restore): Split out from ...
5276 (dwarf2out_frame_debug_cfa_restore): ... here.
5277 (def_cfa_0): Split out from ...
5278 (def_cfa_1): ... here.
5279 (cfi_oprnd_equal_p, cfi_equal_p): New.
5280 (change_cfi_row): New.
5281 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
5282 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
5283 (output_cfis): Remove.
5284 * dwarf2out.c (output_fde): Simplify output_cfi loop.
5285 (dwarf2out_switch_text_section): Don't call output_cfis.
5286 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
5287 * dwarf2out.h: Update decls.
5288 (enum dw_val_class): Add dw_val_class_none.
5289
f1a0e830
RH
52902011-07-23 Richard Henderson <rth@redhat.com>
5291
5292 * dwarf2cfi.c (update_row_reg_save): New.
5293 (dwarf2out_frame_debug_cfa_expression): Use it.
5294 (dwarf2out_frame_debug_cfa_restore): Likewise.
5295 (reg_save): Likewise. Do not emit DW_CFA_same_value.
5296
141618e2
RH
52972011-07-23 Richard Henderson <rth@redhat.com>
5298
5299 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
5300
f17d3401
RH
53012011-07-23 Richard Henderson <rth@redhat.com>
5302
5303 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
5304 (cie_cfi_row): New.
5305 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
5306 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
5307 (cur_row, remember_row): New.
5308 (def_cfa_1): Use cur_row instead of the old_* variables.
5309 (dwarf2out_frame_debug_restore_state): Similarly.
5310 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
5311 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
5312 (dwarf2out_frame_debug_adjust_cfa): Likewise.
5313 (dwarf2out_frame_debug_cfa_offset): Likewise.
5314 (dwarf2out_frame_debug_expr): Likewise.
5315 (execute_dwarf2_frame): Set up cur_row.
5316 * dwarf2out.h (struct cfa_loc): Mark for GTY.
5317
0be7e7a6
RH
53182011-07-23 Richard Henderson <rth@redhat.com>
5319
5320 * basic-block.h (EDGE_PRESERVE): New.
5321 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
5322 * bb-reorder.c: Include except.h.
5323 (fix_up_crossing_landing_pad): New.
536e3f49 5324 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
0be7e7a6
RH
5325 landing pads in the right partition. Duplicate as necessary.
5326 (partition_hot_cold_basic_blocks): Fix up DF info after
5327 duplicating landing pads.
5328 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
5329 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
5330 is set properly. Validate that EH edges are not CROSSING.
5331 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
5332 (dw2_build_landing_pads): ... here.
5333 (convert_to_eh_region_ranges): Remove code to fixup crossing
5334 landing pads.
5335 * except.h (expand_dw2_landing_pad_for_region): Declare.
5336 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
5337
e0170551
RE
53382011-07-23 Richard Earnshaw <rearnsha@arm.com>
5339
5340 PR target/49816
5341 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
5342
15c2ccba
JM
53432011-07-22 Jason Merrill <jason@redhat.com>
5344
5345 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
5346
295331a4
RH
53472011-07-22 Richard Henderson <rth@redhat.com>
5348
5349 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
5350
5f93b30a
RH
53512011-07-22 Richard Henderson <rth@redhat.com>
5352
5353 * jump.c (maybe_propagate_label_ref): Split out of...
5354 (mark_all_labels): ... here. Do not attempt label_ref
5355 propagation while in cfglayout mode.
5356
e967adf4
JJ
53572011-07-22 Jakub Jelinek <jakub@redhat.com>
5358
520cda8c
JJ
5359 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
5360 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
5361 (dwarf_attr_name): Handle DW_AT_GNU_macros.
5362 (dwarf2out_define): If the vector is empty and
5363 lineno is 0, emit a dummy entry first.
5364 (dwarf2out_undef): Likewise. Remove redundant semicolon.
5365 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
5366 optimize_macinfo_range): New functions.
5367 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
5368 mergeable, optimize longer strings using
5369 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
5370 optimize longer sequences of define/undef ops from headers
5371 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
5372 emit a section headers.
5373 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
5374 and macinfo_section_label to DEBUG_MACRO_SECTION
5375 resp. DEBUG_MACRO_SECTION_LABEL.
5376 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
5377 instead of DW_AT_macro_info.
5378
e967adf4
JJ
5379 PR other/32998
5380 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
5381 options.
5382 * dwarf2out.c: Include opts.h.
5383 (dchar_p): New typedef. Define heap VEC for it.
5384 (producer_string): New variable.
5385 (gen_producer_string): New function.
5386 (gen_compile_unit_die): Use it.
536e3f49 5387 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
e967adf4
JJ
5388 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
5389 * doc/invoke.texi: Document -grecord-gcc-switches and
5390 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
5391 to -frecord-gcc-switches description.
5392
3a636414
JM
53932011-07-22 Jason Merrill <jason@redhat.com>
5394
5395 PR c++/30112
5396 * c-decl.c (c_linkage_bindings): Define.
5397
8b9b2275
EB
53982011-07-22 Eric Botcazou <ebotcazou@adacore.com>
5399
5400 PR debug/49815
5401 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
5402
3de69514
L
54032011-07-22 H.J. Lu <hongjiu.lu@intel.com>
5404
5405 * config/i386/i386.c (ix86_option_override_internal): Disallow
5406 MS ABI in x32 mode.
5407 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
5408 only for TARGET_LP64.
536e3f49 5409 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3de69514 5410
49f6f4f7 54112011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
e56fa6bb
MM
5412
5413 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
5414 avoid warnings when GCC is built with a C++ compiler.
5415
b75d1e21
MJ
54162011-07-22 Martin Jambor <mjambor@suse.cz>
5417
5418 PR lto/49796
5419 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
536e3f49 5420 if decl node is in another partition, call cgraph_get_node only once.
b75d1e21 5421
63708bf5
UB
54222011-07-22 Uros Bizjak <ubizjak@gmail.com>
5423
e3c666fd 5424 * config.gcc (x86_64-*-linux*): Set
63708bf5
UB
5425 default_gnu_indirect_function to yes.
5426
27315aa6
RG
54272011-07-22 Richard Guenther <rguenther@suse.de>
5428
5429 PR tree-optimization/45819
5430 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5431 preserve volatile and notrap flags.
5432
5b6d595b
RO
54332011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5434 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5435
5436 PR bootstrap/49794
5437 * configure.ac: Test AM_ICONV with CXX.
5438 * configure: Regenerate.
5439 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
5440
7e2fe488
RO
54412011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5442
5443 PR bootstrap/49797
5444 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
5445 (set_cloog_options): Use it.
5446
d423df48
JJ
54472011-07-22 Jakub Jelinek <jakub@redhat.com>
5448
5449 PR c++/49756
5450 * gcc.c (main): Call stack_limit_increase (64MB).
5451 * toplev.c (toplev_main): Likewise.
5452
7fd72c6f
L
54532011-07-21 H.J. Lu <hongjiu.lu@intel.com>
5454
5455 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
5456 instead of force_reg.
5457
96f0b772
L
54582011-07-21 H.J. Lu <hongjiu.lu@intel.com>
5459
5460 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
5461 needed and use force_reg after convert.
5462 (ix86_expand_call): Likewise.
5463 (ix86_expand_special_args_builtin): Likewise.
5464 (ix86_expand_builtin): Likewise.
5465
ef74e2ba
SP
54662011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5467
5468 PR middle-end/47654
5469 PR middle-end/49649
5470 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
5471 in parameter. Initialize v1 and v2 based on the values returned
5472 by clast_name_to_lb_ub.
5473 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
5474 values.
5475 (type_for_clast_bin): Same.
5476 (type_for_clast_expr): Same.
5477 (type_for_clast_eq): Update calls to type_for_clast_expr.
5478 (type_for_clast_for): Same.
5479 (build_iv_mapping): Same.
5480 * graphite-ppl.h (value_min): New.
5481
84f2ffea
SP
54822011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5483
5484 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
5485 types whenever possible.
5486
3d9784cb
SP
54872011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5488
5489 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
5490 and ub fields.
5491 (new_clast_name_index): Add lb and ub parameters.
5492 (free_clast_name_index): New.
5493 (clast_name_to_lb_ub): New.
5494 (save_clast_name_index): Add lb and ub parameters.
5495 (compute_bounds_for_param): New.
5496 (type_for_level): Removed.
5497 (type_for_clast_for): Removed level parameter. Do not call
5498 type_for_level.
5499 (graphite_create_new_loop): Store the lb and ub for the clast_name
5500 of the iterator of the loop that has been generated.
5501 (graphite_create_new_loop_guard): Remove parameter level.
5502 (create_params_index): Store the lb and ub of each parameter.
5503 (gloog): Use free_clast_name_index. Pass to create_params_index
5504 the current scop.
5505
12b30e6d
SP
55062011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5507
5508 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
5509 (max_precision_type): Inline max_signed_precision_type.
5510 (type_for_clast_red): Use max_precision_type.
5511 (type_for_clast_bin): Same.
5512 (type_for_clast_for): Same.
5513
0cdd9dcf
SP
55142011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5515
5516 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
5517 type_for_interval.
5518 (gcc_type_for_value): Renamed type_for_value.
5519 (gcc_type_for_clast_term): Renamed type_for_clast_term.
5520 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
5521 (gcc_type_for_clast_red): Renamed type_for_clast_red.
5522 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
5523 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
5524 (graphite_translate_clast_equation): Update calls.
5525 (compute_type_for_level): Renamed type_for_level.
5526 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
5527 (build_iv_mapping): Update calls.
5528 (graphite_create_new_loop_guard): Same.
5529
8aab43a0
SP
55302011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5531
5532 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
5533 comment.
5534
cf7eab7d
SP
55352011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5536
5537 * graphite-clast-to-gimple.c (struct ivs_params): New.
5538 (clast_name_to_gcc): Use ivs_params to pass around parameters.
5539 (clast_to_gcc_expression): Same.
5540 (clast_to_gcc_expression_red): Same.
5541 (gcc_type_for_clast_term): Same.
5542 (gcc_type_for_clast_expr): Same.
5543 (gcc_type_for_clast_red): Same.
5544 (gcc_type_for_clast_bin): Same.
5545 (gcc_type_for_clast_eq): Same.
5546 (graphite_translate_clast_equation): Same.
5547 (graphite_create_guard_cond_expr): Same.
5548 (graphite_create_new_guard): Same.
5549 (graphite_create_new_loop): Same.
5550 (build_iv_mapping): Same.
5551 (translate_clast_user): Same.
5552 (graphite_create_new_loop_guard): Same.
5553 (translate_clast): Same.
5554 (translate_clast_for_loop): Same.
5555 (translate_clast_for): Same.
5556 (translate_clast_guard): Same.
5557 (initialize_cloog_names): Fix typo.
5558 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
5559
7b1e9596
SP
55602011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5561
5562 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
5563 (new_clast_name_index): Add level parameter.
5564 (clast_name_to_level): New.
5565 (save_clast_name_index): Add level parameter.
5566 (newivs_to_depth_to_newiv): Removed.
5567 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
5568 (graphite_create_new_loop): Add level parameter. Pass level to
5569 save_clast_name_index.
5570 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
5571 (create_params_index): Pass level to save_clast_name_index.
5572
6e6568db
SP
55732011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5574
5575 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
5576 recompute type, lb, and ub. Get them from...
5577 (graphite_create_new_loop_guard): ...here. Pass in parameter
5578 pointers to type, lb, and ub.
5579 (translate_clast_for_loop): Update function calls.
5580 (translate_clast_for): Same.
5581
dff62090
SP
55822011-07-21 Sebastian Pop <sebastian.pop@amd.com>
5583
5584 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
5585 psct_dynamic_dim.
5586 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
5587 (gcc_type_for_iv_of_clast_loop): Update use of level.
5588 (gloog): Start counting nesting level from 0.
5589 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
5590 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
5591 psct_dynamic_dim on level.
5592
628c1ac9
L
55932011-07-21 H.J. Lu <hongjiu.lu@intel.com>
5594
5595 * config/i386/i386.c (ix86_legitimize_address): Convert to
5596 Pmode if needed.
5597
08a8923e
L
55982011-07-21 H.J. Lu <hongjiu.lu@intel.com>
5599
5600 * config/i386/i386.c (function_value_64): Always return pointers
5601 in Pmode.
5602 (ix86_promote_function_mode): New.
5603 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
5604
777a4e9a
BS
56052011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5606
5607 PR tree-optimization/49749
5608 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
5609 remove no-longer-used maxrank variable.
63708bf5 5610
e9514725 56112011-07-21 Georg-Johann Lay <avr@gjlay.de>
63708bf5 5612
e9514725
GJL
5613 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
5614
9ca1483b
JM
56152011-07-21 Jason Merrill <jason@redhat.com>
5616
5617 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
5618 * recog.h (struct insn_data_d): Check it instead of
5619 HAVE_DESIGNATED_INITIALIZERS.
5620 * genoutput.c (output_insn_data): Likewise.
5621
3ceaf2f5
RG
56222011-07-21 Richard Guenther <rguenther@suse.de>
5623
5624 PR tree-optimization/49770
5625 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
5626 valueized any operand. Renamed from ...
5627 (valueize_refs): ... this. New wrapper around valueize_refs_1.
5628 (valueize_shared_reference_ops_from_ref): Return whether we
5629 valueized any operand.
5630 (vn_reference_lookup): Only when we valueized any operand
5631 use the valueized reference for alias analysis. Do not preserve
5632 the original reference tree in this case.
5633
7c53a140
UB
56342011-07-21 Uros Bizjak <ubizjak@gmail.com>
5635
5636 * config/i386/i386.c (ix86_decompose_address): Reject all but
a4235495 5637 register operands and subregs of DImode hard registers in index.
7c53a140 5638
7f3ff782
KT
56392011-07-21 Kai Tietz <ktietz@redhat.com>
5640
5641 * fold-const.c (fold_unary_loc): Preserve indirect
5642 comparison cast to none-boolean type.
5643 * tree-ssa.c (useless_type_conversion_p): Preserve cast
5644 from/to boolean-type.
7c53a140
UB
5645 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
5646 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
7f3ff782
KT
5647 * tree-cfg.c (verify_gimple_comparison): Check result
5648 type of comparison expression.
7c53a140
UB
5649 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
5650 of condition result and disallow type-cast sinking into comparison.
7f3ff782 5651
91bc6112
RG
56522011-07-21 Richard Guenther <rguenther@suse.de>
5653
5654 * tree-ssa-forwprop.c (combine_conversions): Return whether
5655 we have to run cfg-cleanup. Properly remove dead stmts.
5656 (ssa_forward_propagate_and_combine): Adjust.
5657
d6f23738
RS
56582011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
5659
5660 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
5661
fec3cad3
KT
56622011-07-21 Kai Tietz <ktietz@redhat.com>
5663
5664 * tree-ssa-propagate.c (substitute_and_fold): Use
5665 do_dce flag to deside, if BB's statements are scanned
5666 in last to first, or first to last order.
5667
21f3ae2f 56682011-07-21 Georg-Johann Lay <avr@gjlay.de>
7c53a140 5669
21f3ae2f
GJL
5670 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
5671
6025b127
L
56722011-07-20 H.J. Lu <hongjiu.lu@intel.com>
5673 Uros Bizjak <ubizjak@gmail.com>
5674 Richard Henderson <rth@redhat.com>
5675
5676 * config/i386/constraints.md (w): New.
5677
5678 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
5679 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
5680
5681 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
5682 instead of TARGET_64BIT.
5683
5684 * config/i386/i386.md (indirect_jump): Replace
5685 nonimmediate_operand with indirect_branch_operand.
5686 (*indirect_jump): Likewise. Replace constraint "m" with "w".
a4235495
UB
5687 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
5688 Convert operand 0 to Pmode for x32 if not PIC.
6025b127
L
5689 (*tablejump_1): Replace nonimmediate_operand with
5690 indirect_branch_operand. Replace constraint "m" with "w".
5691 (*call_vzeroupper): Replace constraint "m" with "w".
5692 (*call): Likewise.
5693 (*call_rex64_ms_sysv_vzeroupper): Likewise.
5694 (*call_rex64_ms_sysv): Likewise.
5695 (*call_value_vzeroupper): Likewise.
5696 (*call_value): Likewise.
5697 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
5698 (*call_value_rex64_ms_sysv): Likewise.
a4235495 5699 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
6025b127
L
5700
5701 * config/i386/predicates.md (indirect_branch_operand): New.
5702 (call_insn_operand): Support x32.
5703
7f8925a1
ME
57042011-07-20 Michael Eager <eager@eagercon.com>
5705
5706 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
5707
510a442a
RH
57082011-07-20 Richard Henderson <rth@redhat.com>
5709
5710 * cfg.c (dump_bb_info): Dump basic_block->flags.
5711 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
5712
00b40d0d
UB
57132011-07-20 Uros Bizjak <ubizjak@gmail.com>
5714
5715 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5716 of DImode hard registers in index.
5717 (ix86_legitimate_address_p): Allow subregs of base and index to span
5718 more than a word. Assert that subregs of base and index satisfy
5719 register_no_elim_operand predicates. Reject addresses where
5720 base and index have different modes.
5721
87f53554
RM
57222011-07-20 Robert Millan <rmh@gnu.org>
5723
5724 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
5725
742f29ab
UW
57262011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5727
5728 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
5729 removing now-unnecessary assignment.
5730
d05f3564
UW
57312011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5732
5733 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
5734 memory address space to the type's address space.
5735
8c352fa8 57362011-07-20 Georg-Johann Lay <avr@gjlay.de>
00b40d0d 5737
8c352fa8
GJL
5738 PR target/36467
5739 PR target/49687
00b40d0d
UB
5740 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
5741 and expand appropriately if there is a CONST_INT in operand2.
8c352fa8
GJL
5742 (usmulqihi3): New insn.
5743 (*sumulqihi3): New insn.
5744 (*osmulqihi3): New insn.
5745 (*oumulqihi3): New insn.
5746 (*muluqihi3.uconst): New insn_and_split.
5747 (*muluqihi3.sconst): New insn_and_split.
5748 (*mulsqihi3.sconst): New insn_and_split.
5749 (*mulsqihi3.uconst): New insn_and_split.
5750 (*mulsqihi3.oconst): New insn_and_split.
5751 (*ashifthi3.signx.const): New insn_and_split.
5752 (*ashifthi3.signx.const7): New insn_and_split.
5753 (*ashifthi3.zerox.const): New insn_and_split.
5754 (mulsqihi3): New insn.
5755 (muluqihi3): New insn.
5756 (muloqihi3): New insn.
5757 * config/avr/predicates.md (const_2_to_7_operand): New.
5758 (const_2_to_6_operand): New.
5759 (u8_operand): New.
5760 (s8_operand): New.
5761 (o8_operand): New.
5762 (s9_operand): New.
5763 (register_or_s9_operand): New.
5764
be31603a
KT
57652011-07-20 Kai Tietz <ktietz@redhat.com>
5766
5767 * builtins.c (fold_builtin_expect): See through the cast
5768 from truthvalue_type_node to long.
5769
c36193c6
MM
57702011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
5771
5772 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
5773 where we can use them from the standard and altivec instruction
5774 sets, instead of always using the 3 operand VSX forms that require
5775 the destination to overlap one of the inputs.
5776 (vsx_fms*): Ditto.
5777 (vsx_fnma*): Ditto.
5778 (vsx_fnms*): Ditto.
5779
5780 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
5781 for DF types.
5782 (fmsdf4_fpr): Ditto.
5783 (nfmadf4_fpr): Ditto.
5784 (nfmsdf4_fpr): Ditto.
5785
02aec184
SL
57862011-07-20 Sandra Loosemore <sandra@codesourcery.com>
5787
5788 * genrecog.c (make_insn_sequence): Correct position numbering
5789 when filtering out match_scratch and match_dup.
5790
f8ecf734
RG
57912011-07-20 Richard Guenther <rguenther@suse.de>
5792
5793 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5794 against already removed statements.
5795 (forward_propagate_into_comparison): Remove dead defining stmts.
5796 (forward_propagate_into_gimple_cond): Likewise.
5797 (forward_propagate_into_cond): Simplify.
5798 (ssa_forward_propagate_and_combine): Handle changed cfg from
5799 forward_propagate_into_comparison.
5800 * tree-ssa-phiopt.c (conditional_replacement): Use proper
5801 locations for newly built statements.
5802
73451ae7
GJL
58032011-07-20 Georg-Johann Lay <avr@gjlay.de>
5804
5805 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
5806
c4100a35
AK
58072011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5808
5809 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
5810 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
5811
dca412a1
RG
58122011-07-20 Richard Guenther <rguenther@suse.de>
5813
5814 PR middle-end/18908
5815 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
5816 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
5817 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
5818
73d7e266
VM
58192011-07-20 Vladimir Makarov <vmakarov@redhat.com>
5820
5821 * config/frv/frv.c (frv_register_move_cost): Define explicitly
5822 costs for subclasses of GR_REGS.
5823
5e27a6d4
UB
58242011-07-20 Uros Bizjak <ubizjak@gmail.com>
5825
5826 PR target/49780
5827 * config/i386/predicates.md (no_seg_addres_operand): No more special.
5828 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5829 of DImode hard registers in base.
5830 (ix86_legitimate_address_p): Allow SImode and DImode base and index
5831 registers.
5832
74d8fa44
RG
58332011-07-20 Richard Guenther <rguenther@suse.de>
5834
5e27a6d4 5835 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
74d8fa44
RG
5836 (unify_nodes): Deal with that.
5837 (solve_graph): Likewise.
5838
b0e43da8
CLT
58392011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
5840
5841 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
5842 canonicalize left operand from ZERO_EXTEND to AND.
5843
a8c44c52
AS
58442011-07-20 Anatoly Sokolov <aesok@post.ru>
5845
5846 * target.def (class_max_nregs): New hook.
5847 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
5848 * doc/tm.texi: Regenerate.
5849 * targhooks.c (default_class_max_nregs): New function.
5850 * targhooks.h (default_class_max_nregs): Declare.
5851 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
5852 x_ira_reg_class_min_nregs arrays to unsigned char.
5853 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
5854 hook instead of CLASS_MAX_NREGS macro.
5855 * reginfo.c (restore_register_info): Ditto.
5856 * ira-conflicts.c (process_regs_for_copy): Use
5857 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5858 Change type rclass and aclass vars to reg_class_t.
5859 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
5860 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
5861 reg_class_t.
5862 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
5863 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
5864
5865 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
5866 * config/i386/i386.c (ix86_class_max_nregs): New function.
5867 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
5868 instead of CLASS_MAX_NREGS macro.
5869 (TARGET_CLASS_MAX_NREGS): Define.
5870 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
5871 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
5872 * config/avr/avr.c (class_max_nregs): Remove function.
5873 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
5874 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
5875 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
5876 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
5877 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
5878 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
5879 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
5880 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
5881 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
5882 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
5883 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
5884 * config/score/score.h (CLASS_MAX_NREGS): Remove.
5885 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
5886 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
5887 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
5888
fd811f03
EB
58892011-07-19 Eric Botcazou <ebotcazou@adacore.com>
5890
5891 * cif-code.def (OVERWRITABLE): Fix typo and move around.
5892 (TARGET_OPTIMIZATION_MISMATCH): Delete.
5893 (EH_PERSONALITY): Fix typo.
5894 (NON_CALL_EXCEPTIONS): Fix message.
5895 (OPTIMIZATION_MISMATCH): Adjust message.
5896 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
5897
78767fd9
ILT
58982011-07-19 Ian Lance Taylor <iant@google.com>
5899
5900 * doc/install.texi (Configuration): Document
5901 --enable-build-poststage1-with-cxx.
5902
0baeec1b
RM
59032011-07-19 Robert Millan <rmh@gnu.org>
5904
5905 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
5906 (GLIBC_DYNAMIC_LINKER): Remove.
5907
5908 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
5909 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5910 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5911 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
5912 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
5913 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
5914
5915 * config/mips/linux.h: Remove everything except for ...
5916 (GLIBC_DYNAMIC_LINKER): ... this macro.
5917
5918 * config/mips/linux64.h: Remove everything except for ...
5919 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
5920 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
5921 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
5922 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
5923 (GNU_USER_LINK_EMULATIONN32): New macros.
5924
5e27a6d4
UB
5925 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
5926 Use the new headers.
0baeec1b 5927
754c3d5d
RS
59282011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5929
5930 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
5931 Add offset_known_p and size_known_p fields.
5932 (MEM_OFFSET_KNOWN_P): Update accordingly.
5933 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
5934 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
5935 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
5936 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
5937 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
5938 (init_emit_regs): Likewise.
5939
527210c4
RS
59402011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5941
5942 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
5943 (MEM_OFFSET): Change from returning an rtx to returning a
5944 HOST_WIDE_INT.
5945 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
5946 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
5947 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5948 (clear_mem_offset): Declare.
5949 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
5950 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
5951 MEM_OFFSET to get a HOST_WIDE_INT offset.
5952 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
5953 (adjust_offset_for_component_ref): Take a bool "known_p"
5954 parameter and a HOST_WIDE_INT "offset" parameter.
5955 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
5956 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
5957 than an rtx. Use clear_mem_offset to clear the offset.
5958 * cfgcleanup.c (merge_memattrs): Likewise.
5959 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
5960 * function.c (assign_parm_find_stack_rtl): Likewise.
5961 (assign_parm_setup_stack): Likewise.
5962 * print-rtl.c (print_rtx): Likewise.
5963 * reload.c (find_reloads_subreg_address): Likewise.
5964 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
5965 * var-tracking.c (INT_MEM_OFFSET): Likewise.
5966 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
5967 (get_mem_align_offset): Likewise.
5968 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
5969 (clear_mem_offset): New function.
5970 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
5971 offset rather than an rtx. Assume both the expressio and offset
5972 are available.
5973 (r10k_needs_protection_p_1): Update accordingly, checking the
5974 expression and offset availability here instead.
5975
f5541398
RS
59762011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
5977
5978 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
5979 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
5980 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
5981 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
5982 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5983 (clear_mem_size): Declare.
5984 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
5985 (clear_mem_size): New function.
5986 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
5987 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
5988 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
5989 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
5990 to clear the size.
5991 (nonoverlapping_memrefs_p): Likewise.
5992 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
5993 (expand_builtin_init_trampoline): Likewise.
5994 * calls.c (compute_argument_addresses): Likewise.
5995 * cfgcleanup.c (merge_memattrs): Likewise.
5996 * dce.c (find_call_stack_args): Likewise.
5997 * dse.c (record_store, scan_insn): Likewise.
5998 * dwarf2out.c (dw_sra_loc_expr): Likewise.
5999 * expr.c (emit_block_move_hints): Likewise.
6000 * function.c (assign_parm_find_stack_rtl): Likewise.
6001 * print-rtl.c (print_rtx): Likewise.
6002 * reload.c (find_reloads_subreg_address): Likewise.
6003 * rtlanal.c (may_trap_p_1): Likewise.
6004 * var-tracking.c (track_expr_p): Likewise.
6005 * varasm.c (assemble_trampoline_template): Likewise.
6006 * config/arm/arm.c (arm_print_operand): Likewise.
6007 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
6008 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
6009 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
6010 (expand_constant_setmem_prologue): Likewise.
6011 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
6012 * config/rs6000/rs6000.c (expand_block_move): Likewise.
6013 (adjacent_mem_locations): Likewise.
6014 * config/s390/s390.c (s390_expand_setmem): Likewise.
6015 (s390_expand_insv): Likewise.
6016 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
6017 (*extendqi<mode>2_short_displ): Likewise.
6018 * config/sh/sh.c (expand_block_move): Likewise.
6019 * config/sh/sh.md (extv, extzv): Likewise.
6020
f12144dd
RS
60212011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
6022
6023 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
6024 (mem_attrs_htab_eq): ...here.
6025 (find_mem_attrs): Replace with...
6026 (set_mem_attrs): ...this function. Take a mem_attrs structure
6027 rather than individual fields.
6028 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
6029 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
6030 (set_mem_size, change_address, adjust_address_1, offset_address)
6031 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
6032 Update accordingly.
6033
1c3f523e
RS
60342011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
6035
6036 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
6037 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
6038 Provide a dummy definition of MEM_ADDR_SPACE for generators.
6039 (target_rtl): Add x_mode_mem_attrs.
6040 (mode_mem_attrs): New macro.
6041 (get_mem_attrs): New function.
6042 * emit-rtl.c (get_mem_attrs): Rename to...
6043 (find_mem_attrs): ...this.
6044 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
6045 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
6046 (set_mem_size, change_address, adjust_address_1, offset_address)
6047 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
6048 Update accordingly.
6049 (init_emit_regs): Initialize mode_mem_attrs.
6050
3046b1a9
RG
60512011-07-19 Richard Guenther <rguenther@suse.de>
6052
6053 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
6054 TRUTH_*_EXPR handling.
6055 * tree-ssa-operands.c (get_expr_operands): Likewise.
6056 * tree-ssa-pre.c (fully_constant_expression): Likewise.
6057 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
6058 Likewise.
6059 (is_and_or_or): Likewise.
6060 (is_norm_cond_subset_of): Likewise.
6061
5d49b6a7
RG
60622011-07-19 Richard Guenther <rguenther@suse.de>
6063
6064 * tree.h (fold_build_pointer_plus_loc): New helper function.
6065 (fold_build_pointer_plus_hwi_loc): Likewise.
6066 (fold_build_pointer_plus): Define.
6067 (fold_build_pointer_plus_hwi): Likewise.
6068 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
6069 (fold_builtin_memory_op): Likewise.
6070 (fold_builtin_stpcpy): Likewise.
6071 (fold_builtin_memchr): Likewise.
6072 (fold_builtin_strstr): Likewise.
6073 (fold_builtin_strchr): Likewise.
6074 (fold_builtin_strrchr): Likewise.
6075 (fold_builtin_strpbrk): Likewise.
6076 (fold_builtin_strcat): Likewise.
6077 (expand_builtin_memory_chk): Likewise.
6078 (fold_builtin_memory_chk): Likewise.
6079 * c-typeck.c (build_unary_op): Likewise.
6080 * cgraphunit.c (thunk_adjust): Likewise.
6081 * fold-const.c (build_range_check): Likewise.
6082 (fold_binary_loc): Likewise.
6083 * omp-low.c (extract_omp_for_data): Likewise.
6084 (expand_omp_for_generic): Likewise.
6085 (expand_omp_for_static_nochunk): Likewise.
6086 (expand_omp_for_static_chunk): Likewise.
6087 * tree-affine.c (add_elt_to_tree): Likewise.
6088 * tree-data-ref.c (split_constant_offset_1): Likewise.
6089 * tree-loop-distribution.c (generate_memset_zero): Likewise.
6090 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
6091 * tree-predcom.c (ref_at_iteration): Likewise.
6092 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
6093 (add_to_parts): Likewise.
6094 (create_mem_ref): Likewise.
6095 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6096 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
6097 (number_of_iterations_le): Likewise.
6098 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
6099 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
6100 (vect_create_addr_base_for_vector_ref): Likewise.
6101 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
6102 (vect_create_cond_for_alias_checks): Likewise.
6103 * tree-vrp.c (extract_range_from_assert): Likewise.
6104 * config/alpha/alpha.c (alpha_va_start): Likewise.
6105 (alpha_gimplify_va_arg_1): Likewise.
6106 * config/i386/i386.c (ix86_va_start): Likewise.
6107 (ix86_gimplify_va_arg): Likewise.
6108 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6109 * config/mep/mep.c (mep_expand_va_start): Likewise.
6110 (mep_gimplify_va_arg_expr): Likewise.
6111 * config/mips/mips.c (mips_va_start): Likewise.
6112 (mips_gimplify_va_arg_expr): Likewise.
6113 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
6114 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
6115 (rs6000_gimplify_va_arg): Likewise.
6116 * config/s390/s390.c (s390_va_start): Likewise.
6117 (s390_gimplify_va_arg): Likewise.
6118 * config/sh/sh.c (sh_va_start): Likewise.
6119 (sh_gimplify_va_arg_expr): Likewise.
6120 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
6121 * config/spu/spu.c (spu_va_start): Likewise.
6122 (spu_gimplify_va_arg_expr): Likewise.
6123 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
6124 Likewise.
6125 (xstormy16_gimplify_va_arg_expr): Likewise.
6126 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
6127 (xtensa_gimplify_va_arg_expr): Likewise.
6128
d906fd7f
RG
61292011-07-19 Richard Guenther <rguenther@suse.de>
6130
6131 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
6132 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
6133 handling.
6134
6135 PR middle-end/18908
6136 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
6137 result of BIT_*_EXPR to bitfield precision.
6138
1b14d815
RS
61392011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
6140
6141 PR tree-optimization/49742
6142 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
6143 as a potential write.
6144
d906fd7f
RG
61452011-07-19 Richard Guenther <rguenther@suse.de>
6146
6147 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
6148 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
6149 (forward_propagate_comparison): Simplify, remove obsolete code.
6150
53020648
RG
61512011-07-19 Richard Guenther <rguenther@suse.de>
6152
6153 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
6154 BIT_XOR_EXPR, same as the RTL expander does.
6155 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
6156 (verify_gimple_assign_unary): Likewise.
6157 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
6158 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
6159 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
6160
b8b2b009
JJ
61612011-07-19 Jakub Jelinek <jakub@redhat.com>
6162
6163 PR tree-optimization/49768
6164 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
6165 if offset is smaller than bitoffset, but offset+size is bigger
6166 than bitoffset.
6167
338f655d
IR
61682011-07-19 Ira Rosen <ira.rosen@linaro.org>
6169
6170 PR tree-optimization/49771
6171 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
6172 zero step, set segment length to the size of the data-ref's type.
6173
310bc633
MJ
61742011-07-18 Martin Jambor <mjambor@suse.cz>
6175
6176 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
6177 comments.
6178 (ipcp_values_pool): Declare.
6179 (ipcp_sources_pool): Likewise.
6180 (ipcp_lattice): Changed to forward declaration.
6181 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
6182 cannot_devirtualize.
6183 (ipa_node_params): New fields descriptors, lattices, known_vals,
6184 clone_for_all_contexts and node dead, removed fields params and
6185 count_scale.
6186 (ipa_set_param_count): Removed.
6187 (ipa_get_param_count): Made to work with descriptors vector.
6188 (ipa_get_param): Updated.
6189 (ipa_param_cannot_devirtualize_p): Removed.
6190 (ipa_param_types_vec_empty): Likewise.
6191 (ipa_set_param_used): New function.
6192 (ipa_get_param_used): Updated to use descriptors vector.
6193 (ipa_func_list): Removed.
6194 (ipa_init_func_list): Removed declaration.
6195 (ipa_push_func_to_list_1): Likewise.
6196 (ipa_pop_func_from_list): Likewise.
6197 (ipa_push_func_to_list): Removed.
6198 (ipa_lattice_from_jfunc): Remove declaration.
6199 (ipa_get_jf_pass_through_result): Declare.
6200 (ipa_get_jf_ancestor_result): Likewise.
6201 (ipa_value_from_jfunc): Likewise.
6202 (ipa_get_lattice): Update.
6203 (ipa_lat_is_single_const): New function.
6204 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
6205 (ipa_init_func_list): Likewise.
6206 (ipa_pop_func_from_list): Likewise.
6207 (ipa_get_param_decl_index): Fix coding style.
6208 (count_formal_params): Removed.
6209 (count_formal_params_1): Renamed to count_formal_params.
6210 (ipa_populate_param_decls): Update to use descriptors vector.
6211 (ipa_initialize_node_params): Likewise.
6212 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
6213 (ipa_analyze_params_uses): Likewise.
6214 (ipa_free_node_params_substructures): Likewise and free also lattices
6215 and known values.
6216 (duplicate_array): Removed.
6217 (ipa_edge_duplication_hook): Add the new edge to the list of edge
6218 clones.
6219 (ipa_node_duplication_hook): Update to use new lattices.
6220 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
6221 (ipa_free_all_structures_after_iinln): Likewise.
6222 (ipa_write_node_info): Update to use new lattices.
6223 (ipa_read_node_info): Likewise.
6224 (ipa_get_jf_pass_through_result): New function.
6225 (ipa_get_jf_ancestor_result): Likewise.
6226 (ipa_value_from_jfunc): Likewise.
6227 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
6228 * ipa-cp.c: Reimplemented.
6229 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
6230 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
6231 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
6232 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
6233 * doc/invoke.texi (devirt-type-list-size): Removed description.
6234 (ipa-cp-value-list-size): Added description.
6235
6774a66f
RH
62362011-07-18 Richard Henderson <rth@redhat.com>
6237
6238 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
6239 before calling create_basic_block.
6240
8b316874
JJ
62412011-07-18 Jakub Jelinek <jakub@redhat.com>
6242
6243 PR middle-end/49675
6244 * tree.c (build_common_builtin_nodes): Register
6245 __builtin_return_address, __cyg_profile_func_enter
6246 and __cyg_profile_func_exit.
6247
9f68560b
RH
62482011-07-18 Richard Henderson <rth@redhat.com>
6249
6250 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
6251 (add_labels_and_missing_jumps): ... here.
6252 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
6253
03126412
UB
62542011-07-18 Uros Bizjak <ubizjak@gmail.com>
6255
6256 PR target/47744
6257 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
6258 of DImode hard registers in PLUS address chains.
6259
fbf80ef7
RO
62602011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6261
6262 PR bootstrap/49769
6263 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
6264 (alpha*-*-freebsd*): Likewise.
6265 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6266 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6267 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
6268 crtprec80.o, crtfastmath.o to extra_parts for all targets.
6269 (ia64*-*-elf*): Remove extra_parts.
6270 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
6271 (sparc64-*-linux*): Likewise.
6272 (sparc64-*-freebsd*): Likewise.
6273
6274 Revert:
6275 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
6276 (ia64*-*-linux*): Likewise.
6277 (mips64*-*-linux*): Likewise.
6278 (mips*-*-linux*): Likewise.
6279
daf633ba
DE
62802011-07-18 David Edelsohn <dje.gcc@gmail.com>
6281
6282 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
6283
4b4455e5
RG
62842011-07-18 Richard Guenther <rguenther@suse.de>
6285
6286 * gimplify.c (gimplify_expr): Use input_location, not saved_location
6287 when building new trees.
6288
e002c7cb
RG
62892011-07-18 Richard Guenther <rguenther@suse.de>
6290
6291 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
6292 expansion result to bitfield precision if required.
6293
e44dbbe1
RO
62942011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6295
6296 * config.gcc (i[3456x]86-*-netware*): Remove.
6297
6298 * gthr-nks.h: Remove.
6299 * configure.ac (enable_threads): Remove nks.
6300 * configure: Regenerate.
6301
6302 * config/i386/i386.c (ix86_encode_section_info): Remove netware
6303 reference.
6304 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
6305 <netware.h> reference.
6306
6307 * config/i386/netware-libgcc.c,
6308 gcc/config/i386/netware-libgcc.def,
6309 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
6310 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
6311 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
6312 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
6313
6314 * doc/extend.texi (Function Attributes,
6315 callee_pop_aggregate_return): Remove i?86-netware reference.
6316 * doc/install.texi (Configuration, --enable-threads): Remove nks.
6317
fd862017
JDA
63182011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6319
6320 PR target/49746
6321 Revert:
6322 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6323
6324 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
6325 patterns.
6326
1ff24749
EB
63272011-07-17 Eric Botcazou <ebotcazou@adacore.com>
6328
6329 PR middle-end/49732
6330 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
6331
a4a2c37d
MK
63322011-07-16 Matthias Klose <doko@ubuntu.com>
6333
6334 * doc/install.texi: Document --enable-static-libjava.
6335
ea6136a2
RH
63362011-07-15 Richard Henderson <rth@redhat.com>
6337
6338 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6339 Replace all three arguments by returning a VEC of edges.
6340 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
6341 pointers and counts.
6342 (fix_edges_for_rarely_executed_code): Merge ...
6343 (rest_of_handle_partition_blocks): ... into...
6344 (partition_hot_cold_basic_blocks): ... here. Return todo items if
6345 any work was performed.
6346 (pass_partition_blocks): Clear todo_flags_finish.
6347
6545e33e
PC
63482011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
6349 Jakub Jelinek <jakub@redhat.com>
6350 Jonathan Wakely <jwakely.gcc@gmail.com>
6351
6352 PR libstdc++/49745
6353 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
6354 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
6355
6feeed06
JM
63562011-07-15 Jason Merrill <jason@redhat.com>
6357
6358 PR testsuite/49741
6359 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
6360 rather than --tool_opts.
6361
44762055
BS
63622011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
6363
6364 * doc/plugins.texi (Building GCC plugins): gengtype needs its
0fa71447 6365 corresponding gtype.state.
44762055 6366
1be0310c
JDA
63672011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6368
6369 PR target/49723
6370 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
6371
12c5ffe5
EB
63722011-07-15 Eric Botcazou <ebotcazou@adacore.com>
6373
6374 PR target/48220
6375 * doc/md.texi (Standard Names): Document window_save.
6376 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
6377 expand_debug_expr and expand_debug_source_expr. If the target has
6378 a window_save instruction, adjust the ENTRY_VALUE_EXP.
6379 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
6380 SSA_NAME_VAR is a parameter.
6381 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
6382 * var-tracking.c (parm_reg_t): New type and associated vector type.
6383 (windowed_parm_regs): New variable.
6384 (adjust_insn): If the target has a window_save instruction and this
6385 is the instruction, make its effect on parameter registers explicit.
6386 (next_non_note_insn_var_location): New function.
6387 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
6388 (vt_add_function_parameter): If the target has a window_save insn,
6389 adjust the incoming RTL and record that in windowed_parm_regs.
6390 (vt_finalize): Free windowed_parm_regs.
6391
bcead286
BS
63922011-07-15 Bernd Schmidt <bernds@codesourcery.com>
6393
6394 * doc/invoke.texi (C6X Options): New section.
6395 * doc/md.texi (TI C6X family): New section.
6396 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
6397 tic6x-*-uclinux.
6398 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
6399 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
6400 Provide C6X definitions.
6401 * config/c6x/c6x.md: New file.
6402 * config/c6x/constraints.md: New file.
6403 * config/c6x/predicates.md: New file.
6404 * config/c6x/c6x-sched.md.in: New file.
6405 * config/c6x/c6x-sched.md: New file.
6406 * config/c6x/gensched.sh: New file.
6407 * config/c6x/c6x-mult.md.in: New file.
6408 * config/c6x/genmult.sh: New file.
6409 * config/c6x/c6x-mult.md: New file.
6410 * config/c6x/sync.md: New file.
6411 * config/c6x/c6x-protos.h: New file.
6412 * config/c6x/sfp-machine.h: New file.
6413 * config/c6x/c6x.c: New file.
6414 * config/c6x/c6x.h: New file.
6415 * config/c6x/crti.s: New file.
6416 * config/c6x/crtn.s: New file.
6417 * config/c6x/lib1funcs.asm: New file.
6418 * config/c6x/c6x-modes.def: New file.
6419 * config/c6x/genopt.sh: New file.
6420 * config/c6x/c6x.opt: New file.
6421 * config/c6x/c6x-tables.opt: New file.
6422 * config/c6x/c6x-opts.h: New file.
6423 * config/c6x/c6x-isas.def: New file.
6424 * config/c6x/elf.h: New file.
6425 * config/c6x/elf-common.h: New file.
6426 * config/c6x/uclinux-elf.h: New file.
6427 * config/c6x/t-c6x: New file.
6428 * config/c6x/t-c6x-elf: New file.
6429 * config/c6x/t-c6x-uclinux: New file.
6430 * config/c6x/t-c6x-softfp: New file.
6431 * config/c6x/gtd.c: New file.
6432 * config/c6x/gtf.c: New file.
6433 * config/c6x/ltd.c: New file.
6434 * config/c6x/ltf.c: New file.
6435 * config/c6x/ged.c: New file.
6436 * config/c6x/gef.c: New file.
6437 * config/c6x/led.c: New file.
6438 * config/c6x/lef.c: New file.
6439 * config/c6x/eqd.c: New file.
6440 * config/c6x/eqf.c: New file.
6441 * config/c6x/libgcc-c6xeabi.ver: New file.
6442
aef0e7a8
BS
6443 Revert
6444 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
6445 PR rtl-optimization/11320
6446 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
6447 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
6448 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
6449 current_sched_info->compute_jump_reg_dependencies. Record which
6450 registers are used and which registers are set by the jump.
6451 Clear deps->reg_conditional_sets after a barrier.
6452 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
6453 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
6454 (init_deps): Initialize reg_conditional_sets.
6455 (free_deps): Clear reg_conditional_sets.
6456 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
6457 Mark registers live on entry of the fallthrough block and conditionally
6458 set as set by the jump. Mark registers live on entry of non-fallthrough
6459 blocks as used by the jump.
6460 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
6461 Mark new parameters as unused.
6462
9bed2f0d
AP
64632011-07-14 Andrew Pinski <pinskia@gmail.com>
6464
6465 PR tree-opt/49309
6466 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
6467 Use fold_build2_loc instead of build2.
6468 Use the correct type for the new tree.
6469
1f88caaa
BS
64702011-07-14 Bernd Schmidt <bernds@codesourcery.com>
6471
6472 PR rtl-optimization/11320
6473 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
6474 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
6475
d772f97c 64762011-07-14 Georg-Johann Lay <avr@gjlay.de>
1f88caaa 6477
d772f97c
GJL
6478 PR target/49487
6479 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
6480 of REG.
6481 (*rotw<mode>): Use const_int_operand for operand2.
6482 Use match_scatch for operand3.
6483 (*rotb<mode>): Ditto
6484 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
6485
1a5d20a4
RG
64862011-07-14 Richard Guenther <rguenther@suse.de>
6487
6488 PR tree-optimization/49651
6489 * tree-ssa-structalias.c (get_constraint_for_1): Properly
6490 handle dereferences with subvariables.
6491
5fbcc0ed
RG
64922011-07-14 Richard Guenther <rguenther@suse.de>
6493
6494 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
6495 (fold_stmt_1): Do it here directly on gimple and as a first thing.
6496
fbf3fee2
RG
64972011-07-14 Richard Guenther <rguenther@suse.de>
6498
6499 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
6500 not bool_var when folding bool_var != 1 or bool_var == 0.
6501
b953c2b8
BS
65022011-07-14 Bernd Schmidt <bernds@codesourcery.com>
6503
6504 * haifa-sched.c (schedule_insns): Remove outdated comment.
6505 (schedule_block): When computing a known value for TODO_SPEC,
6506 just set it rather than using logical operations.
6507 (try_ready): Likewise. Use a local variable rather than a
6508 pointer to TODO_SPEC. Reorder an if statement to move the
6509 easy case to the then block.
6510 * sched-deps.c (dep_spec_p): New static function.
6511 (update_dep): Use it to decide whether to call
6512 change_spec_dep_to_hard.
6513 (get_back_and_forw_lists): Use it.
6514 (sd_resolve_dep): Likewise.
6515 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
6516 (haifa_note_mem_dep): Likewise.
6517 (check_dep): Likewise.
6518 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
6519 (sched_free_deps): Free in two passes.
6520
1f098f07
RS
65212011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
6522
6523 PR middle-end/49736
6524 * expr.c (all_zeros_p): Undo bogus part of last change.
6525
73059910
MK
65262011-07-14 Matthias Klose <doko@ubuntu.com>
6527
6528 * doc/extend.texi (optimize attribute): Fix typo.
6529
bd5d002e
RG
65302011-07-14 Richard Guenther <rguenther@suse.de>
6531
6532 * gimplify.c (gimplify_expr): Only do required conversions.
6533
eb1dcdff
GJL
65342011-07-14 Georg-Johann Lay <avr@gjlay.de>
6535
6536 PR target/43746
6537 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
6538 i.e. use default_elf_select_section.
6539 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
6540 (READONLY_DATA_SECTION_ASM_OP): Remove.
6541 (TARGET_ASM_NAMED_SECTION): Move from here...
6542 * config/avr/avr.c: ...to here.
03126412 6543 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
eb1dcdff
GJL
6544 (avr_asm_named_section): Make static.
6545
d31fb329
RO
65462011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6547
6548 PR bootstrap/49739
03126412
UB
6549 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
6550 and crtfastmath.o for Linux/x86.
d31fb329 6551
26965010
BS
65522011-07-14 Bernd Schmidt <bernds@codesourcery.com>
6553
6554 * haifa-sched.c: Include "hashtab.h"
6555 (sched_no_dce): New global variable.
6556 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
6557 SHADOW_P): New macros.
6558 (last_clock_var, cycle_issued_insns): Move declarations.
6559 (must_backtrack): New static variable.
6560 (struct delay_pair): New structure.
6561 (delay_htab, delay_htab_i2): New static variables.
6562 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
6563 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
6564 functions.
6565 (dep_cost_1): If delay pairs exist, try to look up the insns and
6566 use the correct pair delay if we find them.
6567 (rank-for_schedule): Tweak priority for insns that must be scheduled
6568 soon to avoid backtracking.
6569 (queue_insn): Detect conditions which force backtracking.
6570 (ready_add): Likewise.
6571 (struct sched_block_state): Add member shadows_only_p.
6572 (struct haifa_save_data): New structure.
6573 (backtrack_queue): New static variable.
6574 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
6575 unschedule_insns_until, restore_last_backtrack_point,
6576 free_topmost_backtrack_point, free_backtrack_queue,
6577 estimate_insn_tick, estimate_shadow_tick): New functions.
6578 (prune_ready_list): New arg shadows_only_p. All callers changed.
6579 If true, remove everything that isn't SHADOW_P. Look up delay
03126412 6580 pairs and estimate ticks to avoid scheduling the first insn too early.
26965010
BS
6581 (verify_shadows): New function.
6582 (schedule_block): Add machinery to enable backtracking.
6583 (sched_init): Take sched_no_dce into account when setting
6584 DF_LR_RUN_DCE.
6585 (free_delay_pairs): New function.
6586 (init_h_i_d): Initialize INSN_EXACT_TICK.
6587 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
6588 * sched-deps.c (sd_unresolve_dep): New function.
6589 * sched-int. (struct haifa_sched_info): New fields save_state
6590 and restore_state.
6591 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
6592 feeds_backtrack_insn and shadow_p.
6593 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
6594 (sched_no_dce): Declare variable.
6595 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
6596 sd_unresolve_dep): Declare functions.
6597 * modulo-sched.c (sms_sched_info): Clear the two new fields.
6598 * sched-rgn.c (rgn_const_sched_info): Likewise.
6599 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6600 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
6601 (ebb_sched_info): Add them for the two new fields.
6602 (add_deps_for_risky_insns): Call add_delay_dependencies.
6603
1db75f6c
MM
66042011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
6605
6606 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
6607 Rename -mr11.
6608 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
6609 (rs6000_call_indirect_aix): Ditto.
6610 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
6611 (call_indirect_aix<ptrsize>_internal): Ditto.
6612 (call_indirect_aix<ptrsize>_nor11): Ditto.
6613 (call_indirect_aix<ptrsize>_internal2): Ditto.
6614 (call_value_indirect_aix<ptrsize>): Ditto.
6615 (call_value_indirect_aix<ptrsize>_internal): Ditto.
6616 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
6617 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
6618 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
6619
e2995714
JM
66202011-07-13 Jason Merrill <jason@redhat.com>
6621
6622 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
6623
4dfe3ad5
UW
66242011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6625
6626 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
6627 * config/spu/spu.md ("clrsb<mode>2"): New expander.
6628
dddc6762
TS
66292011-07-13 Thomas Schwinge <thomas@schwinge.name>
6630
6631 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
6632 * configure: Regenerate.
6633
b4d80e56
UW
66342011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6635
6636 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
6637 (asm_file_start): Remove.
6638 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
6639 free_bb_for_insn around code that modifies insns before
6640 restarting df analysis.
6641
9e34e53f
RO
66422011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6643
6644 PR target/49541
03126412 6645 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
9e34e53f
RO
6646 (LINK_SPEC): ... here.
6647
51564684
BS
66482011-07-13 Bernd Schmidt <bernds@codesourcery.com>
6649
6650 * haifa-sched.c (struct sched_block_state): New.
6651 (schedule_block): Move some local variables into such a structure.
6652
b3fe1584
RO
66532011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6654
6655 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
6656 * config/i386/t-crtpc: Remove.
6657 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6658 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
6659 tmake_file.
6660 (x86_64-*-darwin*): Likewise.
6661 (i[34567]86-*-linux*): Likewise.
6662 (x86_64-*-linux*): Likewise.
6663
6664 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
6665 Handle -mpc32, -mpc64, -mpc80.
6666
35d8090d
RO
66672011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6668
6669 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
6670 * config/alpha/t-crtfm: Remove.
6671 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
6672 * config/i386/t-crtfm: Remove.
6673 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
6674 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
6675 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
6676 * config/sparc/t-crtfm: Remove.
6677
6678 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
6679 (alpha*-*-freebsd*): Likewise.
6680 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
6681 (x86_64-*-darwin*): Likewise.
6682 (i[34567]86-*-linux*): Likewise.
6683 (x86_64-*-linux*): Likewise.
6684 (x86_64-*-mingw*): Likewise.
6685 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
6686 (ia64*-*-freebsd*): Likewise.
6687 (ia64*-*-linux*): Likewise.
6688 (mips64*-*-linux*): Likewise.
6689 (mips*-*-linux*): Likewise.
6690 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
6691 (sparc64-*-linux*): Likewise.
6692 (sparc64-*-freebsd*): Likewise.
6693
e141542e
RO
66942011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6695
6696 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
6697 * config/darwin-crt3.c: Move to ../libgcc/config.
6698 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6699 ($(T)crt3$(objext)): Remove.
6700 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
6701 ($(T)crt2$(objext)): Remove.
6702 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
6703 (powerpc64-*-darwin*): Likewise.
6704
72fbc381
L
67052011-07-13 H.J. Lu <hongjiu.lu@intel.com>
6706
03126412 6707 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
72fbc381
L
6708
6709 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
6710 (addsi_1_zext): This.
6711
727a65e6
BS
67122011-07-13 Bernd Schmidt <bernds@codesourcery.com>
6713
6714 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
6715 * doc/tm.texi: Regenerate.
73451ae7 6716 * target.def (mergeable_rodata_prefix): New defhookpod.
727a65e6
BS
6717 * varasm.c (mergeable_string_section, mergeable_constant_section):
6718 Use it. Allocate name with alloca.
6719
cb77b6cf
L
67202011-07-13 H.J. Lu <hongjiu.lu@intel.com>
6721
6722 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
6723
36fc3799
RS
67242011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
6725
6726 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
6727 overlap check.
6728
953d0c90
RS
67292011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
6730
6731 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
6732 (count_type_elements): Delete.
6733 (complete_ctor_at_level_p): Declare.
6734 * expr.c (flexible_array_member_p): New function, split out from...
6735 (count_type_elements): ...here. Make static. Replace allow_flexarr
6736 parameter with for_ctor_p. When for_ctor_p is true, return the
6737 number of elements that should appear in the top-level constructor,
6738 otherwise return an estimate of the number of scalars.
6739 (categorize_ctor_elements): Replace p_must_clear with p_complete.
6740 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
6741 (complete_ctor_at_level_p): New function, borrowing union logic
6742 from old categorize_ctor_elements_1.
6743 (mostly_zeros_p): Return true if the constructor is not complete.
6744 (all_zeros_p): Update call to categorize_ctor_elements.
6745 * gimplify.c (gimplify_init_constructor): Update call to
6746 categorize_ctor_elements. Don't call count_type_elements.
6747 Unconditionally prevent clearing for variable-sized types,
6748 otherwise rely on categorize_ctor_elements to detect
6749 incomplete initializers.
6750
9111c715
RG
67512011-07-13 Richard Guenther <rguenther@suse.de>
6752
6753 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
6754 the final type is integral.
6755
a19af9c4
BS
67562011-07-13 Bernd Schmidt <bernds@codesourcery.com>
6757
6758 * sched-int.h (struct _dep): Add member cost.
6759 (DEP_COST, UNKNOWN_DEP_COST): New macros.
6760 * sched-deps.c (init_dep_1): Initialize DEP_COST.
6761 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
6762 (sched_change_pattern): Reset it for dependent insns.
6763
2d1efe2d
RO
67642011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6765
6766 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
6767 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
6768 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
6769 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
6770 (CRT0_S, MCRT0_S): Remove.
6771 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
6772 Remove.
6773 (s-crt0): Remove.
6774 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
6775
e84a58ff
EB
67762011-07-12 Eric Botcazou <ebotcazou@adacore.com>
6777
6778 * cse.c (insert_with_costs): Put semi-colon after empty loop body
6779 on the next line.
6780 * emit-rtl.c (push_to_sequence): Likewise.
6781 * haifa-sched.c (max_issue): Likewise.
6782 * matrix-reorg.c (add_allocation_site): Likewise.
6783 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
6784 * reload.c (alternative_allows_const_pool_ref): Likewise.
6785 * sched-rgn.c (rgn_add_block): Likewise.
6786 (rgn_fix_recovery_cfg): Likewise.
6787 * tree.c (attribute_list_contained): Likewise.
6788
3a4ffde6
UB
67892011-07-12 Uros Bizjak <ubizjak@gmail.com>
6790
6791 * config/i386/i386.c: Tidy processor feature bitmasks.
6792 (m_P4_NOCONA): New.
6793
10b75750
AP
67942011-07-12 Andrew Pinski <pinskia@gmail.com>
6795
6796 PR rtl-opt/49474
6797 * cprop.c (find_implicit_sets): Correct the condition.
6798
4f42d714
RH
67992011-07-12 Richard Henderson <rth@redhat.com>
6800
6801 PR target/49713
6802 * dwarf2out.h (dwarf_frame_regnum): Remove.
6803 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
6804 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
6805 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
6806 (execute_dwarf2_frame): Initialize them.
6807 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
6808 users of the macros with the variables.
6809 (expand_builtin_dwarf_sp_column): Revert last change.
6810 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
6811 result of DWARF_FRAME_REGNUM into a local variable.
6812
3a5e4ad6
RH
68132011-07-12 Richard Henderson <rth@redhat.com>
6814
6815 PR target/49714
6816 * config/i386/i386.c (x86_output_mi_thunk): Use
6817 machopic_indirect_call_target instead of machopic_indirection_name
6818 directly.
6819
9e9bd455
LG
68202011-07-12 Laurent GUERBY <laurent@guerby.net>
6821 Eric Botcazou <ebotcazou@adacore.com>
6822
6823 * prefix.h: Wrap up in extern "C" block.
6824
4d652a18
HJ
68252011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
6826
6827 AMD bdver2 Enablement
6828 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
6829 (case ${target}): Add bdver2.
6830 * config/i386/driver-i386.c (host_detect_local_cpu): Let
6831 -march=native recognize bdver2 processors.
6832 * config/i386/i386-c.c (ix86_target_macros_internal): Add
6833 bdver2 def_and_undef
6834 * config/i386/i386.c (struct processor_costs bdver2_cost): New
6835 bdver2 cost table.
6836 (m_BDVER2): New definition.
6837 (m_AMD_MULTIPLE): Includes m_BDVER2.
6838 (initial_ix86_tune_features): Add bdver2 tuning.
6839 (processor_target_table): Add bdver2 entry.
6840 (static const char *const cpu_names): Add bdver2 entry.
6841 (ix86_option_override_internal): Add bdver2 instruction sets.
6842 (ix86_issue_rate): Add bdver2.
6843 (ix86_adjust_cost): Add bdver2.
6844 (has_dispatch): Add bdver2.
6845 * config/i386/i386.h (TARGET_BDVER2): New definition.
6846 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
6847 (enum processor_type): Add PROCESSOR_BDVER2.
6848 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
6849 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
6850 description.
6851
5756d08c
RH
68522011-07-12 Richard Henderson <rth@redhat.com>
6853
6854 PR target/49714
6855 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
6856 destination address in memory on some paths.
6857
123148b5
BS
68582011-07-12 Bernd Schmidt <bernds@codesourcery.com>
6859
6860 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
6861 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
6862 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
6863 * function.c (locate_and_pad_parm): Take it into account.
6864 * target.def (function_arg_round_boundary): New hook.
6865 * targhooks.c (default_function_arg_round_boundary): New function.
6866 * targhooks.h (default_function_arg_round_boundary): Declare.
6867 * doc/tm.texi: Regenerate.
6868
b7a83ad8
RG
68692011-07-12 Richard Guenther <rguenther@suse.de>
6870
6871 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
6872 Do not perform no-op changes.
6873
12c4ecb1
RS
68742011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
6875
6876 * config/arm/predicates.md (neon_struct_operand): Make a normal
6877 predicate.
6878 (neon_struct_or_register_operand): New predicate.
6879 * config/arm/neon.md (movmisalign<mode>): Replace predicates
6880 with neon_struct_or_register_operand.
6881 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
6882 neon_struct_operand instead of memory_operand.
6883
ab079773
MJ
68842011-07-12 Martin Jambor <mjambor@suse.cz>
6885
6886 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
6887 * cgraph.c (cgraph_get_node_or_alias): Removed.
6888 (change_decl_assembler_name): Changed all calls to
6889 cgraph_get_node_or_alias to a call to cgraph_get_node.
6890 (cgraph_make_decl_local): Likewise.
6891 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
6892 * varasm.c (default_binds_local_p_1): Likewise.
6893 (decl_binds_to_current_def_p): Likewise.
6894
d5fed62d
JJ
68952011-07-12 Jakub Jelinek <jakub@redhat.com>
6896
6897 PR tree-optimization/49712
6898 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
6899
c0b6224a
BS
69002011-07-11 Bernd Schmidt <bernds@codesourcery.com>
6901
6902 * genautomata.c (add_arc): Return void. All callers changed.
6903 (make_automaton): Remove dead code.
6904
7263c6d7
RH
69052011-07-11 Richard Henderson <rth@redhat.com>
6906
6907 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
6908 (DW_FRAME_POINTER_REGNUM): New.
6909 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
6910 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
6911 (dwf_regno): New.
6912 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
6913 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
6914 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
6915 Use it.
6916 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
6917 * dwarf2out.h (dwarf_frame_regnum): New.
6918 (struct cfa_loc): Document the domain of the reg member.
6919
f9610d20
UB
69202011-07-11 Uros Bizjak <ubizjak@gmail.com>
6921
6922 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
6923 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
6924
96ae7458
JJ
69252011-07-11 Jakub Jelinek <jakub@redhat.com>
6926
6927 PR debug/49676
6928 * dwarf2out.c (int_shift_loc_descriptor): New function.
6929 (int_loc_descriptor): If shorter, emit i as
6930 (i >> shift), shift, DW_OP_shl for suitable shift value.
6931 Similarly, try to optimize large negative values using
6932 DW_OP_neg of a positive value if shorter.
6933 (size_of_int_shift_loc_descriptor): New function.
6934 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
6935 changes.
6936 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
6937 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
6938 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
6939 is shorter.
6940 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
6941 addend as added DW_OP_plus if it is shorter.
6942
feffaec4
RO
69432011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6944
6945 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
6946 (DTORS_SECTION_ASM_OP): Define.
6947
2d8d5935
RO
69482011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6949
6950 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
6951 * config/t-dfprules: Move to ../libgcc/config.
6952 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6953 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6954 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
6955 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
6956 Likewise.
6957 (i[34567]86-*-cygwin*): Likewise.
6958 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
6959 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
6960 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
6961 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
6962 D64PBIT_FUNCS, D128PBIT_FUNCS.
6963
dcc95c20
RG
69642011-07-11 Richard Guenther <rguenther@suse.de>
6965
6966 * tree-vrp.c (simplify_conversion_using_ranges): Manually
6967 translate the source value-range through the conversion chain.
6968
28164eed
RS
69692011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
6970
6971 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
6972
f3054223
AL
69732011-07-11 Arthur Loiret <aloiret@debian.org>
6974
6975 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
6976 a bi-arch compiler defaulting to 31-bit. In this case:
6977 (tmake_file): Add s390/t-linux64.
6978 * doc/install.texi: Add s390-linux to the list of targets supporting
6979 --enable-targets=all.
6980
bd5ab709
AL
69812011-07-11 Arthur Loiret <aloiret@debian.org>
6982 Matthias Klose <doko@debian.org>
6983
6984 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
6985 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
6986 (tm_file): Add mips/linux64.h.
6987 (tmake_file): Add mips/t-linux64.
6988 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
6989 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
6990 instead of hardcoded mabi=n32.
6991 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
6992 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
6993 convention.
6994
d3b7e946
AK
69952011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6996
6997 * passes.c (init_optimization_passes): Add invariant motion pass
6998 after induction variable optimization.
6999
7e4ec472 70002011-07-11 Georg-Johann Lay <avr@gjlay.de>
f9610d20 7001
7e4ec472
GJL
7002 PR target/39633
7003 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
7004 offsets 1..5 set cc0 in a usable way.
7005
0e65e631
RG
70062011-07-11 Romain Geissler <romain.geissler@gmail.com>
7007
7008 * tree.h (call_expr_arg): Remove.
7009 (call_expr_argp): Likewise.
7010
18970372
EB
70112011-07-11 Eric Botcazou <ebotcazou@adacore.com>
7012
7013 * config/sparc/sparc.md (save_register_window_1): Rename to...
7014 (window_save): ...this.
7015 * config/sparc/sparc.c (emit_save_register_window): Rename to...
7016 (emit_window_save): ...this.
7017 (sparc_expand_prologue): Adjust to above renaming.
7018
9e419e38
L
70192011-07-10 H.J. Lu <hongjiu.lu@intel.com>
7020
7021 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
7022 of movabs for x32.
7023
3db72de3
RH
70242011-07-10 Richard Henderson <rth@redhat.com>
7025
7026 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
7027 run final, instead of emitting text directly.
7028
a1f91bca
L
70292011-07-10 H.J. Lu <hongjiu.lu@intel.com>
7030
7031 * config/i386/i386.c (ix86_option_override_internal): Turn on
7032 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
7033 small PIC models for TARGET_X32.
7034
a50023f9
HPN
70352011-07-10 Hans-Peter Nilsson <hp@axis.com>
7036
9a0b29f0
HPN
7037 PR target/49684
7038 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
7039 $(LIBGCC2_CFLAGS).
7040
a50023f9
HPN
7041 PR bootstrap/49680
7042 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
7043 stray notes and debug insns by using prev_nonnote_nondebug_insn
7044 instead of PREV_INSN.
7045
948d330e
RH
70462011-07-09 Richard Henderson <rth@redhat.com>
7047
7048 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
7049 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
7050 * dwarf2out.c: ... here.
7051 (output_all_cfis): Remove.
7052 (dwarf2out_switch_text_section): Use output_cfis directly.
7053 (size_of_locs): Export.
7054 (output_loc_sequence, output_loc_sequence_raw): Export.
7055 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
7056 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
7057 output_cfa_loc_raw): Move to ...
7058 * dwarfcfi.c: ... here.
7059 * dwarf2out.h: Update decls.
7060
db42e39d
RH
70612011-07-09 Richard Henderson <rth@redhat.com>
7062
7063 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
7064 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
7065 * dwarf2cfi.c: ... here.
7066 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
7067 (DWARF_ROUND, DWARF_CIE_ID): Remove.
7068 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
7069 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
7070 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
7071
a8e5c0e7
RH
70722011-07-09 Richard Henderson <rth@redhat.com>
7073
7074 * dwarf2cfi.c (cie_return_save): New.
7075 (queue_reg_save): Use compare_reg_or_pc.
7076 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
7077 (dwarf2out_frame_debug_expr): Likewise.
7078 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
7079 (initial_return_save): Likewise.
7080 (execute_dwarf2_frame): Save and restore initial return save from
7081 the cie to the fde.
7082 * config/mips/mips.c (mips_frame_set): Remove special case for
7083 DWARF_FRAME_RETURN_COLUMN.
7084
4a8ee122
RH
70852011-07-09 Richard Henderson <rth@redhat.com>
7086
7087 * dwarf2cfi.c (lookup_cfa): Remove.
7088 (execute_dwarf2_frame): Assert queues are empty on entry.
7089 Setup initial cfa directly, not via lookup_cfa.
7090 Don't clear args_size state here.
7091
3edb53aa
RH
70922011-07-09 Richard Henderson <rth@redhat.com>
7093
7094 * dwarf2cfi.c (add_cfi_vec): New.
7095 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.
7096 (def_cfa_1, reg_save): Remove for_cie argument. Update all callers.
7097 (execute_dwarf2_frame): Set add_cfi_vec.
7098
ded49a7f
RH
70992011-07-09 Richard Henderson <rth@redhat.com>
7100
7101 * defaults.h (ASM_COMMENT_START): Move here...
7102 * dwarf2asm.c: ... from here.
7103 * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
7104 * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
7105 * varasm.c: Likewise.
7106
45fba6d1
RH
71072011-07-09 Richard Henderson <rth@redhat.com>
7108
7109 PR debug/49686
7110 * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
7111 (create_cfi_notes): ... do it here instead.
7112
5b696ba2
JJ
71132011-07-09 Jakub Jelinek <jakub@redhat.com>
7114
7115 PR debug/49676
7116 * dwarf2out.c (size_of_int_loc_descriptor): New function.
7117 (address_of_int_loc_descriptor): Use it.
f9610d20 7118 (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
5b696ba2 7119
8662b2ba
RH
71202011-07-09 Richard Henderson <rth@redhat.com>
7121
7122 * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
7123 (prologue, epilogue): New.
7124 (return, *rts): New.
7125 (blockage, setd, seti): New.
7126 * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7127 (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
7128 (pdp11_saved_regno): New.
7129 (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
7130 generate rtl instead of text.
7131 (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
7132 (pdp11_sp_frame_offset): Export. Use pdp11_saved_regno.
7133 * config/pdp11/pdp11-protos.h: Update.
7134
28b21ebb
RH
71352011-07-09 Richard Henderson <rth@redhat.com>
7136
7137 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
7138 try to insert an rtl prologue here.
7139 (rs6000_output_function_epilogue): Similarly.
7140 * config/rs6000/rs6000.md (prologue): Emit a barrier to
7141 satisfy !TARGET_SCHED_PROLOG.
7142 (epilogue, sibcall_epilogue): Likewise.
7143
0a222ba7
EB
71442011-07-09 Eric Botcazou <ebotcazou@adacore.com>
7145
7146 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
7147 (FP_REG_P): Delete.
7148 (IN_OR_GLOBAL_P): Likewise.
7149
2fda8e14
JM
71502011-07-08 Jason Merrill <jason@redhat.com>
7151
4063e61b
JM
7152 PR c++/45437
7153 * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
7154 compound assignment.
7155
2fda8e14
JM
7156 * cgraph.c (cgraph_add_to_same_comdat_group): New.
7157 * cgraph.h: Declare it.
7158 * ipa.c (function_and_variable_visibility): Make sure thunks
7159 have the right visibility.
7160
830f11fe
RH
71612011-07-08 Richard Henderson <rth@redhat.com>
7162
7163 PR bootstrap/49680
7164 * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
7165 any tablejump vector.
7166
965b2557
RH
7167 PR bootstrap/49680
7168 * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
7169 end of the prologue.
7170
70db9095
JJ
71712011-07-08 Jakub Jelinek <jakub@redhat.com>
7172
7173 PR target/49621
7174 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
f9610d20 7175 CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
70db9095
JJ
7176 * config/rs6000/vector.md (vector_select_<mode>,
7177 vector_select_<mode>_uns): Change second operand of NE to
7178 CONST0_RTX (<MODE>mode) instead of const0_rtx.
7179 * config/rs6000/altivec.md (*altivec_vsel<mode>,
7180 *altivec_vsel<mode>_uns): Expect second operand of NE to be
7181 zero_constant of the corresponding vector mode.
7182 * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
7183 Likewise.
7184
e92c5020
SP
71852011-07-08 Sebastian Pop <sebastian.pop@amd.com>
7186
7187 * graphite-dependences.c (build_alias_set_powerset): Remove
7188 continue from loop, add one more assert.
7189
3e4f8484 71902011-07-08 Georg-Johann Lay <avr@gjlay.de>
f9610d20 7191
3e4f8484
GJL
7192 PR target/46779
7193 * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
7194 In particular, allow 8-bit values in r28 and r29.
7195 (avr_hard_regno_scratch_ok): Disallow any register that might be
7196 part of the frame pointer.
7197 (avr_hard_regno_rename_ok): Same.
7198 (avr_legitimate_address_p): Don't allow SUBREGs.
7199
0094f21b
JB
72002011-07-08 Julian Brown <julian@codesourcery.com>
7201
7202 * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
7203 big-endian mode.
7204 (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
7205 (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
7206 (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
7207 (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
7208 (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
7209 (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
7210 (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
7211 registers in big-endian mode.
7212
9ae60101
BS
72132011-07-08 Bernd Schmidt <bernds@codesourcery.com>
7214
7215 * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
7216 in terms of another.
7217 (write_attr_value): Write a cast if necessary.
7218
c0a6a1ef
BS
7219 * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
7220 * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
7221 (REG_WORDS_BIG_ENDIAN): Document.
7222 * doc/tm.texi: Regenerate.
7223 * reload.c (operands_match_p): Take it into account.
7224 (reload_adjust_reg_for_mode): Likewise.
7225 * rtlanal.c (subreg_get_info): Likewise.
7226
b862187a
RG
72272011-07-08 Richard Guenther <rguenther@suse.de>
7228
7229 * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
7230 folding.
7231
e8e8c74b
KT
72322011-07-08 Kai Tietz <ktietz@redhat.com>
7233
7234 * fold-const.c (fold_truth_andor): Factored out truth_andor
7235 label from fold_binary as function.
7236 (fold_binary_loc): Replace truth_andor lable
7237 by function fold_truth_andor.
7238
6c3cb698
KY
72392011-07-08 Kirill Yukhin <kirill.yukhin@intel.com>
7240
7241 PR middle-end/49519
7242 * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
7243 check if address is stored in register. If so - give up.
7244 (check_sibcall_argument_overlap_1): Do not perform check of
7245 overlapping when it is call to address.
7246
7d8d6d73 72472011-07-08 Georg-Johann Lay <avr@gjlay.de>
9ae60101 7248
7d8d6d73
GJL
7249 * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
7250 of magic '31'.
7251
69660a70
BS
72522011-07-08 Bernd Schmidt <bernds@codesourcery.com>
7253
7254 * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
7255 GET_MODE_BITSIZE where appropriate.
7256 (widen_leading, expand_parity, expand_ctz, expand_ffs,
7257 expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
7258 expand_float, expand_fix): Likewise.
7259 * expr.c (convert_move, convert_modes, expand_expr_real_2,
7260 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7261 * stor-layout.c (get_mode_bounds): Likewise.
7262 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
7263 Likewise.
7264 * convert.c (convert_to_integer): Likewise.
7265 * expmed.c (expand_shift_1): Likewise.
7266
86cdf393
BS
7267 * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
7268 a bitsize.
7269
0d44736e
BS
7270 * optabs.c (expand_binop): Tighten conditions for doubleword
7271 expansions.
f9610d20 7272 (widen_bswap): Assert that mode bitsize and precision are the same.
0d44736e
BS
7273 * stor-layout.c (get_best_mode): Skip modes that have lower
7274 precision than bitsize.
7275 * recog.c (simplify_while_replacing): Assert that bitsize and
7276 precision are the same.
7277
2c50b2c3
RO
72782011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7279
7280 * Makefile.in (LIBGCOV): Remove.
7281 (libgcc.mvars): Remove LIBGCOV.
7282 * libgov.c: Move to ../libgcc.
7283
a039d7c2
RO
72842011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7285
7286 * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
7287
e923ef41
MJ
72882011-07-08 Martin Jambor <mjambor@suse.cz>
7289
7290 * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
7291 is too big for total scalarization.
7292
b709e189
RH
72932011-07-07 Richard Henderson <rth@redhat.com>
7294
7295 * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
7296 (DBX_DEBUGGING_INFO): Undef.
7297
2867fa7c
RH
72982011-07-07 Richard Henderson <rth@redhat.com>
7299
7300 * dwarf2out.c (output_cfi_directive): Export. Add FILE parameter.
7301 Handle some opcodes specially for debugging.
7302 * print-rtl.c: Include dwarf2out.h
7303 (print_rtx): Handle NOTE_INSN_CFI.
7304 * Makefile.in (print-rtl.o): Update.
7305
7644b3c7
RH
73062011-07-07 Richard Henderson <rth@redhat.com>
7307
7308 * tree-pass.h (pass_dwarf2_frame): Declare.
7309 * passes.c (init_optimization_passes): Add it.
7310 * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
7311 (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
7312 make static, do not call add_cfis_to_fde.
7313 (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
7314 dwarf2out_frame_init): Merge into...
7315 (execute_dwarf2_frame): ... here. New function.
7316 (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean. Change
7317 saved_do_cfi_asm to a tri-state variable.
7318 (gate_dwarf2_frame, pass_dwarf2_frame): New.
7319 * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
7320 if it has yet to be done. Don't call dwarf2cfi_function_init.
7321 * dwarf2out.h, debug.h: Update decls.
7322 * final.c (final_start_function): Don't call
7323 dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
7324 * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
7325 * toplev.c (lang_dependent_init): Likewise.
7326
a518b996
RH
73272011-07-07 Richard Henderson <rth@redhat.com>
7328
7329 * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
7330 FDE_TABLE_INCREMENT): Replace with...
7331 (fde_vec): ... this, a new vector.
7332 (current_fde): Remove. Replace all users with cfun->fde.
7333 (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
7334 (size_of_aranges, dwarf2out_finish): Likewise.
7335 (dwarf2out_alloc_current_fde): Break out from ...
7336 (dwarf2out_begin_prologue): ... here.
7337 (dwarf2out_frame_init): Remove.
7338 * dwarf2cfi.c: Update all users of current_fde.
7339 (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
7340 * dwarf2out.h: Update decls.
7341 (dw_fde_node): Add fde_index member.
7342 * function.h (struct function): Add fde member.
7343
89e25f95
BS
73442011-07-07 Bernd Schmidt <bernds@codesourcery.com>
7345 Richard Henderson <rth@redhat.com>
7346
7347 * dwarf2cfi.c (add_cfi): Remove.
7348 (dwarf2out_cfi_label): Remove force argument. Only generate the
7349 label name.
7350 (add_fde_cfi): Simplify the different code paths.
7351 (add_cie_cfi): New.
7352 (old_cfa, old_cfa_remember): New.
7353 (def_cfa_1, reg_save): Remove label, add for_cie parameter.
7354 (last_reg_save_label): Remove.
7355 (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
7356 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7357 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7358 dwarf2out_frame_debug_cfa_expression,
7359 dwarf2out_frame_debug_cfa_restore,
7360 dwarf2out_frame_debug_cfa_window_save,
7361 dwarf2out_frame_debug_expr): Remove label parameter.
7362 (cfi_label_required_p, add_cfis_to_fde): New.
7363 (dwarf2out_frame_debug_after_prologue): New.
7364 (dwarf2cfi_frame_init): Initialize old_cfa.
7365 (dwarf2out_frame_debug_restore_state): Likewise.
7366 * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
7367 (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
7368 * final.c (final_start_function): Call
7369 dwarf2out_frame_debug_after_prologue.
7370
bc5612ed
BS
73712011-07-07 Bernd Schmidt <bernds@codesourcery.com>
7372 Richard Henderson <rth@redhat.com>
7373
7374 * dwarf2cfi.c (cfi_insn): New.
7375 (dwarf2out_cfi_label): Don't emit cfi label here.
7376 (add_fde_cfi): Create a NOTE_INSN_CFI.
7377 (dwarf2out_frame_debug): Setup cfi_insn.
7378 (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
7379 (dwarf2out_cfi_begin_epilogue): Make static.
7380 (dwarf2out_frame_debug_restore_state): Make static.
7381 * dwarf2out.c (output_cfi_directive): Make static.
7382 (dwarf2out_emit_cfi): New.
7383 * dwarf2out.h: Update.
7384 * final.c (final): Remove CFI notes.
7385 (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
7386 dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
7387 Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
7388 * insn-notes.def (NOTE_INSN_CFI): New.
7389 (NOTE_INSN_CFI_LABEL): New.
7390 * rtl.h (union rtunion_def): Add rt_cfi member.
7391 (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
7392
647a1567
RH
73932011-07-07 Richard Henderson <rth@redhat.com>
7394
7395 * dwarf2cfi.c: New file.
7396 * Makefile.in (OBJS): Add it.
7397 (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
7398 * gengtype.c (open_base_files): Include dwarf2out.h.
7399 * coretypes.h (enum var_init_status): Move from ...
7400 * rtl.h: ... here.
7401 * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
7402 dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
7403 expand_builtin_dwarf_sp_column, init_return_column_size,
7404 expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
7405 dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
7406 lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
7407 old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
7408 stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
7409 compute_barrier_args_size, dwarf2out_args_size,
7410 dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
7411 queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
7412 compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
7413 queue_reg_save, dwarf2out_flush_queued_reg_saves,
7414 clobbers_queued_reg_save, reg_saved_in, cfa_temp,
7415 dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7416 dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7417 dwarf2out_frame_debug_cfa_expression,
7418 dwarf2out_frame_debug_cfa_restore,
7419 dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
7420 dwarf2out_frame_debug, dwarf2out_frame_debug_init,
7421 dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
7422 get_cfa_from_loc_descr): Move to dwarf2cfi.c.
7423 (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
7424 dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
7425 dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
7426 dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
7427 dw_loc_descr_node): Move to dwarf2out.h.
7428 (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
7429 mem_loc_descriptor): Export.
7430 (build_cfa_aligned_loc): Export. Take CFA as a parameter.
7431 (dwarf2out_frame_init): Extract CIE generation code to
7432 dwarf2cfi_frame_init.
7433
b286d9ed
EB
74342011-07-07 Eric Botcazou <ebotcazou@adacore.com>
7435
7436 PR target/49660
7437 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
7438 MASK_V8PLUS, remove commented out flag and reorder.
7439
c4603e7c
JJ
74402011-07-07 Jakub Jelinek <jakub@redhat.com>
7441
7442 PR c/49644
7443 * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
7444 one non-complex and one complex argument, call c_save_expr on both
7445 operands.
7446
81361831
MJ
74472011-07-07 Martin Jambor <mjambor@suse.cz>
7448
7449 PR middle-end/49495
7450 * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
7451 (verify_cgraph_node): Some functinality moved to
7452 verify_edge_corresponds_to_fndecl, call it.
7453
1e4b2746
JM
74542011-07-07 Joseph Myers <joseph@codesourcery.com>
7455
7456 * config.gcc (*local*): Remove.
7457 * doc/install-old.texi: Don't mention local configurations.
7458
d7ff1e11
JJ
74592011-07-07 Jakub Jelinek <jakub@redhat.com>
7460
7461 PR debug/49522
7462 * df-problems.c (dead_debug_reset): Remove dead_debug_uses
7463 referencing debug insns that have been reset.
7464 (dead_debug_insert_before): Don't assert reg is non-NULL,
7465 instead return immediately if it is NULL.
7466
2492731a
JM
74672011-07-07 Joseph Myers <joseph@codesourcery.com>
7468
f9610d20 7469 * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
2492731a 7470
9d9c740d
BS
74712011-07-07 Bernd Schmidt <bernds@codesourcery.com>
7472
7473 * hw-doloop.c: New file.
7474 * hw-doloop.h: New file.
7475 * Makefile.in (OBJS): Add hw-doloop.o.
7476 (hw-doloop.o): New rule.
7477 ($(obj_out_file)): Add hw-doloop.h dependency.
7478 * config/bfin/bfin.c: Include "hw-doloop.h".
7479 (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
7480 (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
7481 (hwloop_optimize): Renamed from bfin_optimize_loop. Argument
7482 type changed to hwloop_info. Return bool, true if the loop was
7483 successfully optimized. Remove code that was moved to
7484 hw-doloop.c, and adjust other parts.
7485 (hwloop_fail): New static function, containing parts that used
7486 to be in bfin_optimize_loop.
7487 (bfin_discover_loop, bfin_discover_loops, free_loops,
7488 bfin_reorder_loops): Remove.
7489 (hwloop_pattern_reg): New static function.
7490 (bfin_doloop_hooks): New variable.
7491 (bfin_reorg_loops): Remove most code, call reorg_loops.
7492 * config/bfin/bfin.md (doloop_end splitter): Also enable if
7493 loop counter is a memory_operand.
7494
f0ea7581
L
74952011-07-07 H.J. Lu <hongjiu.lu@intel.com>
7496
f9610d20 7497 * config.gcc: Support --with-multilib-list for x86 Linux targets.
f0ea7581
L
7498
7499 * configure.ac: Mention x86-64 for --with-multilib-list.
7500 * configure: Regenerated.
7501
7502 * config/i386/gnu-user64.h (SPEC_64): Support x32.
7503 (SPEC_32): Likewise.
7504 (ASM_SPEC): Likewise.
7505 (LINK_SPEC): Likewise.
7506 (TARGET_THREAD_SSP_OFFSET): Likewise.
7507 (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
7508 (SPEC_X32): New.
7509
7510 * config/i386/i386.h (TARGET_X32): New.
7511 (TARGET_LP64): New.
7512 (LONG_TYPE_SIZE): Likewise.
7513 (POINTER_SIZE): Likewise.
7514 (POINTERS_EXTEND_UNSIGNED): Likewise.
7515 (OPT_ARCH64): Support x32.
7516 (OPT_ARCH32): Likewise.
7517
7518 * config/i386/i386.opt (mx32): New.
7519
7520 * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
7521 (GLIBC_DYNAMIC_LINKERX32): Likewise.
7522 * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
7523 (GLIBC_DYNAMIC_LINKERX32): Likewise.
7524
7525 * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
7526 (BIONIC_DYNAMIC_LINKERX32): Likewise.
7527 (GNU_USER_DYNAMIC_LINKERX32): Likewise.
7528
7529 * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
7530
f9610d20 7531 * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
f0ea7581
L
7532
7533 * doc/invoke.texi: Document -mx32.
7534
38460025
RS
75352011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
7536
7537 * doc/invoke.texi (mwords-little-endian): Deprecate.
7538 * config/arm/arm.opt (mwords-little-endian): Likewise.
7539 * config/arm/arm.c (arm_option_override): Warn about the deprecation
7540 of -mwords-little-endian.
7541
3f125532
RS
75422011-07-07 Richard Sandiford <richard.sandiford@linaro.org>
7543
7544 * reload1.c (choose_reload_regs): Use mode sizes to check whether
7545 an old reload register completely defines the required value.
7546
bbc210ab
RG
75472011-07-07 Richard Guenther <rguenther@suse.de>
7548
7549 * fold-const.c (fold_unary_loc): Do not strip sign-changes
7550 for NEGATE_EXPR.
7551
29c5134a
RG
75522011-07-07 Richard Guenther <rguenther@suse.de>
7553
7554 * tree-vrp.c (simplify_conversion_using_ranges): New function.
7555 (simplify_stmt_using_ranges): Call it.
7556
0816a42a
KT
75572011-07-07 Kai Tietz <ktietz@redhat.com>
7558
7559 * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
7560 (lookup_logical_inverted_value): Likewise.
7561 (simplify_bitwise_binary_1): Likewise.
7562 (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
7563
3ce9f090
JM
75642011-07-07 Joseph Myers <joseph@codesourcery.com>
7565
7566 * gcc.c (%[Spec]): Don't document.
7567 (struct spec_list): Update comment.
7568 (do_spec_1): Don't handle %[Spec].
7569 * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
7570
41dfca87
JM
75712011-07-07 Joseph Myers <joseph@codesourcery.com>
7572
7573 * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
7574 default based on TARGET_ASM_NAMED_SECTION.
7575 * common/common-target.def (have_named_sections): Default to true.
7576 * common/config/default-common.c: Don't include tm.h.
7577 * common/config/picochip/picochip-common.c
7578 (TARGET_HAVE_NAMED_SECTIONS): Don't define.
7579 * common/config/m32c/m32c-common.c: Remove.
7580 * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
f9610d20
UB
7581 * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7582 * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7583 * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 7584 * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
f9610d20
UB
7585 * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7586 * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
41dfca87 7587
19c44640
JJ
75882011-07-07 Jakub Jelinek <jakub@redhat.com>
7589
7590 PR middle-end/49640
f9610d20
UB
7591 * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
7592 and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
19c44640 7593
891a2e42
RO
75942011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7595
7596 PR libmudflap/49550
7597 * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
7598
fbdd5d87
RO
75992011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7600
7601 PR target/39150
7602 * configure.ac (gcc_cv_as_hidden): Also accept
7603 x86_64-*-solaris2.1[0-9]*.
7604 (gcc_cv_as_cfi_directive): Likewise.
7605 (gcc_cv_as_comdat_group_group): Likewise.
7606 (set_have_as_tls): Likewise.
7607 * configure: Regenerate.
7608 * config.gcc (i[34567]86-*-solaris2*): Also handle
7609 x86_64-*-solaris2.1[0-9]*.
7610 * config.host (i[34567]86-*-solaris2*): Likewise.
7611 * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
7612 * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
7613 [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
7614 (TARGET_LD_EMULATION): Use it.
7615 * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
7616 (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
7617 * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
7618 (ASM_CPU64_DEFAULT_SPEC): Define.
7619 (ASM_CPU_SPEC): Use %(asm_cpu_default).
7620 (ASM_SPEC): Redefine.
7621 (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
7622 * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
f9610d20 7623 * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
fbdd5d87
RO
7624 (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
7625 configuration.
7626 (Specific, x86_64-*-solaris2.1[0-9]*): Document.
7627
fcf7471a
RO
76282011-07-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7629
7630 * config/sol2.h (ASM_SPEC): Split into ...
7631 (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
7632 * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
7633 * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
7634 (ASM_SPEC): Use ASM_SPEC_BASE.
7635 * config/sparc/sol2.h (ASM_SPEC): Redefine.
7636
1e6a67d1 76372011-07-07 Georg-Johann Lay <avr@gjlay.de>
f9610d20 7638
1e6a67d1
GJL
7639 * config/avr/avr.md (*reload_insi): Change predicate #1 to
7640 const_int_operand. Ditto for peep2 producing this insn.
7641 Add argument to output_reload_insisf call.
7642 (*movsi,*movsf): Add argument to output_movsisf call.
7643 (*reload_insf): New insn and new peep2 to produce it.
7644 * config/avr/avr-protos.h (output_movsisf): Change prototype.
7645 (output_reload_insisf): Change prototype.
7646 * config/avr/avr.c (avr_asm_len): New function.
7647 (output_reload_insisf): Rewrite.
7648 (output_movsisf): Change prototype. output_reload_insisf for
7649 all CONST_INT and CONST_DOUBLE. ALlow moving 0.0f to memory.
7650 (adjust_insn_length): Add argument to output_movsisf and
7651 output_reload_insisf call.
7652
6a4bdc79
BS
76532011-07-07 Bernd Schmidt <bernds@codesourcery.com>
7654
7655 * emit-rtl.c (paradoxical_subreg_p): New function.
7656 * rtl.h (paradoxical_subreg_p): Declare.
7657 * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
7658 apply_distributive_law, simplify_comparison, simplify_set): Use it.
7659 * cse.c (record_jump_cond, cse_insn): Likewise.
7660 * expr.c (force_operand): Likewise.
7661 * rtlanal.c (num_sign_bit_copies1): Likewise.
7662 * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
7663 * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
7664 (push_reload): Use precision to check for paradoxical subregs.
7665 * expmed.c (extract_bit_field_1): Likewise.
7666
46c9550f
BS
7667 * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
7668 * combine.c (set_nonzero_bits_and_sign_copies): Use it.
7669 (find_split-point, combine_simplify_rtx, simplify_if_then_else,
7670 simplify_set, simplify_logical, expand_compound_operation,
7671 make_extraction, force_to_mode, if_then_else_cond, extended_count,
7672 try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
7673 record_value_for_reg): Likewise.
7674 * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
7675 * simplify-rtx. c (simplify_unary_operation_1,
7676 simplify_binary_operation_1, simplify_const_relational_operation):
7677 Likewise.
7678
5511bc5a
BS
7679 * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
7680 instead of GET_MODE_BITSIZE where appropriate.
7681 * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
7682 num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
7683 init_num_sign_bit_copies_in_rep): Likewise.
7684 * cse.c (fold_rtx, cse_insn): Likewise.
7685 * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
7686 * simplify-rtx.c (simplify_unary_operation_1,
7687 simplify_const_unary_operation, simplify_binary_operation_1,
7688 simplify_const_binary_operation, simplify_ternary_operation,
7689 simplify_const_relational_operation, simplify_subreg): Likewise.
7690 * combine.c (try_combine, find_split_point, combine_simplify_rtx,
7691 simplify_if_then_else, simplify_set, expand_compound_operation,
7692 expand_field_assignment, make_extraction, if_then_else_cond,
7693 make_compound_operation, force_to_mode, make_field_assignment,
7694 reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
7695 extended_count, try_widen_shift_mode, simplify_shift_const_1,
7696 simplify_comparison, record_promoted_value, simplify_compare_const,
7697 record_dead_and_set_regs_1): Likewise.
7698
d58c1a38
BS
7699 Revert:
7700 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
7701 shift_truncation_mask hook instead of performing modulo by width.
7702 Compare against mode precision, not bitsize.
d58c1a38 7703 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 7704 Use shift_truncation_mask instead of constructing the value manually.
d58c1a38 7705
76594d53
MM
77062011-07-06 Michael Meissner <meissner@linux.vnet.ibm.com>
7707
7708 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
7709 declaration.
7710 (rs6000_save_toc_in_prologue_p): Ditto.
7711
7712 * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
7713 up the static chain (r11) during indirect function calls.
7714 (-msave-toc-indirect): New undocumented debug switch.
7715
7716 * config/rs6000/rs6000.c (struct machine_function): Add
7717 save_toc_in_prologue field to note whether the prologue needs to
7718 save the TOC value in the reserved stack location.
7719 (rs6000_emit_prologue): Use TOC_REGNUM instead of 2. If we need
7720 to save the TOC in the prologue, do so.
7721 (rs6000_trampoline_init): Don't allow creating AIX style
7722 trampolines if -mno-r11 is in effect.
7723 (rs6000_call_indirect_aix): New function to create AIX style
7724 indirect calls, adding support for -mno-r11 to suppress loading
7725 the static chain, and saving the TOC in the prologue instead of
7726 the call body.
7727 (rs6000_save_toc_in_prologue_p): Return true if we are saving the
7728 TOC in the prologue.
7729
7730 * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
7731 register numbers.
7732 (TOC_REGNUM): Ditto.
7733 (STATIC_CHAIN_REGNUM): Ditto.
7734 (ARG_POINTER_REGNUM): Ditto.
7735 (SFP_REGNO): Delete, unused.
7736 (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
7737 function descriptor offsets.
7738 (TOC_SAVE_OFFSET_64BIT): Ditto.
7739 (AIX_FUNC_DESC_TOC_32BIT): Ditto.
7740 (AIX_FUNC_DESC_TOC_64BIT): Ditto.
7741 (AIX_FUNC_DESC_SC_32BIT): Ditto.
7742 (AIX_FUNC_DESC_SC_64BIT): Ditto.
f9610d20
UB
7743 (ptrload): New mode attribute for the appropriate load of a pointer.
7744 (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
76594d53
MM
7745 (call_indirect_aix64): Ditto.
7746 (call_value_indirect_aix32): Ditto.
7747 (call_value_indirect_aix64): Ditto.
7748 (call_indirect_nonlocal_aix32_internal): Ditto.
7749 (call_indirect_nonlocal_aix32): Ditto.
7750 (call_indirect_nonlocal_aix64_internal): Ditto.
7751 (call_indirect_nonlocal_aix64): Ditto.
7752 (call): Rewrite AIX indirect function calls. Add support for
7753 eliminating the static chain, and for moving the save of the TOC
7754 to the function prologue.
7755 (call_value): Ditto.
7756 (call_indirect_aix<ptrsize>): Ditto.
7757 (call_indirect_aix<ptrsize>_internal): Ditto.
7758 (call_indirect_aix<ptrsize>_internal2): Ditto.
7759 (call_indirect_aix<ptrsize>_nor11): Ditto.
7760 (call_value_indirect_aix<ptrsize>): Ditto.
7761 (call_value_indirect_aix<ptrsize>_internal): Ditto.
7762 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7763 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7764 (call_nonlocal_aix32): Relocate in the rs6000.md file.
7765 (call_nonlocal_aix64): Ditto.
7766
7767 * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
7768 -mno-r11 documentation.
7769
49d6830d
JW
77702011-07-06 Jonathan Wakely <jwakely.gcc@gmail.com>
7771
7772 PR other/49658
7773 * doc/extend.texi (Compound Literals): Fix typo.
7774
c884924f
JG
77752011-07-06 James Greenhalgh <james.greenhalgh@arm.com>
7776
f9610d20 7777 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
c884924f 7778
bf588455
BS
77792011-07-06 Basile Starynkevitch <basile@starynkevitch.net>
7780
7781 * configure.ac (plugin-version.h): Generate
7782 GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
7783 GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
7784 macros.
7785
7786 * configure: Regenerate.
7787
7788 * doc/plugins.texi (Building GCC plugins): Mention
7789 GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
7790
d0edd768
BS
77912011-07-06 Bernd Schmidt <bernds@codesourcery.com>
7792
7793 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
7794 * combine.c (make_extraction, gen_lowpart_or_truncate,
7795 apply_distributive_law, simplify_comparison,
7796 reg_truncated_to_mode, record_truncated_value): Use it.
7797 * cse.c (notreg_cost): Likewise.
7798 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
7799 * expr.c (convert_move, convert_modes): Likewise.
7800 * optabs.c (expand_binop, expand_unop): Likewise.
7801 * postreload.c (move2add_last_label): Likewise.
7802 * regmove.c (optimize_reg_copy_3): Likewise.
7803 * rtlhooks.c (gen_lowpart_general): Likewise.
7804 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7805
e5cabdfb
JM
78062011-07-06 Joseph Myers <joseph@codesourcery.com>
7807
7808 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
7809
2d0c270f
BS
78102011-07-06 Bernd Schmidt <bernds@codesourcery.com>
7811
7812 * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
7813 * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
7814 (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
7815 (simplify_const_unary_operation, simplify_binary_operation_1,
f9610d20
UB
7816 simplify_const_binary_operation, simplify_const_relational_operation):
7817 Use them. Use GET_MODE_MASK for masking and sign-extensions.
2d0c270f
BS
7818 * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
7819 combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
7820 simplify_shift_const_1, simplify_comparison): Likewise.
7821 * expr.c (convert_modes): Likewise.
7822 * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
f9610d20 7823 * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
2d0c270f
BS
7824 * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
7825
f9c08345
BS
7826 * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
7827
6d6c9525
RG
78282011-07-06 Richard Guenther <rguenther@suse.de>
7829
7830 PR tree-optimization/49645
7831 * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
7832 register variables.
7833 * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
7834 in type qualification here ...
7835 (copy_reference_ops_from_ref): ... not here.
7836 (vn_reference_lookup_3): ... or here.
7837 (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
7838 (vn_reference_lookup): Do the lookup with a valueized ao-ref.
7839
d1a6ec10
ILT
78402011-07-06 Ian Lance Taylor <iant@google.com>
7841
7842 * doc/install.texi (Configuration): It's
7843 --enable-gnu-indirect-function, not --enable-indirect-function.
7844
ff3e08af
BS
78452011-07-06 Bernd Schmidt <bernds@codesourcery.com>
7846
7847 * simplify-rtx.c (simplify_const_binary_operation): Use the
f9610d20
UB
7848 shift_truncation_mask hook instead of performing modulo by width.
7849 Compare against mode precision, not bitsize.
ff3e08af 7850 * combine.c (combine_simplify_rtx, simplify_shift_const_1):
f9610d20 7851 Use shift_truncation_mask instead of constructing the value manually.
ff3e08af 7852
a369b639
L
78532011-07-06 H.J. Lu <hongjiu.lu@intel.com>
7854
7855 PR middle-end/47383
7856 * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
7857 address computation and convert to address_mode if needed.
7858
1a072294
RG
78592011-07-06 Richard Guenther <rguenther@suse.de>
7860
7861 * tree.c (build_common_tree_nodes_2): Merge with
7862 build_common_tree_nodes.
7863 * tree.h (build_common_tree_nodes): Adjust prototype.
7864 (build_common_tree_nodes_2): Remove.
7865 * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
7866 * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
7867
f2c3a8ce
JJ
78682011-07-05 Jakub Jelinek <jakub@redhat.com>
7869
7870 PR tree-optimization/49618
7871 * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
7872 t recurse on the decl.
7873 <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
7874 return true if expr isn't known to be defined in current
7875 TU or some other LTO partition.
7876
3aa439ed
MM
78772011-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
7878
7879 * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
7880 override CASE_VALUES_THRESHOLD.
7881
7882 * stmt.c (toplevel): Include params.h.
7883 (case_values_threshold): Use the --param case-values-threshold
7884 value if non-zero, otherwise use machine dependent value.
7885 (expand_case): Use case_values_threshold.
7886
7887 * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
7888
7889 * doc/invoke.texi (--param case-values-threshold): Document.
7890
49956667
RH
78912011-07-05 Richard Henderson <rth@redhat.com>
7892
7893 * dwarf2out.c (dwarf2out_cfi_label): Make static.
7894 (dwarf2out_flush_queued_reg_saves): Make static.
7895 (dwarf2out_reg_save): Remove.
7896 (dwarf2out_return_save): Remove.
7897 (dwarf2out_return_reg): Remove.
7898 (dwarf2out_reg_save_reg): Remove.
7899 (dwarf2out_def_cfa): Merge into ...
7900 (dwarf2out_frame_init): ... here.
7901 * dwarf2out.h, tree.h: Remove declarations as necessary.
7902
9f2ff8e5
RH
79032011-07-05 Richard Henderson <rth@redhat.com>
7904
c2b40eba
RH
7905 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
7906 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7907 (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
7908 the alloc insn.
7909
7d3c6cd8
RH
7910 * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
7911 (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
7912 (process_epilogue): Don't call dwarf2out_def_cfa.
7913
5f740973
RH
7914 * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
7915 indicate the return address save.
7916 (process_cfa_register): Likewise.
7917
a1880147
RH
7918 * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
7919 (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
7920
9f2ff8e5
RH
7921 * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
7922 for ar.pfs save at alloc insn.
7923
ddc6e7d6
RH
79242011-07-05 Richard Henderson <rth@redhat.com>
7925
7926 * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
7927 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
7928 (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
7929 stack pointer save.
7930 (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
7931 (arm_unwind_emit): Walk REG_NOTES for unwinding notes. Emit
7932 proper unwind info for a REG_CFA_REGISTER save of stack pointer.
7933 * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
7934
a3515605
RH
79352011-07-05 Richard Henderson <rth@redhat.com>
7936
7937 * config/vax/vax.md (define_c_enum unspecv): New. Define the
7938 VUNSPEC_* constants here instead of via define_constants.
7939 (VUNSPEC_PEM): New constant.
7940 (procedure_entry_mask): New insn.
7941 (prologue): New expander.
7942 * config/vax/vax.c (vax_add_reg_cfa_offset): New.
7943 (vax_expand_prologue): Rename from vax_output_function_prologue;
7944 emit rtl instead of text.
7945 (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7946 (print_operand): Add 'x' prefix.
7947
a7adbbcb
L
79482011-07-05 H.J. Lu <hongjiu.lu@intel.com>
7949
7950 PR middle-end/47715
7951 * calls.c (precompute_register_parameters): Promote the function
7952 argument before checking non-legitimate constant.
7953
cec11ec4
SP
79542011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7955
7956 PR tree-optimization/47654
7957 * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
7958 (lst_do_strip_mine_loop): Return an int.
7959 (lst_do_strip_mine): Same.
7960 (scop_do_strip_mine): Same.
7961 (scop_do_block): Loop blocking should strip-mine at least two loops.
7962 * graphite-interchange.c (lst_interchange_select_outer): Return an int.
7963 (scop_do_interchange): Same.
7964 * graphite-poly.h (scop_do_interchange): Update declaration.
7965 (scop_do_strip_mine): Same.
7966
9b0d314a
SP
79672011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7968
7969 * graphite-clast-to-gimple.c (precision_for_value): Removed.
7970 (precision_for_interval): Removed.
7971 (gcc_type_for_interval): Use mpz_sizeinbase.
7972
81d6d080
SP
79732011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7974
7975 * graphite-ppl.h (value_max): Correct computation of max.
7976
369e3430
SP
79772011-07-05 Sebastian Pop <sebastian.pop@amd.com>
7978
7979 * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
7980
fce5dddd
RG
79812011-07-05 Richard Guenther <rguenther@suse.de>
7982
7983 * c-decl.c (c_init_decl_processing): Defer building common
7984 tree nodes to c_common_nodes_and_builtins.
7985
12037899
RL
79862011-07-05 Razya Ladelsky <razya@il.ibm.com>
7987
7988 PR tree-optimization/49580
f9610d20 7989 * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
12037899 7990 the loop's number of iterations.
f9610d20
UB
7991 * tree-parloops.c (transform_to_exit_first_loop): Add the
7992 handling of the loop's number of iterations before the call
12037899 7993 to gimple_duplicate_sese_tail.
28b21ebb 7994 Insert the stmt caclculating the new rhs of the loop's
12037899
RL
7995 condition stmt to the preheader instead of iters_bb.
7996
509a31f8
L
79972011-07-05 H.J. Lu <hongjiu.lu@intel.com>
7998
7999 PR rtl-optimization/47449
8000 * fwprop.c (forward_propagate_subreg): Don't propagate hard
8001 register nor zero/sign extended hard register.
8002
39becbac
RG
80032011-07-05 Richard Guenther <rguenther@suse.de>
8004
8005 PR tree-optimization/49518
8006 PR tree-optimization/49628
8007 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
8008 irrelevant and invariant data-references.
8009 (vect_analyze_data_ref_access): For invariant loads clear the
8010 group association.
8011
15923c25
JJ
80122011-07-04 Jakub Jelinek <jakub@redhat.com>
8013
af421d9c
JJ
8014 PR rtl-optimization/49619
8015 * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
8016 pass VOIDmode as op0_mode to recursive call, and return temp even
8017 when different from tor, just if it is not IOR of the original
8018 PLUS arguments.
8019
707f9919
JJ
8020 PR rtl-optimization/49472
8021 * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
8022 negating MULT, negate the second operand instead of first.
8023 (simplify_binary_operation_1) <case MULT>: If one operand is
f9610d20
UB
8024 a NEG and the other is MULT, don't attempt to optimize by negation
8025 of the MULT operand if it only moves the NEG operation around.
707f9919 8026
15923c25
JJ
8027 PR debug/49602
8028 * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
8029 get_current_def return value if it can't be trusted to be
8030 the current value of the variable in the current bb.
8031
0d5e0c1b
UB
80322011-07-04 Uros Bizjak <ubizjak@gmail.com>
8033
8034 PR target/49600
8035 * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
8036 general register to memory for !TARGET_INTER_UNIT_MOVES.
8037
db297e20
GJL
80382011-07-04 Georg-Johann Lay <avr@gjlay.de>
8039
8040 PR target/44643
8041 * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
8042 instead of TREE_READONLY.
8043
f451d14d
GJL
80442011-07-04 Georg-Johann Lay <avr@gjlay.de>
8045
8046 * doc/extend.texi (AVR Built-in Functions): Update documentation
8047 of __builtin_avr_fmul*.
0d5e0c1b 8048 * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
f451d14d
GJL
8049 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
8050 * config/avr/avr.md (fmul): Rename to fmul_insn.
8051 (fmuls): Rename to fmuls_insn.
8052 (fmulsu): Rename to fmulsu_insn.
8053 (fmul,fmuls,fmulsu): New expander.
8054 (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
8055 * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
8056 * config/avr/libgcc.S (__fmul): New function.
8057 (__fmuls): New function.
8058 (__fmulsu,__fmulsu_exit): New function.
8059
30f1e6de
RG
80602011-07-04 Richard Guenther <rguenther@suse.de>
8061
8062 PR tree-optimization/49615
8063 * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
8064 basic-block index check.
8065
6dab9931
GJL
80662011-07-04 Georg-Johann Lay <avr@gjlay.de>
8067
8068 * longlong.h (count_leading_zeros, count_trailing_zeros,
8069 COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
8070 resp. 64.
8071
b5066d8b
IR
80722011-07-03 Ira Rosen <ira.rosen@linaro.org>
8073
8074 PR tree-optimization/49610
8075 * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
8076 a basic block.
8077
bc712852
EB
80782011-07-02 Eric Botcazou <ebotcazou@adacore.com>
8079 Olivier Hainque <hainque@adacore.com>
8080 Nicolas Setton <setton@adacore.com>
8081
8082 * tree.h (TYPE_ARTIFICIAL): New flag.
8083 * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
8084 the DIE of the type if it is artificial.
8085 (gen_array_type_die): Likewise.
8086 (gen_enumeration_type_die): Likewise.
8087 (gen_struct_or_union_type_die): Likewise.
8088 * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
8089 * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
8090
8b1bdcc5
JJ
80912011-07-01 Jakub Jelinek <jakub@redhat.com>
8092
8093 * tree-object-size.c (pass_through_call): Handle
8094 BUILT_IN_ASSUME_ALIGNED.
8095
06e88d73
MJ
80962011-07-01 Martin Jambor <mjambor@suse.cz>
8097
8098 * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
8099
6bbec3e1
L
81002011-07-01 H.J. Lu <hongjiu.lu@intel.com>
8101
8102 PR middle-end/48016
8103 * explow.c (update_nonlocal_goto_save_area): Use proper mode
8104 for stack save area.
8105 * function.c (expand_function_start): Likewise.
8106
e8fdf1cd
RG
81072011-07-01 Richard Guenther <rguenther@suse.de>
8108
8109 PR middle-end/49596
8110 * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
8111 may have unknown refs.
8112
80d3dd38
KT
81132011-07-01 Kai Tietz <ktietz@redhat.com>
8114
8115 * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
8116
179fc656
RO
81172011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8118
8119 * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
8120 * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
8121 (Specific, mips-sgi-irix6): Likewise.
8122
14a393a3
RO
81232011-07-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8124
8125 PR libmudflap/49549
8126 * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
8127
3aecd443
JJ
81282011-07-01 Jakub Jelinek <jakub@redhat.com>
8129
8130 * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
8131 [idx]= and [idx1 ... idx2]= before initializers if needed for
8132 array initializers.
8133
7474f719
CL
81342011-07-01 Chen Liqin <liqin.gcc@gmail.com>
8135
8136 * config.gcc (score-*-elf): Remove score7.o.
8137 * config/score/t-score-elf: Likewise.
8138 * config/score/score.c: Merge score7 to score.c and
8139 remove forwarding functions.
8140 * config/score/score7.c: Deleted.
8141 * config/score/score7.h: Deleted.
8142
ab70d825
RG
81432011-07-01 Richard Guenther <rguenther@suse.de>
8144
8145 PR tree-optimization/49603
0d5e0c1b 8146 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
ab70d825 8147
1ac93f10
MJ
81482011-06-30 Martin Jambor <mjambor@suse.cz>
8149
8150 * tree-sra.c (struct access): Rename total_scalarization to
8151 grp_total_scalarization
8152 (completely_scalarize_var): New function.
8153 (sort_and_splice_var_accesses): Set total_scalarization in the
8154 representative access.
8155 (analyze_access_subtree): Propagate total scalarization accross the
8156 tree, no holes in totally scalarized trees, simplify coverage
8157 computation.
8158 (analyze_all_variable_accesses): Call completely_scalarize_var instead
8159 of completely_scalarize_record.
8160
97f309c3
RH
81612011-06-30 Richard Henderson <rth@redhat.com>
8162
8163 * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
8164 (TARGET_DEEP_BRANCH_PREDICTION): Remove.
8165 * config/i386/i386.c: Don't include dwarf2out.h.
8166 (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
8167 (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
8168 all code dead thereafter. Don't do dwarf2out_flush_queued_reg_saves.
8169 (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
8170 (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
8171
ef284364
RH
81722011-06-30 Richard Henderson <rth@redhat.com>
8173
8174 * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
8175 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8176 * final.c (final_scan_insn): Look for it, and invoke
8177 dwarf2out_frame_debug before the insn if found.
8178
c8412f97
RH
81792011-06-30 Richard Henderson <rth@redhat.com>
8180
8181 * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
8182 as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
8183
e3f903d8
RH
81842011-06-30 Richard Henderson <rth@redhat.com>
8185
8186 * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
8187 Define a vector of this type.
8188 (regs_saved_in_regs): Use a VEC.
8189 (num_regs_saved_in_regs): Remove.
8190 (compare_reg_or_pc): New.
8191 (record_reg_saved_in_reg): Split out from...
8192 (dwarf2out_flush_queued_reg_saves): ... here.
8193 (clobbers_queued_reg_save): Update for VEC.
8194 (reg_saved_in): Likewise.
8195 (dwarf2out_frame_debug_init): Likewise.
8196 (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
8197 (dwarf2out_frame_debug_cfa_register): Likewise.
8198
e2c9010a
EB
81992011-06-30 Eric Botcazou <ebotcazou@adacore.com>
8200
8201 PR tree-optimization/49572
8202 * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
8203 type of the RHS instead of that of the LHS for the expression type.
8204
dbb07bbc
EB
82052011-06-30 Eric Botcazou <ebotcazou@adacore.com>
8206
8207 * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
8208 unconditionally.
8209
1565af08
RG
82102011-06-30 Richard Guenther <rguenther@suse.de>
8211
8212 * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
8213 * tree-ssa-structalias.c (create_variable_info_for): Do not
8214 add initial constraints for non-var-decls. Properly handle
8215 globals in other ltrans partitions.
8216 (intra_create_variable_infos): Manually create constraints for
8217 the fake no-alias parameter.
8218 (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
8219 and assert there are no clones.
8220
42373e0b
RG
82212011-06-30 Richard Guenther <rguenther@suse.de>
8222
8223 PR tree-optimization/46787
8224 * tree-data-ref.c (dr_address_invariant_p): Remove.
8225 (find_data_references_in_stmt): Invariant accesses are ok now.
0d5e0c1b 8226 * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
42373e0b
RG
8227 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8228 invariant loads.
8229
7aa62ea1
MJ
82302011-06-30 Martin Jambor <mjambor@suse.cz>
8231
8232 PR tree-optimization/49094
8233 * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
8234 (build_accesses_from_assign): Use it.
8235
f60f32b3
JJ
82362011-06-30 Jakub Jelinek <jakub@redhat.com>
8237
d9048d16
JJ
8238 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
8239 handling of BUILT_IN_ASSUME_ALIGNED.
8240
f60f32b3
JJ
8241 PR debug/49364
8242 * dwarf2out.c (output_abbrev_section): Don't return early
8243 if abbrev_die_table_in_use is 1.
8244 (dwarf2out_finish): Instead don't call output_abbrev_section
8245 nor emit abbrev_section_label in that case.
8246
7cce15d4
NC
82472011-06-30 Nick Clifton <nickc@redhat.com>
8248
8249 * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
8250 for the V850E.
8251
ce7e54ff
JJ
82522011-06-30 Jakub Jelinek <jakub@redhat.com>
8253
8254 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
8255 handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
8256
83197f37
IR
82572011-06-30 Ira Rosen <ira.rosen@linaro.org>
8258
8259 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
8260 both pattern and original statements if necessary.
8261 (vect_transform_loop): Likewise.
8262 * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
8263 * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
8264 Mark the pattern statement only if the original statement doesn't
8265 have its own uses.
8266 (process_use): Call vect_mark_relevant with additional parameter.
8267 (vect_mark_stmts_to_be_vectorized): Likewise.
8268 (vect_get_vec_def_for_operand): Use vectorized pattern statement.
8269 (vect_analyze_stmt): Handle both pattern and original statements
8270 if necessary.
8271 (vect_transform_stmt): Don't store vectorized pattern statement
8272 in the original statement.
8273 (vect_is_simple_use_1): Use related pattern statement only if the
8274 original statement is irrelevant.
8275 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8276
dbb07bbc 82772011-06-29 Changpeng Fang <changpeng.fang@amd.com>
5c0d88e6 8278
dbb07bbc
EB
8279 * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
8280 option.
8281 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
8282 entry.
5c0d88e6
CF
8283 (TARGET_AVX128_OPTIMAL): New definition.
8284 * config/i386/i386.c (initial_ix86_tune_features): Initialize
8285 X86_TUNE_AVX128_OPTIMAL entry.
8286 (ix86_option_override_internal): Enable the generation
8287 of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
8288 (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
8289 (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
8290
931050d0
EB
82912011-06-29 Eric Botcazou <ebotcazou@adacore.com>
8292
8293 PR tree-optimization/49539
8294 * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
8295 names by means of stmt_references_abnormal_ssa_name.
8296 (associate_plusminus): Call can_propagate_from before propagating
8297 from definition statements.
8298 (ssa_forward_propagate_and_combine): Remove superfluous newline.
8299
dfedbe40
RG
83002011-06-29 Richard Guenther <rguenther@suse.de>
8301
8302 * doc/invoke.texi: Document -scev dump modifier.
8303 * tree-pass.h (TDF_SCEV): New dump flag.
8304 * tree-dump.c (dump_option_value_in): Add scev.
8305 * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
8306 * tree-scalar-evolution.c: Likewise.
8307
3a86cfeb
NS
83082011-06-29 Nathan Sidwell <nathan@codesourcery.com>
8309
8310 * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
8311 (cxa_type_match): Correct declaration.
0d5e0c1b
UB
8312 (__gnu_unwind_pr_common): Reconstruct additional indirection
8313 when __cxa_type_match returns succeeded_with_ptr_to_base.
3a86cfeb 8314
f3678bfb
UW
83152011-06-29 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8316
8317 PR rtl-optimization/49114
8318 * reload.c (struct replacement): Remove SUBREG_LOC member.
8319 (push_reload): Do not set it.
8320 (push_replacement): Likewise.
8321 (subst_reload): Remove dead code.
8322 (copy_replacements): Remove assertion.
8323 (copy_replacements_1): Do not handle SUBREG_LOC.
8324 (move_replacements): Likewise.
8325 (find_replacement): Remove dead code. Use reload_adjust_reg_for_mode.
8326 Detect subregs via recursive descent instead of via SUBREG_LOC.
8327
433ba0a5 83282011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 8329
433ba0a5
GJL
8330 * config/avr/avr.c (avr_encode_section_info): Dispatch to
8331 default_encode_section_info.
8332
73f6eabc
RS
83332011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
8334
8335 PR tree-optimization/49545
8336 * builtins.c (get_object_alignment_1): Update function comment.
8337 Do not use DECL_ALIGN for functions, but test
8338 TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
8339 * fold-const.c (get_pointer_modulus_and_residue): Don't check
8340 for functions here.
8341 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
8342
a0f33d3a
JJ
83432011-06-29 Jakub Jelinek <jakub@redhat.com>
8344
8345 PR debug/49567
0d5e0c1b
UB
8346 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
8347 non-MODE_INT modes instead of asserting the mode has MODE_INT class.
a0f33d3a 8348
946c8b23 83492011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 8350
946c8b23 8351 PR target/34734
0d5e0c1b 8352 * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
946c8b23
GJL
8353 about uninitialized data attributed 'progmem' from here...
8354 (avr_encode_section_info): ...to this new function.
8355 (TARGET_ENCODE_SECTION_INFO): New define.
8356 (avr_section_type_flags): For data in ".progmem.data", remove
8357 section flag SECTION_WRITE.
8358
9a63dee4 83592011-06-29 Georg-Johann Lay <avr@gjlay.de>
0d5e0c1b 8360
9a63dee4
GJL
8361 * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
8362 _xmulhisi3_exit.
8363 * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
8364 (__mulhisi3): Optimize if have MUL*. Use XJMP instead of rjmp.
8365 (__umulhisi3): Ditto.
8366 * config/avr/avr.md (mulhisi3): New insn expender.
8367 (umulhisi3): New insn expender.
8368 (*mulhisi3_call): New insn.
8369 (*umulhisi3_call): New insn.
8370
4374ce45
JM
83712011-06-28 Joseph Myers <joseph@codesourcery.com>
8372
8373 * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
8374
94759030
RH
83752011-06-28 Richard Henderson <rth@redhat.com>
8376
8377 * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop. Delete
8378 all code and arguments that handled pushes. Update all callers.
8379
d018b46e
RH
83802011-06-28 Richard Henderson <rth@redhat.com>
8381
8382 * config/arm/arm.c (arm_output_function_prologue): Don't call
8383 thumb1_output_function_prologue.
8384 (arm_expand_prologue): Avoid dead store.
8385 (number_of_first_bit_set): Use ctz_hwi.
8386 (thumb1_emit_multi_reg_push): New.
8387 (thumb1_expand_prologue): Merge thumb1_output_function_prologue
8388 to emit the entire prologue as rtl.
8389 (thumb1_output_interwork): Split out from
8390 thumb1_output_function_prologue.
8391 (thumb1_output_function_prologue): Remove.
8392 (arm_attr_length_push_multi): Handle thumb1.
8393 * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
8394 (prologue_thumb1_interwork): New.
8395 (*push_multi): Allow thumb1; use push_mult_memory_operand.
8396 * config/arm/predicates.md (push_mult_memory_operand): New.
8397
97269a23
EB
83982011-06-28 Eric Botcazou <ebotcazou@adacore.com>
8399
8400 * config/sparc/sync.md (*stbar): Delete.
8401 (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
8402
4a9206ce
EB
84032011-06-28 Eric Botcazou <ebotcazou@adacore.com>
8404
8405 * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
8406
6138f9bd
RO
84072011-06-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8408
8409 * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
8410 (TARGET_64BIT_DEFAULT): Define.
8411 * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
8412 of tm_file.
8413 * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
8414
a7d0d30f
JM
84152011-06-28 Joseph Myers <joseph@codesourcery.com>
8416
8417 * common.opt (in_lto_p): New Variable entry.
8418 * flags.h (in_lto_p): Move to common.opt.
8419 * gcc.c: Include params.h.
8420 (set_option_handlers): Also use common_handle_option and
8421 target_handle_option.
0d5e0c1b 8422 (main): Call global_init_params, finish_params and init_options_struct.
a7d0d30f
JM
8423 * opts.c (debug_type_names): Move from toplev.c.
8424 (print_filtered_help): Access quiet_flag through opts pointer.
0d5e0c1b
UB
8425 (common_handle_option): Return early in the driver for some options.
8426 Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
8427 opts pointer.
a7d0d30f
JM
8428 * toplev.c (in_lto_p): Move to common.opt.
8429 (debug_type_names): Move to opts.c.
8430 * Makefile.in (OBJS): Remove opts.o.
8431 (OBJS-libcommon-target): Add opts.o.
8432 (gcc.o): Update dependencies.
8433
420863a9
KT
84342011-06-28 Kai Tietz <ktietz@redhat.com>
8435
0d5e0c1b 8436 * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
420863a9 8437
0498a2be
RR
84382011-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8439
8440 * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
8441 with '=' constraint modifier.
8442 (*divdf3_vfp): Likewise.
8443 ("*mulsf3_vfp"): Likewise.
8444 ("*muldf3_vfp"): Likewise.
8445 ("*mulsf3negsf_vfp"): Likewise.
8446 ("*muldf3negdf_vfp"): Likewise.
8447
4a68b724
NC
84482011-06-28 Nick Clifton <nickc@redhat.com>
8449
8450 * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
8451 relaxation when performing an incremental link.
8452
72a32729
KT
84532011-06-28 Kai Tietz <ktietz@redhat.com>
8454
8455 * tree-ssa-math-opts.c (execute_optimize_bswap): Search
8456 within BB from last to first.
8457
88a00ef7
JM
84582011-06-28 Joseph Myers <joseph@codesourcery.com>
8459
8460 * genattr-common.c: New. Based on genattr.c.
8461 * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
8462 (MOSTLYCLEANFILES): Add insn-attr-common.h.
8463 (opts.o): Update dependencies.
8464 (.PRECIOUS): Add insn-attr-common.h.
8465 (simple_rtl_generated_h): Add insn-attr-common.h.
8466 (build/genattr-common.o): New.
8467 (genprogrtl): Add attr-common.
8468 * genattr.c (main): Include insn-attr-common.h. Don't generate
8469 definitions of DELAY_SLOTS or INSN_SCHEDULING.
0d5e0c1b 8470 * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
88a00ef7 8471
880962ac
GJL
84722011-06-28 Georg-Johann Lay <avr@gjlay.de>
8473
4a68b724 8474 * config.gcc (tm_file): Add elfos.h and avr/elf.h for
880962ac 8475 avr-*-* and avr-*-rtems* targets.
4a68b724 8476
880962ac
GJL
8477 * config/avr/elf.h: New file.
8478 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
8479 (TARGET_ASM_SELECT_SECTION): Define.
8480 (INIT_SECTION_ASM_OP): Undefine.
8481 (FINI_SECTION_ASM_OP): Undefine.
8482 (READONLY_DATA_SECTION_ASM_OP): Undefine.
8483 (PCC_BITFIELD_TYPE_MATTERS): Undefine.
8484 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
8485 * config/avr/avr.h:
8486 (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
8487 (TARGET_ASM_NAMED_SECTION): Move to elf.h.
8488 (MAX_OFILE_ALIGNMENT): Move to elf.h.
8489 (STRING_LIMIT): Move to elf.h.
8490 (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
8491 (ASM_DECLARE_OBJECT_NAME): Remove.
8492 (ESCAPES): Remove.
8493 (ASM_OUTPUT_SKIP): Remove.
8494 (DWARF2_DEBUGGING_INFO): Remove.
8495 (OBJECT_FORMAT_ELF): Remove.
8496 (USER_LABEL_PREFIX): Remove.
8497 (ASM_OUTPUT_EXTERNAL): Remove.
8498 (ASM_OUTPUT_ASCII): Remove.
8499 (TYPE_ASM_OP): Remove.
8500 (SIZE_ASM_OP): Remove.
8501 (WEAK_ASM_OP): Remove.
8502 (STRING_ASM_OP): Remove.
8503 (SET_ASM_OP): Remove.
8504 (ASM_WEAKEN_LABEL): Remove.
8505 (TYPE_OPERAND_FMT): Remove.
8506 (ASM_DECLARE_FUNCTION_SIZE): Remove.
8507 (ASM_FINISH_DECLARE_OBJECT): Remove.
8508 (NO_DOLLAR_IN_LABEL): Remove.
8509 (ASM_GENERATE_INTERNAL_LABEL): Remove.
8510 (ASM_OUTPUT_CASE_LABEL): Remove.
8511 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
8512 ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
8513 (gas_output_ascii): Remove.
8514 (gas_output_limited_string): Remove.
8515 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8516 * config/avr/avr-protos.h
8517 (gas_output_ascii): Remove prototye.
8518 (gas_output_limited_string): Remove prototype.
8519
a1b5eb93
RE
85202011-06-27 Richard Earnshaw <rearnsha@arm.com>
8521
8522 PR target/48637
8523 * arm.c (arm_print_operand): Allow sym+offset. Don't abort on invalid
8524 asm operands.
8525
310e71a8
JH
85262011-06-27 Jan Hubicka <jh@suse.cz>
8527
4a9206ce
EB
8528 * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
8529 node instead of references in node.
310e71a8 8530
171da07a
RH
85312011-06-27 Richard Henderson <rth@redhat.com>
8532
8533 * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
8534 * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
8535 inside ifdef.
8536
dc2a58da
JJ
85372011-06-27 Jakub Jelinek <jakub@redhat.com>
8538
56300785
JJ
8539 * c-decl.c (union lang_tree_node): Use it in chain_next expression.
8540
45d439ac
JJ
8541 * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
8542 * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
8543 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
8544 find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
8545 * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
8546 (evaluate_stmt, execute_fold_all_builtins): Handle
8547 BUILT_IN_ASSUME_ALIGNED.
8548 * tree-ssa-dce.c (propagate_necessity): Likewise.
8549 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8550 call_may_clobber_ref_p_1): Likewise.
8551 * builtins.c (is_simple_builtin, expand_builtin): Likewise.
8552 (expand_builtin_assume_aligned): New function.
8553 * doc/extend.texi (__builtin_assume_aligned): Document.
8554
dc2a58da
JJ
8555 PR debug/49544
8556 * cselib.c (promote_debug_loc): If cselib_preserve_constants
8557 and l has two DEBUG_INSN owned locs instead of just one, adjust
8558 the second location's setting_insn too.
8559
0d72f628
RO
85602011-06-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8561
8562 PR libmudflap/38738
8563 * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
8564
bebd619e
NC
85652011-06-27 Nick Clifton <nickc@redhat.com>
8566
0d5e0c1b
UB
8567 * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
8568 bit position of highest bit set into a count of the high zero bits.
bebd619e 8569
353b39fa
EB
85702011-06-27 Eric Botcazou <ebotcazou@adacore.com>
8571
8572 * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
8573
a7af037b
EB
85742011-06-27 Eric Botcazou <ebotcazou@adacore.com>
8575
8576 PR lto/48492
8577 * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
8578 to a NULL parent.
8579
1c86160a
RG
85802011-06-27 Richard Guenther <rguenther@suse.de>
8581
8582 PR tree-optimization/49394
8583 * passes.c (execute_one_pass): Restore current_pass after
8584 applying IPA transforms.
8585
5da49a9d
KT
85862011-06-27 Kai Tietz <ktietz@redhat.com>
8587
8588 * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
8589 out of type precision after operation.
0d5e0c1b
UB
8590 (find_bswap): Take for limit value the integer auto-promotion
8591 into account.
5da49a9d 8592
9242213f
EB
85932011-06-27 Eric Botcazou <ebotcazou@adacore.com>
8594
8595 * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
8596 forward scan as well.
8597
db8b22ef
TG
85982011-06-27 Tristan Gingold <gingold@adacore.com>
8599
8600 PR target/44241
8601 * config/vms/vms-protos.h: New file.
8602 * config/vms/vms-crtlmap.map: New file.
8603 * config/vms/vms.c: New file.
8604 * config/vms/make-crtlmap.awk: New file.
8605 * config/vms/vms-crtl.h: File removed.
8606 * config/vms/vms-crtl-64.h: File removed.
8607 * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
8608 * config/alpha/vms64.h: Do not include vms-crtl-64.h
8609 * config/alpha/alpha.c (alpha_init_builtins): Remove code to
8610 clear some builtins on VMS. Calls vms_patch_builtins.
8611 (avms_asm_output_external): Remove.
8612 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
8613 (struct crtl_name_spec): Remove
8614 (DO_CTRL_NAMES): Remove.
8615 * config/ia64/vms.h (struct crtl_name_spec): Remove
8616 (DO_CTRL_NAMES): Remove.
8617 * config/ia64/ia64.c (alpha_init_builtins): Remove code to
8618 clear some builtins on VMS. Calls vms_patch_builtins.
8619 (ia64_asm_output_external): Remove DO_CRTL_NAME.
8620 * config/ia64/vms64.h: Do not include vms-crtl-64.h
0d5e0c1b 8621 * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
db8b22ef 8622
b213221d
TG
86232011-06-27 Tristan Gingold <gingold@adacore.com>
8624
8625 * config/alpha/alpha.c (alpha_end_function): Always generate .end
8626 directive on VMS.
8627
157b9300
EB
86282011-06-27 Eric Botcazou <ebotcazou@adacore.com>
8629
8630 * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
8631 the function receives nonlocal gotos.
8632
ccbf5bb4
RG
86332011-06-27 Richard Guenther <rguenther@suse.de>
8634
8635 PR tree-optimization/49536
8636 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
8637 For non-scalar inner types use a scalar type according to
8638 the scalar inner mode.
8639
fe4cd14b
RG
86402011-06-27 Richard Guenther <rguenther@suse.de>
8641
8642 PR tree-optimization/49365
8643 * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
8644
afc3f22f
RS
86452011-06-27 Richard Guenther <rguenther@suse.de>
8646
8647 PR tree-optimization/49169
8648 * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
8649 the alignment of function decls.
8650
92590751 86512011-06-26 Iain Sandoe <iains@gcc.gnu.org>
a45a766b
IS
8652
8653 PR target/47997
8654 * config/darwin.c (darwin_mergeable_string_section): Place string
8655 constants in '.cstring' rather than '.const' when CF/NSStrings are
8656 active.
8657
605354f3
EB
86582011-06-26 Eric Botcazou <ebotcazou@adacore.com>
8659
8660 * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
8661 (emit_save_register_window): Likewise.
8662 (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
8663 (sparc_flat_expand_prologue): Add comment. Always emit blockage.
8664 Swap back %o7/%i7 in register naming.
8665
0e9197f5
IS
86662011-06-25 Iain Sandoe <iains@gcc.gnu.org>
8667
8668 PR driver/49371
8669 * config/darwin.c (darwin_override_options): Improve warning when
8670 mdynamic-no-pic is given together with fPIC/fpic, also warn when it
8671 is given with fpie/fPIE.
8672 * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
8673 * config/darwin9.h (PIE_SPEC): New.
53461199 8674
605354f3 86752011-06-25 Basile Starynkevitch <basile@starynkevitch.net>
53461199
BS
8676
8677 * timevar.c (timevar_print): Increase width for display of timevar
8678 name.
8679
f796c438
JJ
86802011-06-24 Jakub Jelinek <jakub@redhat.com>
8681
8682 PR c++/46400
8683 * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
8684 instead of TYPE_CHAIN for chain_next for types.
8685
a7289eaf
RH
86862011-06-24 Richard Henderson <rth@redhat.com>
8687
8688 * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
8689 (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
8690 * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
8691 (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
8692 (sparc_flat_expand_prologue): Emit individual instructions
8693 instead of one of the above.
8694
c4b9a87e
ER
86952011-06-24 Easwaran Raman <eraman@google.com>
8696
8697 PR rtl-optimization/49429
8698 PR target/49454
8699 * expr.c (emit_block_move_hints): Mark MEM_EXPR(x) and
8700 MEM_EXPR(y) addressable if emit_block_move_via_libcall is
8701 used to copy y into x.
8702 * calls.c (initialize_argument_information): Mark
8703 an argument addressable if it is passed by invisible reference.
8704 (emit_library_call_value_1): Mark MEM_EXPR (val) addressable
8705 if it is passed by reference.
8706
5ac6c59e
L
87072011-06-24 H.J. Lu <hongjiu.lu@intel.com>
8708
8709 PR rtl-optimization/49504
8710 * rtlanal.c (nonzero_bits1): Properly handle addition or
1f134bd6
L
8711 subtraction of a pointer in Pmode if pointers extend unsigned.
8712 (num_sign_bit_copies1): Likewise.
5ac6c59e 8713
b807e627
MJ
87142011-06-24 Martin Jambor <mjambor@suse.cz>
8715
8716 PR tree-optimizations/49516
8717 * tree-sra.c (sra_modify_assign): Choose the safe path for
8718 aggregate copies if we also did scalar replacements.
8719
9a1ea4b9
RR
87202011-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8721
8722 PR target/49335
8723 * config/arm/predicates.md (add_operator): New.
0d5e0c1b 8724 * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
9a1ea4b9 8725
949cfd0a
AK
87262011-06-24 Andi Kleen <ak@linux.intel.com>
8727
8728 * tree-sra.c (type_internals_preclude_sra_p): Add msg
8729 parameter. Split up ifs and report reason in *msg.
8730 (reject): Add.
8731 (find_var_candiate): Add msg variable.
8732 Split up ifs and report reason to reject.
8733 (find_param_candidates): Add msg variable.
8734 Pass msg to type_internals_preclude_sra_p.
8735
49e9c661 87362011-06-23 Jeff Law <law@redhat.com>
ad3577df 8737
b0c11403
JL
8738 PR middle-end/48770
8739 * reload.h (reload): Change to return a bool.
8740 * ira.c (ira): If requested by reload, run a fast DCE pass after
8741 reload has completed. Fix comment typo.
8742 * reload1.c (need_dce): New file scoped static.
8743 (reload): Set reload_completed here. Return whether or not a DCE
8744 pass after reload is needed.
8745 (delete_dead_insn): Set need_dce as needed.
8746
ad3577df
JL
8747 PR middle-end/49465
8748 * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
8749 to detect threading through joiner block. If there was already
8750 an edge to the new target, then do not change the PHI nodes.
8751
7cf64710
JJ
87522011-06-23 Jakub Jelinek <jakub@redhat.com>
8753
8754 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8755 get_pointer_alignment to see if base isn't sufficiently aligned.
8756
febb1302
JH
87572011-06-23 Jan Hubicka <jh@suse.cz>
8758
8759 PR tree-optimize/49373
8760 * tree-pass.h (all_late_ipa_passes): Declare.
8761 * cgraphunit.c (init_lowered_empty_function): Fix properties.
4a9206ce
EB
8762 (cgraph_optimize): Execute late passes; remove unreachable funcions
8763 after materialization.
8764 * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
8765 LTOing.
febb1302
JH
8766 * passes.c (all_late_ipa_passes): Declare.
8767 (dump_passes, register_pass): Handle late ipa passes.
4a9206ce
EB
8768 (init_optimization_passes): Move ipa_pta to late passes; schedule
8769 fixup_cfg at beggining of all_passes.
febb1302
JH
8770 (apply_ipa_transforms): New function.
8771 (execute_one_pass): When doing simple ipa pass, apply all transforms.
8772
4c77620d
JM
87732011-06-23 Joseph Myers <joseph@codesourcery.com>
8774
8775 * params.c: Include common/common-target.h. Don't include tm.h.
8776 (lang_independent_params): Move from toplev.c.
8777 (global_init_params): New.
8778 * params.h (global_init_params): Declare.
8779 * target.def (default_params): Move to common-target.def.
8780 * toplev.c (lang_independent_options): Remove.
8781 (lang_independent_params): Move to params.c.
8782 (general_init): Use global_init_params.
8783 * common/common-target.def (option_default_params): Move from
8784 target.def.
8785 * common/config/ia64/ia64-common.c: Include params.h.
8786 (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8787 from ia64.c.
8788 * common/config/rs6000/rs6000-common.c: Include params.h.
8789 (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8790 from rs6000.c.
8791 * common/config/sh/sh-common.c: Include params.h.
8792 (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8793 from sh.c.
8794 * common/config/spu/spu-common.c: Include params.h.
8795 (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8796 from spu.c.
8797 * config/ia64/ia64.c (ia64_option_default_params,
8798 TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
8799 * config/rs6000/rs6000.c (rs6000_option_default_params,
8800 TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
8801 * config/sh/sh.c (sh_option_default_params,
8802 TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
8803 * config/spu/spu.c (spu_option_default_params,
8804 TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
8805 * Makefile.in (OBJS): Remove params.o.
8806 (OBJS-libcommon-target): Add params.o.
8807 (params.o, $(common_out_object_file)): Update dependencies.
8808 * doc/tm.texi: Regenerate.
8809
6aad1e38
AM
88102011-06-23 Alan Modra <amodra@gmail.com>
8811
8812 PR bootstrap/49383
8813 * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
8814 invocation for 2011-06-09 changes.
8815
4fb489e7
JJ
88162011-06-22 Jakub Jelinek <jakub@redhat.com>
8817
fb79f500
JJ
8818 PR libgomp/49490
8819 * omp-low.c (expand_omp_for_static_nochunk): Only
0d5e0c1b
UB
8820 use n ceil/ nthreads size for the first n % nthreads threads in the
8821 team instead of all threads except for the last few ones which
fb79f500
JJ
8822 get less work or none at all.
8823
4fb489e7
JJ
8824 PR debug/49496
8825 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
8826 uses.
8827
9c7c9f10
RG
88282011-06-22 Richard Guenther <rguenther@suse.de>
8829
8830 PR tree-optimization/49493
8831 * tree-ssa-structalias.c (get_constraint_for_ssa_var):
8832 Refer to the alias target of variables.
8833 (associate_varinfo_to_alias_1): Remove.
8834 (ipa_pta_execute): Do not associate aliases with anything.
8835 * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
8836 (cgraph_function_node): Likewise.
8837 (cgraph_function_or_thunk_node): Likewise.
8838 (varpool_variable_node): Likewise.
8839
7cf13d1f
NS
88402011-06-22 Nathan Sidwell <nathan@codesourcery.com>
8841
0d5e0c1b 8842 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
7cf13d1f
NS
8843 * config.gcc (arm*-*-linux*): Default to gnu tls.
8844 (arm*-*-*): Add --with-tls option.
8845 (all_defaults): Add 'tls'.
8846
78a8eb4e
RH
88472011-06-22 Richard Henderson <rth@redhat.com>
8848
8849 * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
8850 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8851 (dwarf2out_frame_debug_cfa_window_save): Rename from
8852 dwarf2out_window_save; make static.
8853 * tree.h (dwarf2out_window_save): Don't declare.
8854
8855 * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
8856 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8857 (emit_save_register_window): Rename from gen_save_register_window;
8858 emit the insn and add REG_CFA_* notes.
8859 (sparc_expand_prologue): Update to match.
8860 * config/sparc/sparc.md (save_register_window_1): Simplify from
8861 save_register_window<P:mode>.
8862
3b4c46d7
L
88632011-06-22 H.J. Lu <hongjiu.lu@intel.com>
8864
8865 PR target/49497
8866 * config/i386/i386.md (*lea_general_2): Always allow SImode.
8867 (*lea_general_2_zext): Likewise.
8868 (imul to lea peepholes): Use const359_operand and check
8869 TARGET_PARTIAL_REG_STALL.
8870
8871 * config/i386/predicates.md (const359_operand): New.
8872
4399cf59
MM
88732011-06-22 Michael Matz <matz@suse.de>
8874
8875 * cgraphunit.c (assemble_thunk): Use correct return type.
8876
31a0c825 88772011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
0d5e0c1b 8878 Dmitry Melnik <dm@ispras.ru>
31a0c825
DP
8879
8880 * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
8881 (neon_output_shift_immediate): Ditto.
8882 * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
8883 prototype.
8884 (neon_output_shift_immediate): Ditto.
8885 * config/arm/neon.md (vashl<mode>3): Modified constraint.
8886 (vashr<mode>3_imm): New insn pattern.
8887 (vlshr<mode>3_imm): Ditto.
8888 (vashr<mode>3): Modified constraint.
8889 (vlshr<mode>3): Ditto.
8890 * config/arm/predicates.md (imm_for_neon_lshift_operand): New
8891 predicate.
8892 (imm_for_neon_rshift_operand): Ditto.
8893 (imm_lshift_or_reg_neon): Ditto.
8894 (imm_rshift_or_reg_neon): Ditto.
8895
8896 * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
8897
ddb555ed
JJ
88982011-06-22 Jakub Jelinek <jakub@redhat.com>
8899
36dc1a88
JJ
8900 * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
8901 builtin calls even if likelyvalue is not CONSTANT.
8902 Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
8903 Return get_value_for_expr of first operand
8904 for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
8905 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
8906 BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
8907 their non-checking counterparts.
8908 (call_may_clobber_ref_p_1): Likewise.
8909 (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
8910 like their non-checking counterparts.
8911 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8912 Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
8913 like their non-checking counterparts.
8914 (find_func_clobbers): Likewise.
8915 * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
8916 like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
8917
41cd4957
JJ
8918 * dwarf2out.c (size_of_loc_descr, output_loc_operands,
8919 mark_base_types, hash_loc_operands, compare_loc_operands): Allow
8920 DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
8921 of base type reference as argument.
8922 (resolve_addr_in_expr): Likewise. Fix keep computation.
8923 (convert_descriptor_to_signed): Renamed to...
0d5e0c1b
UB
8924 (convert_descriptor_to_mode): ... this. For wider types convert to
8925 unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
41cd4957
JJ
8926 (typed_binop): New function.
8927 (scompare_loc_descriptor, ucompare_loc_descriptor,
8928 minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
8929 default to unsigned type instead of signed.
8930
ddb555ed
JJ
8931 PR debug/47858
8932 * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
8933 (gimple_build_debug_source_bind_stat): New prototype.
8934 (gimple_build_debug_source_bind): Define.
8935 (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
8936 gimple_debug_source_bind_get_value,
8937 gimple_debug_source_bind_get_value_ptr,
8938 gimple_debug_source_bind_set_var,
8939 gimple_debug_source_bind_set_value): New inlines.
8940 * gimple.c (gimple_build_debug_source_bind_stat): New function.
8941 * gimple-pretty-print.c (dump_gimple_debug): Handle
8942 GIMPLE_DEBUG_SOURCE_BIND.
8943 * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
8944 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8945 * tree-parloops.c (eliminate_local_variables,
8946 separate_decls_in_region): Likewise.
8947 (separate_decls_in_region_debug): Renamed from
8948 separate_decls_in_region_debug_bind. Handle
8949 gimple_debug_source_bind_p.
8950 * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
8951 prototypes.
8952 (DECL_HAS_DEBUG_ARGS_P): Define.
8953 (struct tree_function_decl): Add has_debug_args_flag field.
8954 * tree.c (debug_args_for_decl): New variable.
8955 (decl_debug_args_lookup, decl_debug_args_insert): New functions.
8956 * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
8957 (rewrite_debug_stmt_uses): New function.
8958 (rewrite_stmt): Use it to rewrite debug stmt uses.
8959 * rtl.def (DEBUG_PARAMETER_REF): New.
8960 * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
8961 * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
8962 DEBUG_PARAMETER_REF.
8963 * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
8964 * print-rtl.c (print_rtx): Likewise.
8965 * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
8966 SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
8967 debug stmts in the first bb.
8968 * tree-inline.c (remap_ssa_name): If remapping default def
8969 of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
8970 a source bind debug stmt.
8971 (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
8972 (maybe_move_debug_stmts_to_successors): Likewise.
8973 (copy_debug_stmt): Likewise. Avoid shadowing a variable.
8974 (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
8975 debug args vector from old_decl to new_decl.
8976 * ipa-prop.c (ipa_modify_call_arguments): For optimized away
8977 or modified parameters, add debug bind stmts before call
0d5e0c1b 8978 setting DEBUG_EXPR_DECL which is remembered in debug args vector.
ddb555ed
JJ
8979 * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
8980 on DECL_DEBUG_EXPRs from debug args vector.
8981 (expand_debug_source_expr): New function.
8982 (expand_debug_locations): Use it for source bind insns.
8983 (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
8984 * var-tracking.c (prepare_call_arguments): Add debug args
8985 to call_arguments if any.
8986 * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
0d5e0c1b
UB
8987 output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
8988 compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
ddb555ed
JJ
8989 (get_ref_die_offset, parameter_ref_descriptor): New functions.
8990 (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
8991 (gen_subprogram_die): Handle parameters identified by
8992 DEBUG_PARAMETER_REF.
8993
ccdc2164
NS
89942011-06-22 Nathan Sidwell <nathan@codesourcery.com>
8995
8996 * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
8997 * doc/install.texi (Configuration): Document --with-tls.
ccdc2164
NS
8998 * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
8999 (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
9000 (arm_tls_descseq_addr): New.
9001 (legitimize_tls_address): Add tlsdesc support.
9002 (arm_cannot_copy_insn_p): Check for tlscall.
9003 (arm_emit_tls_decoration): Likewise.
9004 * config/arm/arm.h (TARGET_GNU2_TLS): New.
9005 (OPTION_DEFAULT_SPECS): Add with-tls support.
9006 * config/arm/arm.md (R1_REGNUM): Define.
9007 (tlscall): New.
9008 * config/arm/arm.opt (tls_type): New enumeration type and values.
9009 (mtls-dialect): New switch.
9010 * config/arm/arm-opts.h (enum tls_type): New.
9011
70e41a6a
NP
90122011-06-21 Nicola Pero <nicola.pero@meta-innovation.com>
9013
9014 * attribs.c (register_attribute): Added assert to check that all
9015 attribute specs are registered with a name that is not empty and
9016 does not start with '_'.
9017 (decl_attributes): Avoid the lookup of the "naked" attribute spec
9018 if the function has no attributes.
9019 * tree.c (is_attribute_with_length_p): Removed.
9020 (is_attribute_p): Removed.
0d5e0c1b 9021 (private_is_attribute_p): New.
70e41a6a
NP
9022 (private_lookup_attribute): New.
9023 (lookup_attribute): Removed.
9024 (lookup_ident_attribute): New.
9025 (remove_attribute): Require the first argument to be in the form
9026 'text', not '__text__'. Updated asserts.
9027 (merge_attributes): Use lookup_ident_attributes instead of
9028 lookup_attribute.
9029 (merge_dllimport_decl_attributes): Use remove_attribute.
9030 (attribute_list_contained): Likewise.
9031 (attribute_list_equal): Immediately return 1 if the arguments are
9032 identical pointers.
9033 * tree.h (is_attribute_p): Made inline. Return a 'bool', not an
9034 'int'. Require the first argument to be in the form 'text', not
9035 '__text__'. Require the second argument to be an identifier.
9036 (lookup_attribute): Made inline. Require the first argument to be
9037 in the form 'text', not '__text__'.
9038 (private_is_attribute_p, private_lookup_attribute): New.
9039 Updated comments.
0d5e0c1b 9040
e0a8ecf2
AM
90412011-06-21 Andrew MacLeod <amacleod@redhat.com>
9042
9043 * builtins.c: Add sync_ or SYNC__ to builtin names.
9044 * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
9045 * omp-low.c: Add sync_ or SYNC__ to builtin names.
9046
663827d3 90472011-06-21 Georg-Johann Lay <avr@gjlay.de>
637c11bd 9048
663827d3
GJL
9049 PR target/33049
9050 * config/avr/avr.md (extzv): New expander.
9051 (*extzv): New insn.
9052 (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
9053 * config/avr/constraints.md (C04): New constraint.
9054 * doc/md.texi (Machine Constraints): Document it.
9055
146aef0b
JJ
90562011-06-21 Jakub Jelinek <jakub@redhat.com>
9057
9058 PR middle-end/49489
9059 * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
9060 unsignedp argument instead of 1 for clrsb_optab.
9061 (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
9062 and < 2 * HOST_BITS_PER_WIDE_INT. Optimize BUILT_IN_CLRSB*.
9063 (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
9064 * optabs.c (widen_leading): Call widen_operand and expand_unop
9065 with 0 as unsignedp argument instead of 1 for clrsb_optab.
637c11bd 9066 (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
146aef0b 9067
c0503294
GJL
90682011-06-21 Georg-Johann Lay <avr@gjlay.de>
9069
9070 * config/avr/avr.md (*jcindirect_jump): Fix build warning.
9071
3801c801
BS
90722011-06-21 Bernd Schmidt <bernds@codesourcery.com>
9073
0bddee8e
BS
9074 * gensupport.c (add_define_attr): New static function.
9075 (is_predicable): Allow multi-alternative lists for the "predicable"
9076 attribute.
9077 (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
9078 (process_one_cond_exec): Call alter_attrs_for_insn.
9079 * doc/md.texi (Defining Attributes): Mention some standard names.
9080 (Conditional Execution): Update documentation for "predicable".
9081
3801c801
BS
9082 * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
9083 __builtin_clrsbll): Document.
9084 * doc/rtl.texi (clrsb): New entry.
9085 * optabs.c (widen_leading): Renamed from widen_clz. New argument
9086 UNOPTAB. All callers changed. Use UNOPTAB instead of clz_optab.
9087 (expand_unop): Handle clrsb_optab.
9088 (init_optabs): Initialize it.
9089 * optabs.h (enum optab_index): New entry OTI_clrsb.
9090 (clrsb_optab): Define.
9091 * genopinit.c (optabs): Add an entry for it.
9092 * builtins.c (expand_builtin): Handle clrsb builtin functions.
9093 * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
9094 BUILT_IN_CLRSBLL): New.
9095 * rtl.def (CLRSB): New code.
9096 * dwarf2out.c (mem_loc_descriptor): Handle it.
9097 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9098 Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
9099 and popcount.
9100 * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
9101 * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
9102 (__ctzDI2): Move declaration.
9103 * config/bfin/bfin.md (clrsbsi2): New expander.
9104 (signbitssi2): Use the CLRSB rtx.
9105 (clrsbhi2): Renamed from signbitshi2. Use the CLRSB rtx.
9106 * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
9107
55f01229
RG
91082011-06-21 Richard Guenther <rguenther@suse.de>
9109
637c11bd 9110 * ipa-inline-transform.c (inline_transform): Fix previous change.
55f01229 9111
5181cd6a
IR
91122011-06-21 Ira Rosen <ira.rosen@linaro.org>
9113
9114 PR tree-optimization/49478
9115 * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
9116 with constant operand.
9117
e4ee3d70
RG
91182011-06-21 Richard Guenther <rguenther@suse.de>
9119
9120 * ipa-inline-transform.c (inline_transform): Fix typo.
637c11bd 9121
7b7ec6c5
RG
91222011-06-21 Richard Guenther <rguenther@suse.de>
9123
9124 PR tree-optimization/49483
9125 * tree-vect-stmts.c (vectorizable_assignment): Also handle
9126 VIEW_CONVERT_EXPR conversions.
9127
1b916ca6
JM
91282011-06-21 Joseph Myers <joseph@codesourcery.com>
9129
9130 * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
9131 * config/avr/avr-tables.opt: New file (generated).
9132 * config.gcc (avr-*-*): Use avr/avr-tables.opt.
9133 * config/avr/avr-devices.c (avr_mcu_types): Move contents to
9134 avr-mcus.def.
9135 * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
9136 (avr_option_override): Don't process -mmcu= argument here. Set
9137 avr_current_device using avr_mcu_index.
637c11bd 9138 (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
1b916ca6
JM
9139 * config/avr/avr.opt (mmcu=): Use Enum.
9140 * config/avr/t-avr (avr-devices.o): Update dependencies.
9141 ($(srcdir)/config/avr/avr-tables.opt): New.
9142 * target.def (help): Remove.
9143 * doc/tm.texi.in (TARGET_HELP): Remove.
9144 * doc/tm.texi: Regenerate.
9145 * opts.c: Don't include target.h.
9146 (common_handle_option): Don't call targetm.help.
9147 * system.h (TARGET_HELP): Poison.
9148 * Makefile.in (opts.o): Update dependencies.
9149
7ecfa34f
RO
91502011-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9151
9152 * config/usegld.h: New file.
9153 * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
9154 (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
637c11bd 9155 (LIB_SPEC): Likewise. Search /lib.
7ecfa34f
RO
9156 (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
9157 (RDYNAMIC_SPEC): Handle GNU ld.
637c11bd
UB
9158 [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
9159 Define.
7ecfa34f
RO
9160 (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
9161 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
9162 [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
9163 (STACK_CHECK_STATIC_BUILTIN): Define.
9164 * config/sol2.opt (compat-bsd): Remove.
9165 * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
9166 * config/sol2-bi.h: New file.
9167 * config/sol2-gld.h: Remove.
9168 * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
9169 (NO_DBX_BNSYM_ENSYM): Remove.
9170 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
9171 (STACK_CHECK_STATIC_BUILTIN): Remove.
9172 Test USE_GLD instead of TARGET_GNU_LD.
9173 * config/i386/sol2-10.h: Rename to ...
9174 * config/i386/sol2-bi.h .. this.
9175 (SUBTARGET_EXTRA_SPECS): Redefine.
9176 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
9177 (MULTILIB_DEFAULTS): Remove.
9178 (DEFAULT_ARCH32_P): Define.
9179 (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
9180 (ARCH64_SUBDIR): Define.
9181 Test USE_GLD instead of TARGET_GNU_LD.
9182 (I386_EMULATION): Rename to ...
9183 (ARCH32_EMULATION): ... this.
9184 (X86_64_EMULATION): Rename to ...
9185 (ARCH64_EMULATION): ... this.
9186 (TARGET_LD_EMULATION): Remove.
9187 (LINK_ARCH_SPEC): Remove.
9188 * config/i386/sol2-gas.h: Remove.
9189 * config/i386/t-sol2-10: Rename to ...
9190 * config/i386/t-sol2-64: ... this.
9191 * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
9192 (AS_SPARC64_FLAG): Define.
9193 (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
9194 (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
9195 depending on TARGET_CPU_DEFAULT.
9196 (CPP_CPU_SPEC): Redefine.
9197 (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
9198 (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
9199 (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
9200 (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
9201 ASM_ARCH_DEFAULT_SPEC): Redefine.
9202 (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9203 LINK_ARCH_DEFAULT_SPEC.
9204 [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
9205 [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
9206 (ARCH64_SUBDIR): Define.
9207 (LINK_ARCH64_SPEC): Redefine.
9208 (CC1_SPEC): Redefine.
9209 (OPTION_DEFAULT_SPECS): Redefine.
9210 (MULTILIB_DEFAULTS): Define.
9211 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
9212 [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
9213 [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
9214 (NO_DBX_BNSYM_ENSYM): Remove.
9215 (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
9216 (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
9217 (TARGET_ASM_NAMED_SECTION): Likewise.
9218 (STACK_CHECK_STATIC_BUILTIN): Remove.
9219 * config/sparc/sol2-bi.h: Remove.
9220 * config/sparc/sol2-gas-bi.h: Remove.
9221 * config/sparc/sol2-gas.h: Remove.
9222 * config/sparc/sol2-gld-bi.h: Remove.
9223 * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
9224 common parts ...
9225 (*-*-solaris2*): ... here.
9226
4b583c43 92272011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 9228
4b583c43 9229 PR other/43564
637c11bd
UB
9230 * ipa-inline.c (can_inline_edge_p): Check
9231 !DECL_DISREGARD_INLINE_LIMITS.
9232
3bb556ad 92332011-06-21 Christian Bruel <christian.bruel@st.com>
637c11bd 9234
3bb556ad
CB
9235 PR middle-end/49139
9236 * cgraphunit.c (process_function_and_variable_attributes): warn when
9237 always_inline functions that are not inline.
637c11bd
UB
9238 * ipa-inline-transform.c (inline_transform): Always call
9239 optimize_inline.
9240 * tree-inline.c (tree_inlinable_function_p): Use error instead
9241 of sorry.
3bb556ad 9242 (expand_call_inline): Likewise.
637c11bd 9243
f1ee724c
JJ
92442011-06-21 Jakub Jelinek <jakub@redhat.com>
9245
9246 * Makefile.in (dg_target_exps): Set.
9247 (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
9248 instead of 7, try to divide it more evenly.
9249
92502011-06-20 Changpeng Fang <changpeng.fang@amd.com>
97ef5ae6 9251
931050d0 9252 PR target/49089
97ef5ae6
CF
9253 * config/i386/i386.c (avx256_split_unaligned_load): New definition.
9254 (avx256_split_unaligned_store): New definition.
9255 (ix86_option_override_internal): Enable avx256 unaligned load/store
9256 splitting only when avx256_split_unaligned_load/store is set.
9257
998c75b6
BS
92582011-06-20 Bernd Schmidt <bernds@codesourcery.com>
9259
9260 * regrename.c (scan_rtx_reg): Handle the case where we write to an
9261 open chain in a smaller mode without failing the entire block.
9262
3a769784
AM
92632011-06-21 Alan Modra <amodra@gmail.com>
9264
9265 * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
9266 CONST high part large-toc address.
9267 (rs6000_tls_referenced_p): Make static.
9268 * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
9269
c2954af9
RR
92702011-06-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9271
9272 PR target/49385
9273 * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
9274 one of the operands is a register.
9275
a95015b6
KT
92762011-06-20 Kai Tietz <ktietz@redhat.com>
9277
637c11bd
UB
9278 * fold-const.c (fold_binary_loc): Add missing folding for truth-not
9279 operations in combination with binary and.
a95015b6 9280
49a30d00
BS
92812011-06-20 Bernd Schmidt <bernds@codesourcery.com>
9282
9283 * regrename.c (do_replace): Don't update notes.
9284
3bae1d98
AM
92852011-06-20 Alan Modra <amodra@gmail.com>
9286
9287 * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
9288 of toc-relative address in CONST.
9289 (rs6000_delegitimize_address): Recognize changed address.
9290 (rs6000_legitimize_reload_address): Likewise.
9291 (rs6000_emit_move): Don't force these constants to memory.
9292 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
9293 toc-relative address in CONST.
9294 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
9295 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
9296
10937b0c
L
92972011-06-18 H.J. Lu <hongjiu.lu@intel.com>
9298
637c11bd 9299 * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
10937b0c
L
9300 (count_trailing_zeros): Likewise.
9301
0c587260
L
93022011-06-18 H.J. Lu <hongjiu.lu@intel.com>
9303
9304 PR other/49325
9305 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
9306 .init_array can be used with .ctors on targets.
9307 * configure: Regenerated.
9308
c020c92b
EB
93092011-06-18 Eric Botcazou <ebotcazou@adacore.com>
9310
9311 * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
9312 if the element type is volatile.
9313
cd35bcf7
JH
93142011-06-18 Jan Hubicka <jh@suse.cz>
9315
9316 * lto-symtab.c (lto_varpool_replace_node): Remove code handling
9317 extra name aliases.
9318 (lto_symtab_resolve_can_prevail_p): Likewise.
9319 (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
9320 * cgraphbuild.c (record_reference): Remove extra body alias code.
9321 (mark_load): Likewise.
9322 (mark_store): Likewise.
9323 * cgraph.h (varpool_node): Remove extra_name filed;
9324 add alias_of and extraname_alias.
9325 (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
9326 (varpool_alias_aliased_node): New inline function.
9327 (varpool_variable_node): New function.
9328 * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
9329 * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
9330 * lto-cgraph.c (lto_output_varpool_node): Update streaming.
9331 (input_varpool_node): Likewise.
9332 * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
9333 (varpool_externally_visible_p): Remove extra body alias code.
9334 (function_and_variable_visibility): Likewise.
9335 * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
9336 (ipa_pta_execute): Use it.
9337 * varpool.c (varpool_remove_node): Remove extra name alias code.
9338 (varpool_mark_needed_node): Likewise.
9339 (varpool_analyze_pending_decls): Analyze aliases.
9340 (assemble_aliases): New functoin.
9341 (varpool_assemble_decl): Use it.
9342 (varpool_create_variable_alias): New function.
9343 (varpool_extra_name_alias): Rewrite.
9344 (varpool_for_node_and_aliases): New function.
9345
c96b4102
JJ
93462011-06-18 Jakub Jelinek <jakub@redhat.com>
9347
9348 PR target/49411
9349 * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
9350 last_arg_constant and last argument doesn't match its predicate,
9351 for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
9352 if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
9353 (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
9354 spelling of error message.
9355 * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
9356 vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
9357 const_0_to_255_operand instead of const_int_operand.
9358
9359 Revert:
9360 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
9361
9362 * config/i386/sse.md (blendbits): Remove mode attribute.
9363 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9364 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9365 Check integer value of operand 3 in insn constraint.
9366
9a2091cd
HPN
93672011-06-17 Hans-Peter Nilsson <hp@axis.com>
9368
9369 PR rtl-optimization/48542
9370 * reload.c (find_equiv_reg): Stop looking when finding a
9371 setjmp-type call.
9372 * reload1.c (reload_as_needed): Invalidate all reload
9373 registers when crossing a setjmp-type call.
9374
361b51c0
JL
93752011-06-16 Jeff Law <law@redhat.com>
9376
9377 * tree-ssa-threadupdate.c (struct redirection_data): New field
9378 intermediate_edge.
9379 (THREAD_TARGET2): Define.
637c11bd 9380 (redirection_data_eq): Also check that the intermediate edge is equal.
361b51c0
JL
9381 (lookup_redirection_data): Drop useless argument. Extract the
9382 outgoing_edge and intermediate edge from E. Callers updated.
9383 (copy_phi_args, update_destination_phis): New functions.
9384 (fix_duplicate_block_edges): Likewise.
9385 (create_edge_and_update_destination_phis): Duplicate all the edges
9386 hung off e->aux. Use copy_phi_args.
9387 (create_duplicates): Use fix_duplicate_block_edges.
9388 (fixup_template_block): Likewise.
9389 (redirect_edges): If necessary, redirect the joiner block's incoming
9390 edge to the duplicate of the joiner block.
9391 (thread_block): Don't muck up loops when threading through a joiner
9392 block.
637c11bd 9393 (thread_through_loop_header): Handle threading through a joiner block.
361b51c0
JL
9394 (mark_threaded_blocks, register_jump_thread): Likewise.
9395 * tree-flow.h (register_jump_thread): Add new argument. Callers
9396 updated.
9397 * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
9398 (thread_across_edge): Handle threading through a joiner block.
637c11bd 9399
ee460e75
MJ
94002011-06-16 Martin Jambor <mjambor@suse.cz>
9401
9402 PR tree-optimization/49343
9403 * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
9404 calculate offset, provide 2nd operand for the new COMPONENT_REF.
9405
a285ba2e
IS
94062011-06-16 Iain Sandoe <iains@gcc.gnu.org>
9407
9408 * config/darwin-protos.h (machopic_select_rtx_section): Move to
9409 inside RTX_CODE ifdef.
9410
0703f020
TV
94112011-06-16 Tom de Vries <tom@codesourcery.com>
9412
9413 PR target/45098
637c11bd
UB
9414 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
9415 Disallow NULL pointer for pointer arithmetic.
0703f020 9416
900c07da
RR
94172011-06-16 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9418
9419 PR target/49398
9420 Revert.
9421 2011-06-10 Wei Guozhi <carrot@google.com>
9422
9423 PR target/45335
9424 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9425 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9426 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9427 related peephole2.
9428 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9429 related peephole2.
9430 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9431 (arm_legitimate_ldrd_p): New prototype.
9432 (arm_output_ldrd): New prototype.
9433 * config/arm/arm.c (arm_check_ldrd_operands): New function.
9434 (arm_legitimate_ldrd_p): New function.
9435 (arm_output_ldrd): New function.
9436
c020c92b 94372011-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
d5cc9181
JR
9438
9439 PR middle-end/46500
9440 * doc/tm.texi.in: Update Copyright date.
9441 * doc/tm.texi: Regenerate.
9442 * targhooks.c (default_setup_incoming_varargs): Replace
9443 CUMULATIVE_ARGS* argument type with cumulative_args_t.
9444 (default_pretend_outgoing_varargs_named): Likewise.
9445 (hook_pass_by_reference_must_pass_in_stack): Likewise.
9446 (hook_callee_copies_named): Likewise.
9447 (default_function_arg_advance): Likewise.
9448 (default_function_arg): Likewise.
9449 (default_function_incoming_arg): Likewise.
9450 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9451 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9452 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9453 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9454 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9455 * targhooks.h (default_setup_incoming_varargs): Likewise.
9456 (default_pretend_outgoing_varargs_named): Likewise.
9457 (hook_pass_by_reference_must_pass_in_stack): Likewise.
9458 (hook_callee_copies_named): Likewise.
9459 (default_function_arg_advance): Likewise.
9460 (default_function_arg): Likewise.
9461 (default_function_incoming_arg): Likewise.
9462 (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9463 (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9464 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9465 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9466 (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9467 * target.def (pass_by_reference): Likewise.
9468 (setup_incoming_varargs, strict_argument_naming): Likewise.
9469 (pretend_outgoing_varargs_named, callee_copies): Likewise.
9470 (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
9471 (function_incoming_arg): Likewise.
9472 * target.h: Don't include "tm.h" .
9473 (cumulative_args_t): New typedef.
9474 [GCC_TM_H] (get_cumulative_args): New static inline function.
9475 [GCC_TM_H] (pack_cumulative_args): Likewise.
9476 * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
9477 argument type with cumulative_args_t.
9478 (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
9479 (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
9480 * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
9481 (frv_arg_partial_bytes, frv_function_arg): Likewise.
9482 (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
9483 (frv_function_arg_1): Likewise.
9484 * config/s390/s390.c (s390_pass_by_reference): Likewise.
9485 (s390_function_arg_advance, s390_function_arg): Likewise.
9486 * config/m32c/m32c.c (m32c_function_arg): Likewise.
9487 (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
9488 (m32c_strict_argument_naming): Likewise.
9489 * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
9490 (spu_function_arg_advance): Likewise.
9491 (spu_setup_incoming_varargs): Likewise. Make static.
9492 * config/spu/spu-protos.h (spu_setup_incoming_varargs):
9493 Remove prototype.
9494 * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
9495 CUMULATIVE_ARGS* argument type with cumulative_args_t.
9496 (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
9497 (sparc_function_arg, sparc_function_incoming_arg): Likewise.
9498 (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
9499 * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
9500 (mep_pass_by_reference, mep_function_arg): Likewise.
9501 (mep_function_arg_advance): Likewise.
9502 * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
9503 (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
9504 (m32r_function_arg, m32r_function_arg_advance): Likewise.
9505 * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
9506 * config/i386/i386.c (ix86_function_arg_advance): Likewise.
9507 (ix86_function_arg, ix86_pass_by_reference): Likewise.
9508 (ix86_setup_incoming_varargs): Likewise.
9509 * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
9510 (sh_strict_argument_naming): Likewise.
9511 (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
9512 (sh_callee_copies, sh_arg_partial_bytes): Likewise.
9513 (sh_function_arg_advance, sh_function_arg): Likewise.
9514 * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
9515 (pdp11_function_arg_advance): Likewise.
9516 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9517 Likewise.
9518 (microblaze_function_arg, function_arg_partial_bytes): Likewise.
9519 * config/avr/avr.c (avr_function_arg): Likewise.
9520 (avr_function_arg_advance): Likewise.
9521 * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
9522 (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
9523 (xtensa_function_arg_1): Likewise.
637c11bd
UB
9524 * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
9525 Likewise.
d5cc9181
JR
9526 (xstormy16_function_arg): Likewise.
9527 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
9528 (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
9529 (fr30_function_arg_advance): Likewise.
9530 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9531 (lm32_function_arg, lm32_function_arg_advance): Likewise.
9532 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
9533 (moxie_function_arg, moxie_function_arg_advance): Likewise.
9534 (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
9535 * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
9536 (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
9537 (cris_function_arg, cris_function_incoming_arg): Likewise.
9538 (cris_function_arg_advance, cris_function_arg_1): Likewise.
9539 * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
9540 (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
9541 (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
9542 * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
9543 (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
9544 (mn10300_arg_partial_bytes): Likewise.
9545 * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
9546 (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
9547 (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
9548 (ia64_function_arg_1): Likewise.
9549 * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
9550 (m68k_function_arg): Likewise.
9551 * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
9552 (rs6000_function_arg, setup_incoming_varargs): Likewise.
9553 (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
9554 * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
9555 (picochip_function_arg, picochip_incoming_function_arg): Likewise.
9556 (picochip_arg_advance): Likewise.
9557 * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
9558 (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
9559 (mcore_function_arg_advance): Likewise.
9560 * config/score/score.c (score_pass_by_reference): Likewise.
9561 (score_function_arg_advance): Likewise.
9562 (score_arg_partial_bytes): Likewise. Make static.
9563 * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
9564 * config/arm/arm.c (arm_arg_partial_bytes): Replace
9565 CUMULATIVE_ARGS* argument type with cumulative_args_t.
9566 (arm_function_arg, arm_function_arg_advance): Likewise.
9567 (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
9568 * config/pa/pa.c (pa_pass_by_reference): Likewise.
9569 (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
9570 (pa_function_arg): Likewise.
9571 * config/mips/mips.c (mips_strict_argument_naming): Likewise.
9572 (mips_function_arg, mips_function_arg_advance): Likewise.
9573 (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
9574 (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
9575 * config/vax/vax.c (vax_function_arg): Likewise.
9576 (vax_function_arg_advance): Likewise.
9577 * config/h8300/h8300.c (h8300_function_arg): Likewise.
9578 (h8300_function_arg_advance): Likewise.
9579 * config/v850/v850.c (v850_pass_by_reference): Likewise.
9580 (v850_strict_argument_naming, v850_function_arg): Likewise.
9581 (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
9582 (v850_setup_incoming_varargs): Likewise.
9583 * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
9584 (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
9585 (mmix_function_arg, mmix_pass_by_reference): Likewise.
9586 (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
9587 with const void *.
9588 * config/bfin/bfin.c (setup_incoming_varargs): Replace
9589 CUMULATIVE_ARGS* argument type with cumulative_args_t.
9590 (bfin_function_arg_advance, bfin_function_arg): Likewise.
9591 (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
9592 * calls.c (emit_call_1): Change type of args_so_far to
9593 cumulative_args_t. Changed all callers.
9594 (initialize_argument_information): Likewise.
9595 (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
9596 * dse.c (get_call_args): Likewise.
9597 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9598 * function.c (pass_by_reference, reference_callee_copied): Likewise.
9599 (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
9600 New member args_so_far_v. Changed all users.
9601 * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
9602 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9603 * config/mips/mips.c (mips_output_args_xfer): Likewise.
9604 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9605 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
637c11bd
UB
9606 * config/microblaze/microblaze.c (microblaze_expand_prologue):
9607 Likewise.
d5cc9181
JR
9608 * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
9609 m32r_pass_by_reference.
9610
51312233
IR
96112011-06-16 Ira Rosen <ira.rosen@linaro.org>
9612
9613 * tree-vectorizer.h (vect_recog_func_ptr): Change the first
9614 argument to be a VEC of statements.
637c11bd
UB
9615 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
9616 assert that pattern statements have to have their vector type set.
51312233
IR
9617 * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
9618 Change the first argument to be a VEC of statements. Update
9619 documentation.
9620 (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
9621 (vect_handle_widen_mult_by_const): New function.
637c11bd
UB
9622 (vect_recog_widen_mult_pattern): Change the first argument to be a
9623 VEC of statements. Update documentation. Check that the constant is
9624 INTEGER_CST. Support multiplication by a constant that fits an
9625 intermediate type - call vect_handle_widen_mult_by_const.
51312233
IR
9626 (vect_pattern_recog_1): Update vect_recog_func_ptr and its
9627 call. Handle additional pattern statements if necessary.
9628
fd4df33d
NC
96292011-06-16 Nick Clifton <nickc@redhat.com>
9630
9631 PR target/49427
9632 * config.gcc: Set cpu_type to v850 for any V850 architecture.
9633 (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
9634 md_file, extra_modes, out_file and extra_options are these are all
9635 deduced from cpu_type.
9636
fbd05da0
GJL
96372011-06-16 Georg-Johann Lay <avr@gjlay.de>
9638
9639 * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
9640 truncation mask to 63.
9641
0ad8bb3b
GJL
96422011-06-16 Georg-Johann Lay <avr@gjlay.de>
9643
9644 PR target/49313
9645 PR target/29524
9646 * longlong.h: Add AVR support:
9647 (count_leading_zeros): New macro.
9648 (count_trailing_zeros): New macro.
9649 (COUNT_LEADING_ZEROS_0): New macro.
637c11bd
UB
9650 * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
9651 _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
9652 _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
9653 _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
0ad8bb3b
GJL
9654 (LIB2FUNCS_EXCLUDE): Add _clz.
9655 * config/avr/libgcc.S (XCALL): Move up in file.
9656 (XJMP): New C Macro.
9657 (DEFUN): New asm macro.
9658 (ENDF): New asm macro.
9659 (__ffssi2): New function.
9660 (__ffshi2): New function.
9661 (__loop_ffsqi2): New function.
9662 (__ctzsi2): New function.
9663 (__ctzhi2): New function.
9664 (__clzdi2): New function.
9665 (__clzsi2): New function.
9666 (__clzhi2): New function.
9667 (__paritydi2): New function.
9668 (__paritysi2): New function.
9669 (__parityhi2): New function.
59c1e10b 9670 (__parityqi2): New function.
0ad8bb3b
GJL
9671 (__popcounthi2): New function.
9672 (__popcountsi2): New function.
9673 (__popcountdi2): New function.
9674 (__popcountqi2): New function.
9675 (__bswapsi2): New function.
9676 (__bswapdi2): New function.
9677 (__ashldi3): New function.
9678 (__ashrdi3): New function.
9679 (__lshrdi3): New function.
9680 Fix suspicous lines.
9681
12430896
RG
96822011-06-16 Richard Guenther <rguenther@suse.de>
9683
9684 * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
9685 the same as x != 0.
637c11bd
UB
9686 * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
9687 to (bool) X & 1.
12430896
RG
9688 * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
9689 equality compares against zero for the lower bit.
9690
09302442
JJ
96912011-06-16 Jakub Jelinek <jakub@redhat.com>
9692
9693 PR tree-optimization/49419
9694 * tree-vrp.c (execute_vrp): Call init_range_assertions
9695 before estimate_numbers_of_iterations, call
9696 free_number_of_iterations_estimates before calling
9697 remove_range_assertions.
9698
81c41166
RE
96992011-06-16 Revital Eres <revital.eres@linaro.org>
9700
9701 * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
9702 (struct partial_schedule): Add rows_length field.
9703 (verify_partial_schedule): Check rows_length.
9704 (ps_insert_empty_row): Handle rows_length.
9705 (create_partial_schedule): Likewise.
9706 (free_partial_schedule): Likewise.
9707 (reset_partial_schedule): Likewise.
9708 (create_ps_insn): Remove rest_count argument.
9709 (remove_node_from_ps): Update rows_length.
9710 (add_node_to_ps): Update rows_length and call create_ps_insn
9711 without passing row_rest_count.
9712 (rotate_partial_schedule): Update rows_length.
9713
d24dc7b3
RE
97142011-06-16 Revital Eres <revital.eres@linaro.org>
9715
9716 * ddg.c (add_intra_loop_mem_dep): New function.
9717 (build_intra_loop_deps): Call it.
9718
361b51c0 97192011-06-13 Jeff Law <law@redhat.com>
2098e438
JL
9720
9721 * df-problems.c (df_lr_local_compute): Manually CSE
9722 PIC_OFFSET_TABLE_REGNUM.
9723 * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
9724 (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
9725
85ce9375
JH
97262011-06-13 Jan Hubicka <jh@suse.cz>
9727
9728 * cgraphunit.c (handle_alias_pairs): New function.
9729 (cgraph_finalize_compilation_unit): Use it.
9730 * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
9731 as externally visible.
9732
a577c405
RG
97332011-06-15 Richard Guenther <rguenther@suse.de>
9734
9735 * expr.c (expand_expr_real_2): Reduce all integral types to
9736 bitfield precision.
9737 (expand_expr_real_1): Likewise.
9738
93536c97
MJ
97392011-06-15 Martin Jambor <mjambor@suse.cz>
9740
9741 PR tree-optimization/48613
9742 * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
9743 ipa_node_params_vector is NULL.
fd4df33d 9744
ba45cfc4
JJ
97452011-06-15 Jakub Jelinek <jakub@redhat.com>
9746
9747 PR debug/49382
9748 * dwarf2out.c (dw_loc_list_node): Add force field.
637c11bd
UB
9749 (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
9750 location in the list, even if it is modified before first real insn.
ba45cfc4 9751 (output_loc_list): Emit empty ranges with force flag set.
637c11bd 9752 (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
ba45cfc4 9753
6fc5966f
AM
97542011-06-15 Alexander Monakov <amonakov@ispras.ru>
9755
9756 PR target/49349
9757 * sel-sched.c (find_place_for_bookkeeping): Add new parameter
9758 (fence_to_rewind). Use it to notice when bookkeeping will be placed
9759 above a fence. Update comments.
9760 (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
9761 placed just above it. Do not allow NULL place_to_insert.
9762
9d5e7640
IR
97632011-06-15 Ira Rosen <ira.rosen@linaro.org>
9764
9765 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
9766 (slpeel_tree_peel_loop_to_edge): Don't call
9767 remove_dead_stmts_from_loop.
9768 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
9769 remove irrelevant pattern statements. For irrelevant statements
9770 check if it is the last statement of a detected pattern, use
9771 corresponding pattern statement instead.
9772 (destroy_loop_vec_info): No need to remove pattern statements,
9773 only free stmt_vec_info.
9774 (vect_transform_loop): For irrelevant statements check if it is
9775 the last statement of a detected pattern, use corresponding
9776 pattern statement instead.
9777 * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
9778 pattern statements. Set basic block for the new statement.
9779 (vect_pattern_recog): Update documentation.
9780 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
9781 operands of pattern statements.
9782 (vectorizable_call): Fix printing. In case of a pattern statement
9783 use the lhs of the original statement when creating a dummy
9784 statement to replace the original call.
9785 (vect_analyze_stmt): For irrelevant statements check if it is
9786 the last statement of a detected pattern, use corresponding
9787 pattern statement instead.
9788 * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
9789 statements use gsi of the original statement.
9790
677f3fa8
JM
97912011-06-14 Joseph Myers <joseph@codesourcery.com>
9792
9793 * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
9794 common/common-target-def.h.
9795 * target.def (default_target_flags, handle_option,
9796 supports_split_stack, optimization_table, init_struct,
9797 except_unwind_info, unwind_tables_default, have_named_sections):
9798 Move to common/common-target.def.
9799 * target.h (enum opt_levels, struct default_options): Move to
9800 common/common-target.h.
9801 * targhooks.c (default_except_unwind_info,
9802 dwarf2_except_unwind_info, sjlj_except_unwind_info,
9803 default_target_handle_option, empty_optimization_table): Move to
9804 common/common-targhooks.c.
9805 * targhooks.h (default_except_unwind_info,
9806 dwarf2_except_unwind_info, sjlj_except_unwind_info,
9807 default_target_handle_option, empty_optimization_table): Move to
9808 common/common-targhooks.h.
9809 * common/common-target-def.h: Include common/common-targhooks.h.
9810 (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
9811 defined.
9812 * common/common-target.def (handle_option, option_init_struct,
9813 option_optimization_table, default_target_flags,
9814 except_unwind_info, supports_split_stack, unwind_tables_default,
9815 have_named_sections): Move from target.def.
9816 (HOOK_PREFIX): Undefine at end of file.
9817 * common/common-target.h: Include input.h.
9818 (enum opt_levels, struct default_options): Move from target.h.
9819 * common/common-targhooks.c, common/common-targhooks.h: New.
9820 * config.gcc (target_has_targetm_common): Default to yes.
9821 (moxie*): Set target_has_targetm_common=no.
9822 (hppa*-*-*): Don't set target_has_targetm_common=yes.
9823 * doc/tm.texi: Regenerate.
9824 * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
9825 (C_TARGET_DEF_H): Add common/common-targhooks.h.
9826 (GCC_OBJS): Remove vec.o.
9827 (OBJS): Remove hooks.o and vec.o.
9828 (OBJS-libcommon-target): Add vec.o, hooks.o and
9829 common/common-targhooks.o.
9830 (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
9831 tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
9832 expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
9833 cfglayout.o, $(out_object_file), $(common_out_object_file)):
9834 Update dependencies.
9835 (common/common-targhooks.o): New.
637c11bd 9836 * common/config/default-common.c: Include tm.h. Add FIXME comment.
677f3fa8
JM
9837 * common/config/pa/pa-common.c: Include more headers. Take
9838 copyright dates from pa.c.
9839 (pa_option_optimization_table, pa_handle_option,
9840 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
9841 TARGET_HANDLE_OPTION): Move from pa.c.
9842 * common/config/alpha/alpha-common.c,
9843 common/config/arm/arm-common.c, common/config/avr/avr-common.c,
9844 common/config/bfin/bfin-common.c,
9845 common/config/cris/cris-common.c,
9846 common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
9847 common/config/h8300/h8300-common.c,
9848 common/config/i386/i386-common.c,
9849 common/config/ia64/ia64-common.c,
9850 common/config/iq2000/iq2000-common.c,
9851 common/config/lm32/lm32-common.c,
9852 common/config/m32c/m32c-common.c,
9853 common/config/m32r/m32r-common.c,
9854 common/config/m68k/m68k-common.c,
9855 common/config/mcore/mcore-common.c,
9856 common/config/mep/mep-common.c,
9857 common/config/microblaze/microblaze-common.c,
9858 common/config/mips/mips-common.c,
9859 common/config/mmix/mmix-common.c,
9860 common/config/mn10300/mn10300-common.c,
9861 common/config/pdp11/pdp11-common.c,
9862 common/config/picochip/picochip-common.c,
9863 common/config/rs6000/rs6000-common.c,
9864 common/config/rx/rx-common.c, common/config/s390/s390-common.c,
9865 common/config/score/score-common.c, common/config/sh/sh-common.c,
9866 common/config/sparc/sparc-common.c,
9867 common/config/spu/spu-common.c, common/config/v850/v850-common.c,
9868 common/config/vax/vax-common.c,
9869 common/config/xstormy16/xstormy16-common.c,
9870 common/config/xtensa/xtensa-common.c: New.
9871 * config/alpha/alpha.c: Include common/common-target.h.
9872 (alpha_option_optimization_table, alpha_handle_option,
9873 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9874 TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
9875 * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
9876 * config/arm/arm.c (arm_option_optimization_table,
9877 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9878 TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
9879 arm-common.c.
9880 * config/avr/avr.c (avr_option_optimization_table,
9881 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9882 to avr-common.c.
9883 * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
9884 (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
9885 TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
9886 * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
9887 * config/cris/cris.c (cris_option_optimization_table,
9888 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9889 TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
9890 cris-common.c.
9891 * config/fr30/fr30.c (fr30_option_optimization_table,
9892 TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
9893 to fr30-common.c.
9894 * config/frv/frv.c (frv_option_optimization_table,
9895 MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
9896 TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
9897 * config/h8300/h8300.c (h8300_option_optimization_table,
9898 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9899 TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
9900 * config/i386/i386-protos.h (ix86_handle_option): Declare.
9901 * config/i386/i386.c: Include common/common-target.h.
9902 (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
9903 OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
9904 OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
9905 OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
9906 OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
9907 OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
9908 OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
9909 OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
9910 OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
9911 OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
9912 OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
9913 OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
9914 OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
9915 OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
9916 OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
9917 OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
9918 OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
9919 OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
9920 OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
9921 OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
9922 OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
9923 OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
9924 OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
9925 OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
9926 OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
9927 OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
9928 OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
9929 OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
9930 OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
9931 ix86_option_optimization_table, ix86_option_init_struct,
9932 ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
9933 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
9934 TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
9935 i386-common.c.
9936 * config/i386/t-i386 (i386.o): Update dependencies.
9937 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
9938 * config/ia64/ia64.c (ia64_option_optimization_table,
9939 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9940 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9941 ia64_handle_option): Move to ia64-common.c.
9942 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
9943 TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
9944 * config/lm32/lm32.c (lm32_option_optimization_table,
9945 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
9946 to lm32-common.c.
9947 * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
9948 m32c-common.c.
9949 * config/m32r/m32r.c (m32r_option_optimization_table,
9950 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9951 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
9952 m32r_handle_option): Move to m32r-common.c.
9953 (m32r_memory_move_cost): Remove comment referring to
9954 TARGET_HANDLE_OPTION.
9955 * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
9956 Move to m68k-common.c.
9957 * config/mcore/mcore.c (mcore_option_optimization_table,
9958 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9959 TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
9960 * config/mep/mep.c (mep_option_optimization_table,
9961 mep_handle_option, TARGET_HANDLE_OPTION,
9962 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
9963 Move to mep-common.c.
9964 * config/microblaze/microblaze.c
9965 (microblaze_option_optimization_table,
9966 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
9967 TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
9968 * config/mips/mips.c (mips_handle_option,
9969 mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9970 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
9971 mips-common.c.
9972 * config/mmix/mmix.c (mmix_option_optimization_table,
9973 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
9974 Move to mmix-common.c.
9975 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
9976 mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
9977 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9978 TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
9979 * config/pa/pa.c: Include common/common-target.h.
9980 (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
9981 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9982 pa_handle_option): Move to pa-common.c.
9983 (pa_option_override): Use targetm_common.except_unwind_info.
9984 (pa_asm_output_mi_thunk, pa_function_section): Use
9985 targetm_common.have_named_sections.
9986 * config/pdp11/pdp11.c (pdp11_option_optimization_table,
9987 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
9988 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
9989 pdp11_handle_option, pdp11_option_init_struct): Move to
9990 pdp11-common.c.
9991 * config/picochip/picochip.c (picochip_option_optimization_table,
9992 TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
9993 TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
9994 * config/rs6000/rs6000.c: Include common/common-target.h.
9995 (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
9996 TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
9997 TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
9998 rs6000_handle_option): Move to rs6000-common.c.
9999 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10000 * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
10001 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
10002 TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
10003 * config/s390/s390.c (processor_flags_table,
10004 s390_option_optimization_table, s390_option_init_struct,
10005 s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
10006 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
10007 TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
10008 * config/s390/s390.h (processor_flags_table): Declare.
10009 * config/score/score.c (score_option_optimization_table,
10010 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10011 TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
10012 score_handle_option): Move to score-common.c.
10013 * config/sh/sh.c (sh_option_optimization_table,
10014 TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
10015 TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10016 sh_handle_option, sh_option_init_struct): Move to sh-common.c.
10017 * config/sparc/sparc.c: Include common/common-target.h.
10018 (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
10019 TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
10020 * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
10021 TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
10022 spu_option_init_struct): Move to spu-common.c.
10023 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
10024 TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
10025 * config/v850/v850.c (small_memory_physical_max,
10026 v850_handle_memory_optionn v850_handle_option,
10027 v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
10028 TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
10029 v850-common.c.
637c11bd 10030 * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
677f3fa8
JM
10031 * config/xtensa/xtensa.c (xtensa_option_optimization_table,
10032 TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
10033 Move to xtensa-common.c.
10034 * cfglayout.c: Include common/common-target.h.
10035 (fixup_reorder_chain): Use targetm_common.have_named_sections.
10036 * cfgrtl.c: Include common/common-target.h.
10037 (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
10038 targetm_common.have_named_sections.
10039 * dbxout.c: Include common/common-target.h.
10040 (dbxout_function_end): Use targetm_common.have_named_sections.
10041 * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
10042 targetm_common.except_unwind_info.
10043 * dwarf2out.c: Include common/common-target.h.
10044 (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
10045 dwarf2out_begin_prologue, dwarf2out_frame_init,
10046 dwarf2out_frame_finish, dwarf2out_assembly_start): Use
10047 targetm_common.except_unwind_info.
10048 * except.c: Include common/common-target.h.
10049 (init_eh, finish_eh_generation,
10050 output_one_function_exception_table): Use
10051 targetm_common.except_unwind_info.
637c11bd 10052 (switch_to_exception_section): Use targetm_common.have_named_sections.
677f3fa8
JM
10053 * explow.c: Include common/common-target.h.
10054 * expr.c: Include common/common-target.h.
637c11bd 10055 (build_personality_function): Use targetm_common.except_unwind_info.
677f3fa8
JM
10056 * function.c: Include common/common-target.h.
10057 (expand_function_end): Use targetm_common.except_unwind_info.
10058 * haifa-sched.c: Include common/common-target.h.
637c11bd 10059 (sched_create_recovery_edges): Use targetm_common.have_named_sections.
677f3fa8
JM
10060 * lto-opts.c: Include common/common-target.h instead of target.h.
10061 (lto_reissue_options): Use targetm_common.handle_option.
10062 * opts.c: Include common/common-target.h.
10063 (target_handle_option): Use targetm_common.handle_option.
10064 (init_options_struct): Update comment referring to
10065 targetm.target_option.optimization. Use
10066 targetm_common.default_target_flags,
10067 targetm_common.unwind_tables_default and
10068 targetm_common.option_init_struct.
10069 (default_options_optimization): Use
10070 targetm_common.option_optimization_table.
10071 (finish_options): Use targetm_common.except_unwind_info,
10072 targetm_common.unwind_tables_default,
10073 targetm_common.have_named_sections and
10074 targetm_common.supports_split_stack.
10075 * toplev.c: Include common/common-target.h.
10076 (process_options): Use targetm_common.have_named_sections.
10077 * tree-tailcall.c: Include common/common-target.h.
637c11bd 10078 (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
677f3fa8 10079 * tree.c: Include common/common-target.h.
637c11bd 10080 (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
677f3fa8
JM
10081 * varasm.c: Include common/common-target.h.
10082 (resolve_unique_section, hot_function_section,
10083 default_function_section): Use targetm_common.have_named_sections.
10084
d26c7090
ER
100852011-06-14 Easwaran Raman <eraman@google.com>
10086
10087 PR rtl-optimization/44194
10088 * dse.c: Include tree-flow.h
10089 (insn_info): Add new field non_frame_wild_read.
10090 (group_info): Add new fields escaped_n and escaped_p.
10091 (kill_on_calls): New variable.
10092 (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
10093 (dse_step0): Initialize kill_on_calls.
10094 (can_escape): New function.
10095 (set_usage_bits): Add additional parameter; record information
10096 about escaped locations.
637c11bd 10097 (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
d26c7090
ER
10098 (dse_step2_nospill): Set kill_on_calls based on
10099 group->escaped_n and group->escaped_n.
10100 (add_wild_read): Refactor into...
10101 (reset_active_stores): ... New function, and
10102 (free_read_records): ... New function.
10103 (add_non_frame_wild_read): New function.
10104 (scan_insn): Call add_non_frame_wild_read on non-const calls.
637c11bd 10105 (scan_reads_nospill): Handle instructions with non_frame_wild_read.
d26c7090
ER
10106 (dse_step5_nospill): Call scan_reads_nospill for instructions
10107 marked as non_frame_wild_read.
637c11bd 10108 (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
d26c7090 10109
c49a6962
JM
101102011-06-14 Joseph Myers <joseph@codesourcery.com>
10111
10112 * common/common-target-def.h, common/common-target.def,
10113 common/common-target.h, common/config/default-common.c,
10114 common/config/pa/pa-common.c: New files.
10115 * Makefile.in (common_out_file, common_out_object_file,
10116 COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
10117 (OBJS-libcommon-target): Include $(common_out_object_file).
10118 (prefix.o): Update dependencies.
10119 ($(common_out_object_file), common/common-target-hooks-def.h,
10120 s-common-target-hooks-def-h): New.
10121 (s-tm-texi): Also check timestamp on common-target.def.
10122 (build/genhooks.o): Update dependencies.
10123 * config.gcc (common_out_file, target_has_targetm_common): Define.
10124 * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
10125 TARGET_ALWAYS_STRIP_DOTDOT.
10126 * configure.ac (common_out_object_file): Define.
10127 (common_out_file, common_out_object_file): Substitute.
10128 (common): Create directory.
10129 * configure: Regenerate.
10130 * doc/tm.texi.in (targetm_common): Document.
10131 (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
10132 * doc/tm.texi: Regenerate.
10133 * genhooks.c (hook_array): Also include common/common-target.def.
10134 * prefix.c (tm.h): Don't include.
10135 (common/common-target.h): Include.
10136 (ALWAYS_STRIP_DOTDOT): Don't define.
10137 (update_path): Use targetm_common.always_strip_dotdot instead of
10138 ALWAYS_STRIP_DOTDOT.
10139 * system.h (ALWAYS_STRIP_DOTDOT): Poison.
10140
22c5fa5f
DL
101412011-06-14 David Li <davidxl@google.com>
10142
10143 * passes.c (execute_function_todo): Remove TODO_dump_func.
10144 (execute_one_pass): Remove TODO_dump_func.
10145 (execute_function_dump): New function.
10146 * tree-vrp.c: Remove TODO_dump_func.
10147 * regrename.c: Remove TODO_dump_func.
10148 * fwprop.c: Remove TODO_dump_func.
10149 * tree-into-ssa.c: Remove TODO_dump_func.
10150 * tree-complex.c: Remove TODO_dump_func.
10151 * tracer.c: Remove TODO_dump_func.
10152 * tree-loop-distribution.c: Remove TODO_dump_func.
10153 * postreload-gcse.c: Remove TODO_dump_func.
10154 * postreload.c: Remove TODO_dump_func.
10155 * tree-ssa-loop-ch.c: Remove TODO_dump_func.
10156 * tree-tailcall.c: Remove TODO_dump_func.
10157 * ipa-cp.c: Remove TODO_dump_func.
10158 * final.c: Remove TODO_dump_func.
10159 * tree-emutls.c: Remove TODO_dump_func.
10160 * omp-low.c: Remove TODO_dump_func.
10161 * tree-ssa-dse.c: Remove TODO_dump_func.
10162 * tree-ssa-uncprop.c: Remove TODO_dump_func.
10163 * auto-inc-dec.c: Remove TODO_dump_func.
10164 * reorg.c: Remove TODO_dump_func.
10165 * tree-ssa-copyrename.c: Remove TODO_dump_func.
10166 * tree-ssa-ccp.c: Remove TODO_dump_func.
10167 * compare-elim.c: Remove TODO_dump_func.
10168 * mode-switching.c: Remove TODO_dump_func.
10169 * modulo-sched.c: Remove TODO_dump_func.
10170 * tree-call-cdce.c: Remove TODO_dump_func.
10171 * cse.c: Remove TODO_dump_func.
10172 * web.c: Remove TODO_dump_func.
10173 * tree-stdarg.c: Remove TODO_dump_func.
10174 * lto-streamer-out.c: Remove TODO_dump_func.
10175 * tree-ssa-math-opts.c: Remove TODO_dump_func.
10176 * tree-ssa-dom.c: Remove TODO_dump_func.
10177 * tree-nrv.c: Remove TODO_dump_func.
10178 * loop-init.c: Remove TODO_dump_func.
10179 * gimple-low.c: Remove TODO_dump_func.
10180 * ipa-inline.c: Remove TODO_dump_func.
10181 * tree-ssa-sink.c: Remove TODO_dump_func.
10182 * jump.c: Remove TODO_dump_func.
10183 * ifcvt.c: Remove TODO_dump_func.
10184 * tree-ssa-loop.c: Remove TODO_dump_func.
10185 * recog.c: Remove TODO_dump_func.
10186 * dse.c: Remove TODO_dump_func.
10187 * tree-ssa-ifcombine.c: Remove TODO_dump_func.
10188 * matrix-reorg.c: Remove TODO_dump_func.
10189 * tree-eh.c: Remove TODO_dump_func.
10190 * regmove.c: Remove TODO_dump_func.
10191 * function.c: Remove TODO_dump_func.
10192 * tree-vectorizer.c: Remove TODO_dump_func.
10193 * ipa-split.c: Remove TODO_dump_func.
10194 * gcse.c: Remove TODO_dump_func.
10195 * tree-if-conv.c: Remove TODO_dump_func.
10196 * init-regs.c: Remove TODO_dump_func.
10197 * tree-ssa-phiopt.c: Remove TODO_dump_func.
10198 * implicit-zee.c: Remove TODO_dump_func.
10199 * lower-subreg.c: Remove TODO_dump_func.
10200 * bt-load.c: Remove TODO_dump_func.
10201 * tree-dfa.c: Remove TODO_dump_func.
10202 * except.c: Remove TODO_dump_func.
10203 * emit-rtl.c: Remove TODO_dump_func.
10204 * store-motion.c: Remove TODO_dump_func.
10205 * cfgexpand.c: Remove TODO_dump_func.
10206 * tree-cfgcleanup.c: Remove TODO_dump_func.
10207 * cfgcleanup.c: Remove TODO_dump_func.
10208 * tree-ssa-pre.c: Remove TODO_dump_func.
10209 * tree-sra.c: Remove TODO_dump_func.
10210 * tree-mudflap.c: Remove TODO_dump_func.
10211 * tree-ssa-copy.c: Remove TODO_dump_func.
10212 * cfglayout.c: Remove TODO_dump_func.
10213 * tree-ssa-forwprop.c: Remove TODO_dump_func.
10214 * tree-ssa-dce.c: Remove TODO_dump_func.
10215 * ira.c: Remove TODO_dump_func.
10216 * tree-ssa.c: Remove TODO_dump_func.
10217 * integrate.c: Remove TODO_dump_func.
10218 * tree-optimize.c: Remove TODO_dump_func.
10219 * tree-ssa-phiprop.c: Remove TODO_dump_func.
10220 * tree-object-size.c: Remove TODO_dump_func.
10221 * combine.c: Remove TODO_dump_func.
10222 * bb-reorder.c: Remove TODO_dump_func.
10223 * cprop.c: Remove TODO_dump_func.
10224 * var-tracking.c: Remove TODO_dump_func.
10225 * tree-profile.c: Remove TODO_dump_func.
10226 * tree-vect-generic.c: Remove TODO_dump_func.
10227 * reg-stack.c: Remove TODO_dump_func.
10228 * sched-rgn.c: Remove TODO_dump_func.
10229 * tree-ssa-structalias.c: Remove TODO_dump_func.
10230 * tree-switch-conversion.c: Remove TODO_dump_func.
10231 * tree-cfg.c: Remove TODO_dump_func.
10232 * tree-ssa-reassoc.c: Remove TODO_dump_func.
10233 * combine-stack-adj.c: Remove TODO_dump_func.
10234 * dce.c: Remove TODO_dump_func.
10235 * tree-ssanames.c: Remove TODO_dump_func.
10236 * regcprop.c: Remove TODO_dump_func.
10237
fa465762
L
102382011-06-14 H.J. Lu <hongjiu.lu@intel.com>
10239
10240 PR middle-end/47364
10241 * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
10242 and properly handle result not in Pmode.
10243
7d8d16c3
RM
102442011-06-14 Robert Millan <rmh@gnu.org>
10245
10246 * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
10247 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
10248 `config/linux.h'.
10249
10250 * config/i386/kfreebsd-gnu64.h: New file.
10251 * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
10252 with `i386/kfreebsd-gnu64.h'.
10253
10254 * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
10255 (GNU_USER_LINK_EMULATION64): New macros.
10256 * config/i386/gnu-user64.h (LINK_SPEC): Rely on
10257 `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
10258 of hardcoding `elf_i386' and `elf_x86_64'.
10259
0ccef3d2
NC
102602011-06-14 Nick Clifton <nickc@redhat.com>
10261
10262 PR target/49403
10263 * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
10264
10265 PR target/49402
10266 * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
10267
8a76c4a0
JJ
102682011-06-14 Jakub Jelinek <jakub@redhat.com>
10269
1ace6185
JJ
10270 PR fortran/49103
10271 * tree.h (DECL_NONSHAREABLE): Define.
10272 (struct tree_decl_common): Change decl_common_unused to
10273 decl_nonshareable_flag.
10274 * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
10275 Ignore vars with DECL_NONSHAREABLE bit set.
10276 * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
10277 on stores to automatic aggregate vars.
10278
8a76c4a0
JJ
10279 PR rtl-optimization/49390
10280 Revert:
10281 2010-06-29 Bernd Schmidt <bernds@codesourcery.com>
10282
10283 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10284 MEM_ALIAS_SET.
10285
b4a9343c
ZD
102862011-06-14 Zdenek Dvorak <ook@ucw.cz>
10287 Tom de Vries <tom@codesourcery.com>
10288
10289 PR target/45098
10290 * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
10291 Document changed semantics.
10292 (max_stmt_executions, max_stmt_executions_int): Declare.
10293 * tree-data-ref.c (estimated_loop_iterations)
10294 (estimated_loop_iterations_int): Move functions...
10295 * tree-ssa-loop-niter.c (estimated_loop_iterations)
10296 (estimated_loop_iterations_int): here.
10297 (record_estimate): Change nb_iterations_upper_bound and
10298 nb_iterations_estimate semantics.
10299 (max_stmt_executions, max_stmt_executions_int): New function.
10300 * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
10301 (max_stmt_executions_tree): this.
10302 (analyze_miv_subscript): Use max_stmt_executions_tree instead of
10303 estimated_loop_iterations_tree.
10304 tree-ssa-loop-ivopts.c (avg_loop_niter): Use
10305 max_stmt_executions_int instead of estimated_loop_iterations_int.
10306 * predict.c (predict_loops): Idem.
10307 * tree-parloops.c (parallelize_loops): Idem.
10308 * tree-data-ref.c (analyze_siv_subscript_cst_affine)
10309 (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
10310 (init_omega_for_ddr_1): Idem.
10311 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
10312 (loop_prefetch_arrays): Idem
10313 * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
10314 max_stmt_executions instead of estimated_loop_iterations.
10315 * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
10316 * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
10317 instead of nb_iterations_upper_bound.
10318
d2640c43
JH
103192011-06-13 Jan Hubicka <jh@suse.cz>
10320
10321 * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
10322
40873cdd
RH
103232011-06-14 Richard Henderson <rth@redhat.com>
10324
10325 PR debug/48459
10326 * dwarf2out.c (frame_pointer_fb_offset_valid): New.
10327 (based_loc_descr): Assert it's true.
10328 (compute_frame_pointer_to_fb_displacement): Set it, rather than
10329 aborting immediately.
10330
73e8cb24
SL
103312011-06-14 Sanjin Liu <scliu@faraday-tech.com>
10332 Mingfeng Wu <mingfeng@faraday-tech.com>
10333
10334 * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
10335
f835f0a7
JH
103362011-06-13 Jan Hubicka <jh@suse.cz>
10337
10338 * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
10339
ee6f1177
JH
103402011-06-13 Jan Hubicka <jh@suse.cz>
10341
10342 * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
10343 similarly to DECL_COMDAT.
10344 * cgraphunit.c (cgraph_analyze_function): Likewise.
10345 * ipa.c (function_and_variable_visibility): Likewise.
10346
618abf9a
JH
103472011-06-13 Jan Hubicka <jh@suse.cz>
10348
10349 * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
10350 BINFO_VIRTUALS when streaming for ltrans unit.
10351
a45fe02f
DE
103522011-06-13 David Edelsohn <dje.gcc@gmail.com>
10353
10354 * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
10355 (movdi_internal64): Same.
10356
103572011-06-13 Edmar Wienskoski <edmar@freescale.com>
10358
e641e495 10359 PR target/44618
7d8d16c3
RM
10360 * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
10361 a set of similar patterns, where the MATCH_OPERAND for the function
10362 argument is replaced with individual references to hardware registers.
a45fe02f
DE
10363 (save_fpregs_<mode>): Ditto
10364 (restore_gpregs_<mode>): Ditto
10365 (return_and_restore_gpregs_<mode>): Ditto
10366 (return_and_restore_fpregs_<mode>): Ditto
10367 (return_and_restore_fpregs_aix_<mode>): Ditto
10368
8775a18b
JH
103692011-06-13 Jan Hubicka <jh@suse.cz>
10370
10371 * ipa-utils.c (postorder_stack): New structure.
10372 (ipa_reverse_postorder): Handle aliases.
10373
103742011-06-13 Jan Hubicka <jh@suse.cz>
10375
10376 * ipa-inline.c (reset_edge_caches): Walk aliases.
10377 (update_caller_keys): Do not test inlinability of aliases.
10378 * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
10379 (do_estimate_growth): Fix typo.
10380
6c69a029
JH
103812011-06-13 Jan Hubicka <jh@suse.cz>
10382
10383 * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
10384 (can_remove_node_now_p): ... here; handle same comdat groups.
10385 (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
10386 (inline_call): Update use of can_remove_node_now_p.
10387
10c63ba4 103882011-06-13 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
495f8c14 10389
10c63ba4 10390 * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
495f8c14
KP
10391 condition to disallow non-identical memory locations.
10392 (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
10393 preference to bit manipulation instructions.
495f8c14 10394
9aa3f5c5
JH
103952011-06-13 Jan Hubicka <jh@suse.cz>
10396
10397 * cgraph.c (cgraph_for_node_thunks_and_aliases,
10398 cgraph_for_node_and_aliases): Fix thinko in recursive walking.
10399 (nonremovable_p): New function.
10400 (cgraph_can_remove_if_no_direct_calls_p): New function.
10401 (used_from_object_file_p): New functoin.
10c63ba4
EB
10402 (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
10403 references from aliases.
9aa3f5c5
JH
10404 * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
10405 * ipa-inline.c (check_caller_edge): New function.
10c63ba4
EB
10406 (want_inline_function_called_once_p): Use it; accept aliases called
10407 once, too.
9aa3f5c5
JH
10408 * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
10409
30cecf17
RR
104102011-06-13 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10411
10412 PR target/48454
10413 * config/arm/neon.md (vec_pack_trunc): Set the lengths
10414 correctly for the case with Quad vectors.
10415
29f85237
JJ
104162011-06-13 Jakub Jelinek <jakub@redhat.com>
10417 Ira Rosen <ira.rosen@linaro.org>
10418
10419 PR tree-optimization/49352
10420 * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
10421 all, make sure loop_use_stmt after the loop is a def stmt of a used
10422 SSA_NAME that is the only one defined inside of the loop. Don't
10423 check for COND_EXPR and GIMPLE_BINARY_RHS.
10424 (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
10425 check_reduction is true.
10426
c3e3f090
JH
104272011-06-11 Jan Hubicka <jh@suse.cz>
10428
10429 PR middle-end/49373
10430 * ipa.c (cgraph_externally_visible_p): Check resolution info.
10431
516e0768
JH
104322011-06-11 Jan Hubicka <jh@suse.cz>
10433
10434 PR middle-end/48836
10435 * ipa-inline-transform.c: Include tree-pass.h
10436 (inline_transform): Set TODO_update_ssa_only_virtuals.
10437 * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
10438
903b0a8b
JH
104392011-06-11 Jan Hubicka <jh@suse.cz>
10440
10441 PR middle-end/49378
10442 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
10443 aliases and thunks.
10444
44542f8e
IR
104452011-06-12 Ira Rosen <ira.rosen@linaro.org>
10446
10447 * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
10448 Take number of iterations to peel into account for equally frequent
10449 misalignment values.
10450
ea89702b
JH
104512011-06-11 Jan Hubicka <jh@suse.cz>
10452
637c11bd
UB
10453 * lto-streamer-out.c (produce_symtab): Stream out the newly
10454 represented aliases.
ea89702b 10455
380ed5ed
JH
104562011-06-11 Jan Hubicka <jh@suse.cz>
10457
637c11bd
UB
10458 * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
10459 varying args.
380ed5ed
JH
10460 (ipa_update_after_lto_read): Likewise.
10461 (ipa_write_node_info): Do not sream call_with_var_arguments.
10462 (ipa_read_node_info): Likewise.
10463
00cfc363
JH
104642011-06-11 Jan Hubicka <jh@suse.cz>
10465
10466 * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
10467
39e2db00
JH
104682011-06-11 Jan Hubicka <jh@suse.cz>
10469
10470 * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
10471 (lto_symtab_resolve_can_prevail_p): Likewise.
10472 (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
10473 * cgraph.c (same_body_aliases_done): New global var.
10474 (cgraph_same_body_alias_1): Rename to ...
10475 (cgraph_create_function_alias): ... this one; reorg to new
10476 representation.
10477 (cgraph_same_body_alias): Use cgraph_create_function_alias;
10478 record references when asked to.
10479 (cgraph_add_thunk): Fix formating.
10480 (cgraph_get_node): Kill same body alias code.
10481 (cgraph_node_for_asm): Likewise.
10482 (cgraph_remove_same_body_alias): Remove.
10483 (cgraph_remove_node): Kill same body alias code.
10484 (cgraph_mark_address_taken_node): Mark also the aliased function
10485 as having address taken.
10486 (dump_cgraph_node): Dump same body aliases.
10487 (cgraph_for_node_thunks_and_aliases): Update for new alias
10488 representation.
10489 (cgraph_for_node_and_aliases): Likewise.
10490 * cgraph.h (same_body): Kll pointer.
10491 (same_body_alias): Update comment.
10492 (same_body_aliases_done): Declare.
10493 (cgraph_remove_same_body_alias): Remove declaration.
10494 (cgraph_create_function_alias): Declare.
10495 (cgraph_process_same_body_aliases): Declare.
10496 (cgraph_function_with_gimple_body_p): Check for alias.
10497 (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
10498 (cgraph_alias_aliased_node): New function.
10499 (cgraph_function_node): Update for new aliases.
10500 (cgraph_function_or_thunk_node): Likewise.
10501 * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
10502 (inline_call): Remove dead aliases.
10c63ba4
EB
10503 * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
10504 name hack for same body aliases.
39e2db00
JH
10505 (clone_of_p): Look through aliases.
10506 (verify_cgraph_node): Verify aliases.
10507 (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
10508 (cgraph_process_same_body_aliases): New function.
10509 (process_function_and_variable_attributes): Disable weakref warning on
10510 alias.
10511 (cgraph_analyze_functions): Handle aliases.
10512 (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
10513 (assemble_thunks): Rename to ...
10514 (assemble_thunks_and_aliases): ... this one; handle aliases, too.
10515 (cgraph_expand_function): Remove alias output code.
10516 (cgraph_output_in_order): Skip aliases.
10517 (cgraph_preserve_function_body_p): Aliases don't need preserving.
10518 * ipa-ref.c (ipa_ref_use_name): Add alias reference.
10519 (ipa_record_reference): Do not assert on alias references.
10520 (ipa_ref_has_aliases_p): New function.
10521 * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
10522 (ipa_ref_has_aliases_p): Declare.
10523 * lto-cgraph.c (lto_output_node): Handle aliases.
10524 (input_node): Likewise.
10525 * lto-streamer-out.c (lto_output): Skip aliases.
10526 (produce_symtab): Kill same_body_alias code.
10527 * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
10528 (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
10529 * ipa-inline.c (update_caller_keys): Walk aliases.
10530 (inline_small_functions): Fix thinko in previous patch.
10531 * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
10532 (function_and_variable_visibility): Do not walk same body aliases.
10533 * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
10534 (ipa_pta_execute): Use it.
10535
9ee65b55
UB
105362011-06-11 Uros Bizjak <ubizjak@gmail.com>
10537
10538 * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
10539 (*vec_dupv2df): Rename from vec_dupv2df.
10540 (vec_dupv2df): New expander.
10541
105422011-06-11 Uros Bizjak <ubizjak@gmail.com>
10543
10544 * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
10545
105462011-06-11 Uros Bizjak <ubizjak@gmail.com>
10547
10548 * config/i386/i386.md: Use default value in "isa" attribute.
10549 * config/i386/sse.md: Ditto.
10550 * config/i386/mmx.md: Ditto.
10551
ba68a139
WG
105522011-06-10 Wei Guozhi <carrot@google.com>
10553
10554 PR target/45335
10555 * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
10556 stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
10557 (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
10558 related peephole2.
10559 (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
10560 related peephole2.
10561 * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
10562 (arm_legitimate_ldrd_p): New prototype.
10563 (arm_output_ldrd): New prototype.
10564 * config/arm/arm.c (arm_check_ldrd_operands): New function.
10565 (arm_legitimate_ldrd_p): New function.
10566 (arm_output_ldrd): New function.
10567
deced1e2
XDL
105682011-06-10 David Li <davidxl@google.com>
10569
10570 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10571 * passes.c (passr_eq): New function.
10572 (create_pass_tab): New function.
10573 (pass_traverse): New function.
10574 (dump_one_pass): New function.
10575 (dump_pass_list): New function.
10576 (dump_passes): New function.
10577
71fb4f92
JH
105782011-06-10 Jan Hubicka <jh@suse.cz>
10579
10580 * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
10581 setting the nothrow flag.
10582 * ipa-reference.c (propagate): Skip aliases.
10583 * ipa-pure-const.c (propagate_pure_const): Skip aliases.
10584 (propagate_nothrow): Skip aliases; do not update cgraph.
10585 (local_pure_const): Do not update cgraph.
10586 * tree-profile.c (tree_profiling): Do fixup_cfg.
10587
41817394
JH
105882011-06-10 Jan Hubicka <jh@suse.cz>
10589
10590 * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
10591 (cgraph_local_node_p): ... here; handle aliases.
10592 (has_addr_references_p): Break out from ...;
10593 (cgraph_remove_unreachable_nodes) ... here.
10594
fb37c1de
JH
105952011-06-10 Jan Hubicka <jh@suse.cz>
10596
10597 * opts.c (default_options): Enlist OPT_finline_functions_called_once.
9ee65b55
UB
10598 * common.opt (flag_inline_functions_called_once): Do not
10599 initialize to 1.
fb37c1de 10600
0818c24c
JH
106012011-06-10 Jan Hubicka <jh@suse.cz>
10602
10603 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
9ee65b55
UB
10604 (ipcp_initialize_node_lattices): Do not deal with aliases;
10605 Do not try to propagate through thunks.
0818c24c
JH
10606 (ipcp_change_tops_to_bottom): Do not deal with aliases.
10607
c8246dbe
JH
106082011-06-10 Jan Hubicka <jh@suse.cz>
10609
9ee65b55
UB
10610 * ipa-prop.c (ipa_write_node_info): Stream jump functions
10611 for indirect calls.
c8246dbe
JH
10612 (ipa_read_node_info): Likewise.
10613
d7e2a1c1
BS
106142011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10615
10616 PR lto/49302
10617 * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
10618 (build_and_insert_call): Likewise.
10619 (build_and_insert_ref): New.
10620 (gimple_expand_builtin_pow): Minor cleanup.
10621 (gimple_expand_builtin_cabs): New.
10622 (execute_cse_sincos): Add case for BUILT_IN_CABS.
9ee65b55 10623
749f25d8
JH
106242011-06-10 Jan Hubicka <jh@suse.cz>
10625
10626 * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
10627 (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
10628 (ipcp_initialize_node_lattices): We don't propagate through an aliases.
10629 (ipcp_propagate_stage): Skip aliases when propagating.
10630 (ipcp_need_redirect_p): Skip aliases.
10631 (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
10632 collect_callers_of_node.
10633 * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
10634 for aliases.
10635 (ipa_compute_jump_functions): Look through aliases.
10636
8340fbd7
RO
106372011-06-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10638
10639 * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
10640
9aaa7e47
HPN
106412011-06-10 Hans-Peter Nilsson <hp@axis.com>
10642
10643 * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
10644 Adjust comments.
10645 * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
10646
f1724940
JH
106472011-06-10 Jan Hubicka <jh@suse.cz>
10648
10649 * ipa-cp.c (ipcp_process_devirtualization_opportunities):
10650 Update call of gimple_get_virt_method_for_binfo.
10651 * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
10652 refuse_thunks parameter.
10653 (gimple_fold_call): Update.
10654 * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
10655
a6f834c5
JH
106562011-06-10 Jan Hubicka <jh@suse.cz>
10657
10658 * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
10659 (not_all_callers_have_enough_arguments_p): ... this one; turn into
10660 worker for cgraph_for_node_and_aliases.
10661 (convert_callers_for_node): Break out from ...
10662 (convert_callers): ... here.
10663 (modify_function): Use collect_callers_of_node.
10664 (ipa_early_sra): Use cgraph_for_node_and_aliases.
10665
7871eee3
RG
106662011-06-10 Richard Guenther <rguenther@suse.de>
10667
10668 PR tree-optimization/49361
10669 * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
10670 when not already in gimple form.
10671
dae957ae
RG
106722011-06-10 Richard Guenther <rguenther@suse.de>
10673
10674 PR bootstrap/49344
10675 * tree-ssa-math-opts.c (convert_mult_to_fma): Use
10676 FOR_EACH_PHI_OR_STMT_USE.
10677
a5b1779f
JH
106782011-06-10 Jan Hubicka <jh@suse.cz>
10679
10680 * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
10681 (clone_inlined_nodes): ... here.
10682 (inline_call): Use cgraph_function_or_thunk_node; redirect edge
10683 to real destination prior inlining.
10684 * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
10685 can_early_inline_edge_p, want_early_inline_function_p,
10686 want_early_inline_function_p, want_inline_small_function_p,
10687 want_inline_self_recursive_call_p, want_inline_function_called_once_p,
10688 edge_badness, update_all_callee_keys, lookup_recursive_calls,
10689 add_new_edges_to_heap, inline_small_functions, flatten_function,
10690 inline_always_inline_functions, early_inline_small_functions): Use
10691 cgraph_function_or_thunk_node.
10692 * ipa-inline-analysis.c (evaluate_conditions_for_edge,
10693 dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
10694 (do_estimate_edge_growth_1): Break out from ...
10695 (do_estimate_growth) ... here; walk aliases.
10696 (inline_generate_summary): Skip aliases.
10697
c1ae3ca5
RG
106982011-06-10 Richard Guenther <rguenther@suse.de>
10699
9ee65b55
UB
10700 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
10701 forward when combining, visit inserted stmts when a stmt was changed.
c1ae3ca5 10702
b504a918
PC
107032011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
10704
10705 * tree.h (error_operand_p): Add.
10706 * dbxout.c (dbxout_type_fields): Use the latter.
10707 * c-decl.c (add_stmt): Likewise.
10708 * gimplify.c (omp_add_variable, omp_notice_variable,
10709 gimplify_scan_omp_clauses): Likewise.
10710
3f5ea9dc 107112011-06-10 Georg-Johann Lay <avr@gjlay.de>
b504a918 10712
3f5ea9dc
GJL
10713 * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
10714 when a value is actually passed in regs.
10715
b11b0904 107162011-06-10 Eric Botcazou <ebotcazou@adacore.com>
870c3cf8 10717 Laurent Rougé <laurent.rouge@menta.fr>
b11b0904
EB
10718
10719 * doc/invoke.texi (SPARC options): Add -mflat.
10720 * config/sparc/sparc.opt: Likewise.
10721 * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
10722 (sparc_flat_expand_prologue): Declare.
10723 (sparc_flat_expand_epilogue): Likewise.
10724 * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
10725 (CPP_ENDIAN_SPEC): Replace with...
10726 (CPP_OTHER_SPEC): ...this. Also handle -mflat and -msoft-float.
10727 (CPP_SPEC): Adjust to above change.
10728 (EXTRA_SPECS): Likewise.
10729 (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
10730 (INCOMING_REGNO): Likewise.
10731 (OUTGOING_REGNO): Likewise.
10732 (LOCAL_REGNO): Likewise.
10733 (SETUP_FRAME_ADDRESSES): Likewise.
10734 (FIXED_REGISTERS): Set 0 for %fp.
10735 (CALL_USED_REGISTERS): Likewise.
10736 (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
10737 (EXIT_IGNORE_STACK): Define to 1 unconditionally.
10738 (RETURN_ADDR_REGNUM): Define.
10739 (RETURN_ADDR_RTX): Use it.
10740 (INCOMING_RETURN_ADDR_REGNUM): Define.
10741 (INCOMING_RETURN_ADDR_RTX): Use it.
10742 (DWARF_FRAME_RETURN_COLUMN): Likewise.
10743 (EH_RETURN_REGNUM): Define.
10744 (EH_RETURN_STACKADJ_RTX): Use it.
10745 (EH_RETURN_HANDLER_RTX): Delete.
10746 (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
10747 * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
10748 Delete.
10749 (struct machine_function): Add frame_size, apparent_frame_size,
10750 frame_base_reg, frame_base_offset, n_global_fp_regs and
10751 save_local_in_regs_p fields.
10752 (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
10753 sparc_frame_base_offset, sparc_n_global_fp_regs,
10754 sparc_save_local_in_regs_p): New macros.
10755 (sparc_option_override): Error out if -fcall-saved-REG is specified
10756 for Out registers.
10757 (eligible_for_restore_insn): Fix formatting.
10758 (eligible_for_return_delay): Likewise. Add TARGET_FLAT handling.
10759 (eligible_for_sibcall_delay): Likewise.
10760 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
10761 (sparc_legitimate_address_p): Adjust to above change.
10762 (save_global_or_fp_reg_p): New predicate.
10763 (return_addr_reg_needed_p): Likewise.
10764 (save_local_or_in_reg_p): Likewise.
10765 (sparc_compute_frame_size): Use them. Add TARGET_FLAT handling.
10766 (SORR_SAVE, SORR_RESTORE): Delete.
10767 (sorr_pred_t): New typedef.
10768 (sorr_act_t): New enum.
10769 (save_or_restore_regs): Rename to...
10770 (emit_save_or_restore_regs): ...this. Change type of LOW and HIGH
10771 parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
10772 ACTION_TRUE and ACTION_FALSE parameters. Implement more general
10773 mechanism. Add CFI information for double-word saves in 32-bit mode.
10774 (emit_adjust_base_to_offset): New function extracted from...
10775 (emit_save_or_restore_regs): ...this. Rename the rest to...
10776 (emit_save_or_restore_regs_global_fp_regs): ...this.
10777 (emit_save_or_restore_regs_local_in_regs): New function.
10778 (gen_create_flat_frame_[123]): New functions.
10779 (sparc_expand_prologue): Use SIZE local variable. Adjust.
10780 (sparc_flat_expand_prologue): New function.
10781 (sparc_asm_function_prologue): Add TARGET_FLAT handling.
10782 (sparc_expand_epilogue): Use SIZE local variable. Adjust.
10783 (sparc_flat_expand_epilogue): New function.
10784 (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
10785 (output_return): Likewise.
10786 (output_sibcall): Likewise.
10787 (sparc_output_mi_thunk): Likewise.
10788 (sparc_frame_pointer_required): Likewise.
10789 (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
10790 function optimization.
10791 * config/sparc/sparc.md (flat): New attribute.
10792 (prologue): Add TARGET_FLAT handling.
10793 (save_register_window): Disable if TARGET_FLAT.
10794 (create_flat_frame_[123]): New patterns.
10795 (epilogue): Add TARGET_FLAT handling.
10796 (sibcall_epilogue): Likewise.
10797 (eh_return): New expander.
10798 (eh_return_internal): New insn and splitter.
10799 (return_internal): Add TARGET_FLAT handling.
10800 (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
10801 (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
10802 (nonlocal_goto): Add TARGET_FLAT handling.
10803 * config/sparc/t-elf: Add -mflat multilib.
10804 * config/sparc/t-leon: Likewise.
10805
fede8efa
JH
108062011-06-10 Jan Hubicka <jh@suse.cz>
10807
10808 * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
10809 * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
10810 (self_recursive_p): Use cgraph_function_node.
10811 (propagate_pure_const): Likewise.
10812 (propagate_nothrow): Likewise.
10813 * ipa-reference.c (ipa_reference_get_not_read_global): Use
10814 cgraph_function_node.
10815 (propagate_bits): Likewise.
10816 (propagate): Likewise.
10817
0127c76f
RR
108182011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
10819 Richard Earnshaw <rearnsha@arm.com>
10820
9ee65b55 10821 * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
0127c76f
RR
10822 * config/arm/vfp.md (*arm_movdi_vfp): Delete.
10823 (*thumb2_movdi_vfp): Delete.
10824 (*arm_movdi_vfp_cortexa8): Delete.
10825 (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
10826 (*movdi_vfp_cortexa8): Likewise.
10827
f93fe5a0
RG
108282011-06-10 Richard Guenther <rguenther@suse.de>
10829
10830 * stor-layout.c (initialize_sizetypes): Give names to all
10831 sizetype kinds.
10832
f2164f87
IR
108332011-06-10 Ira Rosen <ira.rosen@linaro.org>
10834
10835 PR tree-optimization/49318
10836 * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
10837 irrelevant pattern statements.
10838
3f91c962
HPN
108392011-06-10 Hans-Peter Nilsson <hp@axis.com>
10840
3d223145
HPN
10841 * system.h (SETJMP_VIA_SAVE_AREA): Poison.
10842
3f91c962
HPN
10843 PR bootstrap/49354
10844 * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
10845 to last assignment.
10846
b125ad45
JH
108472011-06-09 Jan Hubicka <jh@suse.cz>
10848
10849 * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
10850 do not recompute reachable flag.
10851 (cgraph_finalize_function, cgraph_analyze_functions): Set
10852 redefined_extern_inline here.
10853
be330ed4
JH
108542011-06-09 Jan Hubicka <jh@suse.cz>
10855
10856 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
10857 (cgraph_only_called_directly_p): ... this one; bring offline.
10858 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
10859 varpool_used_from_object_file_p): Drop names from the declaratoin.
10860 (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
10861 collect_callers_of_node): New.
10862 (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
10863 (cgraph_edge_recursive_p): Use cgraph_function_node.
10864 * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
10865 (cgraph_node_cannot_be_local_p_1): Break out from ...
10866 (cgraph_node_can_be_local_p): ... here; walk aliases.
10867 (cgraph_for_node_thunks_and_aliases): New function.
10868 (cgraph_for_node_and_aliases): New function.
10869 (cgraph_make_node_local_1): Break out from ...
9ee65b55
UB
10870 (cgraph_make_node_local) ... here; use
10871 cgraph_for_node_thunks_and_aliases.
be330ed4 10872 (cgraph_set_nothrow_flag_1): Break out from ...
9ee65b55
UB
10873 (cgraph_set_nothrow_flag) ... here;
10874 use cgraph_for_node_thunks_and_aliases.
be330ed4 10875 (cgraph_set_const_flag_1): Break out from ...
9ee65b55
UB
10876 (cgraph_set_const_flag) ... here;
10877 use cgraph_for_node_thunks_and_aliases.
be330ed4 10878 (cgraph_set_pure_flag_1): Break out from ...
9ee65b55
UB
10879 (cgraph_set_pure_flag) ... here;
10880 use cgraph_for_node_thunks_and_aliases.
be330ed4 10881 (cgraph_propagate_frequency_1): Break out from ...
9ee65b55
UB
10882 (cgraph_propagate_frequency) ... here; use
10883 cgraph_for_node_thunks_and_aliases.
be330ed4 10884 (cgraph_used_from_object_file_p): Do not care about aliases.
9ee65b55
UB
10885 (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
10886 New functions.
be330ed4
JH
10887 (collect_callers_of_node_1, collect_callers_of_node): New functions.
10888
2ea91d6b
HPN
108892011-06-10 Hans-Peter Nilsson <hp@axis.com>
10890
10891 PR rtl-optimization/49154
10892 * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
10893 (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
10894 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
10895 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
10896 * config/cris/cris.h (cris_register_move_cost): Remove
10897 !TARGET_V32 code. Tweak comments.
10898
9cf4fb5a
JH
108992011-06-09 Jan Hubicka <jh@suse.cz>
10900
10901 * cgraphbuild.c (record_eh_tables): Mark personality function as having
10902 address taken.
10903
6049a4c8
HPN
109042011-06-10 Hans-Peter Nilsson <hp@axis.com>
10905
c577822e 10906 PR rtl-optimization/49154
9ee65b55
UB
10907 * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
10908 is a matching slot in the hashtable, assign it to classes_ptr.
c577822e 10909
54e1e4f7 10910 PR rtl-optimization/49154
6049a4c8
HPN
10911 * doc/tm.texi.in (Register Classes): Document rule for the narrowest
10912 register classes.
10913 * doc/tm.texi: Regenerate.
10914
3be68b64
KK
109152011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
10916
10917 PR target/49307
10918 * config/sh/sh.md (UNSPEC_CHKADD): New.
10919 (chk_guard_add): New define_insn_and_split.
10920 (symGOT_load): Use chk_guard_add instead of blockage.
10921
bf806a90
KT
109222011-06-09 Kai Tietz <ktietz@redhat.com>
10923
10924 * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
10925
d5a9738b
EB
109262011-06-09 Eric Botcazou <ebotcazou@adacore.com>
10927
10928 * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
10929
527e82c2
WG
109302011-06-09 Wei Guozhi <carrot@google.com>
10931
10932 PR target/46975
10933 * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
10934 (peephole2 for conditional move): Generate 16 bit instructions.
10935
b8bc3a43
UB
109362011-06-09 Uros Bizjak <ubizjak@gmail.com>
10937
10938 * config/i386/i386.md (*movdi_internal_rex64): Merge
10939 alternatives 6 and 8.
10940
4745da6e
DL
109412011-06-09 David Li <davidxl@google.com>
10942
10943 * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10944 * passes.c (passr_eq): New function.
10945 (create_pass_tab): New function.
10946 (pass_traverse): New function.
10947 (dump_one_pass): New function.
10948 (dump_pass_list): New function.
10949 (dump_passes): New function.
10950
bdf67bcb
DL
109512011-06-09 David Li <davidxl@google.com>
10952
10953 * tree-complex.c (tree_lower_complex): Gate cleanup.
10954 * tree-stdarg.c (check_all_va_list_escapes): Ditto.
10955 (execute_optimize_stdarg): Ditto.
10956 * tree-eh.c (execute_lower_eh_dispatch): Ditto.
10957 (execute_cleanup_eh_1): Ditto.
10958 (execute_cleanup_eh): Ditto.
10959 * gcse.c (gate_rtl_pre): Ditto.
10960 (execute_rtl_pre): Ditto.
10961 * except.c (finish_eh_generation): Ditto.
10962 (convert_to_eh_region_ranges): Ditto.
10963 * cprop.c (one_cprop_pass): Ditto.
10964
547fdef8
BS
109652011-06-09 Bernd Schmidt <bernds@codesourcery.com>
10966
10967 PR target/48673
10968 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
10969 in all basic blocks.
10970
10e48e39
RO
109712011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10972
10973 * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
10974 (HAVE_ENABLE_EXECUTE_STACK): Define.
10975 * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
10976 (HAVE_ENABLE_EXECUTE_STACK): Define.
10977 * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
10978 (HAVE_ENABLE_EXECUTE_STACK): Define.
10979 * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
10980 (ENABLE_EXECUTE_STACK): Remove.
10981 (HAVE_ENABLE_EXECUTE_STACK): Define.
10982 [IN_LIBGCC2]: Don't include <windows.h>.
10983 * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10984 (HAVE_ENABLE_EXECUTE_STACK): Define.
10985 * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
10986 (HAVE_ENABLE_EXECUTE_STACK): Define.
10987 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
10988 * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
10989 (HAVE_ENABLE_EXECUTE_STACK): Define.
10990 * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
10991 (HAVE_ENABLE_EXECUTE_STACK): Define.
10992 * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
10993 (HAVE_ENABLE_EXECUTE_STACK): Define.
10994 * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
10995 (HAVE_ENABLE_EXECUTE_STACK): Define.
10996 * config/alpha/alpha.c (alpha_trampoline_init): Test
10997 HAVE_ENABLE_EXECUTE_STACK.
10998 * config/i386/i386.c (ix86_trampoline_init): Likewise.
10999 * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11000 (sparc64_initialize_trampoline): Likewise.
11001 * libgcc2.c [L_enable_execute_stack]: Remove.
11002 * system.h (ENABLE_EXECUTE_STACK): Poison.
11003 * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
11004 * doc/tm.texi: Regenerate.
11005 * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
11006
8ced31fe
JJ
110072011-06-09 Jakub Jelinek <jakub@redhat.com>
11008
11009 PR middle-end/49308
11010 * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
11011 variable. After resetting and rescanning insn continue with previous
11012 statement.
11013
ee610fcd
RO
110142011-06-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11015
11016 * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
11017 (gcc_cv_ld_hidden): Likewise.
11018 * configure: Regenerate.
11019 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
11020 (ix86_stack_protect_fail): Mark unused.
11021 (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
11022 * config/rs6000/rs6000.c (rs6000_assemble_visibility)
11023 [TARGET_MACHO]: Don't define.
11024 (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
11025 (TARGET_STACK_PROTECT_FAIL): Likewise.
11026 (rs6000_stack_protect_fail): Mark unused.
11027 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
b8bc3a43 11028 USE_LINKONCE_INDIRECT. Don't emit .hidden expicitly.
ee610fcd 11029
8f2e22ff
AK
110302011-06-08 Andi Kleen <ak@linux.intel.com>
11031
11032 * varasm.c (get_section): Print location of other conflict
11033 for section conflicts.
11034
815cecbe
AK
110352011-06-08 Andi Kleen <ak@linux.intel.com>
11036
11037 * config/i386/driver-i386.c (host_detect_local_cpu):
11038 Add model 0x2d Intel CPU.
11039
1460ec5c
AK
110402011-06-08 Andi Kleen <ak@linux.intel.com>
11041
11042 * reginfo.c (global_regs_decl): Add.
b8bc3a43
UB
11043 (globalize_reg): Add decl parameter. Compute location. Pass location
11044 to warnings and add inform. Store decl in global_regs_decl.
1460ec5c
AK
11045 * rtl.h (globalize_reg): Update prototype.
11046 * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
11047
df17530a
MX
110482011-06-09 Mingjie Xing <mingjie.xing@gmail.com>
11049
11050 * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
11051
409fed48
KK
110522011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
11053
11054 PR target/49305
11055 * config/sh/predicates.md (general_movsrc_operand): Check
11056 mode for memory with indexed address for QI and HImode.
11057 (general_movdst_operand): Likewise.
11058
87c16a45
NP
110592011-06-09 Nicola Pero <nicola.pero@meta-innovation.com>
11060
b8bc3a43 11061 * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
87c16a45 11062
49931fcb
AO
110632011-06-08 Alexandre Oliva <aoliva@redhat.com>
11064
11065 * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
11066 (num_ssa_operands): Likewise.
11067 (op_iter_init_phiuse): Forward-declare.
11068 (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
11069
29494d1f
NC
110702011-06-08 Nick Clifton <nickc@redhat.com>
11071
11072 * doc/invoke.texi (ARM Options): Update description of
11073 -mthumb-interwork.
11074
4ffae7ff
L
110752011-06-08 H.J. Lu <hongjiu.lu@intel.com>
11076
11077 * config/i386/driver-i386.c (host_detect_local_cpu): Support
11078 unknown Intel family 0x6 CPUs.
11079
d9c77712
MJ
110802011-06-08 Martin Jambor <mjambor@suse.cz>
11081
11082 * tree-sra.c (mark_rw_status): Removed.
11083 (analyze_access_subtree): New parameter parent instead of
11084 mark_read and mark_write, propagate from that.
11085
b1def36c
JB
110862011-06-08 Julian Brown <julian@codesourcery.com>
11087
11088 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
11089 for double-precision helper functions in hard-float mode if only
11090 single-precision arithmetic is supported in hardware.
11091
6c8e9fc9
AM
110922011-06-08 Alexander Monakov <amonakov@ispras.ru>
11093
11094 PR rtl-optimization/49303
11095 * sel-sched.c (move_op): Use correct type for 'res'. Verify that
11096 code_motion_path_driver returned 0 or 1.
11097 (sel_region_finish): Clear h_d_i_d.
11098
c2bbcb0d
KK
110992011-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
11100
11101 * config/sh/sh.c (prepare_move_operands): Set pic register
11102 appropriately for global and local dynamic tls models even
11103 if flag_pic is unset.
11104
6976ae51
JM
111052011-06-07 Jason Merrill <jason@redhat.com>
11106
11107 * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
11108
bb5b1f5e
XDL
111092011-06-07 Xinliang David Li <davidxl@google.com>
11110 * passes.c (enable_disable_pass): Handle assembler name.
11111 (is_pass_explicitly_enabled_or_disabled): Ditto.
11112
91ffe356
RO
111132011-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11114
11115 PR tree-optimization/48497
11116 * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
11117
06bc3ec7
BS
111182011-06-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11119
11120 PR tree-optimization/46728
11121 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
11122 to use gimple_val_nonnegative_real_p.
11123 * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
11124 * gimple.h (gimple_val_nonnegative_real_p): New declaration.
29494d1f 11125
c074d740
L
111262011-06-07 H.J. Lu <hongjiu.lu@intel.com>
11127
11128 * config/i386/i386.md (*movsf_internal): Optimize AVX check.
11129
8973b112
SG
111302011-06-07 Sergey Grechanik <mouseentity@ispras.ru>
11131
11132 * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
11133 constant vectors.
11134
67b88453
RG
111352011-06-07 Richard Guenther <rguenther@suse.de>
11136
11137 * stor-layout.c (initialize_sizetypes): Initialize all
11138 sizetypes based on target definitions.
11139 (set_sizetype): Remove.
11140 * tree.c (build_common_tree_nodes): Do not call set_sizetype.
11141 * tree.h (set_sizetype): Remove.
11142
1dcad079
NC
111432011-06-07 Nick Clifton <nickc@redhat.com>
11144
11145 * config.gcc: Unify V850 architecture options and add support for
11146 newer V850 architectures.
11147 * config/v850/t-v850e: Delete.
11148
009db074
RG
111492011-06-07 Richard Guenther <rguenther@suse.de>
11150
11151 * tree.c (build_common_tree_nodes): Also initialize size_type_node.
11152 Call set_sizetype from here.
11153
f373314f
AS
111542011-06-07 Andrew Stubbs <ams@codesourcery.com>
11155
11156 * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
11157 (*maddhisi4tb, *maddhisi4tt): New define_insns.
11158
c536876e
AS
111592011-06-07 Bernd Schmidt <bernds@codesourcery.com>
11160 Andrew Stubbs <ams@codesourcery.com>
11161
11162 * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
11163 multiplies.
11164 * doc/md.texi (Canonicalization of Instructions): Document widening
11165 multiply canonicalization.
11166
308dc890
JJ
111672011-06-07 Jakub Jelinek <jakub@redhat.com>
11168
11169 PR gcov-profile/49299
b8bc3a43 11170 * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
308dc890 11171
383d9c83
IR
111722011-06-07 Ira Rosen <ira.rosen@linaro.org>
11173
11174 * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
11175 a pointer.
11176 * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
11177 vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
11178 vect_recog_pow_pattern): Likewise.
11179 (vect_pattern_recog_1): Remove declaration.
11180 (widened_name_p): Remove declaration. Add new argument to specify
11181 whether to check that both types are either signed or unsigned.
11182 (vect_recog_widen_mult_pattern): Update documentation. Handle
11183 unsigned patterns and multiplication by constants.
11184 (vect_pattern_recog_1): Update vect_recog_func references. Use
11185 statement information from the statement returned from pattern
11186 detection functions.
11187 (vect_pattern_recog): Update vect_recog_func reference.
11188 * tree-vect-stmts.c (vectorizable_type_promotion): For widening
11189 multiplication by a constant use the type of the other operand.
11190
4de4b0f2
RS
111912011-06-06 Richard Sandiford <rdsandiford@googlemail.com>
11192
11193 PR rtl-optimization/49145
11194 * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
11195
a9d24544
JJ
111962011-06-06 Jakub Jelinek <jakub@redhat.com>
11197
99a5e049
JJ
11198 PR debug/49262
11199 * dwarf2out.c (native_encode_initializer): Decrement count in each
11200 iteration.
11201
04902d4c
JJ
11202 PR debug/49294
11203 * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
11204 non-MODE_INT modes.
11205
a9d24544
JJ
11206 PR c++/49264
11207 * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
11208 if stmt folded into nothing.
b8bc3a43
UB
11209 * tree-inline.c (fold_marked_statements): If a builtin at the end of
11210 a bb folded into nothing, just update cgraph edges and move to next bb.
a9d24544
JJ
11211 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
11212 to be NULL. Don't compute count and frequency if new_call is NULL.
11213
47c79d56
DN
112142011-06-04 Diego Novillo <dnovillo@google.com>
11215
11216 * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
11217 (cgraph.o): Likewise.
11218 (cgraphunit.o): Likewise.
11219 * cgraphunit.c: Include lto-streamer.h
11220 (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
11221 if LTO is enabled.
11222 * lto-streamer-in.c (unpack_value_fields): Call
11223 streamer_hooks.unpack_value_fields if set.
11224 (lto_materialize_tree): For unhandled nodes, first try to
11225 call lto_streamer_hooks.alloc_tree, if it exists.
11226 (lto_input_ts_decl_common_tree_pointers): Move reading of
11227 DECL_INITIAL to lto_streamer_read_tree.
11228 (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
11229 (lto_streamer_read_tree): New.
11230 (lto_reader_init): Rename from lto_init_reader.
11231 Move initialization code to lto/lto.c.
11232 * lto-streamer-out.c (pack_value_fields): Call
11233 streamer_hooks.pack_value_fields if set.
b8bc3a43
UB
11234 (lto_output_tree_ref): For tree nodes that are not normally indexable,
11235 call streamer_hooks.indexable_with_decls_p before giving up.
47c79d56 11236 (lto_output_ts_decl_common_tree_pointers): Move handling
b8bc3a43
UB
11237 for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
11238 (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
11239 lto_is_streamable. Call lto_streamer_hooks.output_tree_header if set.
11240 (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
47c79d56
DN
11241 (lto_streamer_write_tree): New.
11242 (lto_output): Call lto_streamer_init directly.
11243 (lto_writer_init): Remove.
11244 * lto-streamer.c (streamer_hooks): New.
11245 (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
11246 instead of lto_preload_common_nodes.
11247 (lto_is_streamable): Move from lto-streamer.h
11248 (lto_streamer_hooks_init): New.
11249 (streamer_hooks): New.
11250 (streamer_hooks_init): New.
11251 * lto-streamer.h (struct output_block): Forward declare.
11252 (struct lto_input_block): Likewise.
11253 (struct data_in): Likewise.
11254 (struct bitpack_d): Likewise.
11255 (struct streamer_hooks): Declare.
11256 (streamer_hooks): Declare.
11257 (lto_streamer_hooks_init): Declare.
11258 (lto_streamer_write_tree): Declare.
11259 (lto_streamer_read_tree): Declare.
11260 (streamer_hooks_init): Declare.
11261 (lto_is_streamable): Move to lto-streamer.c
11262
22afe143
AK
112632011-06-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11264
11265 * longlong.h (smul_ppmm): The resulting register pair contains the
11266 higher order word first.
11267
3906ea1b
BS
112682011-06-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11269
11270 PR tree-optimization/46728
11271 * builtins.c (powi_table): Remove.
11272 (powi_lookup_cost): Remove.
11273 (powi_cost): Remove.
11274 (expand_powi_1): Remove.
11275 (expand_powi): Remove.
11276 (expand_builtin_pow_root): Remove.
11277 (expand_builtin_pow): Remove.
11278 (expand_builtin_powi): Eliminate handling of constant exponent.
11279 (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
b8bc3a43 11280
3598cabd
AO
112812011-06-06 Alexandre Oliva <aoliva@redhat.com>
11282
11283 * cprop.c (local_cprop_pass): Don't set changed for debug insns.
11284
a7a110bb
AO
112852011-06-06 Alexandre Oliva <aoliva@redhat.com>
11286
11287 * dce.c (reset_unmarked_insns_debug_uses): New.
11288 (delete_unmarked_insns): Skip debug insns.
11289 (prescan_insns_for_dce): Likewise.
11290 (rest_of_handle_ud_dce): Reset debug uses of removed sets.
11291 * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
11292 active reg can be found.
11293 (subst_all_stack_regs_in_debug_insn): New. Reset debug insn then.
11294 (convert_regs_1): Use it.
11295
6d8402ac
AO
112962011-06-06 Alexandre Oliva <aoliva@redhat.com>
11297
11298 * tree-pretty-print.c (dump_function_header): Add flags.
11299 Don't dump decl_uid with nouid.
11300 * tree-pretty-print.h (dump_function_header): Adjust.
11301 * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
11302 * passes.c (pass_init_dump_file): Pass dump_flags on.
11303 * tree-cfg.c (gimple_dump_cfg): Pass flags on.
11304
f75e1f1e
AO
113052011-06-06 Alexandre Oliva <aoliva@redhat.com>
11306
11307 PR bootstrap/49270
11308 * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
11309
275311c4
MP
113102011-06-06 Mikael Pettersson <mikpe@it.uu.se>
11311
11312 PR tree-optimization/49243
11313 * calls.c (setjmp_call_p): Also check if fndecl has the
11314 returns_twice attribute.
11315
aa4203e7
RO
113162011-06-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11317
11318 * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
11319 -ffast-math etc.
11320
48f9d59a
RH
113212011-06-06 Richard Henderson <rth@redhat.com>
11322 Georg-Johann Lay <avr@gjlay.de>
11323
11324 PR target/42210
11325 * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
11326 New predicates.
11327 * config/avr/avr.md ("insv"): New insn expander.
11328 ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
11329 "*insv.not.io", "*insv.reg"): New insns.
11330
11494830
HPN
113312011-06-06 Hans-Peter Nilsson <hp@bitrange.com>
11332
11333 PR target/49285
b8bc3a43
UB
11334 * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
11335 to nonimmediate_operand from memory_operand for the operand that is to
11336 be forced to memory by the expander. Lose the constraints.
11494830 11337
679e70df
EB
113382011-06-05 Eric Botcazou <ebotcazou@adacore.com>
11339
11340 * config/sparc/sparc.c (output_return): Fix thinko in the output of an
11341 EH return when delayed branches are disabled.
11342
4d3d7f15
UB
113432011-06-05 Uros Bizjak <ubizjak@gmail.com>
11344
11345 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
11346 Remove MODE_TI handling. Remove SSE1 handling in attribute "mode"
11347 calculation.
11348 (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
11349 Simplify MODE_V1DF and MODE_V2SF handling.
11350 (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
11351 Simplify MODE_SF handling.
11352
a45c0557
JH
113532011-06-04 Jan Hubicka <jh@suse.cz>
11354
11355 PR tree-optimization/48893
11356 PR tree-optimization/49091
11357 PR tree-optimization/49179
11358 * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
11359 Bounds check.
11360
26740835
JH
113612011-06-04 Jan Hubicka <jh@suse.cz>
11362
11363 PR lto/48954
b8bc3a43
UB
11364 * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
11365 bitmaps.
26740835 11366
014ab419
JW
113672011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
11368
11369 * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
11370
407bcba7
JJ
113712011-06-04 Jakub Jelinek <jakub@redhat.com>
11372
11373 PR target/49281
11374 * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
11375 to be strictly smaller than 1 << shiftcount.
11376
e3195c52
JH
113772011-06-04 Jan Hubicka <jh@suse.cz>
11378
11379 PR tree-optimize/48929
11380 * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
11381 of empty predicate.
11382
047d33a0
AO
113832011-06-04 Alexandre Oliva <aoliva@redhat.com>
11384
11385 PR debug/48333
11386 * calls.c (emit_call_1): Prefer the __builtin declaration of
11387 builtin functions.
11388
dc587809
DN
113892011-06-03 Diego Novillo <dnovillo@google.com>
11390
11391 * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
11392 (lto_input_tree_pointers): Likewise.
11393 * lto-streamer-out.c (pack_value_fields): Likewise.
11394 (lto_output_tree_pointers): Likewise.
11395 * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
11396 and OPTIMIZATION_NODE.
11397
58cd1d70
RO
113982011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11399
11400 * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
11401 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
11402 * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
11403 * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
11404 * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
11405 * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
11406 * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
11407 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
11408 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
11409 * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
11410 * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
11411 * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
11412 * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
11413 * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
11414 * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
11415 * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
11416 * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
11417 * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
11418 * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
11419 * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
11420 * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
11421 * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
11422 * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
11423 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
11424 * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
11425 * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
11426 * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
11427 * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
11428 * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
11429 * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
11430 * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
11431 * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
11432 * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
11433 * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
11434 * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
11435 * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
11436 * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
11437 * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
11438 * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
11439 * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
11440 * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
11441 * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
11442 * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
11443 * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
11444 * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
11445 * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
11446 * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
11447 * system.h (MD_UNWIND_SUPPORT): Poison.
11448 * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
11449 * doc/tm.texi: Regenerate.
11450 * unwind-dw2.c: Include md-unwind-support.h instead of
11451 MD_UNWIND_SUPPORT.
11452 * config/ia64/unwind-ia64.c: Likewise.
11453 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11454
10c63ba4 114552011-06-03 Jack Howarth <howarth@bromo.med.uc.edu>
34e0c8d5
JH
11456
11457 * varpool.c (varpool_extra_name_alias): Return NULL, not false.
11458
1b7a0148
RH
114592011-06-03 Richard Henderson <rth@redhat.com>
11460 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11461
11462 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
11463 (sigill_hdlr): Correct insn, insn size.
11464 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
11465
737346fa
RO
114662011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11467
11468 * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
11469 t-slibgcc-dummy.
11470 * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
11471 * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
11472 * config/mips/t-iris: Remove.
11473 * config/mips/t-irix6: New file.
11474 * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
11475
c192cee6
RO
114762011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11477
11478 * Makefile.in (LIB2ADDEHDEP): Remove.
11479 * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
11480 * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
11481 * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
11482 * config/t-darwin (LIB2ADDEHDEP): Remove.
11483 * config/t-freebsd (LIB2ADDEHDEP): Remove.
11484 * config/t-linux (LIB2ADDEHDEP): Remove.
11485
d5828cc7
DN
114862011-06-03 Diego Novillo <dnovillo@google.com>
11487
11488 * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
11489 (lto_register_var_decl_in_symtab): Likewise.
11490 (lto_register_function_decl_in_symtab): Likewise.
11491 (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
8929d9ea 11492 logic to uniquify_nodes.
d5828cc7 11493
ee33b5f0
RO
114942011-06-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11495
11496 * config/alpha/t-osf5: Remove.
11497 * config/alpha/t-osf-pthread: Remove.
11498 * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
11499 * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
11500
16868d84
JB
115012011-06-03 Julian Brown <julian@codesourcery.com>
11502
11503 * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
11504 (strongarm1110): Use strongarm tuning.
4d3d7f15 11505 * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
16868d84
JB
11506 * config/arm/arm.c (arm_strongarm_tune): New.
11507 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11508 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
11509 (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
11510 setting, using previous defaults or 1 for Cortex-A5.
11511 (arm_option_override): Set max_insns_skipped from current tuning.
11512
1cec1285
NS
115132011-06-03 Nathan Sidwell <nathan@codesourcery.com>
11514
11515 * doc/install.texi (Options specification): Document --with-specs.
11516
eed55426
RR
115172011-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11518
11519 * config/arm/neon.md (orndi3_neon): Actually split it.
11520
d5b6cc25
AO
115212011-06-02 Alexandre Oliva <aoliva@redhat.com>
11522
11523 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
11524 * var-tracking.c (reverse_op): Limite recurse depth to 5.
11525
2ba42841
AO
115262011-06-02 Alexandre Oliva <aoliva@redhat.com>
11527
11528 PR debug/47590
11529 * target.def (delay_sched2, delay_vartrack): New.
11530 * doc/tm.texi.in: Update.
11531 * doc/tm.texi: Rebuild.
11532 * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
11533 * var-tracking.c (gate_handle_var_tracking): Likewise.
11534 * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
11535 (bfin_flag_var_tracking): Drop.
11536 (output_file_start): Don't save and override flag_var_tracking.
11537 (bfin_option_override): Ditto flag_schedule_insns_after_reload.
11538 (bfin_reorg): Test original variables.
11539 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11540 * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
11541 (ia64_flag_var_tracking): Drop.
11542 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11543 (ia64_file_start): Don't save and override flag_var_tracking.
11544 (ia64_override_options_after_change): Ditto
11545 flag_schedule_insns_after_reload.
11546 (ia64_reorg): Test original variables.
11547 * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
11548 (picochip_flag_var_tracking): Drop.
11549 (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11550 (picochip_option_override): Don't save and override
11551 flag_schedule_insns_after_reload.
11552 (picochip_asm_file_start): Ditto flag_var_tracking.
11553 (picochip_reorg): Test original variables.
11554 * config/spu/spu.c (spu_flag_var_tracking): Drop.
11555 (TARGET_DELAY_VARTRACK): Define.
11556 (spu_var_tracking): New.
11557 (spu_machine_dependent_reorg): Call it.
11558 (asm_file_start): Don't save and override flag_var_tracking.
11559
a700b5f0
KK
115602011-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
11561
11562 PR target/49163
11563 * config/sh/predicates.md (general_movsrc_operand): Return 0
11564 for memory and memory subreg of which address is an invalid
11565 indexed address for QI and HImode.
11566 (general_movdst_operand): Likewise.
11567
76015c34
EB
115682011-06-02 Eric Botcazou <ebotcazou@adacore.com>
11569
11570 * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
11571 edges only, when there is a non-local label in the function.
11572 * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
11573
4e76acd2
UB
115742011-06-02 Uros Bizjak <ubizjak@gmail.com>
11575
11576 * config/i386/constraints.md (Y3): New register constraint.
11577 * config/i386/sse.md (*vec_interleave_highv2df): Merge with
11578 *sse3_interleave_highv2df and *sse2_interleave_highv2df.
11579 (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
11580 *sse2_interleave_lowv2df.
11581
288f605f
JB
115822011-06-02 Julian Brown <julian@codesourcery.com>
11583
11584 * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
11585 * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
11586 (arm_cortex_a5_tune): New.
11587
7ec70105
JB
115882011-06-02 Julian Brown <julian@codesourcery.com>
11589
153668ec
JB
11590 * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
11591 * config/arm/arm.c (arm_default_branch_cost): New.
11592 (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11593 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
11594 (arm_fa726_tune): Set branch_cost field using
11595 arm_default_branch_cost.
11596 * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
11597 current_tune structure.
11598 * dojump.c (tm_p.h): Include file.
11599
116002011-06-02 Julian Brown <julian@codesourcery.com>
11601
11602 * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
11603 tuning.
7ec70105
JB
11604 (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
11605 (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
11606 * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
11607 field.
11608 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
11609 (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
11610 (arm_fa726te_tune): Add prefer_constant_pool setting.
11611 (arm_v6t2_tune, arm_cortex_tune): New.
11612 * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
11613 prefer_constant_pool setting.
11614
aad61732
UB
116152011-06-02 Uros Bizjak <ubizjak@gmail.com>
11616
4e76acd2
UB
11617 * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
11618 switch statement.
aad61732
UB
11619 * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
11620 (*movdf_internal) <case 6,7,8>: Ditto.
11621
4e76acd2 11622 * config/i386/constraints.md (Y4): New register constraint.
aad61732
UB
11623 * config/i386/sse.md (vec_set<mode>_0): Merge with
11624 *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
11625 (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
11626 *vec_extractv2di_1_sse.
11627 (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
11628 and *vec_concatv2di_rex64_sse.
11629
6e588138
SH
116302011-06-02 Stuart Henderson <shenders@gcc.gnu.org>
11631
11632 PR target/48807
11633 * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
11634 of cgraph_local_info for null before attempting to use it.
11635
bc6d3f91
EB
116362011-06-02 Eric Botcazou <ebotcazou@adacore.com>
11637
11638 * function.h (struct stack_usage): Remove dynamic_alloc_count field.
11639 (current_function_dynamic_alloc_count): Delete.
11640 * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
11641 (expand_builtin_nonlocal_goto): Remove obsolete comment.
11642 (expand_builtin_update_setjmp_buf): Remove dead code.
11643 * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
11644 * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
11645 support.
11646 * function.c (instantiate_virtual_regs): Likewise.
11647 * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
11648 for a block with a single abnormal incoming edge.
11649 * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
a21ede65 11650 (SETJMP_VIA_SAVE_AREA): Delete.
bc6d3f91
EB
11651 * config/sparc/sparc-protos.h (load_got_register): Declare.
11652 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
11653 (load_got_register): Make global.
11654 (sparc_frame_pointer_required): Add 'static'.
11655 (sparc_can_eliminate): Likewise. Call sparc_frame_pointer_required.
11656 (sparc_builtin_setjmp_frame_value): New function.
11657 * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
11658 (save_stack_nonlocal): New expander.
11659 (restore_stack_nonlocal): Likewise.
11660 (nonlocal_goto): Remove modes, adjust predicates and reimplement.
11661 (nonlocal_goto_internal): New insn.
11662 (goto_handler_and_restore): Delete.
11663 (builtin_setjmp_setup): Likewise.
11664 (do_builtin_setjmp_setup): Likewise.
11665 (setjmp): Likewise.
11666 (builtin_setjmp_receiver): New expander.
11667
69282fee
DL
116682011-06-01 David Li <davidxl@google.com>
11669
11670 PR middle-end/49261
11671 * tree-pretty-print.c (dump_function_header): Format cleanup.
11672
e95873dd
KK
116732011-06-01 Kaz Kojima <kkojima@gcc.gnu.org>
11674
11675 PR target/49238
11676 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
11677 needed when original operands are used for msw_skip comparison.
11678
88c15821
JJ
116792011-06-01 Jakub Jelinek <jakub@redhat.com>
11680
11681 PR debug/49250
11682 * var-tracking.c (add_uses, add_stores): Don't call
11683 cselib_subst_to_values on ENTRY_VALUE.
11684
07233947
DN
116852011-06-01 Diego Novillo <dnovillo@google.com>
11686
11687 * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
11688 output_record_start with LTO_null instead of output_zero.
11689 (lto_output_ts_binfo_tree_pointers): Likewise.
11690 (lto_output_tree): Likewise.
11691 (output_eh_try_list): Likewise.
11692 (output_eh_region): Likewise.
11693 (output_eh_lp): Likewise.
11694 (output_eh_regions): Likewise.
11695 (output_bb): Likewise.
11696 (output_function): Likewise.
11697 (output_unreferenced_globals): Likewise.
11698 * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
11699 instead of NUM_TREE_CODES.
11700 (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
11701 (lto_output_int_in_range): Change << to >> when shifting VAL.
11702
4ee3537a
DN
117032011-06-01 Diego Novillo <dnovillo@google.com>
11704
11705 * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
11706 Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
11707
02972eaf
RS
117082011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
11709
11710 PR target/45074
11711 * optabs.h (valid_multiword_target_p): Declare.
11712 * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
11713 doing multi-word operations.
11714 * optabs.c (expand_binop): Likewise.
11715 (expand_doubleword_bswap): Likewise.
11716 (expand_absneg_bit): Likewise.
11717 (expand_unop): Likewise.
11718 (expand_copysign_bit): Likewise.
11719 (multiword_target_p): New function.
11720
4d41c2d1
RS
117212011-06-01 Richard Sandiford <rdsandiford@googlemail.com>
11722
11723 PR rtl-optimization/48830
11724 PR rtl-optimization/48808
11725 PR rtl-optimization/48792
11726 * reload.c (push_reload): Check contains_reg_of_mode.
11727 * reload1.c (strip_paradoxical_subreg): New function.
11728 (gen_reload_chain_without_interm_reg_p): Use it to handle
11729 paradoxical subregs.
11730 (emit_output_reload_insns, gen_reload): Likewise.
11731
5f57dccb
DL
117322011-06-01 David Li <davidxl@google.com>
11733
11734 * predict.c : Change pass name
11735 * ipa.c: Ditto.
11736 * dce.c: Ditto.
11737 * tree-profile.c: Ditto.
11738 * except.c: Ditto.
11739
ea6cf778
DL
117402011-06-01 David Li <davidxl@google.com>
11741
11742 * tree-pretty-print.c (dump_function_header): New function.
11743 * final.c (rest_of_clean_state): Use header dumper.
11744 * tree-cfg.c (gimple_dump_cfg): Use header dumper.
11745 * passes.c (pass_init_dump_file): Use header dumper.
11746
ebdc0d4b
JJ
117472011-06-01 Jakub Jelinek <jakub@redhat.com>
11748
eeeb9b49
JJ
11749 * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
11750 ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
11751 popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
11752 New functions.
11753 (mem_loc_descriptor): Use them.
11754
ebdc0d4b
JJ
11755 * var-tracking.c (create_entry_value): New function.
11756 (vt_add_function_parameter): Use it.
11757
0699e415
RO
117582011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11759
11760 * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
11761 Include <signal.h>, <ucontext.h>.
11762 (sigill_caught): Define.
11763 (sigill_hdlr): New function.
11764 (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
11765 insns can be executed.
aad61732 11766 * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
0699e415
RO
11767 * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
11768
ca24c5ad
RO
117692011-06-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11770
11771 * config/t-slibgcc-darwin: Move to ...
aad61732 11772 * config/t-slibgcc-dummy: ... this. Clarify comments.
ca24c5ad
RO
11773 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
11774 powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
11775 (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
aad61732 11776 (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems.
ca24c5ad
RO
11777 Remove i386/t-crtstuff from tmake_file.
11778 (i[34567]86-*-solaris2*): Remove t-svr4,
11779 t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
11780 t-slibgcc-dummy.
11781 (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
11782 (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
11783 sparc/t-crtfm from tmake_file.
11784 (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
11785 t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
11786 Remove extra_parts.
11787 * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
11788 * config/i386/t-nwld (SHLIB_LINK): Remove.
11789 * config/i386/t-rtems-i386: Rename to ...
11790 * config/i386/t-rtems: ... this.
11791 ($(T)crti.o, $(T)crtn.o): Remove.
11792 (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
11793 (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
11794 (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
11795 * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
11796 EXTRA_MULTILIB_PARTS): Remove.
11797 * config/sparc/t-sol2-64: Likewise.
11798 * config/sparc/t-sol2: Remove.
11799 * config/sparc/t-crtin: Remove.
11800 * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
11801 * config/i386/gmon-sol2.c: Remove.
11802 * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
11803 * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
11804 * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
11805 * config/i386/sol2-gc1.asm: Remove.
11806 * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
11807 * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
11808 * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
11809 * config/t-slibgcc-sld: Remove.
11810
a78d13c3
JJ
118112011-06-01 Jakub Jelinek <jakub@redhat.com>
11812
11813 * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
11814 base_type_for_mode with op_mode instead of mode.
11815
572070ef
PB
118162011-06-01 Paul Brook <paul@cpodesourcery.com>
11817
11818 * config/arm/arm-cores.def: Add cortex-r5. Add DIV flags to
11819 Cortex-A15.
11820 * config/arm/arm-tune.md: Regenerate.
11821 * config/arm/arm-tables.opt: Regenerate.
11822 * config/arm/arm.c (FL_DIV): Rename...
11823 (FL_THUMB_DIV): ... to this.
11824 (FL_ARM_DIV): Define.
11825 (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
11826 (arm_arch_hwdiv): Remove.
11827 (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
11828 (arm_issue_rate): Add cortexr5.
11829 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
11830 __ARM_ARCH_EXT_IDIV__.
11831 (TARGET_IDIV): Define.
11832 (arm_arch_hwdiv): Remove.
11833 (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
11834 * config/arm/arm.md (tune_cortexr4): Add cortexr5.
11835 (divsi3, udivsi3): New patterns.
11836 * config/arm/thumb2.md (divsi3, udivsi3): Remove.
11837 * doc/invoke.texi: Document ARM -mcpu=cortex-r5
11838
11026b51
MJ
118392011-06-01 Martin Jambor <mjambor@suse.cz>
11840
11841 * ipa-utils.c (ipa_dfs_info): New field scc_no.
11842 * ipa-utils.c (searchc): Set scc_no.
11843
b6156cf2
MJ
118442011-06-01 Martin Jambor <mjambor@suse.cz>
11845
11846 * ipa-utils.c (searchc_env): New field allow_overwritable.
11847 (searchc): do not ignore edges to overwritable nodes if indicated
11848 by env->allow_overwritable.
11849 (ipa_reduced_postorder): Set env.allow_overwritable.
11850
6807da97
RG
118512011-06-01 Richard Guenther <rguenther@suse.de>
11852
11853 * tree.c (free_lang_data): Do not reset boolean_type_node nor
11854 char_type_node.
11855 * lto-streamer.c (lto_record_common_node): Take node pointer,
11856 do not register types.
11857 (lto_preload_common_nodes): Explicitly skip preloading nodes
11858 that differ between frontends.
11859
66bd20e7 118602011-05-31 Pat Haugen <pthaugen@us.ibm.com>
ddaf42bc
PH
11861
11862 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
11863 NON_FLOAT_REGS.
11864
66bd20e7 118652011-05-31 Pat Haugen <pthaugen@us.ibm.com>
abdd692e
PH
11866
11867 * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
11868 parameter value for dump. Dump cost on outermost call only.
11869 (rs6000_memory_move_cost): Dump cost on outermost call only.
11870
7351d8da
JJ
118712011-05-31 Jakub Jelinek <jakub@redhat.com>
11872
ead7c399
JJ
11873 * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
11874 DW_OP_GNU_convert ops.
11875
509f4495
JJ
11876 * cselib.c (promote_debug_loc): Allow l->next non-NULL for
11877 cselib_preserve_constants.
11878 (cselib_lookup_1): If cselib_preserve_constants,
11879 a new VALUE is being created for REG and there is a VALUE for the
11880 same register in wider mode, add another loc with lowpart SUBREG of
11881 the wider VALUE.
11882 (cselib_subst_to_values): Handle ENTRY_VALUE.
11883 * var-tracking.c (replace_expr_with_values): Return NULL for
11884 ENTRY_VALUE too.
11885 * dwarf2out.c (convert_descriptor_to_signed): New function.
11886 (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
11887 instead of two shifts.
11888 (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
11889 the right mode if needed.
11890 (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
11891 (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
11892 convert_descriptor_to_signed.
11893 (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
11894 BSWAP, ROTATE, ROTATERT>: Handle these rtls.
11895
7351d8da
JJ
11896 PR target/48688
11897 * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
11898
5cc93ee0
UB
118992011-05-31 Uros Bizjak <ubizjak@gmail.com>
11900
11901 * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
11902 of X87MODEI12 and SWI48x instead of SSEMODEI24.
11903 (SWI248x): New mode iterator, rename from X87MODEI.
11904 (X87MODEI): Remove mode iterator.
11905 (X87MODEI12): Ditto.
11906 (SSEMODEI24): Ditto.
11907
f0686e78
AO
119082011-05-31 Alexandre Oliva <aoliva@redhat.com>
11909
11910 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
11911 * doc/invoke.texi: Document max-vartrack-expr-depth.
11912 * var-tracking.c (EXPR_DEPTH): New.
11913 (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
11914
f3308413
AO
119152011-05-31 Alexandre Oliva <aoliva@redhat.com>
11916
11917 * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
11918 * config/i386/sse.md: Add n to negated FMA pattern names.
11919
28c14a04
AO
119202011-05-31 Alexandre Oliva <aoliva@redhat.com>
11921
11922 * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
11923
70efc82d
AO
119242011-05-31 Alexandre Oliva <aoliva@redhat.com>
11925
5cc93ee0 11926 * gengtype-state.c (read_state_params_structs): Initialize previous.
70efc82d 11927
6ba5d856
UB
119282011-05-31 Uros Bizjak <ubizjak@gmail.com>
11929
11930 * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
11931 (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
11932
119332011-05-31 Uros Bizjak <ubizjak@gmail.com>
11934
11935 * config/i386/i386.md (*movtf_internal): Avoid allocating general
11936 registers. Penalize F*r->o alternative to prevent partial memory
11937 stalls. Slightly penalize *roF->*r alternative. Generate SSE
11938 CONST_DOUBLE immediates when optimizing function for size. Do not move
11939 CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
11940 (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
11941 (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
11942 (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
11943 alternatives.
11944 (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
11945
11946 (fp_register_operand splitters): Use fp_register_operand
11947 constraint. Do not use FP_REG_P in insn condition.
11948 (any_fp_register_operand splitters): Use any_fp_register_operand
11949 constraint. Do not use ANY_FP_REG_P in insn condition.
11950
533c07c5
JH
119512011-05-31 Jan Hubicka <jh@suse.cz>
11952
11953 * cgraph.h (cgraph_inline_failed_t): Give enum a name
11954 * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
11955 (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
11956 (lto_output_edge): Use output_enum and var_len_unsigned.
11957 (lto_output_varpool_node): Likewise.
11958 (input_overwrite_node): Do not take resolution parameter;
11959 extract it from a bitpack.
11960 (input_node): Do not read resolution; use input_enum and
11961 var_len_unsigned.
11962 (input_varpool_node): Likewise.
11963 (input_edge): Likewise.
11964 (input_cgraph_1): Likewise.
11965
2611db71
RG
119662011-05-31 Richard Guenther <rguenther@suse.de>
11967
11968 * gimple.c (gimple_register_canonical_type): Do not register
11969 any types via gimple_register_type.
11970
b9e57365
JH
119712011-05-31 Jan Hubicka <jh@suse.cz>
11972
11973 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
11974 of thunks.
11975
35979cc2
JJ
119762011-05-31 Jakub Jelinek <jakub@redhat.com>
11977
11978 PR rtl-optimization/49235
11979 * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
11980 (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
11981
8f7de592
IR
119822011-05-31 Ira Rosen <ira.rosen@linaro.org>
11983
11984 PR tree-optimization/49093
11985 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
11986 data references.
11987
8d8a3bda
DS
119882011-05-31 Dodji Seketeli <dodji@redhat.com>
11989
11990 PR debug/49047
11991 * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
6ba5d856 11992 for concrete functions containing the code of cloned functions.
8d8a3bda 11993
2e87621c
RG
119942011-05-31 Richard Guenther <rguenther@suse.de>
11995
11996 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
11997 to ...
11998 (forward_propagate_into_comparison_1): ... this.
11999 (forward_propagate_comparison): Rename to ...
12000 (forward_propagate_into_comparison): ... this. Split out
12001 real forward propagation code to ...
12002 (forward_propagate_comparison): ... this.
12003 (forward_propagate_into_gimple_cond): Remove looping.
12004 (forward_propagate_into_cond): Likewise.
12005 (simplify_not_neg_expr): Return whether we have done something.
12006 (simplify_gimple_switch): Likewise.
12007 (tree_ssa_forward_propagate_single_use_vars): Rename to ...
12008 (ssa_forward_propagate_and_combine): ... this. Re-structure
12009 to do a forward forward-propagation walk on BBs and a backward
6ba5d856 12010 stmt combining walk on BBs. Consistently re-scan changed statements.
2e87621c
RG
12011 (pass_forwprop): Adjust.
12012
5a880d5d
ILT
120132011-05-30 Ian Lance Taylor <iant@google.com>
12014
12015 * godump.c (go_format_type): Correct length of name added to
12016 obstack for anonymous field.
12017
5f133038
KK
120182011-05-30 Kaz Kojima <kkojima@gcc.gnu.org>
12019
12020 PR target/49186
12021 * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
12022 part of the second operand is 0.
12023
b17d5426
UB
120242011-05-30 Uros Bizjak <ubizjak@gmail.com>
12025
12026 * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
12027 to prevent partial memory stalls. Do not move CONST_DOUBLEs directly
12028 to memory for !TARGET_MEMORY_MISMATCH_STALL.
12029 (*movdf_internal_rex64): Do not penalize F->r alternative.
6ba5d856 12030 (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
b17d5426
UB
12031 memory stalls. Generate SSE and x87 CONST_DOUBLE immediates only
12032 when optimizing function for size. Do not move CONST_DOUBLEs
12033 directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
6ba5d856
UB
12034 (FP move splitters): Merge {TF,XF,DF}mode splitters. Do not handle
12035 SUBREGs. Do not check for MEM_P operands in the insn condition,
b17d5426
UB
12036 check for ANY_FP_REGNO_P instead.
12037 * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
12038 TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
12039 function for speed.
12040 * config/i386/i386.c (ix86_option_override_internal): Do not
12041 set TARGET_INTEGER_DFMODE_MOVES here.
12042
a0cd843f
L
120432011-05-30 H.J. Lu <hongjiu.lu@intel.com>
12044
12045 PR target/49168
aad61732 12046 * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
a0cd843f 12047
006a5f38
JJ
120482011-05-30 Jakub Jelinek <jakub@redhat.com>
12049
12050 * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
12051 DW_TAG_rvalue_reference_type even for
12052 -gdwarf-4 -fno-debug-types-section.
12053
6e96f98a
BS
120542011-05-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12055
12056 PR tree-optimization/46728
12057 * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
12058 (build_and_insert_binop): New.
12059 (gimple_expand_builtin_pow): Reorder args for
12060 build_and_insert_call; use build_and_insert_binop; add more
12061 optimizations for fractional exponents.
b17d5426 12062
4f60111f
NF
120632011-05-30 Nathan Froyd <froydnj@gcc.gnu.org>
12064
12065 PR bootstrap/49190
12066
12067 Revert:
12068 2011-05-26 Nathan Froyd <froydnj@codesourcery.com>
12069
12070 * tree.h (struct tree_identifier): Inherit from tree_typed, not
12071 tree_common.
12072 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12073 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12074 TS_BASE instead of TS_COMMON.
12075 * varasm.c (assemble_name): Remove assert.
12076
3fd7879d
RS
120772011-05-30 Richard Sandiford <rdsandiford@googlemail.com>
12078
12079 * config.gcc: Keep obselete list sorted.
12080
80060f7a
JJ
120812011-05-30 Jakub Jelinek <jakub@redhat.com>
12082 Eric Botcazou <ebotcazou@adacore.com>
12083
12084 * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
12085 crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
12086 there is a DRAP register and arg_pointer_rtx is the CFA pointer.
12087 (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
12088 (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
12089
17e99cdb
RG
120902011-05-30 Richard Guenther <rguenther@suse.de>
12091
12092 * gimple.c (gimple_types_compatible_p_1): Compare record
12093 and union type members properly.
12094
42b05b6e
RG
120952011-05-30 Richard Guenther <rguenther@suse.de>
12096
12097 PR tree-optimization/49210
6ba5d856
UB
12098 * ipa-split.c (split_function): Care for the case where the call
12099 result is not trivially convertible to the result holding variable.
42b05b6e 12100
f3321158
RG
121012011-05-30 Richard Guenther <rguenther@suse.de>
12102
12103 PR tree-optimization/49218
12104 * tree-vrp.c (adjust_range_with_scev): Properly check whether
12105 overflow occured.
12106
d12d8efe
RG
121072011-05-30 Richard Guenther <rguenther@suse.de>
12108
12109 * tree-ssa-forwprop.c (forward_propagate_into_comparison):
12110 New function split out from ...
12111 (forward_propagate_into_gimple_cond): ... here. Adjust.
12112 (forward_propagate_into_cond): Likewise.
12113 (forward_propagate_comparison): Also propagate into
12114 comparisons on assignment RHS. Change return value to
12115 behave similar to forward_propagate_into_cond.
12116 (tree_ssa_forward_propagate_single_use_vars): Handle
12117 strict-overflow warnings properly for forward_propagate_comparison.
12118
df33b41f
RO
121192011-05-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12120
12121 * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
12122 from plugin linker.
12123 * configure: Regenerate.
12124
69940d4d
IR
121252011-05-30 Ira Rosen <ira.rosen@linaro.org>
12126
12127 PR tree-optimization/49199
12128 * tree-vect-loop.c (vect_is_slp_reduction): Check that the
b17d5426 12129 non-reduction operands are either defined in the loop or by induction.
69940d4d 12130
226c52aa
XDL
121312011-05-29 Xinliang David Li <davidxl@google.com>
12132
12133 * opts-global.c (handle_common_deferred_options): Handle new options.
12134 * passes.c (register_one_dump_file): Call register_pass_name.
12135 (execute_one_pass): Check explicit enable/disable flag.
12136 (passr_hash): New function.
12137 (passr_eq): Ditto.
12138 (register_pass_name): Ditto.
12139 (get_pass_by_name): Ditto.
12140 (pass_hash): Ditto.
12141 (pass_eq): Ditto.
12142 (enable_pass): Ditto.
12143 (disable_pass): Ditto.
12144 (is_pass_explicitly_enabled_or_disabled): Ditto.
12145
491d8eed
UB
121462011-05-29 Uros Bizjak <ubizjak@gmail.com>
12147
12148 * config/i386/i386.md (*movoi_internal_avx): Use
12149 standard_sse_constant_opcode for alternative 0.
12150 (*movti_internal_sse): Ditto.
12151 (*movti_internal_rex64): Use standard_sse_constant_opcode for
12152 alternative 2.
12153 (*movdi_internal_rex64): Use standard_sse_constant_opcode for
12154 sselog1 type moves.
12155 (*movsi_internal): Ditto.
12156 (*movdi_internal): Ditto. Add ssecvt type moves.
12157
eb93b31f
EB
121582011-05-29 Eric Botcazou <ebotcazou@adacore.com>
12159
12160 PR target/48830
12161 * rtlanal.c (simplify_subreg_regno): Adjust comment.
12162
3f831b7d
JJ
121632011-05-29 Jakub Jelinek <jakub@redhat.com>
12164
12165 PR rtl-optimization/49095
12166 * config/i386/predicates.md (plusminuslogic_operator): New predicate.
12167 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
12168
ee3ee488
RS
121692011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
12170
12171 PR target/43995
12172 * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
12173 recurse_p argument. Only follow register copies if it is set,
12174 and prevent mips_find_pic_call_symbol from recursing.
12175 (mips_find_pic_call_symbol): Add a recurse_p argument.
12176 Pass it to mips_pic_call_symbol_from_set.
12177 (mips_annotate_pic_calls): Update accordingly.
12178
65f3dedb
RS
121792011-05-29 Richard Sandiford <rdsandiford@googlemail.com>
12180
12181 * emit-rtl.c (try_split): Use a loop to search for
12182 NOTE_INSN_CALL_ARG_LOCATIONs.
12183
61e374ab
RG
121842011-05-29 Richard Guenther <rguenther@suse.de>
12185
12186 PR tree-optimization/49217
12187 * ipa-pure-const.c (propagate_pure_const): Fix typos.
12188
fac009a8
JH
121892011-05-28 Jan Hubicka <jh@suse.cz>
12190
12191 * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
12192 length.
12193 (string_slot_free): Remove
12194 (create_output_block): Initialize obstack.
12195 (destroy_output_block): Free obstack.
12196 (lto_string_index): Add PERSISTENT parameter; do not duplicate
12197 the string unless it needs to be added into the hash.
12198 (lto_output_string_with_length): Add persistent attribute;
12199 handle NULL strings.
12200 (lto_output_string): Add PERSISTENT parameter.
12201 (output_string_cst, output_identifier): Simplify.
12202 (lto_output_location_bitpack): Update.
12203 (lto_output_builtin_tree): Update.
12204 * lto-streamer.h (struct output_block): Add obstack.
491d8eed
UB
12205 (lto_output_string, lto_output_string_with_length): Remove
12206 declarations; functions are static now.
fac009a8 12207
fa766006
JH
122082011-05-28 Jan Hubicka <jh@suse.cz>
12209
12210 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
12211 pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
12212 pack_ts_function_decl_value_fields, lto_output_builtin_tree,
12213 output_cfg, output_gimple_stmt): Use enum and variable length i/o.
12214 * lto-streamer-in.c (input_cfg, input_gimple_stmt,
12215 unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
12216 unpack_ts_decl_with_vis_value_fields,
12217 unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
12218 lto_get_builtin_tree): Use enum and variable length i/o.
12219 * basic-block.h (profile_status_d): Add PROFILE_LAST.
12220 * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
12221 New functions.
12222 (bp_pack_enum, bp_unpack_enum): New macros.
12223
e092158b
RS
122242011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
12225
12226 * genrecog.c: Remove redundant forward declarations.
12227
7ca2afa0
RS
122282011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
12229
12230 * config.gcc: Deprecate mips*-*-openbsd*.
12231
a601a53a
RS
122322011-05-28 Richard Sandiford <rdsandiford@googlemail.com>
12233
12234 PR bootstrap/49195
12235 * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
12236 for match_op_dup.
12237
fc64b448
AP
122382011-05-27 Andrew Pinski <pinskia@gmail.com>
12239
12240 PR middle-end/48981
12241 * gengtype.c (vec_prefix_type): New function.
12242 (note_def_vec): Use vec_prefix_type and change the length
12243 attribute to be based on the prefix.
12244 * vec.c: Include coretypes.h before vec.h.
12245 (struct vec_prefix): Remove.
12246 (vec_gc_p_reserve): Change the offsetof to sizeof.
12247 (vec_gc_p_reserve_exact): Likewise.
12248 (vec_heap_p_reserve): Likewise.
12249 (vec_heap_p_reserve_exact): Likewise.
12250 (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
12251 (vec_stack_p_reserve): Change the offsetof to sizeof.
12252 (vec_stack_p_reserve_exact): Likewise.
12253 * vec.h (struct vec_prefix): New struct definition.
12254 (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
12255 (VEC_T_GTY(T,B)): Likewise.
12256 (DEF_VEC_FUNC_P(T)): Use prefix field.
12257 (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
12258 (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
12259
ba869341
BS
122602011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12261
12262 PR tree-optimization/46728
12263 * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
12264 (powi_as_mults): Add gimple_set_location.
12265 (build_and_insert_call): New.
12266 (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
12267 0.5, 0.25, 0.75, 1./3., or 1./6.
491d8eed 12268
d296760d
AM
122692011-05-27 Alexander Monakov <amonakov@ispras.ru>
12270
12271 * doc/contrib.texi: Update copyright years.
12272 (Contributors): Add Zdenek Sojka.
12273
38e01f9e
NF
122742011-05-27 Nathan Froyd <froydnj@codesourcery.com>
12275
12276 * c-decl.c (c_push_function_context): Copy the current statement
12277 list stack.
12278 (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
12279 (finish_struct): Call building_stmt_list_p instead of checking
12280 cur_stmt_list.
12281 * c-parser.c (c_parser_postfix_expression): Likewise.
12282 * c-typeck.c (c_end_compound_stmt): Likewise.
12283 * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
12284 * tree-iterator.c (stmt_list_cache): Change to a VEC.
12285 (alloc_stmt_list): Adjust for stmt_list_cache's new type.
12286 (free_stmt_list): Likewise.
12287 * tree.h (struct tree_statement_list): Include typed_tree instead
12288 of tree_common.
12289 * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
12290 as TS_TYPED instead of TS_COMMON.
12291
8950516e 122922011-05-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
66bd20e7 12293 Uros Bizjak <ubizjak@gmail.com>
8950516e
RO
12294
12295 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
12296 (HAVE_AS_IX86_TLSGDPTL): Define.
12297 (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
12298 (HAVE_AS_IX86_TLSLDMPLT): Define.
12299 * configure: Regenerate.
12300 * config.in: Regenerate.
12301 * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
12302 * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
12303 TARGET_SUN_TLS, use @tlsgdplt or @plt.
12304 (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
12305 (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
12306 @tlsldmplt or @plt.
12307 (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
12308
b0bd15f7
BS
123092011-05-27 Bernd Schmidt <bernds@codesourcery.com>
12310
12311 * sched-int.h (struct _haifa_deps_insn_data): New members cond
12312 and reverse_cond.
12313 (INSN_COND, INSN_REVERSE_COND): New macros.
12314 * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
12315 once.
12316 (sched_get_condition_with_rev): Cache the results, and look them up
12317 if possible.
12318 (sched_analyze_insn): Destroy INSN_COND of previous insns if they
12319 are clobbered by the current insn.
12320 * target.def (exposed_pipline): New sched data hook.
12321 * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
12322 * doc/tm.texi: Regenerate.
12323
fa65a9cf
BS
123242011-05-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12325
12326 PR tree-optimization/49170
12327 * tree-ssa-math-opts.c (execute_cse_sincos): Add checks for
12328 sincos or cexp.
b0bd15f7 12329
c2299dfe
RG
123302011-05-27 Richard Guenther <rguenther@suse.de>
12331
12332 PR middle-end/49189
12333 * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
12334 of comparisons.
12335
a95b23b4
BS
123362011-05-27 Bernd Schmidt <bernds@codesourcery.com>
12337
12338 * haifa-sched.c (sched_scan_info): Remove.
12339 (schedule_block): Call sched_extend_luids rather than sched_init_luids
12340 with NULL args.
12341 (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
12342 Remove functions.
12343 (sched_scan): Remove.
12344 (sched_extend_luids): Renamed from luids_extend_insn and no longer
12345 static. All callers changed.
12346 (sched_init_insn_luid): Renamed from luids_init_insn and no longer
12347 static. All callers changed.
12348 (sched_init_luids): Remove all arguments except the first. All
12349 callers changed. Don't use sched_scan.
12350 (haifa_init_h_i_d): Likewise.
12351 (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
12352 manually rather than using sched_init_luids. Likewise with
12353 extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
12354 * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
12355 rather than sched_init_luids with NULL args.
12356 * sel-sched-ir.c (new_insns): Remove variable.
12357 (sched_scan): New static function, previously in haifa-sched.c. Remove
12358 all arguments but the first two; all callers changed.
12359 (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
12360 rather than sched_init_luids.
12361 (sel_init_bbs): Remove second argument. All callers changed.
12362 (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
12363 with NULL arguments.
12364 (create_insn_rtx_from_pattern): Likewise.
12365 * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
12366 * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
12367 (sched_init_insn_luid, sched_extend_luids): Declare.
12368 (sched_scan_info_def, sched_scan_info, sched_scan): Remove
12369 declarations.
12370
f8f972fc
RB
123712011-05-27 Richard Guenther <rguenther@suse.de>
12372
12373 PR middle-end/49177
12374 * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
12375 A CMP B ? (T) true : (T) false for non-integral types T again.
12376
51a9ed47
JH
123772011-05-27 Jan Hubicka <jh@suse.cz>
12378
12379 * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
12380 so 0 means NULL string.
12381 (lto_output_string_with_length): ... here.
f8f972fc
RB
12382 (lto_output_string, output_string_cst, output_identifier): Update
12383 handling of NULL strings.
51a9ed47
JH
12384 (lto_output_location_bitpack): New function.
12385 (lto_output_location): Use it.
12386 (lto_output_tree_ref): Use output_record_start.
f8f972fc
RB
12387 (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
12388 len values.
12389 * lto-streamer-in.c (string_for_index): Break out from ...; offset
12390 values by 1.
491d8eed 12391 (input_string_internal): ... here;
f8f972fc
RB
12392 (input_string_cst, input_identifier, lto_input_string): Update handling
12393 of NULL strings.
51a9ed47
JH
12394 (lto_input_location_bitpack): New function
12395 (lto_input_location): Use it.
f8f972fc
RB
12396 (unpack_ts_type_common_value_fields): Pack align & alias in var len
12397 values.
51a9ed47
JH
12398 * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
12399 bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
12400 (bp_pack_value): Sanity check the value range.
12401 * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
12402 New functions.
12403 * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
12404 New functions.
12405
66bd20e7 124062011-05-27 Hariharan Sandanagobalane <hariharan@picochip.com>
dc38fc2e
HS
12407
12408 * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
12409 call_arg_location instructions down the floor.
12410
574e418a
VM
124112011-05-26 Vladimir Makarov <vmakarov@redhat.com>
12412
12413 PR rtl-optimization/49154
12414 * ira.c (setup_pressure_classes): Process class without sublcasses
12415 as a candidate for pressure classes.
12416
6a1a787e
RS
124172011-05-26 Richard Sandiford <rdsandiford@googlemail.com>
12418
12419 PR rtl-optimization/48575
12420 * genrecog.c (position_type): New enum.
12421 (position): New structure.
12422 (decision): Use position structure instead of a string.
12423 (root_pos, peep2_insn_pos_list): New variables.
12424 (next_position, compare_positions): New functions.
12425 (new_decision): Use position structures instead of strings.
12426 (maybe_both_true): Likewise.
12427 (change_state): Likewise.
12428 (write_tree): Likewise.
12429 (make_insn_sequence): Likewise.
12430
92e948a8
NF
124312011-05-26 Nathan Froyd <froydnj@codesourcery.com>
12432
12433 * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
12434 TS_BASE instead of TS_COMMON.
12435 (find_decls_types_r): Check for TS_TYPED structure before looking at
12436 TREE_TYPE.
12437 * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
12438 Add chain field.
12439 (BLOCK_CHAIN): Use new chain field.
12440
66bd20e7 124412011-05-26 Pat Haugen <pthaugen@us.ibm.com>
c61e40d3
PH
12442
12443 * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
12444 moves expensive on Power7 also.
12445
1f498652
RG
124462011-05-26 Richard Guenther <rguenther@suse.de>
12447
12448 * fold-const.c (fold_unary_loc): Remove bogus code.
12449
a2fc3e63
NF
124502011-05-26 Nathan Froyd <froydnj@codesourcery.com>
12451
12452 * tree.h (struct tree_identifier): Inherit from tree_typed, not
12453 tree_common.
12454 (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12455 * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12456 TS_BASE instead of TS_COMMON.
12457 * varasm.c (assemble_name): Remove assert.
12458
d11bf18f
BS
124592011-05-26 Bernd Schmidt <bernds@codesourcery.com>
12460
12461 * Makefile.in (srcdirify): Change order so that libgcc_objdir is
12462 substituted first.
12463 * libgcc-std.ver: Delete file.
12464
ac8e1875
RG
124652011-05-26 Richard Guenther <rguenther@suse.de>
12466
12467 PR tree-optimization/48702
12468 * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
12469 only when we know the base address is within bounds.
12470 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
12471 assume the base address of TARGET_MEM_REFs is in bounds.
12472
7e32e652
RO
124732011-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12474
12475 PR target/49099
12476 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
12477 declaration in TARGET_SOLARIS.
12478
66bd20e7 124792011-05-26 Hariharan Sandanagobalane <hariharan@picochip.com>
43660e0b
HS
12480
12481 * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
491d8eed 12482 The instruction is then expanded explicitly.
43660e0b
HS
12483 (supported_compare): Callable instruction.
12484 (compare): Likewise.
12485
1537737f
JJ
124862011-05-26 Jakub Jelinek <jakub@redhat.com>
12487
12488 PR c++/49165
12489 * gimplify.c (shortcut_cond_r): Don't special case
12490 COND_EXPRs if they have void type on one of their arms.
12491
7b1ac803
BS
124922011-05-26 Bernd Schmidt <bernds@codesourcery.com>
12493
12494 * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
12495 to reduce duplication, and to achieve a slightly more logical order
12496 of operations.
12497
1aa9438f
JJ
124982011-05-26 Jakub Jelinek <jakub@redhat.com>
12499
12500 PR tree-optimization/49161
12501 * tree-vrp.c (struct case_info): New type.
12502 (compare_case_labels): Sort case_info structs instead of
12503 trees, and not primarily by CASE_LABEL uids but by
12504 label_for_block indexes.
12505 (find_switch_asserts): Put case labels into struct case_info
12506 array instead of TREE_VEC, adjust sorting, compare label_for_block
12507 values instead of CASE_LABELs.
12508
50fed7bf
RR
125092011-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12510
12511 * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
12512 ("orndi3_neon"): Likewise.
12513 ("bic<mode>3_neon"): Likewise.
12514
48df3fa6
IR
125152011-05-26 Ira Rosen <ira.rosen@linaro.org>
12516
12517 PR tree-optimization/49038
12518 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
12519 Ensure at least one epilogue iteration if required by data
12520 accesses with gaps.
12521 * tree-vectorizer.h (struct _loop_vec_info): Add new field
12522 to mark loops that require peeling for gaps.
12523 * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
12524 (vect_get_known_peeling_cost): Take peeling for gaps into
12525 account.
12526 (vect_transform_loop): Generate epilogue if required by data
12527 access with gaps.
12528 * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
12529 loop as requiring an epilogue if there are gaps in the end of
12530 the strided group.
12531
53febcba
ILT
125322011-05-25 Ian Lance Taylor <iant@google.com>
12533
12534 * godump.c (go_format_type): Output the first field with a usable
12535 Go type, if any.
12536
dbbc4d4c
ILT
125372011-05-25 Ian Lance Taylor <iant@google.com>
12538
12539 * godump.c (go_format_type): Check for invalid type names, pointer
12540 target types, and struct field types.
12541
f03a5402
JM
125422011-05-25 Jason Merrill <jason@redhat.com>
12543
12544 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
12545
c497c412
UB
125462011-05-25 Uros Bizjak <ubizjak@gmail.com>
12547
12548 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
12549
e470affe
L
125502011-05-25 H.J. Lu <hongjiu.lu@intel.com>
12551
12552 * config/i386/i386.md (*movqi_extv_1)): Put back
12553 "register_operand" check in "type" calculation.
12554 (*movqi_extzv_2): Likewise.
12555
6c81b2bc
L
125562011-05-25 H.J. Lu <hongjiu.lu@intel.com>
12557
c497c412 12558 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
6c81b2bc 12559
0c007eb2
BS
125602011-05-25 Bernd Schmidt <bernds@codesourcery.com>
12561
12562 PR bootstrap/49160
12563 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
12564 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
12565 __divxc3, __divtc3): Wrap definitions in #ifndef.
12566
521ca78e
L
125672011-05-25 H.J. Lu <hongjiu.lu@intel.com>
12568
12569 PR target/49142
12570 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
12571 "register_operand" check and replace q_regs_operand with
12572 QIreg_operand in "type" calculation.
12573 (*movqi_extv_1): Likewise.
12574 (*movqi_extzv_2_rex64): Likewise.
12575 (*movqi_extzv_2): Likewise.
12576
12577 * config/i386/predicates.md (QIreg_operand): New.
12578
29f8b844
RG
125792011-05-25 Richard Guenther <rguenther@suse.de>
12580
12581 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
12582 type-based offset disambiguation, streamline MEM_REF and
12583 TARGET_MEM_REF handling.
12584
74838de3
L
125852011-05-25 H.J. Lu <hongjiu.lu@intel.com>
12586
12587 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
12588 (bdesc_special_args): Add pause intrinsic.
12589
12590 * config/i386/i386.md (UNSPEC_PAUSE): New.
12591 (pause): Likewise.
12592 (*pause): Likewise.
12593 * config/i386/ia32intrin.h (__pause): Likewise.
12594
12595 * doc/extend.texi (X86 Built-in Functions): Add documentation for
12596 pause intrinsic.
12597
d24ad7d6
BS
125982011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12599
12600 PR tree-optimization/46728
12601 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
12602 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
c497c412 12603
d9f8303f
NF
126042011-05-25 Nathan Froyd <froydnj@codesourcery.com>
12605
12606 * tree.h (struct tree_exp): Inherit from struct tree_typed.
12607 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
12608 instead of TS_COMMON.
12609
cdbf4541
BS
126102011-05-25 Bernd Schmidt <bernds@codesourcery.com>
12611
12612 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
12613 LIBGCC2_GNU_PREFIX is defined.
12614 (__N): New macro.
12615 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
12616 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
12617 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
12618 __clz_tab): Define using __N.
12619 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
12620 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
12621 * target.def (libfunc_gnu_prefix): New hook.
12622 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
12623 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
12624 * doc/tm.texi: Regenerate.
12625 * system.h (LIBGCC2_GNU_PREFIX): Poison.
12626 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
12627 account.
12628 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
12629 (init_optabs): Likewise for the bswap libfuncs.
12630 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
12631 and divide.
12632 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
12633 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
12634 * libgcc-std.ver: Remove.
12635 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
12636 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
12637 libgcc-std.ver.
12638 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12639 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
12640 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
12641 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
12642 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
12643 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12644 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12645 * config/fixed-bit.h (FIXED_OP): Define differently depending on
12646 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
12647 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
12648
f242c0a5
JH
126492011-05-25 Jan Hubicka <jh@suse.cz>
12650
12651 * lto-streamer-out.c (output_record_start): Use lto_output_enum
12652 (lto_output_tree): Use output_record_start.
12653 * lto-streamer-in.c (input_record_start): Use lto_input_enum
12654 (lto_get_pickled_tree): Use input_record_start.
12655 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
12656 (lto_value_range_error): New function.
12657 * lto-streamer.h (lto_value_range_error): Declare.
12658 (lto_output_int_in_range, lto_input_int_in_range): New functions.
12659 (lto_output_enum, lto_input_enum): New macros.
12660
a11e0df4
EB
126612011-05-25 Eric Botcazou <ebotcazou@adacore.com>
12662
12663 * common.opt (flag_stack_usage_info): New variable.
12664 (-Wstack-usage): New option.
12665 * doc/invoke.texi (Warning options): Document -Wstack-usage.
12666 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
12667 <OPT_fstack_usage>: Likewise.
12668 * toplev.c (output_stack_usage): Handle -Wstack-usage.
12669 * calls.c (expand_call): Test flag_stack_usage_info variable instead
12670 of flag_stack_usage.
12671 (emit_library_call_value_1): Likewise.
12672 * explow.c (allocate_dynamic_stack_space): Likewise.
12673 * function.c (instantiate_virtual_regs ): Likewise.
12674 (prepare_function_start): Likewise.
12675 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
12676 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12677 * config/arm/arm.c (arm_expand_prologue): Likewise.
12678 (thumb1_expand_prologue): Likewise.
12679 * config/avr/avr.c (expand_prologue): Likewise.
12680 * config/i386/i386.c (ix86_expand_prologue): Likewise.
12681 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12682 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
12683 * config/mips/mips.c (mips_expand_prologue): Likewise.
12684 * config/pa/pa.c (hppa_expand_prologue): Likewise.
12685 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12686 * config/s390/s390.c (s390_emit_prologue): Likewise.
12687 * config/sh/sh.c (sh_expand_prologue): Likewise.
12688 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12689 * config/spu/spu.c (spu_expand_prologue): Likewise.
12690
e7cfe241
RG
126912011-05-25 Richard Guenther <rguenther@suse.de>
12692
12693 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
12694 (gimple_canonical_types_compatible_p): Likewise.
12695
c5235f4c
JH
126962011-05-25 Jan Hubicka <jh@suse.cz>
12697
12698 PR middle-end/49062
12699 * ipa.c (function_and_variable_visibility): Only add to same
12700 comdat group list if DECL_ONE_ONLY.
12701
8242a0f6
AB
127022011-05-25 Andrey Belevantsev <abel@ispras.ru>
12703
12704 PR rtl-optimization/49014
12705 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
12706
642a011d
JJ
127072011-05-25 Jakub Jelinek <jakub@redhat.com>
12708
12709 PR target/49128
12710 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
12711
30a435d8
VM
127122011-05-24 Vladimir Makarov <vmakarov@redhat.com>
12713
12714 PR rtl-optimization/48757
12715 * ira-build.c (loop_with_eh_edge_p): Rename to
12716 loop_with_complex_edge_p, check edges on complexity, make function
12717 conditional.
12718 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
12719 conditional.
12720
24d1bbc7
EB
127212011-05-24 Eric Botcazou <ebotcazou@adacore.com>
12722
12723 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
12724 force flag_ira_share_save_slots to 0.
12725
65773087
EB
127262011-05-24 Eric Botcazou <ebotcazou@adacore.com>
12727
12728 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
12729 (vt_initialize): Set PROLOGUE_BB unconditionally.
12730 Add block comment about CFA_BASE_RTX machinery.
12731 Reset FP_CFA_OFFSET to -1 on all invalid paths.
12732 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
12733
4e26ba90
NP
127342011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
12735
12736 PR objc/48187
12737 * c-parser.c (c_parser_objc_class_instance_variables): More robust
12738 parsing of syntax error in ObjC instance variable lists. In
12739 particular, avoid an infinite loop if there is a stray ']'.
12740 Updated error message.
12741
936fd13c
ILT
127422011-05-24 Ian Lance Taylor <iant@google.com>
12743
12744 * godump.c (go_define): Don't accept a string immediately after
12745 another operand.
12746
f17333e3
ILT
127472011-05-24 Ian Lance Taylor <iant@google.com>
12748
12749 * godump.c (struct godump_container): Add invalid_hash field.
12750 (go_format_type): Return false if type is found in invalid_hash.
12751 (go_output_typedef): Add invalid type to invalid_hash.
12752 (go_finish): Create and delete invalid_hash.
12753
d24ad7d6 127542011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c497c412 12755
78be79d5
BS
12756 PR tree-optimization/46728
12757 * tree-ssa-math-opts.c (powi_table): New.
12758 (powi_lookup_cost): New.
12759 (powi_cost): New.
12760 (powi_as_mults_1): New.
12761 (powi_as_mults): New.
12762 (gimple_expand_builtin_powi): New.
12763 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
12764 (gate_cse_sincos): Remove sincos/cexp restriction.
f17333e3 12765
caee412b
RO
127662011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12767
12768 PR target/3746
12769 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
12770 mips-tdump native.
12771 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
12772 * mips-tdump.c: Likewise.
12773
5eed4f27
L
127742011-05-24 H.J. Lu <hongjiu.lu@intel.com>
12775
12776 PR target/49128
12777 * config/i386/driver-i386.c (host_detect_local_cpu): Always
12778 add -mno-XXX. Handle FMA.
12779
8c5fdaae
VM
127802011-05-24 Vladimir Makarov <vmakarov@redhat.com>
12781
12782 PR rtl-optimization/48633
12783 * ira-build.c (loop_with_eh_edge_p): New function.
12784 (mark_loops_for_removal): Use it.
12785
127862011-05-24 Vladimir Makarov <vmakarov@redhat.com>
113a5be6
VM
12787
12788 PR rtl-optimization/48971
12789 * ira.c (setup_pressure_classes): Don't check register move cost
12790 for classes with one registers. Don't add pressure class if there
12791 is a pressure class with the same available hard registers.
12792 Check contains_reg_of_mode. Fix a typo in collecting
12793 temp_hard_regset. Ignore hard registers not belonging to a class.
12794
df1f7315
UB
127952011-05-24 Uros Bizjak <ubizjak@gmail.com>
12796
12797 PR target/49133
12798 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
12799
ee0cb37c
EB
128002011-05-24 Eric Botcazou <ebotcazou@adacore.com>
12801 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12802
12803 PR gcov-profile/48845
12804 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
12805
6a20ce76
RG
128062011-05-24 Richard Guenther <rguenther@suse.de>
12807
12808 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
12809 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
12810 (gimple_types_compatible_p_1): Adjust.
12811 (iterative_hash_canonical_type): Do not bother about complete vs.
12812 incomplete types.
12813 (gimple_canonical_types_compatible_p): Likewise.
12814
2fcb858c
RO
128152011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12816
12817 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
12818
96d91dcf
RG
128192011-05-24 Richard Guenther <rguenther@suse.de>
12820
12821 PR bootstrap/49078
12822 * gimple.c (gimple_register_canonical_type): Revert
12823 previous change.
12824 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
12825 does not for a tree for the case where it matters. Cache
12826 pointer-type alias-sets.
12827
1ed1641d
JM
128282011-05-24 Joseph Myers <joseph@codesourcery.com>
12829
12830 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
12831 (OBJS): Remove options.o, opts-common.o and prefix.o.
12832 (OBJS-libcommon-target): New.
12833 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
12834 (BACKEND): Include libcommon-target.a.
12835 (MOSTLYCLEANFILES): Include libcommon-target.a.
12836 (libcommon-target.a): New.
12837 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
12838 prefix.o.
12839
57dfdff0
JM
128402011-05-23 Joseph Myers <joseph@codesourcery.com>
12841
12842 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
12843 parts of output shared with the driver.
12844 * optc-gen.awk: Don't generate parts of output not shared with the
12845 driver.
12846 * opth-gen.awk: Remove GCC_DRIVER conditionals.
12847 * doc/options.texi (SourcerInclude): Mention options-save.c.
12848 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
12849 (OBJS): Add options-save.o.
12850 (options-save.c, options-save.o): New.
12851 (options.o): Update dependencies.
12852 (gcc-options.o): Remove.
12853 (mostlyclean): Remove options-save.c.
12854
0e0d82a7
JJ
128552011-05-23 Jakub Jelinek <jakub@redhat.com>
12856
9166988f
JJ
12857 PR debug/49032
12858 * dbxout.c: Include cgraph.h.
12859 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
12860 and without value expr, return NULL if no varpool node exists for
12861 it or if it is not needed.
12862 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
12863
0e0d82a7
JJ
12864 PR c/49120
12865 * c-decl.c (start_decl): Convert expr to void_type_node.
12866
65712d5c
RS
128672011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
12868
12869 PR rtl-optimization/48826
12870 * emit-rtl.c (try_split): When splitting a call that is followed
12871 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
12872
9025085e
JJ
128732011-05-23 Jakub Jelinek <jakub@redhat.com>
12874
12875 * cfgexpand.c (expand_debug_expr): For unused non-addressable
12876 parameters passed in memory prefer using DECL_INCOMING_RTL over
12877 the pseudos it will be copied into.
12878
34a061be
L
128792011-05-23 H.J. Lu <hongjiu.lu@intel.com>
12880
12881 PR target/47315
12882 * config/i386/i386.c (ix86_option_override_internal): Save the
12883 initial options after checking vzeroupper.
12884
c375a3a4
DL
128852011-05-23 David Li <davidxl@google.com>
12886
12887 PR tree-optimization/48988
12888 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
12889 Initialize has_valid_pred for each pred chain.
12890
e1caba18
RG
128912011-05-23 Richard Guenther <rguenther@suse.de>
12892
12893 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
12894 (iterative_hash_gimple_type): Always hash type names.
12895
dde05067
NF
128962011-05-23 Nathan Froyd <froydnj@codesourcery.com>
12897
12898 * c-typeck.c (build_function_call_vec): Tweak call to
12899 check_function_arguments.
12900
094f6ab3
RG
129012011-05-23 Richard Guenther <rguenther@suse.de>
12902
12903 PR tree-optimization/49115
12904 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
12905 is not necessarily carried out, do not claim it kills the ref.
12906 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
12907
9a9822e1
RG
129082011-05-23 Richard Guenther <rguenther@suse.de>
12909
12910 PR middle-end/15419
12911 * builtins.c (fold_builtin_memory_op): Be less restrictive about
12912 what pointer types we accept for folding.
12913
c8028650
RO
129142011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12915
12916 * gthr-gnat.c: Remove.
12917 * gthr-gnat.h: Remove.
12918 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
12919 * config/t-freebsd (LIB2ADDEH): Likewise.
12920 * config/t-linux (LIB2ADDEH): Likewise.
12921 * config/t-sol2 (LIB2ADDEH): Likewise.
12922 * config/ia64/t-vms (LIB2ADDEH): Likewise.
12923 * configure.ac (target_thread_file): Remove gnat handling.
12924 * configure: Regenerate.
12925 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
12926
15882fe9
TG
129272011-05-23 Tristan Gingold <gingold@adacore.com>
12928 Eric Botcazou <ebotcazou@adacore.com>
12929
12930 * gcov.c (create_file_names): If no object directory is specified,
12931 keep the directory of the file.
12932
da90c957
RO
129332011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12934
12935 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
12936 * configure: Regenerate.
12937
7bba408b
JJ
129382011-05-23 Jakub Jelinek <jakub@redhat.com>
12939
12940 PR middle-end/48973
12941 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
12942 failed and the comparison has a single bit signed type, use
12943 constm1_rtx instead of const1_rtx for true value.
12944 (do_store_flag): If ops->type is single bit signed type, disable
12945 signel bit test optimization and pass -1 instead of 1 as last
12946 parameter to emit_store_flag_force.
12947
bc69f7ff
TV
129482011-05-23 Tom de Vries <tom@codesourcery.com>
12949
12950 PR target/45098
12951 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
12952 function.
12953 (infer_loop_bounds_from_undefined): Use new function.
12954
29cedf8e
RS
129552011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
12956
12957 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
12958 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
12959 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
12960 and -O0 otherwise.
12961 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
12962
afe8b6ec
EB
129632011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12964
12965 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
12966 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
12967 returns true.
12968
872dab53
RS
129692011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
12970
12971 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
12972
145f6c5b
EB
129732011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12974
12975 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
12976 UNSPEC_MOVE_PIC pattern.
12977
8ac79835
EB
129782011-05-22 Eric Botcazou <ebotcazou@adacore.com>
12979
12980 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
12981 (sparc-*-rtems*): Likewise.
12982 (sparc64-*-elf*): Likewise.
12983 (sparc64-*-rtems*): Likewise.
12984 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
12985 * config/sparc/t-crtin: New file.
12986 * config/sparc/t-sol2 (crti.o): Delete rule.
12987 (crtn.o): Likewise.
12988 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
12989 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
12990 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
12991 (ENDFILE_SPEC): Add crtn.o.
12992
5fb43dd8
TV
129932011-05-22 Tom de Vries <tom@codesourcery.com>
12994
12995 PR middle-end/48689
12996 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
12997 CODE_CONTAINS_STRUCT (TS_COMMON).
12998
ccb1b17b
JJ
129992011-05-22 Jakub Jelinek <jakub@redhat.com>
13000
13001 PR middle-end/49029
13002 * expmed.c (extract_fixed_bit_field): Test whether target can be used
13003 only after deciding which mode to use.
13004
50ad7db2
TV
130052011-05-22 Tom de Vries <tom@codesourcery.com>
13006
13007 PR target/45098
dc0a3366 13008 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
50ad7db2
TV
13009 for call to get_shiftadd_cost.
13010
ef230b38
UB
130112011-05-22 Uros Bizjak <ubizjak@gmail.com>
13012
13013 PR target/49104
13014 * config/i386/cpuid.h (bit_MMXEXT): New define.
13015
15f072f9
NC
130162011-05-22 Nick Clifton <nickc@redhat.com>
13017
13018 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
13019 initialisation of non-existant args[2] element. Use args[] array
13020 not arg[] array to pass arguments to build_function_type_list.
13021
e38fdc94
IR
130222011-05-22 Ira Rosen <ira.rosen@linaro.org>
13023
13024 PR tree-optimization/49087
ef230b38 13025 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
e38fdc94 13026
5b018c65
JM
130272011-05-21 Jason Merrill <jason@redhat.com>
13028
13029 PR c++/49092
13030 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
13031 static storage duration.
13032
abd9a770
EB
130332011-05-21 Eric Botcazou <ebotcazou@adacore.com>
13034
13035 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
13036 frame pointer.
13037
bd9a3248
EB
130382011-05-21 Eric Botcazou <ebotcazou@adacore.com>
13039
13040 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
13041 false if there are call-saved registers here...
13042 (sparc_can_use_return_insn_p): ...but here instead.
13043 (save_or_restore_regs): Fix thinko.
13044 (sparc_expand_prologue): Use current_function_is_leaf.
13045 (sparc_frame_pointer_required): Likewise.
13046
a5dfec9a
NC
130472011-05-21 Nick Clifton <nickc@redhat.com>
13048
13049 PR target/49098
13050 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
13051
555c3771
NP
130522011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
13053
13054 * gengtype.c (walk_type): Implemented "atomic" GTY option.
13055 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
13056
86fa5de4
JM
130572011-05-21 Joseph Myers <joseph@codesourcery.com>
13058
13059 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
13060 * optc-gen.awk: Move common code to opt-read.awk.
13061 * opth-gen.awk: Likewise.
ef230b38 13062 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
86fa5de4 13063
bce33ab2
NF
130642011-05-20 Nathan Froyd <froydnj@codesourcery.com>
13065
13066 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
13067
e6450c11
TV
130682011-05-20 Tom de Vries <tom@codesourcery.com>
13069
13070 PR target/45098
13071 * tree-ssa-loop-ivopts.c: Include expmed.h.
13072 (get_shiftadd_cost): New function.
13073 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
13074
0e8b84ec
JJ
130752011-05-20 Jakub Jelinek <jakub@redhat.com>
13076
13077 PR bootstrap/49086
13078 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
13079 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
13080
946bdf67
JM
130812011-05-20 Joseph Myers <joseph@codesourcery.com>
13082
13083 * Makefile.in: Update comment referring to $(OBJS-common).
13084
c53aafdf
ILT
130852011-05-20 Ian Lance Taylor <iant@google.com>
13086
13087 * godump.c (go_output_typedef): Put enum constants in the macro
13088 hash table to avoid duplicate Go const definitions.
13089
2691e6d7
JM
130902011-05-20 Joseph Myers <joseph@codesourcery.com>
13091
13092 * Makefile.in (LIBDEPS): Add libcommon.a.
13093 (LIBS): Likewise.
13094 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
13095 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
13096 pretty-print.o and version.o.
13097 (OBJS-libcommon): New.
13098 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
13099 (BACKEND): Add libcommon.a.
13100 (MOSTLYCLEANFILES): Likewise.
13101 (libcommon.a): New.
13102 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
13103 (cpp$(exeext)): Likewise.
13104 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
13105 pretty-print.o and input.o.
13106 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
13107 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
13108 (errors.o): Remove.
13109 (mips-tfile): Don't explicitly use version.o.
13110 (mips-tdump): Likewise.
13111 (gcov.o): Depend on $(DIAGNOSTIC_H).
13112 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
13113 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
13114 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
13115 * gcov-dump.c: Include intl.h and diagnostic.h.
13116 (main): Initialize diagnostics.
13117 * gcov.c: Include diagnostic.h.
13118 (fnotice): Remove.
13119 (main): Initialize diagnostics.
13120 * lto-wrapper.c: Include diagnostic.h.
13121 (main): Initialize diagnostics.
13122
252b3e8c
MM
131232011-05-20 Michael Matz <matz@suse.de>
13124
13125 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
13126
2ee36ba6
MM
131272011-05-20 Michael Matz <matz@suse.de>
13128 Richard Guenther <rguenther@suse.de>
13129
13130 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
13131 use lto_streamer_cache_append directly instead of returning a VEC.
13132 (preload_common_node): Remove.
13133 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
13134 track seen nodes.
13135 (lto_streamer_cache_create): Call lto_preload_common_nodes.
13136
90ff582f
RG
131372011-05-20 Richard Guenther <rguenther@suse.de>
13138
13139 PR tree-optimization/49079
13140 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
13141 MEM_REFs correctly for the trailing array access detection.
13142 Special case constants the same way as decls for overall size
13143 constraining.
13144
3cda91d8
UB
131452011-05-20 Uros Bizjak <ubizjak@gmail.com>
13146
13147 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
13148 argument expansion.
13149
6c66f733
JJ
131502011-05-20 Jakub Jelinek <jakub@redhat.com>
13151
13152 PR tree-optimization/49073
3cda91d8
UB
13153 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
13154 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
6c66f733
JJ
13155 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
13156
0ea80a16
RG
131572011-05-20 Richard Guenther <rguenther@suse.de>
13158
13159 PR middle-end/48849
13160 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
13161 of pointer types the same way the middle-end does.
13162
fb291a1e
RG
131632011-05-20 Richard Guenther <rguenther@suse.de>
13164
3cda91d8
UB
13165 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
13166 or pointer-to chains. Delay all fixup to uniquify_nodes.
fb291a1e 13167
37cb25ed
QN
131682011-05-19 Quentin Neill <quentin.neill@amd.com>
13169
13170 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
13171 (fma4_fmaddsub): Likewise
13172
a30726a4
JH
131732011-05-19 Jan Hubicka <jh@suse.cz>
13174
13175 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
13176 (GIMPLE_TYPE_PAIR_SIZE): New macro.
13177 (type_pair_cache): New static var.
13178 (lookup_type_pair): Use fixed sized custom hash; make inline.
13179 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
13180 calls of lookup_type_pair.
13181 (print_gimple_types_stats): Remove cache stats.
13182 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
13183 and gtc_ob.
13184
0955cf61
UB
131852011-05-19 Uros Bizjak <ubizjak@gmail.com>
13186
13187 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
13188 when TARGET_RDRND is active.
13189 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
13190 Generate dummy SImode target register when target is NULL.
13191
12d844c8
JM
131922011-05-19 Joseph Myers <joseph@codesourcery.com>
13193
13194 * config/arm/arm-fpus.def: New.
13195 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
13196 arm-fpus.def.
13197 * config/arm/arm-tables.opt: Regenerate.
13198 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
13199 (arm_option_override): Don't decode FPU name to string here.
13200 * config/arm/arm.opt (mfpu=): Use Enum.
13201 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
13202 Update dependencies.
13203
9e350e99
JM
132042011-05-19 Joseph Myers <joseph@codesourcery.com>
13205
13206 * collect2.c: Include diagnostic.h.
13207 (fatal_perror, fatal, error, fancy_abort): Remove.
13208 (main): Set progname. Call xmalloc_set_program_name and
13209 diagnostic_initialize.
13210 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
13211 scan_libraries, resolve_lib_name): Call fatal_error instead of
13212 fatal and fatal_perror.
13213 * collect2.h (error, fatal, fatal_perror): Don't declare.
13214 * tlink.c: Include diagnostic-core.h.
13215 (recompile_files): Call fatal_error instead of fatal_perror.
13216 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
13217 pretty-print.o and input.o.
13218 (collect2.o, tlink.o): Update dependencies.
13219
86ff4081
RO
132202011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13221
13222 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
13223
2ca48caa
RO
132242011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13225
13226 PR target/40483
13227 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
13228 COMDAT group syntax, both SPARC and x86 variants.
13229 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
13230 * configure: Regenerate.
13231 * config/sol2.h (TARGET_SOLARIS): Define.
13232 (PUSHSECTION_FORMAT): Remove.
13233 (SECTION_NAME_FORMAT): Define.
13234 * config/sol2.c: Include hashtab.h.
13235 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
13236 expansion, using SECTION_NAME_FORMAT.
13237 (solaris_comdat_htab): New variable.
13238 (struct comdat_entry): Define.
13239 (comdat_hash): New function.
13240 (comdat_eq): New function.
13241 (solaris_elf_asm_comdat_section): New function.
13242 (solaris_define_comdat_signature): New function.
13243 (solaris_code_end): New function.
13244 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
13245 (solaris_code_end): Declare.
13246 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
13247 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
13248 solaris_code_end.
13249 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
13250 Remove ATTRIBUTE_UNUSED.
13251 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
13252 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
0955cf61 13253 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
2ca48caa
RO
13254 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
13255 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
13256 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
13257 (PUSHSECTION_FORMAT): Remove.
13258 (SECTION_NAME_FORMAT): Redefine.
13259
da5fb469
KT
132602011-05-19 Kai Tietz <ktietz@redhat.com>
13261
13262 * tree-cfg.c (verify_gimple_assign_binary): Barf on
13263 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
13264 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
13265
1651e703 132662011-05-19 Anatoly Sokolov <aesok@post.ru>
0967b228
AS
13267 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13268
13269 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
13270
e497b9bd
RG
132712011-05-19 Richard Guenther <rguenther@suse.de>
13272
13273 PR middle-end/48985
13274 * tree-object-size.c (addr_object_size): If the pointed-to
13275 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
13276
31b3ca64
RG
132772011-05-19 Richard Guenther <rguenther@suse.de>
13278
13279 * gimple.c (gimple_types_compatible_p_1): Compare names of
13280 the types themselves.
13281 (iterative_hash_gimple_type): And hash them that way.
13282 (gimple_register_type_1): If we register a main variant properly
13283 initialize the leader to ourselves.
13284
bb8d292d
TV
132852011-05-19 Tom de Vries <tom@codesourcery.com>
13286
13287 PR target/45098
13288 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
13289 get_loop_invariant_expr_id.
13290 (get_loop_invariant_expr_id): Use get_expr_id.
13291 (parm_decl_cost): New function.
13292 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
13293 Improve bound cost estimation. Use different inv_expr_id for elim and
13294 express cases.
13295
a53c5024
TV
132962011-05-19 Tom de Vries <tom@codesourcery.com>
13297
13298 PR target/45098
13299 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
13300 cost_base.cost == 0.
13301
31f9eb59
L
133022011-05-18 H.J. Lu <hongjiu.lu@intel.com>
13303
13304 PR target/49002
66bd20e7
EB
13305 * config/i386/sse.md
13306 (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
13307 load cast.
31f9eb59 13308
681056ae
JJ
133092011-05-18 Jakub Jelinek <jakub@redhat.com>
13310
13311 PR tree-optimization/49039
13312 * tree-vrp.c (extract_range_from_binary_expr): For
13313 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
13314 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
13315
b5ee6752
TV
133162011-05-18 Tom de Vries <tom@codesourcery.com>
13317
13318 PR target/45098
13319 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
13320
0bda47a3
UB
133212011-05-18 Uros Bizjak <ubizjak@gmail.com>
13322
13323 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
13324 (*tls_global_dynamic_64): Ditto.
13325 (*tls_local_dynamic_base_32_gnu): Ditto.
13326 (*tls_local_dynamic_base_64): Ditto.
13327 (tls_initial_exec_64_sun): Ditto.
13328
033b0805
SH
133292011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
13330
13331 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
13332 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
13333 bf592-none.
13334 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
13335 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
13336 * config/bfin/bfin.c (bfin_cpus): Add bf592.
13337 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
0bda47a3 13338 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
033b0805
SH
13339 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
13340 * config/bfin/elf.h (LIB_SPEC): Add bf592.
13341
ba163417
JM
133422011-05-18 Joseph Myers <joseph@codesourcery.com>
13343
13344 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
0bda47a3 13345 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
ba163417
JM
13346 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
13347 target_thread_pointer, arm_structure_size_boundary, struct
13348 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
13349 struct abi_name, arm_all_abis): Remove.
0bda47a3
UB
13350 (arm_option_override) Don't process most enumerated option values here.
13351 Don't process target_fpe_name here. Work with integer not string for
13352 structure size boundary; use separate diagnostics for each case.
ba163417
JM
13353 * config/arm/arm.h (enum float_abi_type, enum
13354 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
13355 to arm-opts.h.
13356 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
13357 arm_structure_size_boundary): Remove.
13358 * config/arm/arm.opt (mabi=): Use Enum and Init.
13359 (arm_abi_type): New Enum and EnumValue entries.
13360 (mfloat-abi=): Use Enum and Init.
13361 (float_abi_type): New Enum and EnumValue entries.
0bda47a3 13362 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
ba163417
JM
13363 (mfp16-format=): Use Enum and Init.
13364 (arm_fp16_format_type): New Enum and EnumValue entries.
13365 (mstructure-size-boundary=): Use UInteger and Init.
13366 (mtp=): Use Enum and Init.
13367 (arm_tp_type): New Enum and EnumValue entries.
13368
179184e3
RG
133692011-05-18 Richard Guenther <rguenther@suse.de>
13370
13371 PR tree-optimization/49018
13372 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
13373 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
13374 gimple_has_side_effects.
13375
93b2a207
RG
133762011-05-18 Richard Guenther <rguenther@suse.de>
13377
13378 * gimple.c (gimple_register_type_1): New function, split out from ...
13379 (gimple_register_type): ... here. Avoid infinite recursion.
13380
b010117a
IR
133812011-05-18 Ira Rosen <ira.rosen@linaro.org>
13382
13383 PR tree-optimization/41881
13384 * tree-vectorizer.h (struct _loop_vec_info): Add new field
13385 reduction_chains along with a macro for its access.
13386 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
13387 (destroy_loop_vec_info): Free reduction chains.
13388 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
13389 (vect_is_slp_reduction): New function.
13390 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
13391 (vect_create_epilog_for_reduction): Support SLP reduction chains.
13392 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
13393 definition types for reduction chains.
13394 (vect_supported_load_permutation_p): Don't allow permutations for
13395 reduction chains.
13396 (vect_analyze_slp_instance): Support reduction chains.
13397 (vect_analyze_slp): Try to build SLP instance from reduction chains.
13398 (vect_get_constant_vectors): Handle reduction chains.
13399 (vect_schedule_slp_instance): Mark the first statement of the
13400 reduction chain as reduction.
13401
e14c1050
IR
134022011-05-18 Ira Rosen <ira.rosen@linaro.org>
13403
13404 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
13405 names for group elements access.
13406 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
13407 reduction chains as well. Remove data reference and interleaving
13408 related words from the fields names.
13409 * tree-vect-loop.c (vect_transform_loop): Use new names for group
13410 elements access.
13411 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
13412 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
13413 vect_update_interleaving_chain, vect_same_range_drs,
13414 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
13415 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
13416 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
13417 vect_analyze_group_access, vect_analyze_data_ref_access,
13418 vect_create_data_ref_ptr, vect_transform_strided_load,
13419 vect_record_strided_load_vectors): Likewise.
13420 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
13421 vect_model_load_cost, vectorizable_store, vectorizable_load,
13422 vect_remove_stores, new_stmt_vec_info): Likewise.
13423 * tree-vect-slp.c (vect_build_slp_tree,
13424 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
13425
51c213f7
RG
134262011-05-18 Richard Guenther <rguenther@suse.de>
13427
13428 PR middle-end/48989
13429 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
13430 operand verification.
13431 (verify_gimple_assign_binary): Likewise.
13432 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
13433 to non-1-precision BOOLEAN_TYPEs.
13434
8f5e5434
TV
134352011-05-18 Tom de Vries <tom@codesourcery.com>
13436
13437 PR target/45098
13438 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
13439
116bc3a4
JJ
134402011-05-18 Jakub Jelinek <jakub@redhat.com>
13441
13442 PR tree-optimization/49000
13443 * tree-ssa.c (execute_update_addresses_taken): Call
13444 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
13445 be rewritten and decl has been marked for renaming, reset
13446 the debug stmt.
13447
26a8964c
JM
134482011-05-17 Joseph Myers <joseph@codesourcery.com>
13449
13450 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
13451 enum_opts_set when testing if attributes have set -mfpmath=.
13452
82bd45d7
RS
134532011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
13454
13455 * config/mips/mips.c (mips_handle_option): Remove unused variable.
13456
267ffce3
UB
134572011-05-17 Uros Bizjak <ubizjak@gmail.com>
13458
13459 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
13460 info->entry with 0
13461 * tree-inline.c (maybe_inline_call_in_expr): Initialize
13462 id.transform_lang_insert_block with NULL.
13463
134642011-05-17 Uros Bizjak <ubizjak@gmail.com>
d9403b0d
UB
13465
13466 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
13467 (output_fp_compare): Change args 3 and 4 to bool.
13468 (ix86_expand_call): Change arg 6 to bool.
13469 (ix86_attr_length_immediate_default): Change arg 2 to bool.
13470 (ix86_attr_length_vex_default): Change arg 3 to bool.
13471 * config/i386/i386.md: Update all uses.
13472 * config/i386/i386.c: Ditto.
13473 (ix86_flags_dependent): Change return type to bool.
13474
5beaf664
RG
134752011-05-17 Richard Guenther <rguenther@suse.de>
13476
13477 * gimple.c (type_hash_pair_compare): Fix comparison.
13478
008bad7a
RG
134792011-05-17 Richard Guenther <rguenther@suse.de>
13480
13481 * gimple.c (iterative_hash_gimple_type): Simplify singleton
13482 case some more, fix final hash value of the non-singleton case.
13483
36461340
RG
134842011-05-17 Richard Guenther <rguenther@suse.de>
13485
13486 PR bootstrap/49013
13487 Revert
13488 2011-05-16 Richard Guenther <rguenther@suse.de>
13489
13490 * gimple.c (gimple_types_compatible_p_1): Use names of the
13491 type itself, not its main variant.
13492 (iterative_hash_gimple_type): Likewise.
13493
6b6a59f3
RG
134942011-05-17 Richard Guenther <rguenther@suse.de>
13495
13496 * gimple.c (gimple_register_canonical_type): Use the main-variant
13497 leader for computing the canonical type.
13498
4ffc4134
NC
134992011-05-17 Nick Clifton <nickc@redhat.com>
13500
a1d8754e
NC
13501 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
13502 moves.
13503
4ffc4134
NC
13504 * config/rx/rx.md: Add peephole to remove redundant extensions
13505 after loads.
39960f7a
NC
13506 (bitset_in_memory): Use rx_restricted_mem_operand.
13507 (bitinvert_in_memory): Likewise.
13508 (bitclr_in_memory): Likewise.
4ffc4134 13509
b3db92ac
KI
135102011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
13511 Nick Clifton <nickc@redhat.com>
13512
13513 * config/rx/rx.md: Add peepholes to match a register move followed
13514 by a comparison of the moved register. Replace these with an
13515 addition of zero that does both actions in one instruction.
13516
8637e32a
JJ
135172011-05-17 Jakub Jelinek <jakub@redhat.com>
13518
13519 PR target/48986
13520 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
13521 predicate to allow CONST_INT.
13522 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
13523
8023568e
JM
135242011-05-16 Joseph Myers <joseph@codesourcery.com>
13525
13526 * opts-common.c (opt_enum_arg_to_value): New.
13527 * opts.h (opt_enum_arg_to_value): Declare.
13528 * config/i386/i386.opt (fpmath): Remove.
13529 (mfpmath=): Use Enum, Init and Save.
13530 (fpmath_unit): New Enum and EnumValue entries.
13531 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
13532 name for function fpmath state.
13533 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
13534 * config/i386/i386.c: Include diagnostic.h.
13535 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
d9403b0d 13536 (ix86_target_string): Take enum fpmath_unit value instead of string.
8023568e 13537 (ix86_debug_options): Update call to ix86_target_string.
d9403b0d 13538 (ix86_option_override_internal): Don't process fpmath strings here.
8023568e
JM
13539 (x86_function_specific_save, ix86_function_specific_restore):
13540 Don't handle fpmath state specially.
13541 (ix86_function_specific_print): Pass fpmath state to
13542 ix86_target_string instead of printing in this function.
13543 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
13544 Handle enum attributes.
13545 (IX86_ATTR_ENUM, ix86_opt_enum): New.
13546 (ix86_valid_target_attribute_tree): Update option_strings
13547 handling. Handle fpmath as enum option.
13548 (ix86_can_inline_p): Update field names for function fpmath state.
13549 (ix86_expand_builtin): Update call to ix86_target_string.
13550 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
13551 (ix86_fpmath): Remove.
13552 * config/i386/t-i386 (i386.o): Update dependencies.
13553
9e8d926e
JM
135542011-05-16 Joseph Myers <joseph@codesourcery.com>
13555
13556 PR preprocessor/48677
13557 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
13558 from decoded_options[0], not from itself.
13559
f6449011
UB
135602011-05-16 Uros Bizjak <ubizjak@gmail.com>
13561
13562 * config/i386/constraints.md (z): New constraint.
13563 * config/i386/i386.c (c): New mode attribute.
13564 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
13565 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
13566 constraint for operand 0.
13567 (*call_vzeroupper): Ditto.
13568 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
13569 (*call_rex64_ms_sysv_vzeroupper): Ditto.
13570 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
13571 Use "lzm" constraint for operand 0.
13572 (*call_pop_vzeroupper): Ditto.
13573 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
13574 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
13575 constraint for operand 0.
13576 (*sibcall_vzeroupper): Ditto.
13577 (*sibcall_rex64_ms_sysv): Ditto.
13578 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
13579 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
13580 *sibcall_pop_1. Use "Uz" constraint for operand 0.
13581 (*sibcall_pop_vzeroupper): Ditto.
13582 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
13583 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
13584 mode iterator. Use "<c>zm" constraint for operand 1.
13585 (*call_value_vzeroupper): Ditto.
13586 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
d9403b0d 13587 for operand 1.
f6449011
UB
13588 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
13589 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
13590 *call_value_pop_1. Use "lzm" constraint for operand 1.
13591 (*call_value_pop_vzeroupper): Ditto.
13592 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
13593 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
13594 mode iterator. Use "Uz" constraint for operand 1.
13595 (*sibcall_value_vzeroupper): Ditto.
13596 (*sibcall_value_rex64_ms_sysv): Ditto.
13597 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
13598 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
13599 constraint for operand 1.
13600 (*sibcall_value_pop_vzeroupper): Ditto.
13601 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
13602 and "z" constraint for operand 2.
13603 (*tls_global_dynamic_32_gnu): Ditto.
13604 (*tls_local_dynamic_base_32_gnu): Ditto.
13605 (*tls_local_dynamic_base_64): Ditto.
13606 (*tls_local_dynamic_32_once): Ditto.
13607 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
13608 Update all callers.
13609 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
13610
c11b6902
RG
136112011-05-16 Richard Guenther <rguenther@suse.de>
13612
13613 * gimple.c (gimple_types_compatible_p_1): Use names of the
13614 type itself, not its main variant.
13615 (iterative_hash_gimple_type): Likewise.
13616
1e83b5f1
RG
136172011-05-16 Richard Guenther <rguenther@suse.de>
13618
f6449011
UB
13619 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
13620 always visit pointer target and function result and argument types.
1e83b5f1 13621
62e36382
JM
136222011-05-16 Jason Merrill <jason@redhat.com>
13623
13624 PR c++/48999
13625 * tree-inline.c (copy_statement_list): Put back recursion.
13626
687027a4
GJL
136272011-05-16 Georg-Johann Lay <avr@gjlay.de>
13628
13629 PR target/27663
13630 PR target/41076
13631 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
13632 * config/avr/avr.md ("*ior<mode>qi.byte0",
13633 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
13634
f24a5190
GJL
136352011-05-16 Georg-Johann Lay <avr@gjlay.de>
13636
13637 PR target/45099
13638 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
13639 register is needed for a function argument.
13640
3066f593
RG
136412011-05-16 Richard Guenther <rguenther@suse.de>
13642
13643 * gimple.c (struct type_hash_pair): New type.
13644 (type_hash_pair_compare): New function.
f6449011 13645 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
3066f593 13646
b2ab2cf4
RE
136472011-05-16 Revital Eres <revital.eres@linaro.org>
13648
f6449011 13649 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
b2ab2cf4 13650
dfb737fc
UB
136512011-05-15 Uros Bizjak <ubizjak@gmail.com>
13652
13653 * config/i386/i386.md (floating point move splitters): Fix
13654 usage of standard_80387_constant_p.
f6449011 13655 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
dfb737fc 13656
8caa1de0
UB
136572011-05-15 Uros Bizjak <ubizjak@gmail.com>
13658
13659 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
13660
8a519095
EB
136612011-05-14 Eric Botcazou <ebotcazou@adacore.com>
13662
13663 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
13664 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
13665 (tree_ssa_lim_finalize): Likewise.
13666
479fecd3
UB
136672011-05-14 Uros Bizjak <ubizjak@gmail.com>
13668
13669 * config/i386/constraint.md (Yd, Yx): New register constraints.
13670 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
13671 Yd conditional register constraint.
13672 (*movtf_internal): Use standard_sse_constant_opcode.
13673 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
13674 Yx conditional register constraint.
13675 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
13676 Yd conditional register constraint. Use standard_sse_constant_p to
13677 check for valid SSE constants and call standard_sse_constant_opcode to
13678 output SSE insn.
13679 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
13680 constants and call standard_sse_constant_opcode to output SSE insn.
13681 * config/i386/i386.c (ix86_option_ovverride_internal): Set
13682 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
13683 optimize_size is set.
13684 (standard_sse_constant_opcode): Output conditional AVX insn templates.
13685
2d8c9ad5
TB
136862011-05-14 Tobias Burnus <burnus@net-b.de>
13687
13688 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
13689
411a20d6
MJ
136902011-05-13 Martin Jambor <mjambor@suse.cz>
13691
13692 * ipa-prop.c (ipa_cst_from_jfunc): New function.
13693 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
13694 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
13695 (evaluate_conditions_for_ipcp_clone): Removed.
13696 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
13697 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
13698 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
13699
dc764d10
EB
137002011-05-13 Eric Botcazou <ebotcazou@adacore.com>
13701
13702 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
13703 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
13704 lieu of MAY_HAVE_DEBUG_STMTS.
13705 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
13706 debug statements if !MAY_HAVE_DEBUG_STMTS.
13707
9f47a24e
MT
137082011-05-13 Martin Thuresson <martint@google.com>
13709
13710 PR gcov-profile/47793
13711 * libgcov.c (gcov_exit): Support relative profile paths.
13712 * doc/invoke.texi (-fprofile-dir): Update for above change.
13713
b8a71aed
RG
137142011-05-13 Richard Guenther <rguenther@suse.de>
13715
13716 * gimple.c (gimple_canonical_types_compatible_p): Do not use
13717 type-pair caching, do not compare hashes.
13718
eb9f9259
NF
137192011-05-13 Nathan Froyd <froydnj@codesourcery.com>
13720
13721 PR middle-end/48965
13722 * tree-cfg.c (edge_to_cases_cleanup): Return true.
13723 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
13724
3c6cbf7a
KT
137252011-05-13 Kai Tietz <ktietz@redhat.com>
13726
13727 * gimplify.c (gimplify_expr): Make sure operand is boolified.
13728 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
13729 compatible type for TRUTH_NOT_EXPR.
13730
2e7f5dc0
L
137312011-05-13 H.J. Lu <hongjiu.lu@intel.com>
13732
dc764d10 13733 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
2e7f5dc0
L
13734 (ix86_hard_regno_mode_ok): Change return value to bool. Use
13735 can_create_pseudo_p ().
13736
e834e95c
RG
137372011-05-13 Richard Guenther <rguenther@suse.de>
13738
13739 PR lto/48978
13740 * gimple.c (iterative_hash_gimple_type): Revert change in
13741 pointer target and function result and argument hashing.
13742
34203483
UB
137432011-05-13 Uros Bizjak <ubizjak@gmail.com>
13744
13745 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
13746 (*movxf_internal_nointeger): Ditto.
13747 (*movdf_internal_rex64): Ditto.
13748 (*movdf_internal): Ditto.
13749 (*movdf_internal_nointeger): Ditto.
13750 (*movsf_internal): Ditto.
13751 (sincos splitters): Use can_create_pseudo ().
13752
7eb68c06
JM
137532011-05-13 Joseph Myers <joseph@codesourcery.com>
13754
13755 * config/i386/i386-opts.h: New.
13756 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
13757 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
13758 ix86_section_threshold): Remove.
13759 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
13760 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
13761 OPT_mbranch_cost_.
13762 (ix86_option_override_internal): Don't decode strings for options
13763 other than -march=, -mtune= and -mfpmath=. Don't allow for
13764 __attribute__ uses in remaining diagnostics for options with
34203483 13765 string arguments. Don't check for integer arguments being negative.
7eb68c06 13766 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
34203483 13767 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
7eb68c06
JM
13768 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
13769 ix86_branch_cost, ix86_section_threshold): Remove.
13770 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
13771 HeaderInclude.
13772 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
13773 but not Var.
13774 (masm=): Use Enum and Init.
13775 (asm_dialect): New Enum and EnumValue entries.
13776 (mbranch-cost=): Use UInteger.
13777 (mlarge-data-threshold=): Use UInteger and Init.
13778 (mcmodel=): Use Enum and Init.
13779 (cmodel): New Enum and EnumValue entries.
13780 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
13781 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
13782 mregparm=): Use UInteger.
13783 (mstringop-strategy=): Use Enum and Init.
13784 (stringop_alg): New Enum and EnumValue entries.
13785 (mtls-dialect=): Use Enum and Init.
13786 (tls_dialect): New Enum and EnumValue entries.
13787 (mabi=): Use Enum and Init.
13788 (calling_abi): New Enum and EnumValue entries.
13789 (mveclibabi=): Use Enum and Init.
13790 (ix86_veclibabi): New Enum and EnumValue entries.
13791
f67e203c
NC
137922011-05-13 Nick Clifton <nickc@redhat.com>
13793
34203483
UB
13794 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
13795 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
f67e203c 13796
221df0b6
KT
137972011-05-13 Kai Tietz <ktietz@redhat.com>
13798
13799 PR middle-end/48984
13800 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
13801 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
13802 (gimple_boolify): Check for cast for boolean_type_node instead for
13803 BOOLEAN_TYPE.
13804
208cb8cb
RG
138052011-05-13 Richard Guenther <rguenther@suse.de>
13806
13807 PR tree-optimization/48172
13808 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
13809 multiplying by number of iterations for equal step.
13810 (vect_create_cond_for_alias_checks): Likewise.
13811
b88ecf55
AS
138122011-05-13 Andreas Schwab <schwab@redhat.com>
13813
13814 * configure.ac: Use AS_HELP_STRING throughout.
13815 * configure: Regenerate.
13816
569b527e
L
138172011-05-12 H.J. Lu <hongjiu.lu@intel.com>
13818
34203483 13819 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
569b527e
L
13820 (ix86_emit_restore_regs_using_mov): Likewise.
13821 (ix86_emit_restore_sse_regs_using_mov): Likewise.
13822
8b9a1428
AS
138232011-05-12 Anatoly Sokolov <aesok@post.ru>
13824
13825 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
13826 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
13827 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
13828 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
13829 RTX_OK_FOR_OLO10_P): ...here.
13830 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
13831 SYMBOLIC_CONST.
13832
1d15f620
KT
138332011-05-12 Kai Tietz <ktietz@redhat.com>
13834
13835 * gimplify.c (gimple_boolify): Re-boolify expression
13836 arguments even if expression type is of kind BOOLEAN_TYPE.
13837 (gimplify_boolean_expr): Removed.
13838 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
13839 and XOR. Additional take care that we keep expression's type.
13840 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
13841 of TRUTH_AND|OR|XOR_EXPR.
13842
c2b5fc8d
JJ
138432011-05-12 Jakub Jelinek <jakub@redhat.com>
13844
13845 PR tree-optimization/48975
13846 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
13847 on all bbs here and free and clear ifc_bbs at the end.
13848
61332f77
RG
138492011-05-12 Richard Guenther <rguenther@suse.de>
13850
13851 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
13852 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
13853 until after simple checks.
13854 (gimple_types_compatible_p): Likewise.
13855 (iterative_hash_gimple_type): Always hash pointer targets
13856 and function return and argument types.
13857 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
13858 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
13859 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
13860 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
13861 completely in the simple compare section.
13862 (gimple_register_canonical_type): Query the cache again after
13863 registering.
13864
e2a3a5f1
RG
138652011-05-12 Richard Guenther <rguenther@suse.de>
13866
13867 PR tree-optimization/48172
13868 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
13869 the number of iterations from the segment size calculation.
13870 (vect_create_cond_for_alias_checks): Adjust.
13871
2c703f3a
JJ
138722011-05-12 Jakub Jelinek <jakub@redhat.com>
13873
13874 PR debug/48967
13875 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
13876 if validate_subreg fails.
13877
138782011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
b27981e0
HS
13879
13880 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
13881 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
13882 early.
13883
87e91fca
DD
138842011-05-12 DJ Delorie <dj@redhat.com>
13885
d53903d6 13886 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
87e91fca
DD
13887 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
13888 created builtin into rx_builtins array.
13889 (rx_builtin_decl): New function.
34203483 13890 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
87e91fca 13891
5f2f13fd
DD
138922011-05-12 DJ Delorie <dj@redhat.com>
13893 Nick Clifton <nickc@redhat.com>
13894
13895 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
13896 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
13897 (rx_is_legitimate_address): Add pre-decrement and post-increment
13898 addressing in HImode and QImode. Fix test for out of range
13899 REG+INT addressing.
87e91fca 13900 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
34203483 13901 (rx_align_for_label): Test label before extracting its usage count.
5f2f13fd 13902 (rx_adjust_insn_lengths): Fix selection of insn codes.
87e91fca 13903 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
5f2f13fd 13904
57421f45
JM
139052011-05-11 Jason Merrill <jason@redhat.com>
13906
13907 * tree.c (type_hash_canon): Use struct tree_type_non_common.
13908
898c90c0
EB
139092011-05-11 Eric Botcazou <ebotcazou@adacore.com>
13910
13911 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
13912 reindent the subsequent block.
13913
79bec923
ST
139142011-05-11 Satoru Takabayashi <satorux@google.com>
13915 Paul Pluzhnikov <ppluzhnikov@google.com>
13916
34203483 13917 * doc/install.texi (Configuration): Document --with-linker-hash-style.
e77e2cbb
PP
13918 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
13919 * config.in: Add LINKER_HASH_STYLE.
13920 * configure.ac: Add --with-linker-hash-style.
13921 * configure: Regenerate.
79bec923 13922
d0340959
RG
139232011-05-11 Richard Guenther <rguenther@suse.de>
13924
13925 PR middle-end/48964
13926 * gimple.c (iterative_hash_canonical_type): Fix typo.
13927
cb032fee
UB
139282011-05-11 Uros Bizjak <ubizjak@gmail.com>
13929
13930 * config/i386/i386.c (legitimize_tls_address)
479fecd3 13931 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
13932 expanders directly for TARGET_GNU2_TLS. Determine pic and
13933 __tls_get_addr symbol reference here. Update call to
13934 gen_tls_global_dynamic_{32,64} for added arguments.
479fecd3 13935 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
cb032fee
UB
13936 expanders directly for TARGET_GNU2_TLS. Determine
13937 __tls_get_addr symbol reference here. Update call to
13938 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
13939 unique UNSPEC REG_EQUIV to libcall block.
13940 (ix86_tls_get_addr): Declare static.
13941 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
13942 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
13943 Do not determine pic and __tls_get_addr symbol reference here. Do not
13944 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
13945 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
13946 (tls_global_dynamic_64): Add operand 2. Do not determine
13947 __tls_get_addr symbol reference here. Do not call
13948 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
13949 (tls_local_dynamic_base64): Ditto for operand 1.
13950
6d3cc8f0
EB
139512011-05-11 Eric Botcazou <ebotcazou@adacore.com>
13952
13953 * function.c (expand_function_start): Initialize stack_check_probe_note
13954 only if the generic stack checking mechanism is used.
13955
51e020fc
RG
139562011-05-11 Richard Guenther <rguenther@suse.de>
13957
13958 PR tree-optimization/15256
13959 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
13960 (A & B) | C, combine (A op CST1) op CST2.
13961 (tree_ssa_forward_propagate_single_use_vars): Only bother to
13962 visit assigns that have uses.
13963
51545682
NF
139642011-05-11 Nathan Froyd <froydnj@codesourcery.com>
13965
cb032fee 13966 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
51545682
NF
13967 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
13968 (unpack_ts_type_common_value_fields): ...this. Update comment.
13969 (unpack_value_fields): Adjust for renaming.
13970 (lto_input_ts_type_tree_pointers): Split into...
13971 (lto_input_ts_type_common_tree_pointer): ...this and...
13972 (lto_input_ts_type_non_common_tree_pointers): ...this.
13973 (lto_input_tree_pointers): Adjust for above split.
13974 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
13975 (pack_ts_type_common_value_fields): ...this. Update comment.
13976 (lto_output_ts_type_tree_pointers): Split into...
13977 (lto_output_ts_type_common_tree_pointers): ...this and...
13978 (lto_output_ts_type_non_common_tree_pointers): ...this.
13979 (lto_output_tree_pointers): Adjust for above split.
13980 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
13981 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
13982 * stor-layout.c (vector_type_mode): Adjust location of mode field.
13983 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
13984 Define.
13985 (struct tree_type): Split into...
13986 (struct tree_type_common: ...this and...
13987 (struct tree_type_with_lang_specific): ...this and...
13988 (struct tree_type_non_common): ...this. Adjust accessor macros
13989 accordingly.
13990 (TYPE_VALUES_RAW): Define.
13991 (union tree_node): Update for above changes.
13992 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
13993 TS_TYPE_NON_COMMON.
13994 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
13995 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
13996 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
13997 * treestructu.def (TS_TYPE): Remove.
13998 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
13999 Define.
14000
b03c3082
JJ
140012011-05-11 Jakub Jelinek <jakub@redhat.com>
14002
14003 PR debug/48159
14004 * tree-ssa.c (reset_debug_uses): New function.
14005 * tree-flow.h (reset_debug_uses): New prototype.
14006 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
14007 * tree-loop-distribution.c (generate_loops_for_partition): Call
14008 reset_debug_uses on the stmts that will be removed. Keep around
14009 all debug stmts, don't count them as bits in partition bitmap.
14010 (generate_builtin): Don't count debug stmts or labels as bits in
14011 partition bitmap.
14012
b5e04de5
RG
140132011-05-11 Richard Guenther <rguenther@suse.de>
14014
14015 * gimple.c (gimple_type_hash_1): Merge with ...
14016 (gimple_type_hash): ... this.
14017 (gtc_visit): Remove mode parameter and simplify accordingly.
14018 (gimple_types_compatible_p_1): Likewise.
14019 (gimple_types_compatible_p): Likewise.
14020 (iterative_hash_gimple_type): Likewise.
14021 (visit): Likewise.
14022 (gimple_type_eq): Adjust.
14023
fc6970e4
RE
140242011-05-11 Revital Eres <revital.eres@linaro.org>
14025
14026 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
14027 enters the branch create an anti edge in the opposite direction
14028 to prevent the creation of reg-moves.
14029 * modulo-sched.c: Adjust comment to reflect the fact we are
14030 scheduling closing branch.
14031 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
14032 (stage_count): New field in struct partial_schedule.
14033 (calculate_stage_count): New function.
14034 (normalize_sched_times): Rename to reset_sched_times and handle
14035 incrementing the sched time of the nodes by a constant value
14036 passed as parameter.
14037 (duplicate_insns_of_cycles): Skip closing branch.
14038 (sms_schedule_by_order): Schedule closing branch.
14039 (ps_insn_find_column): Handle closing branch.
14040 (sms_schedule): Call reset_sched_times and adjust the code to
14041 support scheduling of the closing branch.
14042 (ps_insert_empty_row): Update calls to normalize_sched_times
14043 and rotate_partial_schedule functions.
14044
41a58a92
RG
140452011-05-11 Richard Guenther <rguenther@suse.de>
14046
14047 PR middle-end/48953
14048 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
14049
e9f8dcf9
JM
140502011-05-11 Joseph Myers <joseph@codesourcery.com>
14051
cb032fee
UB
14052 * opts.c (finish_options): Move warning settings from process_options.
14053 * toplev.c (process_options): Move warning settings to finish_options.
e9f8dcf9 14054
10c224a9
RG
140552011-05-11 Richard Guenther <rguenther@suse.de>
14056
14057 PR tree-optimization/18041
14058 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
14059 (simplify_bitwise_binary): ... this. Handle operand conversions
14060 by applying them to the result instead.
14061 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
14062
825b27de
RG
140632011-05-11 Richard Guenther <rguenther@suse.de>
14064
14065 * gimple.c (gimple_canonical_types_compatible_p): Split out
14066 from gimple_types_compatible_p and friends. Do not recurse
14067 to pointed-to types.
14068 (gimple_canonical_type_eq): Use it.
14069 (iterative_hash_canonical_type): Split out from
14070 iterative_hash_gimple_type and friends. Do not recurse
14071 to pointed-to types.
14072 (gimple_canonical_type_hash): Use it, allocate the hash here.
14073
ca756625
RE
140742011-05-11 Revital Eres <revital.eres@linaro.org>
14075
14076 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
14077 recognizing doloop.
14078
b8abece3
RE
140792011-05-11 Revital Eres <revital.eres@linaro.org>
14080
14081 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
14082 instead of PREV_INSN.
14083
ce7b3761
RE
140842011-05-11 Revital Eres <revital.eres@linaro.org>
14085
14086 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
14087 * loop-doloop.c (doloop_condition_get): Likewise.
14088 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
14089 (doloop_end): New.
14090 * config/arm/arm.md (*addsi3_compare0): Remove "*".
14091
a9dc9d37
NF
140922011-05-10 Nathan Froyd <froydnj@codesourcery.com>
14093
14094 * tree.def (CASE_LABEL_EXPR): Add an operand.
14095 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
14096
96703596
JM
140972011-05-10 Joseph Myers <joseph@codesourcery.com>
14098
14099 * c-decl.c (c_override_global_bindings_to_false): Remove.
14100 (global_bindings_p): Don't check
14101 c_override_global_bindings_to_false.
14102 * c-tree.h (c_override_global_bindings_to_false): Remove.
14103 * c-typeck.c (composite_type): Don't set
14104 c_override_global_bindings_to_false.
14105
dbcc9f08
MM
141062011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
14107
14108 PR target/48857, 48495
14109 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
14110 (VSX_MODE): Ditto.
14111 (VSX_MOVE_MODE): Ditto.
14112 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
14113 VSX vector types. Add V2DImode.
14114 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
14115 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
14116 (MODES_TIEABLE_P): Ditto.
14117
14118 * config/rs6000/rs6000.c (rs6000_emit_move): Use
14119 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
14120 VSX_VECTOR_MODE.
14121 (init_cumulative_args): Ditto.
14122 (rs6000_function_arg_boundary): Ditto.
14123 (rs6000_function_arg_advance_1): Ditto.
14124 (rs6000_function_arg): Ditto.
14125 (rs6000_function_ok_for_sibcall): Ditto.
14126 (emit_frame_save): Ditto.
14127 (rs6000_function_value): Ditto.
14128 (rs6000_libcall_value): Ditto.
14129
4a68b4ca
JM
141302011-05-10 Joseph Myers <joseph@codesourcery.com>
14131
14132 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14133 i386/darwin-lib.h to $libgcc_tm_file.
14134 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
14135
bcb521e9
JM
141362011-05-10 Joseph Myers <joseph@codesourcery.com>
14137
14138 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
14139
f10d3ac9
JM
141402011-05-10 Joseph Myers <joseph@codesourcery.com>
14141
cb032fee 14142 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
f10d3ac9
JM
14143 * config/rs6000/rs6000-tables.opt: New file (generated).
14144 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
14145 rs6000/rs6000-tables.opt to extra_options.
14146 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
14147 * config/rs6000/rs6000.c (rs6000_select): Remove.
14148 (processor_target_table): Move contents to rs6000-cpus.def.
14149 (darwin_rs6000_override_options): Check
14150 global_options_set.x_rs6000_cpu_index instead of
14151 rs6000_select[1].string.
14152 (rs6000_option_override_internal): Likewise.
14153 (rs6000_handle_option): Don't assert that global structures are in
14154 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
14155 (rs6000_default_cpu): New variable.
14156 (rs6000_file_start): Set it instead of local default_cpu. Check
14157 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
14158 global_options_set.x_rs6000_tune_index instead of rs6000_select.
14159 (rs6000_darwin_file_start): Check rs6000_default_cpu and
14160 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
14161 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
14162 rs6000_select): Remove.
14163 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
14164 Remove.
14165 (mcpu=, mtune=): Use Var, Init, Enum and Save.
14166 * config/rs6000/t-rs6000
14167 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
14168 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
14169 global_options_set.x_rs6000_cpu_index instead of
14170 rs6000_select[1].string.
14171 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
14172 global_options_set.x_rs6000_cpu_index instead of
14173 rs6000_select[1].string.
14174
80cf2e08
JM
141752011-05-10 Joseph Myers <joseph@codesourcery.com>
14176
14177 * config.gcc (libgcc_tm_file): Define instead of including files
14178 from ../../libgcc/config/ in tm_file.
cb032fee 14179 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
80cf2e08
JM
14180 * configure: Regenerate.
14181 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
14182 libgcc_tm.h, cs-libgcc_tm.h): New.
14183 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
14184 (clean): Remove libgcc_tm.h.
14185 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
14186 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
14187 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
14188
fd01a351
GJL
141892011-05-10 Georg-Johann Lay <avr@gjlay.de>
14190
14191 PR target/48896
14192 * config/avr/avr.c (avr_ret_register): Return unsigned int
14193 instead of int.
14194 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
14195 it to avr_libcall_value.
14196 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
14197 expand_expr.
14198 (avr_expand_binop_builtin): Ditto.
14199 (avr_expand_unop_builtin): Ditto.
14200
34cc3c86
DD
142012011-05-10 DJ Delorie <dj@redhat.com>
14202
14203 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
14204 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
14205 * config/rx/rx.c (rx_align_for_label): Add label and
14206 uses_threshold parameters. Do not align when the label is not
14207 used enough.
14208 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
14209
be173289
RG
142102011-05-10 Richard Guenther <rguenther@suse.de>
14211
14212 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
14213 a series of conversions and apply foldings similar to what
14214 fold-const does.
14215 (tree_ssa_forward_propagate_single_use_vars): Call it.
14216
e7f78021
JJ
142172011-05-10 Jakub Jelinek <jakub@redhat.com>
14218
6ae70ea2
JJ
14219 PR tree-optimization/48611
14220 PR tree-optimization/48794
14221 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
14222 referenced from RESX or EH_DISPATCH arguments.
14223
e7f78021
JJ
14224 PR debug/48928
14225 * dfp.c (decimal_to_decnumber): Handle conversion from
14226 dconst{1,2,m1,half}.
14227
fca132b9
UB
142282011-05-09 Uros Bizjak <ubizjak@gmail.com>
14229
14230 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
14231 for !flag_prefer_avx128.
14232 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
14233
e4c03378
EB
142342011-05-09 Eric Botcazou <ebotcazou@adacore.com>
14235
14236 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
14237 (fold_ternary_loc): Use expr_location_or.
14238
805d6a75
L
142392011-05-09 H.J. Lu <hongjiu.lu@intel.com>
14240
14241 PR debug/48853
14242 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
14243 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
14244 Pmode and mem_mode is not VOIDmode.
14245
e4c03378 142462011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
b5da71d4 14247
e4c03378
EB
14248 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
14249 TYPE_QUAL_RESTRICT): Convert to enum.
b5da71d4 14250
51e7f377
UB
142512011-05-09 Uros Bizjak <ubizjak@gmail.com>
14252
14253 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
14254 (const_pow2_1_to_8_operand): Ditto.
14255 (const_pow2_1_to_128_operand): Ditto.
14256 (const_pow2_1_to_32768_operand): Ditto.
14257 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
14258 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
14259 in insn constraint to check integer value of operand 3.
14260 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
14261
14262 (PINSR_MODE): New mode iterator.
14263 (sse2p4_1): New mode attribute.
14264 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
14265 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
14266 iterator. Use const_int_operand instead of
14267 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
14268 exact_log2 in insn constraint to check integer value of operand 3.
14269
142702011-05-09 Uros Bizjak <ubizjak@gmail.com>
14271
14272 * config/i386/sse.md (blendbits): Remove mode attribute.
14273 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
14274 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
14275 Check integer value of operand 3 in insn constraint.
14276
0ca8de87
RG
142772011-05-09 Richard Guenther <rguenther@suse.de>
14278
14279 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
14280 for diagnostics.
14281 (lto_symtab_merge): Likewise. Do not register types here.
14282 (lto_symtab_merge_decls_2): Likewise.
14283 (lto_symtab_merge_decls_1): Likewise.
14284 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
14285 * gimple.c (enum gtc_mode): Declare.
14286 (gimple_types_compatible_p): Make static.
14287
a9e6994a
AK
142882011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14289
14290 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
14291 temporary register to match Pmode.
14292
fb55d62e
UB
142932011-05-09 Uros Bizjak <ubizjak@gmail.com>
14294
14295 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
14296 and *vec_concatv4si_1_avx.
14297
eb1485a6
UB
142982011-05-09 Uros Bizjak <ubizjak@gmail.com>
14299
14300 PR rtl-optimization/48927
14301 * ira-conflicts.c (commutative_constraint_p): Use
14302 recog_data.alternative_enabled_p to disable alternatives where
14303 "enabled" attribute is false.
14304 (get_dup_num): Ditto.
14305 * ira-lives.c (single_reg_class): Ditto.
14306 (ira_implicitly_set_insn_hard_regs): Ditto.
14307
c46d001a
EB
143082011-05-09 Eric Botcazou <ebotcazou@adacore.com>
14309
14310 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
14311 (dataflow_set_preserve_mem_locs): Likewise.
14312
143132011-05-09 Philipp Thomas <pth@suse.de>
14314
6d9e7c41
PT
14315 * config/mep/mep.c (mep_validate_vliw): Syntax description
14316 should not be translated.
14317
d371df6f
JM
143182011-05-09 Joseph Myers <joseph@codesourcery.com>
14319
14320 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
14321 * config/mips/mips-tables.opt: New file (generated).
eb1485a6 14322 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
d371df6f
JM
14323 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
14324 MIPS_ARCH_OPTION_NATIVE): Define.
14325 * config/mips/mips.c (mips_cpu_info_table): Move contents to
14326 mips-cpus.def.
14327 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
14328 mips_parse_cpu): Remove.
14329 (mips_cpu_info_from_opt, mips_default_arch): New.
14330 (mips_handle_option): Don't assert that global structures are in
14331 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
14332 (mips_option_override): Use new variables and functions to set
eb1485a6 14333 state of these options. Use strcmp to check for individual CPU names.
d371df6f
JM
14334 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
14335 definition.
14336 * config/mips/mips.opt (march=): Use ToLower and Enum.
14337 (mips): Use ToLower, Enum and Var.
14338 (mtune=): Use ToLower and Enum.
14339 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
14340
4fc07af9
JH
143412011-05-08 Jan Hubicka <jh@suse.cz>
14342
14343 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
14344 Arrange type pairs to be UID ordered.
14345 (gimple_lookup_type_leader): Make inline.
14346
2cf320a8
NC
143472011-05-09 Nick Clifton <nickc@redhat.com>
14348
61d6def5
NC
14349 PR target/48899
14350 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
14351 PROCESSOR_DEFAULT.
14352
2cf320a8
NC
14353 PR target/48897
14354 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
14355 variable 's'.
14356
4f82319d
CLT
143572011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
14358
14359 * combine.c (simplify_comparison): Abstract out parts into...
14360 (simplify_compare_const): ... new function.
14361 (try_combine): Generalize parallel arithmetic/compare combining
14362 to call simplify_compare_const() and CANONICALIZE_COMPARE().
14363
74605a11
JH
143642011-05-08 Jan Hubicka <jh@suse.cz>
14365
14366 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
eb1485a6
UB
14367 (cgraph_create_virtual_clone): Call hooks once virtual clone
14368 is finished.
74605a11 14369 * cgraph.h (cgraph_clone_node): Update prototype.
eb1485a6
UB
14370 * ipa-cp.c (ipcp_estimate_growth): Use
14371 estimate_ipcp_clone_size_and_time.
74605a11
JH
14372 * ipa-inline-transform.c (clone_inlined_nodes): Update.
14373 * lto-cgraph.c (input_node): Update.
14374 * ipa-inline.c (recursive_inlining): Update.
14375 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
14376 (evaluate_conditions_for_known_args): Break out from ...
14377 (evaluate_conditions_for_edge): ... here.
14378 (evaluate_conditions_for_ipcp_clone): New function.
14379 (inline_node_duplication_hook): Update clone summary based
14380 on parameter map.
14381 (estimate_callee_size_and_time): Rename to ...
14382 (estimate_node_size_and_time): take NODE instead of EDGE;
14383 take POSSIBLE_TRUTHS as argument.
14384 (estimate_callee_size_and_time): Update.
14385 (estimate_ipcp_clone_size_and_time): New function.
14386 (do_estimate_edge_time): Update.
14387
5c049507
RG
143882011-05-08 Richard Guenther <rguenther@suse.de>
14389
14390 PR middle-end/48908
14391 PR middle-end/48905
14392 * expmed.c (expand_shift_1): Compute adjusted constant shift
14393 amount manually.
14394
f64c36ba
EB
143952011-05-08 Eric Botcazou <ebotcazou@adacore.com>
14396
14397 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
14398
c461a957
EB
143992011-05-08 Eric Botcazou <ebotcazou@adacore.com>
14400
14401 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
14402
7c74e556
JW
144032011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
14404
14405 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
14406
b4c0a884
JH
144072011-05-07 Jan Hubicka <jh@suse.cz>
14408
a9bcb3f0
EB
14409 * ipa-inline-transform.c (inline_call): Account when program size
14410 decreases.
b4c0a884 14411 * ipa-inline.c (relative_time_benefit): New function.
a9bcb3f0
EB
14412 (edge_badness): Reorganize to be power 2 based; fix thinko when
14413 computing badness for negative growth; update comments to match
14414 reality; better dumps.
b4c0a884 14415
c99c0026
EB
144162011-05-07 Eric Botcazou <ebotcazou@adacore.com>
14417
14418 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
14419 type to bool and adjust comment.
14420 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
14421 (fold_mathfn_compare): Remove calls to global_bindings_p.
14422 (fold_inf_compare): Likewise.
14423 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
14424 * c-tree.h (global_bindings_p): Adjust prototype.
14425 * c-decl.c (global_bindings_p): Return bool and simplify.
14426
1400c8e5
ZD
144272011-05-07 Zdenek Dvorak <ook@ucw.cz>
14428
14429 PR tree-optimization/48837
14430 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
14431 when accumulator transformation is performed.
14432
5d0878e7
JH
144332011-05-06 Jan Hubicka <jh@suse.cz>
14434
a9bcb3f0
EB
14435 * i386.h (ix86_tune_indices): Add
14436 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
eb1485a6 14437 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
a9bcb3f0
EB
14438 * i386.c (initial_ix86_tune_features): Add
14439 X86_SOFTARE_PREFETCHING_BENEFICIAL.
5d0878e7
JH
14440 (software_prefetching_beneficial_p): Remove predicate.
14441 (ix86_option_override_internal): Use new macro.
14442
58696ce5
JH
144432011-05-06 Jan Hubicka <jh@suse.cz>
14444
14445 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
14446
c47d0034
JH
144472011-05-06 Jan Hubicka <jh@suse.cz>
14448
14449 * cgraph.c (cgraph_add_thunk): Create real function node instead
14450 of alias node; finalize it and mark needed/reachale; arrange visibility
14451 to be right and add it into the corresponding same comdat group list.
14452 (dump_cgraph_node): Dump thunks.
14453 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
a9bcb3f0
EB
14454 cgraph_function_with_gimple_body_p,
14455 cgraph_first_function_with_gimple_body,
c47d0034
JH
14456 cgraph_next_function_with_gimple_body): New functions.
14457 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
14458 New macros.
14459 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
14460 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14461 * cgraphunit.c (cgraph_finalize_function): Only look into possible
14462 devirtualization when optimizing.
14463 (verify_cgraph_node): Verify thunks.
14464 (cgraph_analyze_function): Analyze thunks.
14465 (cgraph_mark_functions_to_output): Output thunks only in combination
14466 with function they are assigned to.
14467 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
14468 alias into normal node.
14469 (assemble_thunks): New functoin.
14470 (cgraph_expand_function): Use it.
14471 * lto-cgraph.c (lto_output_node): Stream thunks.
14472 (input_overwrite_node): Stream in thunks.
14473 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
14474 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
14475 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
14476 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
14477 (inline_analyze_function): Do not care about thunk jump functions.
14478 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
a9bcb3f0
EB
14479 * ipa-prop.c (ipa_prop_write_jump_functions): Use
14480 cgraph_function_with_gimple_body_p.
14481 * passes.c (do_per_function_toporder): Use
14482 cgraph_function_with_gimple_body_p.
c47d0034
JH
14483 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14484 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
14485 (function_called_by_processed_nodes_p): Likewise.
14486
d8f426ec
JM
144872011-05-06 Joseph Myers <joseph@codesourcery.com>
14488
14489 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
14490 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
14491 entries.
14492 (mabi=): Replace with separate entries for mabi=altivec,
14493 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
14494 mabi=ieeelongdouble and mabi=ibmlongdouble.
14495 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14496 check for -mabi=spe without SPE ABI support here.
14497 (rs6000_handle_option): Replace OPT_mabi_ handling with
14498 OPT_mabi_altivec and OPT_mabi_spe handling.
14499
80bde45b
CC
145002011-05-06 Cary Coutant <ccoutant@google.com>
14501
14502 * dwarf2out.c (contains_subprogram_definition): New function.
14503 (should_move_die_to_comdat): Call it.
14504
a91926b9
JL
145052011-05-06 Jeff Law <law@redhat.com>
14506
14507 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
14508 remove_ctrl_stmt_and_useless_edges.
14509 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
14510 (fixup_template_block, thread_single_edge): Likewise.
14511 (mark_threaded_blocks): Use THREAD_TARGET.
14512
1fc1b66d
AM
145132011-05-06 Alan Modra <amodra@gmail.com>
14514
14515 PR target/48900
14516 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14517 const0_rtx as the arg to the dummy __tls_get_addr libcall.
14518
e194de64
UB
145192011-05-06 Uros Bizjak <ubizjak@gmail.com>
14520
14521 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
14522 constraint modifier to "r".
14523
d740dc9e
JM
145242011-05-06 Joseph Myers <joseph@codesourcery.com>
14525
14526 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
14527 fall through for OPT_mcmodel_.
14528
cab78b15
AK
145292011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14530
14531 * config/s390/s390.c (s390_asm_trampoline_template): Comment
14532 instruction sizes.
e194de64 14533 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
cab78b15 14534
ee6824ae
RR
145352011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
14536
eb1485a6
UB
14537 PR target/47930
14538 * config/arm/arm.opt (marm): Document it.
14539 (mthumb): Reject negative variant.
ee6824ae 14540
9ef58464
UB
145412011-05-06 Uros Bizjak <ubizjak@gmail.com>
14542
14543 PR target/48898
14544 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14545 Fix typo in "ccvt" variable name.
14546
155b6176
TG
145472011-05-06 Tristan Gingold <gingold@adacore.com>
14548
14549 PR target/48895
14550 * config/vms/vms-ar.c (main): Remove cwd variable.
14551
3becc47b
JJ
145522011-05-06 Jakub Jelinek <jakub@redhat.com>
14553
14554 PR debug/48902
14555 * var-tracking.c (prepare_call_arguments): Move else before #endif.
14556
3d528853
NF
145572011-05-05 Nathan Froyd <froydnj@codesourcery.com>
14558
14559 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
14560 * gimplify.c (gimplify_switch_expr): Likewise.
14561 * omp-low.c (expand_omp_sections): Likewise.
14562 * tree-eh.c (lower_try_finally_switch): Likewise.
14563 (lower_eh_dispatch): Likewise.
14564 * tree.h (build_case_label): Declare.
14565 * tree.c (build_case_label): Define.
14566
deb5046b
JM
145672011-05-05 Jason Merrill <jason@redhat.com>
14568
14569 PR c++/40975
14570 * tree-inline.c (copy_tree_r): Use copy_statement_list.
14571 (copy_statement_list): Don't recurse.
14572 * stor-layout.c (copy_self_referential_tree_r): Don't allow
14573 STATEMENT_LIST.
14574
013c0411
JM
145752011-05-05 Joseph Myers <joseph@codesourcery.com>
14576
14577 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
14578 through from -mfpu= handling.
14579 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
14580
a0905f8b
BS
145812011-05-05 Bernd Schmidt <bernds@codesourcery.com>
14582
14583 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
14584 POST_MODIFY.
14585
fc4538e4
SE
145862011-05-05 Steve Ellcey <sje@cup.hp.com>
14587
14588 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
14589 for 11.31.
14590 (hppa[12]*-*-hpux11*): Ditto.
14591 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
14592 * config/ia64/hpux-unix2003.h: New.
14593 * config/pa/pa-hpux1131.opt: New.
14594 * config/pa/pa-hpux1131.h: New.
14595 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
14596 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
4eec64ff 14597 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
fc4538e4 14598
1e30c578
JJ
145992011-05-05 Jakub Jelinek <jakub@redhat.com>
14600
14601 PR debug/48853
14602 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
14603 instead of mode as 3rd argument to recursive call.
14604 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
14605 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
14606 VOIDmode.
14607 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
14608 don't give up if mode is Pmode and mem_mode is not VOIDmode.
14609 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
14610 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
14611
d19eb620
JB
146122011-05-05 Julian Brown <julian@codesourcery.com>
14613
14614 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
14615 parenthesis in D-register case.
14616
c860fe8c
JM
146172011-05-05 Joseph Myers <joseph@codesourcery.com>
14618
14619 * opt-functions.awk (var_type_struct): Handle Enum options.
14620 * optc-gen.awk: Don't check range of variables of character type.
14621 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
14622 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
14623 rs6000_sdata_name, rs6000_explicit_options): Remove.
14624 (rs6000_option_override_internal): Check for -malign-power here.
14625 Use global_options_set instead of rs6000_explicit_options.
14626 (rs6000_parse_fpu_option): Remove.
14627 (rs6000_handle_option): Access variables via opts and opts_set
14628 pointers. Use error_at and warning_at. Add fall-through
14629 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
14630 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
14631 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
14632 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
14633 here. Don't use rs6000_parse_fpu_option.
14634 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
14635 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
14636 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
14637 (mrecip=): Use Var.
14638 (mspe): Use Var and Save.
14639 (mtraceback=): Use Enum and Var.
14640 (rs6000_traceback_type): New Enum and EnumValue entries.
14641 (mfloat-gprs=): Use Enum, Var and Save.
14642 (rs6000_float_gprs): New Enum and EnumValue entries.
14643 (mlong-double-): use Var and Save.
14644 (msched-costly-dep=, minsert-sched-nops=): Use Var.
14645 (malign-): Use Enum and Var.
14646 (rs6000_alignment_flags): New Enum and EnumValue entries.
14647 (mfpu=): Use Enum.
14648 (fpu_type_t): New Enum and EnumValue entries.
14649 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14650 global_options_set instead of rs6000_explicit_options.
14651 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14652 global_options_set instead of rs6000_explicit_options.
14653 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14654 global_options_set instead of rs6000_explicit_options.
14655 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14656 global_options_set instead of rs6000_explicit_options.
14657 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
14658 global_options_set instead of rs6000_explicit_options.
14659 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14660 global_options_set instead of rs6000_explicit_options.
14661 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
14662 definition.
14663 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14664 global_options_set instead of rs6000_explicit_options.
14665 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
14666 (rs6000_cmodel): New Enum and EnumValue entries.
14667 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14668 global_options_set instead of rs6000_explicit_options.
14669 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
14670 (mtls-size=): Use Enum and Var.
14671 (rs6000_tls_size): New Enum and EnumValue entries.
14672
0691dde9
MM
146732011-05-05 Michael Matz <matz@suse.de>
14674
14675 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
14676 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
14677 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
14678 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
14679 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
14680 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
14681 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
14682 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
14683 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
14684 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
14685 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
14686 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
14687 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
14688 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
14689 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
14690 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
14691
86529a49
RG
146922011-05-05 Richard Guenther <rguenther@suse.de>
14693
14694 * expmed.c (expand_variable_shift): Rename to ...
14695 (expand_shift_1): ... this. Take an expanded shift amount.
14696 For rotates recurse directly not building trees for the shift amount.
14697 (expand_variable_shift): Wrap around expand_shift_1.
14698 (expand_shift): Adjust.
14699
d0228c2e
JJ
147002011-05-05 Jakub Jelinek <jakub@redhat.com>
14701
14702 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
14703
907a08d9
EB
147042011-05-05 Eric Botcazou <ebotcazou@adacore.com>
14705
14706 * tree.h (get_pending_sizes): Remove prototype.
14707 (put_pending_size): Likewise.
14708 (put_pending_sizes): Likewise.
14709 * stor-layout.c (pending_sizes): Delete.
14710 (get_pending_sizes): Likewise.
14711 (put_pending_size): Likewise.
14712 (put_pending_sizes): Likewise.
14713 (variable_size): Do not call put_pending_size and tidy up.
14714 * function.h (struct function): Remove dont_save_pending_sizes_p.
14715 * lto-streamer-in.c (input_function): Do not stream it.
14716 * lto-streamer-out.c (output_function): Likewise.
14717 * tree-inline.c (initialize_cfun): Do not copy it.
14718 * c-decl.c (store_parm_decls): Do not set it.
14719 * omp-low.c (create_task_copyfn): Likewise.
14720 * tree-optimize.c (tree_rest_of_compilation): Likewise.
14721
386d9c57
UB
147222011-05-05 Uros Bizjak <ubizjak@gmail.com>
14723
14724 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
14725 conditions.
14726 (*movdf_internal): Ditto.
14727 (*movdf_internal_nointeger): Ditto.
14728 (*movsf_internal): Ditto.
14729
a04a722b
JM
147302011-05-05 Joseph Myers <joseph@codesourcery.com>
14731
14732 * c-decl.c (finish_decl): Don't call get_pending_sizes.
14733 (grokparm): Add parameter expr. Pass it to grokdeclarator.
14734 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
14735 (c_variable_size): Remove.
14736 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
14737 call put_pending_sizes.
14738 (get_parm_info): Add parameter expr. Use it to set
14739 arg_info->pending_sizes.
14740 (store_parm_decls): Use arg_info->pending_sizes instead or calling
14741 get_pending_sizes.
14742 * c-parser.c (c_parser_parms_declarator): Update call to
14743 c_parser_parms_list_declarator.
14744 (c_parser_parms_list_declarator): Take parameter expr. Update
14745 call to push_parm_decl. Update recursive call. Don't call
14746 get_pending_sizes. Update calls to get_parm_info.
14747 (c_parser_objc_method_definition): Update calls to
14748 c_parser_objc_method_decl and objc_start_method_definition.
386d9c57 14749 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
a04a722b
JM
14750 (c_parser_objc_method_decl): Add parameter expr. Update call to
14751 grokparm.
386d9c57 14752 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
a04a722b
JM
14753 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
14754 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
14755
c92a6f97
MH
147562011-05-05 Michael Hope <michael.hope@linaro.org>
14757
386d9c57
UB
14758 PR pch/45979
14759 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
14760 __ARM_EABI__ hosts.
c92a6f97 14761
07ea0048
UW
147622011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14763
14764 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14765 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
14766 (spu_output_mi_thunk): New function.
14767
d634bfa1
RO
147682011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14769
14770 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
14771 targetm.asm_out.print_operand.
14772 * config/sol2.c: Include target.h.
14773
40fda55b
JH
147742011-05-04 Jan Hubicka <jh@suse.cz>
14775
14776 * ipa-inline.c (reset_edge_caches): New function.
14777 (update_caller_keys): Add check_inlinablity_for; do not
14778 reset edge caches; remove now unnecesary loop.
386d9c57 14779 (update_callee_keys): Add comments; reset node_growth_cache of callee.
40fda55b
JH
14780 (update_all_callee_keys): Likewise.
14781 (inline_small_functions): Sanity check cache; update code
14782 recomputing it.
14783
0360f70d
BS
147842011-05-04 Bernd Schmidt <bernds@codesourcery.com>
14785
14786 PR rtl-optimization/47612
14787 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
14788 as the last insn of the sequence to be moved.
14789
7a994646
TB
147902011-05-04 Tobias Burnus <burnus@net-b.de>
14791
14792 PR fortran/48864
14793 * doc/invoke.texi (Ofast): Document that it
14794 enables Fortran's -fno-protect-parens.
14795
7a2f7208
UB
147962011-05-04 Uros Bizjak <ubizjak@gmail.com>
14797
14798 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
14799
a2d42931
EB
148002011-05-04 Eric Botcazou <ebotcazou@adacore.com>
14801
14802 * stor-layout.c (variable_size): Do not issue errors.
14803
f81b1a3d
RG
148042011-05-04 Richard Guenther <rguenther@suse.de>
14805
14806 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
14807 for array-ref indices.
14808 (tree_coverage_counter_addr): Likewise.
14809 (build_fn_info_type): Use size_int for index types.
14810 (build_gcov_info): Likewise.
14811
c62c040f
RG
148122011-05-04 Richard Guenther <rguenther@suse.de>
14813
14814 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
14815 to build_int_cst.
14816 * c-typeck.c (really_start_incremental_init): Use bitsize_int
14817 for constructor indices.
14818 (push_init_level): Likewise.
14819
1e3287d0
RG
148202011-05-04 Richard Guenther <rguenther@suse.de>
14821
14822 * explow.c (promote_mode): Move variable declarations before code.
14823
6c32445b
NF
148242011-05-04 Nathan Froyd <froydnj@codesourcery.com>
14825
14826 * tree.h (build_function_type_array): Declare.
14827 (build_varargs_function_type_array): Declare.
14828 (build_function_type_vec, build_varargs_function_type_vec): Define.
14829 * tree.c (build_function_type_array_1): New function.
14830 (build_function_type_array): New function.
14831 (build_varargs_function_type_array): New function.
14832
fdabf269
RS
148332011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
14834
14835 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
14836 before setting STMT_VINFO_TYPE.
14837
a207915a
UW
148382011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14839
14840 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
14841 instead of spu_pass_by_reference.
14842
5e617be8
AK
148432011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14844
14845 * calls.c (emit_library_call_value_1): Invoke
14846 promote_function_mode hook on libcall arguments.
14847 * explow.c (promote_function_mode, promote_mode): Handle TYPE
14848 argument being NULL.
14849 * targhooks.c (default_promote_function_mode): Lisewise.
14850 * config/s390/s390.c (s390_promote_function_mode): Likewise.
14851 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
14852
14853 * doc/tm.texi: Document that TYPE argument might be NULL.
14854
486d04be
SH
148552011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
14856
14857 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
14858
9b19b026
SH
148592011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
14860
14861 From Bernd Schmidt
14862 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
14863
502bc3df
RO
148642011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14865
14866 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
14867 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
14868 Move ...
14869 * mips-tfile.c: ... here.
14870 Don't include coretypes.h, tm.h, filenames.h.
14871 (saber_stop): Remove definition and all calls.
14872 [__SABER__]: Remove.
14873 (__LINE__): Remove default.
14874 (Size_t, Ptrdiff_t): Remove definitions.
14875 Replace by size_t, ptrdiff_t.
14876 [!MIPS_DEBUGGING_INFO]: Remove.
14877 (SHASH_SIZE, THASH_SIZE): Remove defaults.
14878 (progname): Add const.
14879 (STATIC): Remove.
14880 Replace all uses by static.
14881 (ALIGN_SYMTABLE_OFFSET): Remove default.
14882 * mips-tdump.c: Don't include coretypes.h, tm.h.
14883 Remove !MIPS_IS_STAB guard.
14884 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
14885 $(TM_H), filenames.h dependencies.
14886 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
14887
991eb6ef
SH
148882011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
14889
14890 From Jie Zhang
14891 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
14892 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
14893
420ccc84
SH
148942011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
14895
14896 From Bernd Schmidt
14897 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
14898 account and save/restore RETS.
14899 (PROFILE_BEFORE_PROLOGUE): Define.
14900 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
14901 the push insn to use predecrement.
14902
9f8d69ee
SH
149032011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
14904
14905 From Jie Zhang
14906 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
14907
662c03f4
NC
149082011-05-04 Nick Clifton <nickc@redhat.com>
14909
14910 * config/mn10300/mn10300.c: Include cfgloop.h.
14911 (DUMP): New macro.
14912 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
14913 Lcc or a FLcc insn into the instruction stream.
14914 (mn10300_block_contains_call): New function. Returns true if the
14915 given basic block contains a CALL insn.
14916 (mn10300_loop_contains_call_insn): New function. Returns true if
14917 the given loop contains a CALL insn.
14918 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
14919 to use the SETLB and Lcc or FLcc insns.
14920 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
14921 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
14922 * config/mn10300/mn10300.opt (msetlb): New option. Used to
14923 disable the SETLB optimization.
14924 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
14925 __SETLB__ or __NO_SETLB__.
14926 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
14927 (movsf_internal): Handle MDR register.
14928 (cmpsi): Make visible.
14929 (setlb): New pattern.
14930 (Lcc): New pattern.
14931 (FLcc): New pattern.
14932
843b6915
UB
149332011-05-04 Uros Bizjak <ubizjak@gmail.com>
14934
14935 PR target/48860
14936 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
14937 for reg<->xmm moves.
14938 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
14939 (vec_concatv2di_rex64_sse): Ditto.
14940 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
14941 (*vec_extractv2di_1_rex64): Ditto.
14942
14943 Revert:
14944 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
14945
14946 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
14947 reg<->xmm moves.
14948 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
14949
d35936ab
RG
149502011-05-04 Richard Guenther <rguenther@suse.de>
14951
14952 * tree.h (int_const_binop): Remove notrunc argument.
14953 * fold-const.c (int_const_binop): Remove notrunc argument. Always
14954 create integer constants that are properly truncated.
14955 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
14956 (const_binop): Remove zero notrunc argument to int_const_binop.
14957 (size_binop_loc): Likewise.
14958 (fold_div_compare): Likewise.
14959 (maybe_canonicalize_comparison_1): Likewise.
14960 (fold_comparison): Likewise.
14961 (fold_binary_loc): Likewise.
14962 (multiple_of_p): Likewise.
14963 * expr.c (store_constructor): Likewise.
14964 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
14965 (maybe_fold_stmt_addition): Likewise.
14966 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
14967 * stor-layout.c (layout_type): Likewise.
14968 * tree-data-ref.c (tree_fold_divides_p): Likewise.
14969 * tree-sra.c (build_ref_for_offset): Likewise.
14970 (build_user_friendly_ref_for_offset): Likewise.
14971 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
14972 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
14973 * tree-ssa-loop-niter.c (inverse): Likewise.
14974 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
14975 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
14976 * tree-switch-conversion.c (check_range): Likewise.
14977 (build_constructors): Likewise.
14978 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
14979 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
14980 (extract_range_from_assert): Likewise.
14981 (vrp_int_const_binop): Likewise.
14982 (extract_range_from_binary_expr): Likewise.
14983 (extract_range_from_unary_expr): Likewise.
14984 (check_array_ref): Likewise.
14985 (find_case_label_range): Likewise.
14986 (simplify_div_or_mod_using_ranges): Likewise.
14987 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
14988 comparing case labels for merging.
14989
8992c063
MW
149902011-05-03 Mark Wielaard <mjw@redhat.com>
14991
14992 * dwarf2out.c (debug_str_hash_forced): Removed.
14993 (gen_label_for_indirect_string): Removed.
14994 (get_debug_string_label): Removed.
14995 (AT_string_form): Generate label directly.
14996 (output_indirect_string): Test indirect_string_node for
14997 DW_FORM_strp instead of checking label and refcount.
14998 (prune_indirect_string): Removed.
14999 (prune_unused_types): Don't check debug_str_hash_forced or
15000 call prune_indirect_string.
15001
4868e6ea
AO
150022011-05-04 Alexandre Oliva <aoliva@redhat.com>
15003
15004 PR other/48093
15005 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
15006
01a5c0ab
AO
150072011-05-04 Alexandre Oliva <aoliva@redhat.com>
15008
15009 PR debug/47994
15010 PR debug/47919
15011 * combine.c (try_combine): Skip debug insns at m_split tests.
15012
6ac00218
MW
150132011-04-26 Mark Wielaard <mjw@redhat.com>
15014
15015 PR42288
15016 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
15017 when info_section_emitted.
15018
3af42a7b
JM
150192011-05-03 Joseph Myers <joseph@codesourcery.com>
15020
15021 * config/mips/mips-opts.h: New.
15022 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
15023 to mips-opts.h.
15024 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
15025 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
15026 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
15027 via opts pointer.
15028 * config/mips/mips.h (enum mips_code_readable_setting): Move to
15029 mips-opts.h.
15030 (mips_abi, mips_code_readable): Don't declare.
843b6915 15031 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
3af42a7b
JM
15032 (mabi=): Use Enum and Var.
15033 (mips_abi): New Enum and EnumValue entries.
15034 (mcode-readable=): Use Enum and Var.
15035 (mips_code_readable_setting): New Enum and EnumValue entries.
15036 (mr10k-cache-barrier=): Use Enum and Var.
15037 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
15038
1cb1a99f
JH
150392011-05-03 Jan Hubicka <jh@suse.cz>
15040
15041 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
15042 replace hash by pointer map.
15043 (cgraph_node_set_element_def, cgraph_node_set_element,
15044 const_cgraph_node_set_element, varpool_node_set_element_def,
15045 varpool_node_set_element, const_varpool_node_set_element): Remove.
15046 (free_cgraph_node_set, free_varpool_node_set): New function.
15047 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
15048 * tree-emutls.c: Free varpool node set.
15049 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
15050 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
15051 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
15052 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
15053 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
15054 Move here from ipa.c; implement using pointer_map
15055 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
15056 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
15057 debug_cgraph_node_set, varpool_node_set_new,
15058 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
15059 dump_varpool_node_set, debug_varpool_node_set):
15060 Move to ipa-uitls.c.
15061 * passes.c (ipa_write_summaries): Update.
15062
7f31f4db
SH
150632011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15064
7a2f7208
UB
15065 From Mike Frysinger:
15066 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
15067 bf542/bf544/bf547/bf548/bf549.
7f31f4db 15068
b70fce6d
UB
150692011-05-03 Uros Bizjak <ubizjak@gmail.com>
15070
15071 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
15072
265b1d82
SH
150732011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15074
15075 From Bernd Schmidt:
15076 * config/bfin/bfin.md (MOVCC): New mode_macro.
15077 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
15078 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
15079 comments from generated assembly.
15080
f0b568f3
SH
150812011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15082
15083 From Bernd Schmidt
15084 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
15085 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
15086 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
15087 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
15088 * config/bfin/lib1funcs.asm (___muldi3): New function.
15089
2c67cf6e
NF
150902011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15091
15092 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
15093 build_function_type_list instead of build_function_type.
15094 Rearrange initialization of `args' to do so.
15095
f9ac28ad
NF
150962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15097
15098 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
15099 instead of build_function_type.
15100
22b8798c
NF
151012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15102
15103 * config/rs6000/rs6000.c (spe_init_builtins): Call
15104 build_function_type_list instead of build_function_type.
15105 (paired_init_builtins, altivec_init_builtins): Likewise.
15106 (builtin_function_type): Likewise.
15107
4cb44528
NF
151082011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15109
15110 * config/sh/sh.c (sh_media_init_builtins): Call
15111 build_function_type_list instead of build_function_type.
15112
4c203a6a
NF
151132011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15114
15115 * config/sparc/sparc.c (sparc_file_end): Call
15116 build_function_type_list instead of build_function_type.
15117
d6a3d62b
NF
151182011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15119
15120 * config/alpha/alpha.c (alpha_init_builtins): Call
15121 build_function_type_list instead of build_function_type.
15122
de530b86
NF
151232011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15124
15125 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
15126 build_function_type_list instead of build_function_type.
15127
baeec5f2
NF
151282011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15129
15130 * config/iq2000/i2000.c (iq2000_init_builtins): Call
15131 build_function_type_list instead of build_function_type.
15132 Delete `endlink' variable.
15133
c19afe52
NF
151342011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15135
15136 * config/avr/avr.c (avr_init_builtins): Call
15137 build_function_type_list instead of build_function_type.
15138
a341df0a
NF
151392011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15140
15141 * config/picochip/picochip.c (picochip_init_builtins): Call
15142 build_function_type_list instead of build_function_type.
15143 Delete `endlink' variable.
15144
2102b1e1
NF
151452011-05-03 Nathan Froyd <froydnj@codesourcery.com>
15146
15147 * config/bfin/bfin.c (bfin_init_builtins): Call
15148 build_function_type_list instead of build_function_type.
15149
9f111209
SH
151502011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15151
15152 From Bernd Schmidt
15153 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
15154 that's not CONST_INT. Seemingly redundant check is due to PR39768.
15155
7071d064
SH
151562011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15157
15158 From Jie Zhang:
15159 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
15160 libbffastfp overrides libgcc when -mfast-fp.
15161
748f7574 151622011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
44fb48ef
SH
15163
15164 Originally from Bernd Schmidt
15165 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
15166 * config/bfin/bfin.c (override_options): Test it and error if
15167 TARGET_FDPIC.
15168
1a3a9152
SH
151692011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
15170
15171 Originally From Bernd Schmidt
15172 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
15173 FD-PIC.
15174
7134c090
JL
151752011-05-03 Jeff Law <law@redhat.com>
15176
15177 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
15178 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
15179 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
15180 than accessing AUX field directly. Free the AUX field before
15181 clearing it.
7134c090
JL
15182 (thread_block, thread_through_loop_header): Likewise.
15183 (thread_single_edge, mark_threaded_blocks): Likewise.
15184 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
15185 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 15186
2c7eebae
BS
151872011-05-03 Bernd Schmidt <bernds@codesourcery.com>
15188
15189 * function.c (init_function_start): Call decide_function_section.
15190 * varasm.c (decide_function_section): New function.
15191 (assemble_start_function): When not using
15192 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
15193 or first_function_block_is_cold.
15194 * rtl.h (decide_function_section): Declare.
15195
17038fcf
JJ
151962011-05-03 Uros Bizjak <ubizjak@gmail.com>
15197 Jakub Jelinek <jakub@redhat.com>
15198
15199 PR target/48774
15200 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
15201 only succeed if req_mode is the same as set_mode.
15202
3810076b
BS
152032011-05-03 Bernd Schmidt <bernds@codesourcery.com>
15204
15205 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
15206 * genemit.c (gen_exp): Handle RETURN.
15207 * emit-rtl.c (verify_rtx_sharing): Likewise.
15208 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
15209 * rtl.c (copy_rtx): RETURN is shared.
15210 * rtl.h (enum global_rtl_index): Add GR_RETURN.
15211 (ret_rtx): New.
15212 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
15213 * config/s390/s390.c (s390_emit_epilogue): Likewise.
15214 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
15215 * config/cris/cris.c (cris_expand_return): Likewise.
15216 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
15217 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
15218 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
15219 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
15220 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
15221 Likewise.
15222 * config/v850/v850.c (expand_epilogue): Likewise.
15223 * config/bfin/bfin.c (bfin_expand_call): Likewise.
15224 * config/arm/arm.md (epilogue): Likewise.
15225 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
15226 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
15227 variable to ret_reg.
15228
9efdb4ad
RG
152292011-05-03 Richard Guenther <rguenther@suse.de>
15230
15231 PR lto/48846
15232 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
15233 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
15234 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
15235
60a45536
RG
152362011-05-03 Richard Guenther <rguenther@suse.de>
15237
15238 * c-decl.c (grokdeclarator): Instead of looking at
15239 TREE_OVERFLOW check if the constant fits in the index type.
15240
3188ed59
RS
152412011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
15242
15243 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
15244 (vec_store_lanes<mode><mode>): Likewise.
15245
272c6793
RS
152462011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
15247
15248 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
15249 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
15250 convert_optab_index values.
15251 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
15252 * genopinit.c (optabs): Initialize the new optabs.
15253 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
15254 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
15255 (expand_STORE_LANES): New functions.
15256 * tree.h (build_array_type_nelts): Declare.
15257 * tree.c (build_array_type_nelts): New function.
15258 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
15259 (vect_model_load_cost): Likewise.
15260 (vect_store_lanes_supported, vect_load_lanes_supported)
15261 (vect_record_strided_load_vectors): Declare.
15262 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
15263 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
15264 (vect_transform_strided_load): Split out statement recording into...
15265 (vect_record_strided_load_vectors): ...this new function.
15266 * tree-vect-stmts.c (create_vector_array, read_vector_array)
15267 (write_vector_array, create_array_ref): New functions.
15268 (vect_model_store_cost): Add store_lanes_p argument.
15269 (vect_model_load_cost): Add load_lanes_p argument.
15270 (vectorizable_store): Try to use store-lanes functions for
15271 interleaved stores.
15272 (vectorizable_load): Likewise load-lanes and loads.
15273 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
15274 to vect_model_store_cost.
15275 (vect_build_slp_tree): Likewise vect_model_load_cost.
15276
0f6d54f7
RS
152772011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
15278
15279 * hooks.h (hook_bool_mode_uhwi_false): Declare.
15280 * hooks.c (hook_bool_mode_uhwi_false): New function.
15281 * target.def (array_mode_supported_p): New hook.
15282 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
15283 * doc/tm.texi: Regenerate.
15284 * stor-layout.c (mode_for_array): New function.
15285 (layout_type): Use it.
15286 * config/arm/arm.c (arm_array_mode_supported_p): New function.
15287 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
15288
b15eacc7
EB
152892011-05-03 Eric Botcazou <ebotcazou@adacore.com>
15290
15291 PR target/48723
15292 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
15293 for -fstack-check if the size to allocate is negative.
15294
575bfb00
LC
152952011-05-02 Lawrence Crowl <crowl@google.com>
15296
15297 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
15298 (timevar_cond_start): New for starting a timer only when it is not
15299 already running.
15300 (timevar_cond_stop): New for stopping a timer when it was not already
15301 running.
15302
15303 * timevar.c (timevar_stop): Enable start/stop timers to start again.
15304 (timevar_cond_start): New as above.
15305 (timevar_cond_stop): New as above.
15306
15307 * timevar.def: Add start/stop timers for compiler phases,
15308 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
15309 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
15310 and TV_PHASE_FINALIZE.
15311 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
15312 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
15313 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
15314 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
15315 Make unused TV_OVERLOAD into a start/stop timer.
15316
15317 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
15318 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
15319 to indicate that they are start/stop timers.
15320
15321 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
15322 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
15323 Move initialization to do_compile.
15324 (do_compile): Add initialization from above.
15325 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
15326
15327 * c-decl.c (c_write_global_declarations): Add start/stop of
15328 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
15329
15330 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
15331 or TV_PARSE_INLINE, as appropriate.
15332 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
15333 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
15334
3533b943
JM
153352011-05-02 Jason Merrill <jason@redhat.com>
15336
15337 PR c++/40975
15338 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
15339
2609a0ce
SM
153402011-05-02 Simon Martin <simartin@users.sourceforge.net>
15341
15342 PR c/35445
15343 * c-decl.c (finish_decl): Only create a composite if the types are
15344 compatible.
15345
6b0e4cbb
JM
153462011-05-02 Joseph Myers <joseph@codesourcery.com>
15347
15348 * config/fr30/fr30-protos.h (Mmode): Don't define.
15349 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
15350 definition where used.
15351 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
15352 define. Expand definitions where used.
15353 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
15354 Expand definitions where used.
15355 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
15356 rx_function_arg, rx_function_arg_advance,
15357 rx_function_arg_boundary): Expand definitions of those macros.
15358 * config/v850/v850-protos.h (Mmode): Don't define. Expand
15359 definition where used.
15360
4e938ce6
UB
153612011-05-02 Uros Bizjak <ubizjak@gmail.com>
15362
15363 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
15364 reg<->xmm moves.
15365 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
15366 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
15367 with *movv2sf_internal_rex64_avx.
15368 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
15369 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
15370 Use %v prefix in insn mnemonic to handle TARGET_AVX.
15371 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
15372 "vex" in "prefix" attribute calculation.
15373 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
15374
36019c19
SH
153752011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
15376
7a2f7208
UB
15377 PR target/47951
15378 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
15379 inputs match the output.
36019c19 15380
f69ea688
AS
153812011-05-02 Andreas Schwab <schwab@linux-m68k.org>
15382
15383 PR target/47955
15384 * config/m68k/m68k.c (m68k_expand_prologue): Set
15385 current_function_static_stack_size.
15386
c33406f5
JH
153872011-05-02 Jan Hubicka <jh@suse.cz>
15388
15389 * lto-streamer.c (lto_streamer_cache_insert_1,
15390 lto_streamer_cache_lookup, lto_streamer_cache_create,
15391 lto_streamer_cache_delete): Use pointer map instead of hashtable.
15392 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
15393
47c94d21
JM
153942011-05-02 Joseph Myers <joseph@codesourcery.com>
15395
15396 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
15397 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
15398 config/m68k/t-opts: New files.
15399 * config/m68k/m68k-tables.opt: New file (generated).
15400 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
15401 extra_options and m68k/t-opts to tmake_file.
15402 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
15403 (all_isas): Initialize using m68k-isas.def.
15404 (all_microarchs): Initialize using m68k-microarchs.def.
15405 (m68k_find_selection): Remove.
15406 (m68k_handle_option): Don't assert that global structures are in
15407 use. Use error_at. Access variables via opts pointer. Don't
15408 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
15409 directly for -m68020-40 and -m68020-60.
15410 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
15411 m68k_tune_entry here.
15412 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
15413 to m68k-opts.h.
15414 (m68k_library_id_string): Remove declaration.
4e938ce6 15415 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
15416 (m68k_library_id_string): New Variable.
15417 (march=, mcpu=, mtune=): Use Enum and Var.
15418
e562bf36
RG
154192011-05-02 Richard Guenther <rguenther@suse.de>
15420
15421 * varasm.c (output_constructor_regular_field): Compute zero-based
15422 index with double-ints. Make sure to ICE instead of producing
15423 wrong code.
15424 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
15425 in asserts. Properly use a signed type.
15426
6bec6c98
UB
154272011-05-02 Uros Bizjak <ubizjak@gmail.com>
15428
15429 * config/i386/sse.md (V): New mode iterator.
15430 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
15431 TARGET_SSE2.
15432 (V_256): Rename from AVX256MODE.
15433 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
15434 condition to all users.
15435 (VF1): Ditto.
15436 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
15437 condition to all users.
15438 (VF_128): Make V4SF mode unconditional.
15439 (VF_256): Rename from AVX256MODEF2P.
15440 (VI4F_128): Rename from SSEMODE4S.
15441 (VI8F_128): Rename from SSEMODE2D.
15442 (VI4F_256): Rename from AVX256MODE8P.
15443 (VI8F_256): Rename from AVX256MODE4P.
15444 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
15445 (ssescalarmodesuffix): Remove SF and DF modes.
15446 (SSEMODE124): Remove.
15447 (SSEMODE1248): Ditto.
15448 (SSEMODEF2P): Ditto.
15449 (AVXMODEF2P): Ditto.
15450 (AVXMODEFDP): Ditto.
15451 (AVXMODEFSP): Ditto.
15452 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
15453 unconditional.
15454 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
15455 unconditional.
15456 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
15457 xop_pcmov_<mode>256. Use V mode iterator.
15458
15459 Adjust RTX patterns globally for renamed mode attributes.
15460
2dfdcb4b
UW
154612011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
15462
15463 * haifa-sched.c (sched_emit_insn): Emit insn before first
15464 non-scheduled insn. Inform back-end about new insn. Add
15465 new insn to scheduled_insns list.
15466
90bc4623
RG
154672011-05-02 Richard Guenther <rguenther@suse.de>
15468
15469 PR tree-optimization/48822
15470 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
15471 (process_scc): Indicate which iteration we start.
15472
bc0fe8cb
JH
154732011-05-02 Jan Hubicka <jh@suse.cz>
15474
15475 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
15476 (lto_section_overrun): New.
15477 * lto-section-out.c (append_block): Rename to ...
15478 (lto_append_block): ... this one; export.
15479 (lto_output_1_stream): Move lto lto-streamer.h
15480 (lto_output_data_stream): Update.
15481 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
15482 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
15483 functions.
15484
f070a9d1
RG
154852011-05-02 Richard Guenther <rguenther@suse.de>
15486
15487 * tree.c (tree_code_counts): New global array.
15488 (record_node_allocation_statistics): Count individual tree codes.
15489 (dump_tree_statistics): Dump individual code stats.
15490
09dfe187
JH
154912011-05-01 Jan Hubicka <jh@suse.cz>
15492
15493 * ipa-inline.c (caller_growth_limits): Fix thinko when
15494 looking for largest stack frame.
15495 * ipa-inline.h (dump_inline_summary): Declare.
15496 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
15497 on stack usage.
15498 (dump_inline_summary): Export.
15499 (debug_inline_summary): Declare as DEBUG_FUNCTION.
15500
6f76a878
AS
155012011-05-01 Anatoly Sokolov <aesok@post.ru>
15502
15503 * reginfo.c (memory_move_cost): Change rclass argument type form
15504 'enum reg_class' to reg_class_t.
15505 * reload.h (memory_move_cost): Update prototype.
15506 * postreload.c reload_cse_simplify_set): Change type dclass var to
15507 reg_class_t.
15508 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
15509 Update prototype.
15510 (ira_allocate_and_set_costs): Change aclass argument type form
15511 'enum reg_class' to reg_class_t.
6bec6c98 15512 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
15513 Change aclass argument type to reg_class_t.
15514 (update_conflict_hard_reg_costs): Change type aclass and pref vars
15515 to reg_class_t.
15516 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
15517 memory_move_cost call.
15518
15519 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
15520 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
15521 Change type tmp var to reg_class_t.
15522
9a4ac625
JH
155232011-04-30 Jan Hubicka <jh@suse.cz>
15524
15525 * ipa-inline.c (can_inline_edge_p): Disregard limits when
15526 inlining into function with flatten attribute.
15527 (want_inline_small_function_p): Be more realistic about inlining
15528 cold calls where callee size grows.
15529
dd8352ee
JH
155302011-04-30 Jan Hubicka <jh@suse.cz>
15531
15532 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
15533 flags.
15534
46e43d2b
AS
155352011-04-30 Anatoly Sokolov <aesok@post.ru>
15536
15537 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15538 PRINT_OPERAND_PUNCT_VALID_P): Remove.
15539 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
15540 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
15541 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15542 (print_operand): Rename to...
15543 (sparc_print_operand): ...this. Make static. Adjust
15544 sparc_print_operand function call.
15545 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
15546 functions.
15547
ecb62563
JH
155482011-04-30 Jan Hubicka <jh@suse.cz>
15549
6bec6c98 15550 PR middle-end/48752
ecb62563
JH
15551 * ipa-inline.c (early_inliner): Disable when doing late
15552 addition of function.
15553
edb9b69e
JJ
155542011-04-30 Jakub Jelinek <jakub@redhat.com>
15555
be80a87e
JJ
15556 * dwarf2out.c (get_address_mode): New inline.
15557 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
15558 if not dwarf_strict emit
15559 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
15560 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
15561 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
15562 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
15563 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
15564 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
15565 mem_loc_descriptor callers.
15566 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
15567 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
15568 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
15569 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
15570 (base_types): New variable.
15571 (get_base_type_offset, calc_base_type_die_sizes,
15572 base_type_for_mode, mark_base_types, base_type_cmp,
15573 move_marked_base_types): New functions.
15574 (calc_die_sizes): Assert that die_offset is 0 or equal to
15575 next_die_offset.
15576 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
15577 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
15578 callers. If not dwarf_strict, call mem_loc_descriptor even for
15579 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
15580 (gen_subprogram_die): Don't give up on call site parameters
15581 with non-integral or large integral modes. Adjust
15582 mem_loc_descriptor callers.
15583 (prune_unused_types): Call prune_unused_types_mark on base_types
15584 vector entries.
15585 (resolve_addr): Call mark_base_types.
15586 (dwarf2out_finish): Call move_marked_base_types.
15587
edb9b69e
JJ
15588 PR tree-optimization/48809
15589 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
15590 type.
15591 (gen_inbound_check): Don't compute index_expr - range_min in utype
15592 again, instead reuse SSA_NAME initialized in build_arrays.
15593 Remove two useless gsi_for_stmt calls.
15594
a6545a3d
JL
155952011-04-29 Jeff Law <law@redhat.com>
15596
15597 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
15598
af8bca3c
MJ
155992011-04-29 Martin Jambor <mjambor@suse.cz>
15600
15601 * cgraph.h (cgraph_postorder): Remove declaration.
15602 * ipa-utils.h (ipa_free_postorder_info): Declare.
15603 (ipa_reverse_postorder): Likewise.
15604 * cgraphunit.c: Include ipa-utils.h.
15605 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
15606 * ipa-inline.c: Include ipa-utils.h.
15607 (ipa_inline): Update call to ipa_reverse_postorder.
15608 * ipa-pure-const.c (propagate_pure_const): Update call to
15609 ipa_reduced_postorder and ipa_print_order. Call
15610 ipa_free_postorder_info to clean up.
15611 (propagate_nothrow): Likewise.
15612 * ipa-reference.c (propagate): Removed a useless call to
15613 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
15614 and ipa_print_order. Call ipa_free_postorder_info to clean up.
15615 * ipa.c: Include ipa-utils.h.
15616 (ipa_profile): Update call to ipa_reverse_postorder.
15617 (cgraph_postorder): Moved to...
15618 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
15619 (ipa_utils_print_order): Renamed to ipa_print_order.
15620 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
15621 comments.
15622 (ipa_free_postorder_info): New function.
15623 * passes.c: Include ipa-utils.h.
15624 (do_per_function_toporder): Update call to ipa_reverse_postorder.
15625 (ipa_write_summaries): Likewise.
15626 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
15627 (cgraphunit.o): Likewise.
15628 (ipa.o): Likewise.
15629 (ipa-inline.o): Likewise.
15630
b15c64ee
JH
156312011-04-29 Jan Hubicka <jh@suse.cz>
15632
15633 * gcc.dg/tree-ssa/inline-10.c: New testcase.
15634 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
15635 * ipa-inline.h (clause_t): Turn into unsigned int.
15636 * ipa-inline-analysis.c (add_clause): Do more simplification.
15637 (and_predicates): Shortcut more cases.
15638 (predicates_equal_p): Move forward; check that clauses are properly
15639 ordered.
15640 (or_predicates): Shortcut more cases.
15641 (edge_execution_predicate): Rewrite as...
15642 (set_cond_stmt_execution_predicate): ... this function; handle
15643 __builtin_constant_p.
15644 (set_switch_stmt_execution_predicate): New .
15645 (compute_bb_predicates): New.
15646 (will_be_nonconstant_predicate): Update TODO.
15647 (estimate_function_body_sizes): Use compute_bb_predicates
15648 and free them later, always try to estimate if stmt is constant.
15649 (estimate_time_after_inlining, estimate_size_after_inlining):
15650 Gracefully handle optimized out edges.
15651 (read_predicate): Fix off by one error.
15652
a88fdc2a
NP
156532011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
15654
15655 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
15656
d984c8ef
XDL
156572011-04-27 Xinliang David Li <davidxl@google.com>
15658
15659 * tree-profile.c (init_ic_make_global_vars): Set
15660 tls attribute on ic vars.
15661 * coverage.c (coverage_end_function): Initialize
15662 function_list with zero.
15663
45a2c477
RG
156642011-04-29 Richard Guenther <rguenther@suse.de>
15665
15666 * builtins.c (fold_builtin_classify_type): Use integer_type_node
15667 for the type of the result.
15668 (fold_builtin_isascii): Likewise.
15669 (fold_builtin_toascii): Use integer_type_node where appropriate.
15670 (fold_builtin_logb): Likewise.
15671 (fold_builtin_frexp): Likewise.
15672 (fold_builtin_strstr): Likewise.
15673 (fold_builtin_strpbrk): Likewise.
15674 (fold_builtin_fputs): Likewise.
15675 (fold_builtin_sprintf): Likewise.
15676 (fold_builtin_snprintf): Likewise.
15677 (fold_builtin_printf): Likewise.
15678 (do_mpfr_remquo): Use a proper type for the assigned constant.
15679 (do_mpfr_lgamma_r): Likewise.
15680 * dwarf2out.c (resolve_one_addr): Use size_int.
15681 * except.c (init_eh): Likewise.
15682 (assign_filter_values): Use integer_type_node for filter values.
15683 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
15684 indices.
15685 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
15686 for EH region numbers.
15687 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
15688 for the shift amount.
15689
eb6c3df1
RG
156902011-04-29 Richard Guenther <rguenther@suse.de>
15691
15692 * expr.h (expand_shift): Rename to ...
15693 (expand_variable_shift): ... this.
15694 (expand_shift): Take a constant shift amount.
15695 * expmed.c (expand_shift): Rename to ...
15696 (expand_variable_shift): ... this.
15697 (expand_shift): New wrapper around expand_variable_shift.
15698 * expr.c (convert_move, emit_group_load_1, emit_group_store,
15699 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
15700 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
15701 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
15702 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
15703 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
15704 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
15705 emit_store_flag_1, emit_store_flag): Likewise.
15706 * builtins.c (expand_builtin_signbit): Likewise.
15707 * calls.c (load_register_parameters): Likewise.
15708 * function.c (assign_parm_setup_block): Likewise.
15709 * lower-subreg.c (resolve_shift_zext): Likewise.
15710 * optabs.c (widen_bswap, expand_abs_nojump,
15711 expand_one_cmpl_abs_nojump, expand_float): Likewise.
15712 * spu/spu.c (spu_expand_extv): Likewise.
15713 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15714
9f616812
RG
157152011-04-29 Richard Guenther <rguenther@suse.de>
15716
15717 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
15718 for the remapped region number.
15719 * predict.c (build_predict_expr): Use integer_type_node for the
15720 predict kind.
15721 * fold-const.c (fold_binary_loc): Use integer_type_node for
15722 the shift amount. Use a proper type for the PLUS_EXPR operand.
15723
b823cdfe
MM
157242011-04-29 Michael Matz <matz@suse.de>
15725
15726 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
15727 other trees that just builtins.
15728 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
15729
413581ba
RG
157302011-04-29 Richard Guenther <rguenther@suse.de>
15731
15732 * tree-nested.c (get_trampoline_type): Use size_int.
15733 (get_nl_goto_field): Likewise.
15734 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
15735 for all indexes.
15736 (lower_eh_constructs_2): Likewise.
15737 (lower_resx): Likewise.
15738 (lower_eh_dispatch): Likewise.
15739 * tree-mudflap.c (mf_build_string): Use size_int.
15740 (mudflap_register_call): Use integer_type_node for the flag.
15741 (mudflap_enqueue_constant): Use size_int.
15742 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
15743 instead of rebuilding it.
15744
5c04e9f4
RG
157452011-04-29 Richard Guenther <rguenther@suse.de>
15746
15747 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
15748 Handle OBJ_TYPE_REF.
15749 (find_func_aliases_for_call): Use it more consistently.
15750
5c24671b
AO
157512011-04-29 Alexandre Oliva <aoliva@redhat.com>
15752
15753 * haifa-sched.c (last_nondebug_scheduled_insn): New.
15754 (rank_for_schedule): Use it.
15755 (schedule_block): Set it.
15756
10adac51
XDL
157572011-04-28 David Li <davidxl@google.com>
15758
15759 * tree.c (crc32_string): Use crc32_byte.
15760 (crc32_byte): New function.
15761 * tree.h (crc32_byte): New function.
15762 * gcov.c (read_graph_file): Handle new cfg_cksum.
15763 (read_count_file): Ditto.
15764 * profile.c (instrument_values): Ditto.
15765 (get_exec_counts): Ditto.
15766 (read_profile_edge_counts): Ditto.
15767 (compute_branch_probabilities): Ditto.
15768 (compute_value_histograms): Ditto.
15769 (branch_prob): Ditto.
15770 (end_branch_prob): Ditto.
15771 * coverage.c (read_counts_file): Ditto.
15772 (get_coverage_counts): Ditto.
15773 (tree_coverage_counter_addr): Ditto.
15774 (coverage_checksum_string): Ditto.
15775 (coverage_begin_output): Ditto.
15776 (coverage_end_function): Ditto.
15777 (build_fn_info_type): Ditto.
15778 (build_fn_info_value): Ditto.
15779 * libgcov.c (gcov_exit): Ditto.
15780 * gcov-dump.c (tag_function): Ditto.
15781 (compute_checksum): Remove.
15782
5d6358a5
AM
157832011-04-29 Alan Modra <amodra@gmail.com>
15784
15785 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15786 unspec plus offset. Tidy macho code.
15787
85ad2ef5
MJ
157882011-04-29 Martin Jambor <mjambor@suse.cz>
15789
15790 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
15791 node instead of a decl. Update all callers.
15792 * cgraph.h: Update declaration.
15793
437f4a00
IR
157942011-04-28 Ira Rosen <ira.rosen@linaro.org>
15795
15796 PR tree-optimization/48765
15797 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
15798 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
15799 to indicate if loop aware SLP is being used. Scan the statements
15800 and update the vectorization factor according to the type of
15801 vectorization before statement analysis.
15802 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
15803 pass it to vect_analyze_loop_operations.
15804 (vectorizable_reduction): Set number of copies to 1 in case of pure
15805 SLP statement.
15806 * tree-vect-stmts.c (vectorizable_conversion,
15807 vectorizable_assignment, vectorizable_shift,
15808 vectorizable_operation, vectorizable_type_demotion,
15809 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
15810 Likewise.
15811 (vectorizable_condition): Move the check that it is not SLP
15812 vectorization before the number of copies check.
15813 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
15814 to vectorize the loop using SLP.
15815
c6fc44f3
JJ
158162011-04-28 Jakub Jelinek <jakub@redhat.com>
15817
15818 PR middle-end/48597
15819 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
15820 inline asm.
15821
6c0170ea
JM
158222011-04-28 Joseph Myers <joseph@codesourcery.com>
15823
15824 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
15825 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
15826 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15827 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15828 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
15829 linux*.h headers.
6bec6c98 15830 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
15831 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15832 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15833 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 15834 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
15835 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
15836 REG_NAME.
15837 * config/i386/linux.h (REG_NAME): Don't define.
15838 * config/i386/linux64.h (REG_NAME): Don't define.
15839 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
15840 Undefine before defining.
15841
970dabbd
JH
158422011-04-28 Jan Hubicka <jh@suse.cz>
15843
6bec6c98
UB
15844 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
15845 nonconstant_names array.
970dabbd
JH
15846 (estimate_function_body_sizes): Build nonconstant_names array; handle
15847 BUILT_IN_CONSTANT_P.
15848
8d3e3924
RG
158492011-04-28 Richard Guenther <rguenther@suse.de>
15850
15851 PR bootstrap/48804
15852 Revert
15853 2011-04-28 Richard Guenther <rguenther@suse.de>
15854
15855 * tree-ssa-structalias.c (solve_constraints): Build succ graph
15856 as late as possible.
6bec6c98 15857
8576f20a
RG
158582011-04-28 Richard Guenther <rguenther@suse.de>
15859
15860 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
15861 (debug_constraint): Do it here.
15862 (dump_constraints): And here.
15863 (rewrite_constraints): And here.
15864 (dump_constraint_edge): Remove.
15865 (dump_constraint_graph): Rewrite to produce DOT output.
15866 (solve_constraints): Build succ graph as late as possible.
15867 Dump constraint graphs before and after solving.
15868
e38811ce
RG
158692011-04-28 Richard Guenther <rguenther@suse.de>
15870
15871 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
15872 New function split out from ...
15873 (find_func_aliases): ... here. Call it.
15874 (find_func_aliases_for_call): Likewise.
15875
fbaf0d0c
GDR
158762011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
15877
15878 * internal-fn.h (internal_fn_name_array): Declare.
15879 (internal_fn_flags_array): Likewise.
15880
cbb734aa
UB
158812011-04-27 Uros Bizjak <ubizjak@gmail.com>
15882
15883 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
15884 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
15885 Move from sse.md.
15886 (ssemodefsuffix): Remove.
15887 (ssevecmodesuffix): New mode attribute.
15888 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
15889 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
15890 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
15891 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
15892 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
15893 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
15894 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
15895 ssemodesuffix mode attribute.
15896 (float splitters): Use ssevecmodesuffix mode attribute.
15897 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
15898 (sseinsmode): Rename from avxvecmode.
15899 (avxsizesuffix): Rename from avxmodesuffix.
15900 (sseintvecmode): Rename from avxpermvecmode.
15901 (ssedoublevecmode): Rename from ssedoublesizemode.
15902 (ssehalfvecmode): Rename from avxhalfvecmode.
15903 (ssescalarmode): Rename from avxscalarmode.
15904 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
15905 templates for ssemodesuffix mode attribute.
15906 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
15907 mode attribute.
15908
15909 Adjust RTX patterns globally for renamed mode attributes.
15910
991278ab
JH
159112011-04-27 Jan Hubcika <jh@suse.cz>
15912
15913 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
15914 * ipa-inline-analysis.c: Include alloc-pool.h.
15915 (edge_predicate_pool): New.
15916 (trye_predicate_p): New function
15917 (false_predicate_p): New function.
15918 (add_clause): Sanity check that false clauses are "optimized";
15919 never add clauses to predicate that is already known to be false.
15920 (and_predicate): Use flase_predicate_p.
15921 (evaulate_predicate): Rename to ...
15922 (evaluate_predicate): ... this one; update all callers; assert
15923 that false is not listed among possible truths.
15924 (dump_predicate): Use true_predicate_p.
15925 (account_size_time): Use false_predicate_p.
15926 (evaulate_conditions_for_edge): Rename to ...
15927 (evaluate_conditions_for_edge) ... this one.
15928 (edge_set_predicate): New function.
15929 (inline_edge_duplication_hook): Duplicate edge predicates.
15930 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 15931 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
15932 (dump_inline_summary): Update.
15933 (estimate_function_body_sizes): Set edge predicates.
15934 (estimate_calls_size_and_time): Handle predicates.
15935 (estimate_callee_size_and_time): Update.
15936 (remap_predicate): Add toplev_predicate; update comment.
15937 (remap_edge_predicates): New function.
15938 (inline_merge_summary): Compute toplev predicate; update.
15939 (read_predicate): New function.
15940 (read_inline_edge_summary): Use it.
15941 (inline_read_section): Likewise.
15942 (write_predicate): New function.
15943 (write_inline_edge_summary): Use it.
15944 (inline_write_summary): Likewise.
15945 (inline_free_summary): Free alloc pool and edge summary vec.
15946
648b5f85
RG
159472011-04-27 Richard Guenther <rguenther@suse.de>
15948
15949 * tree-ssa-structalias.c (changed_count): Remove.
15950 (changed): Use a bitmap.
15951 (unify_nodes): Adjust.
15952 (do_sd_constraint): Likewise.
15953 (do_ds_constraint): Likewise.
15954 (do_complex_constraint): Likewise.
15955 (solve_graph): Likewise.
15956
4d5dcfb2
JH
159572011-04-27 Jan Hubicka <jh@suse.cz>
15958
15959 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
15960
200eb7d2
UB
159612011-04-27 Uros Bizjak <ubizjak@gmail.com>
15962
15963 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
15964 (avx_vperm2f128_*_operand): Ditto.
15965 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
15966 Use avx_vpermilp_parallel in insn condition.
15967 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
15968 Use avx_vperm2f128_parallel in insn condition.
15969
7d6e2521
RG
159702011-04-27 Richard Guenther <rguenther@suse.de>
15971
15972 * Makefile.in (tree-ssa-structalias.o): Remove
15973 gt-tree-ssa-structalias.h dependency.
15974 (GTFILES): Remove tree-ssa-structalias.c.
15975 * tree.c (allocate_decl_uid): New function.
15976 (make_node_stat): Use it.
15977 (copy_node_stat): Likewise.
15978 * tree.h (allocate_decl_uid): Declare.
15979 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
15980 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
15981 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 15982 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
15983 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
15984 (struct heapvar_map): Likewise.
15985 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
15986 heapvar_insert): Likewise.
15987 (make_heapvar_for): Rename to ...
15988 (make_heapvar): ... this. Simplify.
15989 (fake_var_decl_obstack): New global var.
15990 (build_fake_var_decl): New function.
15991 (make_constraint_from_heapvar): Adjust.
15992 (handle_lhs_call): Likewise.
15993 (create_function_info_for): Likewise.
15994 (intra_create_variable_infos): Likewise.
15995 (init_alias_vars): Allocate fake_var_decl_obstack.
15996 (init_alias_heapvars, delete_alias_heapvars): Remove.
15997 (compute_points_to_sets): Do not call init_alias_heapvars.
15998 (ipa_pta_execute): Likewise.
15999 (delete_points_to_sets): Free fake_var_decl_obstack.
16000
526ed6c2
UW
160012011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16002
16003 * config/spu/divmovti4.c (union qword_UTItype): New data type.
16004 (si_from_UTItype, si_to_UTItype): New functions.
16005 (__udivmodti4): Use them to implement type-punning.
16006 * config/spu/multi3.c (union qword_TItype): New data type.
16007 (si_from_TItype, si_to_TItype): New functions.
16008 (__multi3): Use them to implement type-punning.
16009
c187d33c
UW
160102011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16011
16012 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
16013
40982661
JH
160142011-04-27 Jan Hubicka <jh@suse.cz>
16015
16016 * ipa-prop.c (function_insertion_hook_holder): New holder.
16017 (ipa_add_new_function): New function.
200eb7d2
UB
16018 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
16019 Register/deregister holder.
40982661 16020
9aef53ee
RG
160212011-04-27 Richard Guenther <rguenther@suse.de>
16022
16023 PR tree-optimization/48772
200eb7d2 16024 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 16025
f63d806d
RG
160262011-04-27 Richard Guenther <rguenther@suse.de>
16027
16028 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
16029 TARGET_MEM_REF handling.
16030
e1ea7451
NC
160312011-04-27 Nick Clifton <nickc@redhat.com>
16032
9b5db25d
NC
16033 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
16034 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
16035 (REG_CLASS_NAMES): Likewise.
16036 (REG_CLASS_CONTENTS): Likewise.
16037 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
16038 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
16039 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
16040 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
16041 (EVEN_REGS): New macro. Alias for QUAD_REGS.
16042 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
16043 duplicate register classes.
97d20907 16044 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
16045 (frv_register_move_cost): Likewise.
16046
e1ea7451
NC
16047 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
16048 end of the regno_reg_class array.
16049
5c2f94b4
JJ
160502011-04-27 Jakub Jelinek <jakub@redhat.com>
16051
16052 PR c/48742
16053 * c-typeck.c (build_binary_op): Don't wrap arguments if
16054 int_operands is true.
16055
57a944d7
KK
160562011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
16057
16058 PR target/48767
16059 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
16060 targetm.calls.must_pass_in_stack for void type.
16061
898b8927
JH
160622011-04-26 Jan Hubicka <jh@suse.cz>
16063
16064 * cgraphbuild.c (build_cgraph_edges): Update call
16065 of cgraph_create_edge and cgraph_create_indirect_edge.
16066 * cgraph.c (cgraph_create_edge_including_clones,
16067 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
16068 cgraph_update_edges_for_call_stmt_node): Do not take nest
16069 argument; do not initialize call_stmt_size/time.
16070 (dump_cgraph_node): Do not dump nest.
16071 (cgraph_clone_edge): Do not take loop_nest argument;
16072 do not propagate it; do not clone call_stmt_size/time.
16073 (cgraph_clone_node): Likewise.
16074 (cgraph_create_virtual_clone): Update.
16075 * cgraph.h (struct cgraph_edge): Remove
16076 call_stmt_size/call_stmt_time/loop_nest.
16077 (cgraph_create_edge, cgraph_create_indirect_edge,
16078 cgraph_create_edge_including_clones, cgraph_clone_node): Update
16079 prototype.
16080 * tree-emutls.c (gen_emutls_addr): Update.
16081 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
16082 loop_nest; handle indirect calls, too.
16083 (clone_inlined_nodes): Do not care about updating inline summaries.
16084 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
16085 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
16086 stream call_stmt_size/call_stmt_time/loop_nest.
16087 * ipa-inline.c (edge_badness): Update.
16088 (ipa_inline): dump summaries after inlining.
16089 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 16090 New.
898b8927
JH
16091 (inline_edge_summary): New function.
16092 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
16093 (inline_edge_removal_hook): Handle edge summaries.
16094 (inline_edge_duplication_hook): New hook.
16095 (inline_summary_alloc): Alloc hooks.
16096 (initialize_growth_caches): Do not register removal hooks.
16097 (free_growth_caches); Do not free removal hook.
16098 (dump_inline_edge_summary): New function.
16099 (dump_inline_summary): Use it.
16100 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
16101 (inline_update_callee_summaries): New function.
16102 (inline_merge_summary): Use it.
16103 (do_estimate_edge_time, do_estimate_edge_growth): Update.
16104 (read_inline_edge_summary): New function.
16105 (inline_read_section): Use it.
16106 (write_inline_edge_summary): New function.
16107 (inline_write_summary): Use it.
16108 (inline_free_summary): Free edge new holders.
16109 * tree-inline.c (copy_bb): Update.
16110
ffa03772
JM
161112011-04-26 Jason Merrill <jason@redhat.com>
16112
16113 * tree-eh.c (lower_try_finally_switch): Create the label along with
16114 the CASE_LABEL_EXPR.
16115
6d7b45ad
DM
161162011-04-26 David S. Miller <davem@davemloft.net>
16117 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16118
16119 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
16120 * configure: Regenerate.
16121
df10b6d4
MM
161222011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
16123
16124 PR target/48258
16125 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
16126 reduction.
16127 (VEC_reduc): New code iterator and splitters for vector reduction.
16128 (VEC_reduc_name): Ditto.
16129 (VEC_reduc_rtx): Ditto.
16130 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
16131 (reduc_<VEC_reduc_name>_v4sf): Ditto.
16132
16133 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
16134 support for extracting SF on VSX.
16135
16136 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
16137 generating xscvspdp.
16138 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
16139 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
16140 double add, minimum, maximum vector reduction.
16141 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
16142 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
16143 optimize double vector reduction.
16144 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
16145
35a5db04
JM
161462011-04-26 Joseph Myers <joseph@codesourcery.com>
16147
16148 * config/fr30/fr30.h (inhibit_libc): Don't define.
16149 * config/m32r/m32r-protos.h: Correct comment.
16150 * config/v850/v850.h (GHS_default_section_names,
16151 GHS_current_section_names): Use tree, not union tree_node *.
16152
2f964ad6
XDL
161532011-04-26 Xinliang David Li <davidxl@google.com>
16154
200eb7d2 16155 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
16156 * c-family/c-opts.c (c_common_handle_option): Set
16157 warn_maybe_uninitialized.
16158 * opts.c (common_handle_option): Ditto.
16159 * common.opt: New option.
16160 * tree-ssa.c (warn_uninit): Add one more parameter.
16161 (warn_uninitialized_var): Pass warning code.
16162 * tree-flow.h: Interface change.
16163
9c7bd91a
RO
161642011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16165
200eb7d2 16166 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
16167 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
16168 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
16169
c2f36e21
RO
161702011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16171
16172 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
16173 * config/mips/mips.opt (mmips-tfile): Remove.
16174
16175 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
16176 mips-tdump reference to ...
200eb7d2 16177 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
16178 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
16179 reference by Tru64 UNIX.
16180
2c9da85b
JJ
161812011-04-26 Jakub Jelinek <jakub@redhat.com>
16182
0c5f6539
JJ
16183 PR debug/48768
16184 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
16185 is error_mark_node, set value to NULL.
16186
2c9da85b
JJ
16187 PR tree-optimization/48734
16188 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
16189 if return value from maybe_fold_*_comparsions isn't something
16190 the code is prepared to handle.
16191
77fa1d54
UB
161922011-04-26 Uros Bizjak <ubizjak@gmail.com>
16193
16194 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
16195 mode check.
16196 (ext_QIreg_nomode_operands): Remove.
16197 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
16198 (*andsi_1): Ditto.
16199 (*andhi_1): Ditto.
16200
0e2a6c2b
AS
162012011-04-26 Andrew Stubbs <ams@codesourcery.com>
16202
16203 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
16204
961562d8
RB
162052011-04-26 Richard Guenther <rguenther@suse.de>
16206
16207 * c-typeck.c (build_unary_op): Do not expand array-refs via
16208 pointer arithmetic. Only adjust qualifiers for function types.
16209
162102011-04-26 Richard Guenther <rguenther@suse.de>
16211
16212 PR middle-end/48694
16213 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
16214 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
16215 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
16216 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 16217
a0d260fc
PC
162182011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
16219
6bec6c98 16220 * doc/extend.texi: Document __underlying_type.
a0d260fc 16221
4d583bb9
SB
162222011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
16223
16224 * config/rs6000/titan.md (automata_option "progress"): Remove.
16225
1f3fcdc3
JL
162262011-04-25 Jeff Law <law@redhat.com>
16227
16228 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
16229
e5b0dad8
JK
162302011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
16231
16232 * system.h (ENUM_BITFIELD): Remove.
16233
5157a881 162342011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 16235 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
16236
16237 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
16238 for STORE_FLAG_VALUE==-1 case.
16239
ed4c109e
RS
162402011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
16241
16242 PR target/43804
16243 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
16244 LEGITIMATE_PIC_OPERAND_P.
16245
f3181aa2
JH
162462011-04-24 Jan Hubicka <jh@suse.cz>
16247
16248 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
16249 WPA hack.
77fa1d54
UB
16250 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
16251 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
16252 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
16253 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
16254 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
16255 Sanity check predicate length.
16256 (remap_predicate): Likewise; sanity check jump functions.
16257 (inline_read_section, inline_write_summary): Sanity check
16258 predicate length.
16259
5307cbaa
PC
162602011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
16261
16262 PR other/48748
16263 * doc/extend.texi (Type Traits): Document __is_standard_layout,
16264 __is_literal_type, and __is_trivial; update throughout about
16265 possibly cv-qualified void types.
16266
bebd5f99
GP
162672011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
16268
16269 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
16270 testsuite and make it version agnostic.
16271
7ee28a74
JH
162722011-04-22 Jan Hubicka <jh@suse.cz>
16273
16274 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
16275
16997bc0
JJ
162762011-04-23 Jakub Jelinek <jakub@redhat.com>
16277
16278 PR c/48685
16279 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
16280 to VOID_TYPE even around MODIFY_EXPR.
16281
f94d4ab1
MS
162822011-04-22 Mike Stump <mikestump@comcast.net>
16283
1a84c183 16284 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
16285 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
16286 comment.
16287
632b4f8e
JH
162882011-04-22 Jan Hubicka <jh@suse.cz>
16289
16290 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
16291 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
16292 ipa-prop.c; update all uses.
632b4f8e 16293 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
16294 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
16295 merge summary of inlined function into former caller.
632b4f8e
JH
16296 * ipa-inline.c (max_benefit): Remove.
16297 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
16298 (update_caller_keys): Use
16299 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
16300 (update_callee_keys): Likewise.
16301 (update_all_callee_keys): Likewise.
77fa1d54
UB
16302 (inline_small_functions): Do not collect max_benefit; do not reset
16303 estimated_growth; call free_growth_caches and initialize_growth_caches.
16304 * ipa-inline.h (struct condition, type clause_t, struct predicate,
16305 struct size_time_entry): New structures.
632b4f8e 16306 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
16307 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
16308 and estimated_growth.
632b4f8e
JH
16309 (edge_growth_cache_entry): New structure.
16310 (node_growth_cache, edge_growth_cache): New global vars.
16311 (estimate_growth): Turn into inline.
16312 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
16313 initialize_growth_caches, free_growth_caches): Declare.
16314 (estimate_edge_growth): Rewrite.
16315 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
16316 (reset_node_growth_cache, reset_edge_growth_cache): New inline
16317 functions.
632b4f8e
JH
16318 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
16319 (NUM_CONDITIONS): New constant.
16320 (predicate_conditions): New enum.
16321 (IS_NOT_CONSTANT): New constant.
16322 (edge_removal_hook_holder): New var.
16323 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
16324 (true_predicate, single_cond_predicate, false_predicate,
16325 not_inlined_predicate, add_condition, add_clause, and_predicates,
16326 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
16327 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
16328 evaulate_conditions_for_edge): New functions.
16329 (inline_summary_alloc): Move to heap.
16330 (inline_node_removal_hook): Clear condition and entry vectors.
16331 (inline_edge_removal_hook): New function.
16332 (initialize_growth_caches, free_growth_caches): New function.
16333 (dump_inline_summary): Update.
16334 (edge_execution_predicate): New function.
16335 (will_be_nonconstant_predicate): New function.
16336 (estimate_function_body_sizes): Compute BB and constantness predicates.
16337 (compute_inline_parameters): Do not clear estimated_growth.
16338 (estimate_edge_size_and_time): New function.
16339 (estimate_calls_size_and_time): New function.
16340 (estimate_callee_size_and_time): New function.
16341 (remap_predicate): New function.
16342 (inline_merge_summary): New function.
16343 (do_estimate_edge_time): New function based on...
16344 (estimate_edge_time): ... this one.
16345 (do_estimate_edge_growth): New function.
16346 (do_estimate_growth): New function based on....
16347 (estimate_growth): ... this one.
16348 (inline_analyze_function): Analyze after deciding on jump functions.
16349 (inline_read_section): New function.
16350 (inline_read_summary): Use it.
16351 (inline_write_summary): Write all the new data.
16352 * ipa-prop.c (ipa_get_param_decl_index): Export.
16353 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
16354 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
16355 Declare.
16356 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
16357 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
16358 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
16359 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
16360 cgraph_edge_inlinable_p): Remove.
16361 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
16362 (cgraph_process_new_functions): Update call of
16363 compute_inline_parameters.
632b4f8e 16364
1df5b0db
RG
163652011-04-22 Richard Guenther <rguenther@suse.de>
16366
16367 * tree.c (build_int_cst): Properly create canonicalized integer
16368 constants.
16369 (build_int_cst_type): Remove scary comments.
16370
ae01169c
XDL
163712011-04-22 Xinliang David Li <davidxl@google.com>
16372
16373 * toplev.c (process_options): Enable -Werror=coverage-mismatch
16374 by default when -Wno-error is not specified.
16375 * opts-global.c (decode_options): Remove call to
16376 control_warning_options.
16377
93dfac24
JJ
163782011-04-22 Jakub Jelinek <jakub@redhat.com>
16379
16380 PR tree-optimization/48717
16381 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
16382 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
16383
1b5f5069
JM
163842011-04-22 Joseph Myers <joseph@codesourcery.com>
16385
16386 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
16387 definition where used.
16388
144f4153
JJ
163892011-04-22 Jakub Jelinek <jakub@redhat.com>
16390
16391 PR c/48716
16392 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
16393 TREE_STATIC variables declared inside of some OpenMP construct.
16394
f9fd305b
MJ
163952011-04-22 Martin Jambor <mjambor@suse.cz>
16396
16397 PR middle-end/48585
1d284ec5 16398 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 16399
49819fef
AM
164002011-04-22 Alexander Monakov <amonakov@ispras.ru>
16401
16402 PR c/36750
16403 * c-typeck.c (pop_init_level): Do not warn about initializing
16404 with ` = {0}'.
16405
401f6699
AM
164062011-04-22 Alan Modra <amodra@gmail.com>
16407
16408 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
16409 when returning call_cookie.
16410 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
16411 pointers, to functions with no more vector args than the current
16412 function, and some non-local calls for ABI_V4.
16413 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
16414 sibcall_nonlocal_aix64): Combine to ..
16415 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
16416 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
16417 (sibcall_value_nonlocal_aix<mode>): ..likewise.
16418 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
16419 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
16420 operand.
16421 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
16422 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
16423 sibcall_value_symbolic_64): Delete.
16424
903d1e67
XDL
164252011-04-21 Xinliang David Li <davidxl@google.com>
16426
16427 * cgraph.h: Remove pid.
16428 * cgraph.c: Remove pid.
16429 * value-prof.c (init_node_map): New function.
16430 (del_node_map): New function.
16431 (find_func_by_funcdef_no): New function.
16432 (gimple_ic_transform): Call new function.
16433 * cgraphunit.c (cgraph_finalize_function): Remove pid.
16434 * function.c (get_last_funcdef_no): New function.
16435 * function.h (get_last_funcdef_no): New function.
16436 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
16437 to libgcov function.
16438 (tree-profiling): Call node map init and delete function.
16439
7378e95f
ILT
164402011-04-21 Ian Lance Taylor <iant@google.com>
16441
16442 * godump.c (go_format_type): Use exported Go name for anonymous
16443 field name.
16444
e84a6fcf
NF
164452011-04-21 Nathan Froyd <froydnj@codesourcery.com>
16446
16447 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
16448 Call builtin_function_type_list instead of builtin_function_type.
16449 (UNARY, BINARY, TRINARY, QUAD): Likewise.
16450
4fe058e2
NF
164512011-04-21 Nathan Froyd <froydnj@codesourcery.com>
16452
16453 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
16454 build_function_type_list instead of build_function_type.
16455 Delete variable `endlink'.
16456
1ba0a2d2
NF
164572011-04-21 Nathan Froyd <froydnj@codesourcery.com>
16458
16459 * config/s390/s390.c (s390_init_builtins): Call
16460 build_function_type_list instead of build_function_type.
16461
c0676219
NF
164622011-04-21 Nathan Froyd <froydnj@codesourcery.com>
16463
16464 * config/ia64/ia64.c (ia64_init_builtins): Call
16465 build_function_type_list instead of builtin_function_type.
16466
6ddfda8a
ER
164672011-04-21 Easwaran Raman <eraman@google.com>
16468
3a6448ea 16469 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
16470 (add_stack_var): ...and its reference here...
16471 (expand_stack_vars): ...and here.
16472 (stack_var_cmp): Sort by descending order of size.
16473 (partition_stack_vars): Change heuristic.
1d284ec5 16474 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
16475 (dump_stack_var_partition): Add newline after each partition.
16476
23756963
DA
164772011-04-21 Dimitrios Apostolou <jimis@gmx.net>
16478 Jeff Law <law@redhat.com>
16479
77fa1d54 16480 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
16481 * gengtype.c (matching_file_name_substitute): Likewise.
16482
aa2a43d2
RG
164832011-04-21 Richard Guenther <rguenther@suse.de>
16484
16485 PR lto/48703
1d284ec5 16486 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 16487
4d931f41
EB
164882011-04-21 Eric Botcazou <ebotcazou@adacore.com>
16489
16490 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
16491
f103fa7a
RG
164922011-04-21 Richard Guenther <rguenther@suse.de>
16493
16494 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
16495 file name.
16496
e19f6650
RG
164972011-04-21 Richard Guenther <rguenther@suse.de>
16498
16499 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
16500 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
16501 Use DECL_P, not SSA_VAR_P.
16502 (ptr_derefs_may_alias_p): Likewise.
16503 (ptr_deref_may_alias_ref_p_1): Likewise.
16504 (decl_refs_may_alias_p): Likewise.
16505 (refs_may_alias_p_1): Likewise.
16506 (ref_maybe_used_by_call_p_1): Likewise.
16507 (call_may_clobber_ref_p_1): Likewise.
16508 (indirect_ref_may_alias_decl_p): Assume indirect refrences
16509 are either MEM_REF or TARGET_MEM_REF.
16510 (indirect_refs_may_alias_p): Likewise.
16511 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
16512 for MEM_EXPR of indirect calls.
16513
9d1831bb
TG
165142011-04-21 Tristan Gingold <gingold@adacore.com>
16515
16516 * vmsdbgout.c (write_srccorr): Compute file length from the string.
16517 (dst_file_info_struct): Remove flen field.
16518 (lookup_filename): Remove code that set flen field.
16519
f199c029
TG
165202011-04-21 Tristan Gingold <gingold@adacore.com>
16521
16522 * config/ia64/ia64.c (ia64_start_function): Add a guard.
16523
2894086e
UB
165242011-04-21 Uros Bizjak <ubizjak@gmail.com>
16525
16526 PR target/48708
16527 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
16528 vec_extract and vec_concat for non-SSE4_1 targets.
16529
53f94a5c
RG
165302011-04-21 Richard Guenther <rguenther@suse.de>
16531
16532 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
16533 return statements.
16534
f0dca5ba
JM
165352011-04-21 Joseph Myers <joseph@codesourcery.com>
16536
16537 * config/i386/cygming.h (union tree_node, TREE): Don't define or
16538 undefine.
16539 (FILE): Don't undefine.
16540
984514ac
JM
165412011-04-21 Joseph Myers <joseph@codesourcery.com>
16542
16543 * config/alpha/alpha.c (struct machine_function): Use rtx, not
16544 struct rtx_def *.
16545 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
16546 struct rtx_def *.
16547 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 16548 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
16549 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
16550 rtx_def *.
16551 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
16552 definitions where used.
16553 * config/microblaze/microblaze.h (struct microblaze_args): Use
16554 rtx, not struct rtx_def *.
16555 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
16556 rtx_def *.
2894086e
UB
16557 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
16558 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
16559 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
16560 not struct rtx_def *.
16561 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
16562 struct rtx_def *.
16563 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
16564 rtx_def *.
2894086e 16565 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 16566
0b5a2724
RS
165672011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
16568
16569 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
16570 operand_equal_p to compare DR_BASE_ADDRESSes.
16571 (vect_check_interleaving): Likewise.
16572
4b18d683
RS
165732011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
16574
16575 PR target/46329
16576 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
16577 for all Neon struct constants.
16578
1a627b35
RS
165792011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
16580
16581 * target.def (legitimate_constant_p): New hook.
16582 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
16583 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
16584 * doc/tm.texi: Regenerate.
16585 * hooks.h (hook_bool_mode_rtx_true): Declare.
16586 * hooks.c (hook_bool_mode_rtx_true): Define.
16587 * system.h (LEGITIMATE_CONSTANT_P): Poison.
16588 * calls.c (precompute_register_parameters): Replace uses of
16589 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
16590 (emit_library_call_value_1): Likewise.
16591 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
16592 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
16593 * ira-costs.c (scan_one_insn): Likewise.
16594 * recog.c (general_operand, immediate_operand): Likewise.
16595 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
16596 * reload1.c (init_eliminable_invariants): Likewise.
16597
16598 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
16599 mode argument.
16600 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
16601 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
16602 argument.
16603 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16604 * config/alpha/predicates.md (input_operand): Update call to
16605 alpha_legitimate_constant_p.
16606
16607 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
16608 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
16609 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
16610 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16611 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
16612 (arm_legitimate_constant_p): New functions.
16613 (arm_cannot_force_const_mem): Make static.
16614
16615 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
16616
16617 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
16618 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
16619 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
16620 instead of bfin_legitimate_constant_p.
16621 (bfin_legitimate_constant_p): Make static. Add a mode argument.
16622 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16623
16624 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
16625
16626 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
16627
16628 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
16629 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
16630 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16631 (frv_legitimate_constant_p): Make static. Add a mode argument.
16632
16633 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
16634 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
16635 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
16636
16637 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
16638 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
16639 * config/i386/i386.c (legitimate_constant_p): Rename to...
16640 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
16641 argument.
16642 (ix86_cannot_force_const_mem): Update accordingly.
16643 (ix86_legitimate_address_p): Likewise.
16644 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16645 * config/i386/i386.md: Update commentary.
16646
16647 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
16648 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
16649 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16650 (ia64_legitimate_constant_p): Make static. Add a mode argument.
16651
16652 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
16653
16654 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
16655 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
16656 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16657 (lm32_legitimate_constant_p): Make static. Add a mode argument.
16658
16659 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
16660 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
16661 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
16662
16663 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
16664 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16665 (m32r_legitimate_constant_p): New function.
16666
16667 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
16668 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
16669 LEGITIMATE_CONSTANT_P.
16670 (LEGITIMATE_CONSTANT_P): Delete.
16671 * config/m68k/m68k.c (m68k_expand_prologue): Call
16672 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
16673 (m68k_legitimate_constant_p): New function.
16674 * config/m68k/m68k.md: Update comments.
16675
16676 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
16677 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16678 (mcore_legitimate_constant_p): New function.
16679
16680 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
16681 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
16682 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
16683 Add a mode argument.
16684 (mep_legitimate_address): Update accordingly.
16685 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16686
16687 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
16688 Delete.
16689 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
16690 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
16691 static. Check OP's mode for VOIDmode.
16692 (microblaze_legitimate_constant_p): New function.
16693 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16694
16695 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
16696 * config/mips/mips.c (mips_legitimate_constant_p): New function.
16697 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
16698 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16699 * config/mips/predicates.md: Update comments.
16700
16701 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
16702 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
16703 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16704 (mmix_legitimate_constant_p): Make static, return a bool, and take
16705 a mode argument.
16706 (mmix_print_operand_address): Update accordingly.
16707
16708 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
16709 Delete.
16710 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
16711 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
16712 static. Add a mode argument.
1a627b35
RS
16713 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16714
16715 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
16716
16717 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
16718 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16719 (pa_legitimate_constant_p): New function.
16720
16721 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
16722
16723 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
16724 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16725 (pdp11_legitimate_constant_p): New function.
16726
16727 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
16728 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16729 (rs6000_legitimate_constant_p): New function.
16730
16731 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
16732 (rx_legitimate_constant_p): ...this.
16733 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
16734 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
16735 (rx_legitimate_constant_p): ...this.
16736 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16737 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
16738
16739 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
16740 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
16741 * config/s390/s390.c (legitimate_constant_p): Rename to...
16742 (s390_legitimate_constant_p): ...this. Make static, return a bool,
16743 and add a mode argument.
16744 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16745
16746 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
16747
16748 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
16749 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16750 (sh_legitimate_constant_p): New function.
16751
16752 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
16753 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
16754 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16755 (legitimate_constant_p): Rename to...
16756 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
16757 argument.
16758 (constant_address_p): Update accordingly.
16759
16760 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
16761 argument and return a bool.
16762 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
16763 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16764 (spu_legitimate_constant_p): Add a mode argument and return a bool.
16765 (spu_rtx_costs): Update accordingly.
16766 * config/spu/predicates.md (vec_imm_operand): Likewise.
16767
16768 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
16769
16770 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
16771 * config/v850/v850.c (v850_legitimate_constant_p): New function.
16772 (TARGET_LEGITIMATE_CONSTANT_P): Define.
16773
16774 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
16775 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
16776 * config/vax/vax.c (legitimate_constant_p): Likewise.
16777
16778 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
16779 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16780 (xtensa_legitimate_constant_p): New function.
16781
fbbf66e7
RS
167822011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
16783
16784 * target.def (cannot_force_const_mem): Add a mode argument.
16785 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
16786 * doc/tm.texi: Regenerate.
16787 * hooks.h (hook_bool_mode_rtx_false): Declare.
16788 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
16789 (hook_bool_mode_const_rtx_true): Likewise.
16790 (hook_bool_mode_rtx_false): New function.
16791 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
16792 to be non-VOID. Update call to cannot_force_const_mem.
16793 (find_reloads): Update accordingly.
16794 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
16795 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
16796 argument.
16797 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
16798 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
16799 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
16800 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
16801 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
16802 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
16803 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
16804 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16805 (m68k_cannot_force_const_mem): ...this new function.
16806 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
16807 argument.
16808 (mips_const_insns, mips_legitimize_const_move): Update calls.
16809 (mips_secondary_reload_class): Likewise.
16810 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16811 (pa_cannot_force_const_mem): ...this new function.
2894086e 16812 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
16813 (rs6000_cannot_force_const_mem): ...this new function.
16814 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
16815 argument.
16816 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
16817 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
16818 to...
16819 (xtensa_cannot_force_const_mem): ...this new function.
16820
b861891b
NF
168212011-04-20 Nathan Froyd <froydnj@codesourcery.com>
16822
16823 * config/mips/mips.c (mips16_build_function_stub): Call
16824 build_function_type_list instead of build_function_type.
16825 (mips16_build_call_stub): Likewise.
16826
34149ed5
NF
168272011-04-20 Nathan Froyd <froydnj@codesourcery.com>
16828
16829 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
16830 instead of build_function_type.
16831
12526412
NF
168322011-04-20 Nathan Froyd <froydnj@codesourcery.com>
16833
16834 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
16835 instead of build_function_type.
16836
3b84d61f
UB
168372011-04-20 Uros Bizjak <ubizjak@gmail.com>
16838
16839 PR target/48678
16840 * config/i386/i386.md (insv): Change operand 0 constraint to
16841 "register_operand". Change operand 1 and 2 constraint to
16842 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
16843 * config/i386/sse.md (sse4_1_pinsrb): Export.
16844 (sse2_pinsrw): Ditto.
16845 (sse4_1_pinsrd): Ditto.
16846 (sse4_1_pinsrq): Ditto.
16847 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
16848 * config/i386/i386.c (ix86_expand_pinsr): New.
16849
4a25752b
ER
168502011-04-20 Easwaran Raman <eraman@google.com>
16851
16852 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
16853 containing union type only with -fstrict-aliasing.
16854
04695783
JM
168552011-04-20 Jim Meyering <meyering@redhat.com>
16856
16857 Remove useless if-before-free tests.
16858 * calls.c (expand_call, save_area): Likewise.
16859 * cfgcleanup.c (try_forward_edges): Likewise.
16860 * collect2.c (collect_execute): Likewise.
16861 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
16862 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
16863 * coverage.c (coverage_checksum_string): Likewise.
16864 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
16865 * cselib.c (cselib_init): Likewise.
16866 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
16867 (df_set_clean_cfg): Likewise.
16868 * function.c (free_after_compilation): Likewise.
16869 * gcc.c (do_spec_1, main): Likewise.
16870 * gcov.c (create_file_names): Likewise.
16871 * gensupport.c (identify_predicable_attribute): Likewise.
16872 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
16873 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
16874 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
16875 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
16876 * ipa-pure-const.c (local_pure_const): Likewise.
16877 * ipa-reference.c (propagate): Likewise.
16878 * ira-costs.c (free_ira_costs): Likewise.
16879 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
16880 * matrix-reorg.c (mat_free): Likewise.
16881 * prefix.c (get_key_value): Likewise.
16882 * profile.c (compute_value_histograms): Likewise.
16883 * reload1.c (free_reg_equiv): Likewise.
16884 * sched-deps.c (free_deps): Likewise.
16885 * sel-sched-ir.c (fence_clear): Likewise.
16886 * sese.c (set_rename, if_region_set_false_region): Likewise.
16887 * tree-data-ref.c (free_rdg): Likewise.
16888 * tree-eh.c (lower_try_finally): Likewise.
16889 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
16890 * tree-ssa-live.c (delete_var_map): Likewise.
16891 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
16892 * tree-ssa-pre.c (phi_trans_add): Likewise.
16893
6788475a
JJ
168942011-04-20 Jakub Jelinek <jakub@redhat.com>
16895
16896 PR tree-optimization/48611
16897 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
16898 beyond ERT_MUST_NOT_THROW region.
16899
0eda4033
CM
169002011-04-20 Catherine Moore <clm@codesourcery.com>
16901
16902 * config/mips/mips.opt (mfix-24k): New.
16903 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
16904 * config/mips/mips.md (length): Increase by 4 for stores if
16905 fixing 24K errata.
16906 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
16907 all noreorder if fixing 24K errata.
16908 * doc/invoke.texi: Document mfix-24k.
16909
01475747
CLT
169102011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
16911
16912 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 16913 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 16914
bc2c1a60
AS
169152011-04-20 Andrew Stubbs <ams@codesourcery.com>
16916
16917 * config/arm/arm.c (arm_gen_constant): Move movw support ....
16918 (const_ok_for_op): ... to here.
16919
583722ee
KT
169202011-04-20 Kai Tietz <ktietz@redhat.com>
16921
2894086e
UB
16922 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
16923 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 16924
422c0989
AS
169252011-04-20 Andrew Stubbs <ams@codesourcery.com>
16926
16927 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
16928
d7978bff
RG
169292011-04-20 Richard Guenther <rguenther@suse.de>
16930
16931 PR tree-optimization/47892
16932 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
16933 are if-convertible.
16934
818412ba
EB
169352011-04-20 Eric Botcazou <ebotcazou@adacore.com>
16936
16937 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
16938
b501ce4e
TG
169392011-04-20 Tristan Gingold <gingold@adacore.com>
16940
16941 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
16942
516edfdd
GJL
169432011-04-20 Georg-Johann Lay <avr@gjlay.de>
16944
16945 PR target/18145
16946
16947 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
16948 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
16949 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
16950 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
16951 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
16952
16953 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
16954 New prototype.
16955
16956 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
16957 (avr_asm_named_section, avr_asm_output_aligned_common,
16958 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
16959 New functions to update...
16960 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
16961 (avr_asm_init_sections): Overwrite section callbacks for
16962 data_section, bss_section.
16963 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
16964 from here to...
16965 (avr_file_end): ...here.
16966
dafc9511
RG
169672011-04-20 Richard Guenther <rguenther@suse.de>
16968
16969 PR middle-end/48695
16970 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 16971 objects and types here. Adjust for their offset before comparing.
dafc9511 16972
1da0876c
RS
169732011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
16974
16975 * tree-vect-stmts.c (vectorizable_store): Only chain one related
16976 statement per copy.
16977
25583c4f
RS
169782011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
16979
16980 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
16981 (GIMPLE_H): Include $(INTERNAL_FN_H).
16982 (OBJS-common): Add internal-fn.o.
16983 (internal-fn.o): New rule.
16984 * internal-fn.def: New file.
16985 * internal-fn.h: Likewise.
16986 * internal-fn.c: Likewise.
16987 * gimple.h: Include internal-fn.h.
16988 (GF_CALL_INTERNAL): New gf_mask.
16989 (gimple_statement_call): Put fntype into a union with a new
16990 internal_fn field.
16991 (gimple_build_call_internal): Declare.
16992 (gimple_build_call_internal_vec): Likewise.
16993 (gimple_call_same_target_p): Likewise.
16994 (gimple_call_internal_p): New function.
16995 (gimple_call_internal_fn): Likewise.
16996 (gimple_call_fntype): Return null for internal calls.
16997 (gimple_call_set_fntype): Assert that the function is not internal.
16998 (gimple_call_set_fn): Likewise.
16999 (gimple_call_set_fndecl): Likewise.
17000 (gimple_call_set_internal_fn): New function.
17001 (gimple_call_addr_fndecl): Handle null functions.
17002 (gimple_call_return_type): Likewise null types.
17003 * gimple.c (gimple_build_call_internal_1): New function.
17004 (gimple_build_call_internal): Likewise.
17005 (gimple_build_call_internal_vec): Likewise.
17006 (gimple_call_same_target_p): Likewise.
17007 (gimple_call_flags): Handle calls to internal functions.
17008 (gimple_call_fnspec): New function.
17009 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
17010 (gimple_has_side_effects): Handle null functions.
17011 (gimple_rhs_has_side_effects): Likewise.
17012 (gimple_call_copy_skip_args): Handle calls to internal functions.
17013 * cfgexpand.c (expand_call_stmt): Likewise.
17014 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
17015 * gimple-fold.c (gimple_fold_call): Handle null functions.
17016 (gimple_fold_stmt_to_constant_1): Don't fold
17017 calls to internal functions.
17018 * gimple-low.c (gimple_check_call_args): Handle calls to internal
17019 functions.
17020 * gimple-pretty-print.c (dump_gimple_call): Likewise.
17021 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
17022 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
17023 (do_warn_unused_result): Likewise.
17024 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
17025 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
17026 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
17027 the target of a call.
17028 (initialize_hash_element): Update accordingly.
17029 (hashable_expr_equal_p): Use gimple_call_same_target_p.
17030 (iterative_hash_hashable_expr): Handle calls to internal functions.
17031 (print_expr_hash_elt): Likewise.
17032 * tree-ssa-pre.c (can_value_number_call): Likewise.
17033 (eliminate): Handle null functions.
17034 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
17035 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
17036 (find_func_aliases): Likewise.
17037 * value-prof.c (gimple_ic_transform): Likewise.
17038 (gimple_indirect_call_to_profile): Likewise.
17039 * lto-streamer-in.c (input_gimple_stmt): Likewise.
17040 * lto-streamer-out.c (output_gimple_stmt): Likewise.
17041
1a3118e9
JH
170422011-04-19 Jan Hubicka <jh@suse.cz>
17043
17044 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
17045 * ipa-inline.c (inline_small_functions): Compute summaries first,
17046 populate heap later.
1a3118e9 17047
fee8b6da
JH
170482011-04-19 Jan Hubicka <jh@suse.cz>
17049
17050 * cgraph.h (save_inline_function_body): Remove.
17051 * ipa-inline-transform.c: New file, broke out of...
17052 * ipa-inline.c: ... this one; Update toplevel comment.
17053 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
17054 make global.
17055 (update_noncloned_frequencies): Move to ipa-inline-transform.c
17056 (cgraph_mark_inline_edge): Rename to inline_call; move to
17057 ipa-inline-transform.c.
17058 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
17059 move to ipa-inline-transform.c
17060 (recursive_inlining, inline_small_functions, flatten_function,
17061 ipa_inline, inline_always_inline_functions,
17062 early_inline_small_functions): Update.
17063 (inline_transform): Move to ipa-inline-transform.c.
17064 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
17065 Declare.
17066 * Makefile.in (ipa-inline-transform.o): New file.
17067 * cgraphunit.c (save_inline_function_body): Move to
17068 ipa-inline-transform.c
17069
f0679612
DD
170702011-04-19 DJ Delorie <dj@redhat.com>
17071
17072 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
17073 registers if we already know there aren't any.
17074 (m32c_emit_epilogue): Don't emit a barrier here.
17075 (m32c_emit_eh_epilogue): Likewise.
17076 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
17077 operands at expand time.
17078 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
17079 int" wchar type.
17080 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
17081 duplicates. Provide aliases instead.
17082 * config/m32c/prologue.md (eh_return): Emit a barrier here.
17083 (eh_epilogue): Add a "(return)" here as a hint to other parts of
17084 the compiler.
17085
32257ddc
AS
170862011-04-19 Anatoly Sokolov <aesok@post.ru>
17087
17088 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
17089 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
17090 (general_or_i64_p, sparc_register_move_cost): New function.
17091
60bea929
RO
170922011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17093
17094 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 17095 Add lynx, mipssde. Sort table.
60bea929 17096
444b3995 170972011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 17098
9d12f71a
EB
17099 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
17100 not negative.
444b3995 17101
d708ce50
JJ
171022011-04-19 Jakub Jelinek <jakub@redhat.com>
17103
17104 PR target/48678
17105 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
17106 is a SUBREG with non-MODE_INT mode inside of it.
17107
49c471e3
MJ
171082011-04-19 Martin Jambor <mjambor@suse.cz>
17109
17110 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
17111 also according to actual contants.
17112 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
17113 (gimple_fold_call): Use it.
17114 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
17115
0004f992
MJ
171162011-04-19 Martin Jambor <mjambor@suse.cz>
17117
17118 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
17119 non-pointer assignments.
17120
40591473
MJ
171212011-04-19 Martin Jambor <mjambor@suse.cz>
17122
17123 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
17124 account anc_offset and otr_type from the indirect edge info.
17125 * ipa-prop.c (get_ancestor_addr_info): New function.
17126 (compute_complex_ancestor_jump_func): Assignment analysis moved to
17127 get_ancestor_addr_info, call it.
17128 (ipa_note_param_call): Do not initialize information about polymorphic
17129 calls, return the indirect call graph edge. Remove the last
17130 parameter, adjust all callers.
17131 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
17132 parameters. Initialize polymorphic information in the indirect edge.
17133
abe36b81
EB
171342011-04-19 Eric Botcazou <ebotcazou@adacore.com>
17135
17136 PR lto/48148
17137 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
17138 the types if they have different enumeration identifiers.
17139
e6416b30
JH
171402011-04-19 Jan Hubicka <jh@suse.cz>
17141
17142 * cgraph.h (cgraph_optimize_for_size_p): Declare.
17143 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
17144 * predict.c (cgraph_optimize_for_size_p): Break out from ...
17145 (optimize_function_for_size_p) ... here.
17146
d39132ea
RG
171472011-04-19 Richard Guenther <rguenther@suse.de>
17148
17149 PR lto/48207
17150 * tree.c (free_lang_data): Do not reset the decl-assembler-name
17151 langhook.
17152
ff7037dc
EB
171532011-04-19 Eric Botcazou <ebotcazou@adacore.com>
17154
17155 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
17156 if DECL_NO_INLINE_WARNING_P is set on the function.
17157
c1ee2892
BS
171582011-04-19 Bernd Schmidt <bernds@codesourcery.com>
17159
17160 PR fortran/47976
17161 * reload1.c (inc_for_reload): Return void. All callers changed.
17162 (emit_input_reload_insns): Don't try to delete previous output
17163 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
17164
171652011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
17166
17167 * gengtype.h: Updated copyright year.
17168 (struct input_file_st): Add inpisplugin field.
17169 (type_fileloc): New function.
17170 * gengtype.c
17171 (write_typed_struct_alloc_def): Add gcc_assert.
17172 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
17173 (write_typed_alloc_defns): Don't output for plugin files.
17174 (input_file_by_name): Clear inpisplugin field.
17175 (main): Set inpisplugin field for plugin files.
17176
897e0a89
NP
171772011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
17178
17179 * gengtype-state.c (string_eq): New.
17180 (read_state): Use string_eq instead of strcmp when creating the
17181 state_ident_tab.
17182
363ee90e
WG
171832011-04-19 Wei Guozhi <carrot@google.com>
17184
17185 PR target/47855
17186 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
17187 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
17188 linkage.
17189 * config/arm/constraints.md (Uu): New constraint.
17190 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
17191
18a24fed
TG
171922011-04-19 Tristan Gingold <gingold@adacore.com>
17193
17194 * config.gcc (-*-*-*vms): Added.
17195 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
17196 definitions moved.
17197 * config/vms/vms-ld.c: New file.
17198 * config/vms/vms-ar.c: New file.
17199 * config/vms/t-vmsnative: New file.
17200
1c13f168
XDL
172012011-04-18 Xinliang David Li <davidxl@google.com>
17202
17203 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
17204
84825707
JJ
172052011-04-18 Jakub Jelinek <jakub@redhat.com>
17206
17207 PR middle-end/48661
17208 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
17209 if TREE_TYPE (v) is non-NULL.
17210
17211 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
17212 gimple_get_virt_mehtod_for_binfo.
17213 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
17214 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
17215 callers.
17216 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
17217
7d4f8d02 172182011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
17219 Steve Ellcey <sje@cup.hp.com>
17220
7d4f8d02
EB
17221 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
17222 use its mode as source mode if it isn't VOIDmode.
7254cb57 17223
474e8e70
DCR
172242011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
17225
17226 * doc/passes.texi: Fill crossref nodes.
17227
cff41484
JM
172282011-04-18 Jim Meyering <meyering@redhat.com>
17229
7d4f8d02 17230 Fix doubled-word typos in comments and strings
cff41484
JM
17231 * config/alpha/vms-unwind.h: s/for for/for/
17232 * config/arm/unwind-arm.h: Likewise.
17233 * config/microblaze/microblaze.c: Likewise.
17234 * config/sh/constraints.md: s/in in/in/
17235 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
17236
f60c2554
UB
172372011-04-18 Uros Bizjak <ubizjak@gmail.com>
17238
17239 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
17240 (AVX_FLOAT_MODE_P): Ditto.
17241 (AVX128_VEC_FLOAT_MODE_P): Ditto.
17242 (AVX256_VEC_FLOAT_MODE_P): Ditto.
17243 (AVX_VEC_FLOAT_MODE_P): Ditto.
17244 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
17245 (UNSPEC_MASKSTORE): Ditto.
17246 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
17247 Merge from <sse>_movmsk<ssemodesuffix> and
17248 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
17249 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
17250 iterator.
17251 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
17252 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
17253 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
17254
09a2806f
JH
172552011-04-18 Jan Hubicka <jh@suse.cz>
17256
8a8dccb2
JH
17257 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
17258
09a2806f
JH
17259 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
17260 (want_inline_function_called_once_p): Break out the logic from
17261 ipa_inline.
17262 (edge_badness): Ensure that profile is not misupdated.
17263 (lookup_recursive_calls): Prioritize by call frequencies.
17264 (inline_small_functions): Move program size estimates here;
17265 actually process whole queue even when unit growth has been
17266 met. (to properly compute inline_failed reasons and for the
f60c2554 17267 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
17268 (ipa_inline): Remove unit summary code; first inline hot calls
17269 of functions called once, cold calls next.
17270 (order, nnodes): Remove unused variables.
17271 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
17272 (GTFILES): Remove ipa-inline.c
17273 * sel-sched.c (fill_insns): Silence uninitialized var warning.
17274
3eea52ef
EB
172752011-04-18 Eric Botcazou <ebotcazou@adacore.com>
17276
17277 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
17278
229a1c59 172792011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 17280 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
17281
17282 * arm.c (neon_builtin_type_bits): Remove.
17283 (typedef enum neon_builtin_mode): New.
17284 (T_MAX): Don't define.
17285 (typedef enum neon_builtin_datum): Remove bits, codes[],
17286 num_vars and base_fcode. Add mode, code and fcode.
17287 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
17288 VAR10): Change accordingly.
17289 (neon_builtin_data[]): Change accordingly
17290 (arm_init_neon_builtins): Change accordingly.
17291 (neon_builtin_compare): Remove.
17292 (locate_neon_builtin_icode): Remove.
17293 (arm_expand_neon_builtin): Change accordingly.
17294
17295 * arm.h (enum arm_builtins): Move to ...
17296 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
17297
17298 * arm.c (arm_builtin_decl): Declare.
17299 (TARGET_BUILTIN_DECL): Define.
17300 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
17301 (arm_builtin_decls[]): New.
17302 (arm_init_neon_builtins): Store builtin declarations in
17303 arm_builtin_decls[].
17304 (arm_init_tls_builtins): Likewise.
17305 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
17306 (arm_builtin_decl): New.
17307
75e802cc
RG
173082011-04-18 Richard Guenther <rguenther@suse.de>
17309
17310 * tree.c (upper_bound_in_type): Build properly canonicalized
17311 INTEGER_CSTs.
17312 (lower_bound_in_type): Likewise.
17313
3b45a007
RG
173142011-04-18 Richard Guenther <rguenther@suse.de>
17315
17316 * gimple.h (gimple_call_addr_fndecl): New function.
17317 (gimple_call_fndecl): Use it.
17318 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
17319 for direct calls.
17320 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
17321 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
17322
d25a79ea
RG
173232011-04-18 Richard Guenther <rguenther@suse.de>
17324
17325 PR middle-end/48650
17326 * tree.c (build_string): STRING_CST is now derived from tree_typed.
17327
7d5fc814
EB
173282011-04-18 Eric Botcazou <ebotcazou@adacore.com>
17329
17330 PR lto/48492
17331 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
17332 DECL_IN_CONSTANT_POOL without RTL.
17333
7e7cfcf6
UW
173342011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
17335 Ira Rosen <ira.rosen@linaro.org>
17336
17337 PR target/48252
17338 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
17339 to match neon_vzip/vuzp/vtrn_internal.
17340 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
17341 outputs explicitly dependent on both inputs.
17342 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
17343
49eab32e
JJ
173442011-04-18 Jakub Jelinek <jakub@redhat.com>
17345
17346 PR tree-optimization/48616
17347 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
17348 whether the shift is by scalar or vector based on whether all SLP
17349 scalar stmts have the same rhs.
17350
e54170f4
CLT
173512011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
17352
17353 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
17354 memory operands.
17355
b14ee6c9
RS
173562011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
17357
269e0e18 17358 PR target/43700
b14ee6c9
RS
17359 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
17360 registers.
17361
10158cd3
JH
173622011-04-17 Jan Hubicka <jh@suse.cz>
17363
17364 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
17365 * cgrpahunit.c (cgraph_finalize_function): Do not set
17366 finalized_by_frontend.
10158cd3
JH
17367 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17368 finalized_by_frontend.
17369
2e9bb6ba
JH
173702011-04-17 Jan Hubicka <jh@suse.cz>
17371
17372 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
17373 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
17374 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
17375 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
17376 method.
2e9bb6ba
JH
17377 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
17378 gimple-fold.c
17379 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
17380
beb628e1
EB
173812011-04-17 Eric Botcazou <ebotcazou@adacore.com>
17382
17383 PR lto/48538
17384 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
17385 is non-null before accessing it.
17386 (input_cgraph): Remove trailing spaces.
17387
3e2fdd24
RE
173882011-04-17 Revital Eres <revital.eres@linaro.org>
17389
17390 * params.def (sms-min-sc): New param flag.
17391 * modulo-sched.c (sms_schedule): Use it.
17392 * doc/invoke.texi (sms-min-sc): Document it.
17393
4c0f7679
JH
173942011-04-17 Jan Hubicka <jh@suse.cz>
17395
17396 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
17397 present, also set gimple_call_set_cannot_inline.
17398 * ipa-inline.c: Update toplevel comment.
17399 (MAX_TIME): Remove.
17400 (cgraph_clone_inlined_nodes): Fix linebreaks.
17401 (cgraph_check_inline_limits): Restructure to ...
17402 (caller_growth_limits): ... this one; be more tolerant
17403 on growth in nested inline chains; add explanatory comment;
17404 fix stack accounting thinko introduced by previous patch.
17405 (cgraph_default_inline_p): Remove.
17406 (report_inline_failed_reason): New function.
17407 (can_inline_edge_p): New function.
17408 (can_early_inline_edge_p): New function.
17409 (leaf_node_p): Move upwards in file.
17410 (want_early_inline_function_p): New function.
17411 (want_inline_small_function_p): New function.
17412 (want_inline_self_recursive_call_p): New function.
17413 (cgraph_edge_badness): Rename to ...
17414 (edge_badness) ... this one; fix linebreaks.
17415 (update_edge_key): Update call of edge_baddness; add
17416 detailed dump about queue updates.
17417 (update_caller_keys): Use can_inline_edge_p and
17418 want_inline_small_function_p.
17419 (cgraph_decide_recursive_inlining): Rename to...
17420 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
17421 want_inline_self_recursive_call_p; simplify and remove no longer
17422 valid FIXME.
4c0f7679
JH
17423 (cgraph_set_inline_failed): Remove.
17424 (add_new_edges_to_heap): Use can_inline_edge_p and
17425 want_inline_small_function_p.
17426 (cgraph_decide_inlining_of_small_functions): Rename to ...
17427 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
17428 can/want predicates; cleanup debug ouput; work edges till fibheap
17429 is exhausted and do not stop once unit growth is reached; remove
17430 later loop processing remaining edges.
4c0f7679
JH
17431 (cgraph_flatten): Rename to ...
17432 (flatten_function): ... this one; use can_inline_edge_p
17433 and can_early_inline_edge_p predicates.
17434 (cgraph_decide_inlining): Rename to ...
17435 (ipa_inline): ... this one; remove unreachable nodes before
17436 inlining functions called once; simplify the pass.
17437 (cgraph_perform_always_inlining): Rename to ...
17438 (inline_always_inline_functions): ... this one; use
f60c2554 17439 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
17440 (cgraph_decide_inlining_incrementally): Rename to ...
17441 (early_inline_small_functions): ... this one; simplify
17442 using new predicates; cleanup; make dumps prettier.
17443 (cgraph_early_inlining): Rename to ...
17444 (early_inliner): newer inline regular functions into always-inlines;
17445 fix updating of call stmt summaries.
17446 (pass_early_inline): Update for new names.
17447 (inline_transform): Fix formating.
17448 (gate_cgraph_decide_inlining): Rename to ...
17449 (pass_ipa_inline): ... this one.
17450 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
17451 * ipa-inline-analysis.c (dump_inline_summary): Update.
17452 (compute_inline_parameters): Do not compute disregard_inline_limits;
17453 look for mismatching arguments.
17454 (estimate_growth): Fix handlig of non-trivial self recursion.
17455 (inline_read_summary): Do not read info->disregard_inline_limits.
17456 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
17457 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
17458 and move all checks into can_inline_edge_p predicate; re-enable code
17459 comparing optimization levels.
4c0f7679
JH
17460 (expand_call_inline): Do not test inline_forbidden_into_p.
17461 * Makefile.in (ipa-inline.o): Update arguments.
17462
54333b7c
RE
174632011-04-17 Revital Eres <revital.eres@linaro.org>
17464
17465 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
17466
42c2bf92
RE
174672011-04-17 Revital Eres <revital.eres@linaro.org>
17468
17469 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
17470
b183e9e0
MM
174712011-04-17 Michael Matz <matz@suse.de>
17472
17473 PR tree-optimization/48622
17474 PR lto/48645
17475 * ipa-inline-analysis.c (inline_read_summary): Read size/time
17476 in same order as they're written.
17477
b8a17fa2
JDA
174782011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17479
17480 * config/pa/predicates.md: Reorganize and simplify predicates.
17481 Eliminate duplicate code checks.
17482 (arith_operand): Rename to arith14_operand
17483 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
17484 * config/pa/pa.md: Use renamed operands.
17485 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
17486 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
17487 arith11_operand, adddi3_operand, indexed_memory_operand,
17488 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
17489 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
17490 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
17491 move_dest_operand, move_src_operand, prefetch_cc_operand,
17492 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
17493 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
17494 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
17495 div_operand, int5_operand, movb_comparison_operator,
17496 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
17497 arith_double_operand, ireg_operand, lhs_lshift_operand,
17498 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
17499 integer_store_memory_operand): Likewise.
17500 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
17501 (integer_store_memory_operand, read_only_operand,
17502 function_label_operand, borx_reg_operand,
17503 non_hard_reg_operand): Likewise.
17504 (eq_neq_comparison_operator): Delete unused operator.
17505 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
17506 function_label_operand.
17507 (emit_move_sequence): Likewise.
17508
8dfb9f16
UB
175092011-04-16 Uros Bizjak <ubizjak@gmail.com>
17510
17511 * config/i386/sse.md (sseunpackmode): New mode attribute.
17512 (ssepackmode): Ditto.
17513 (vec_pack_trunc_<mode>): Macroize expander from
17514 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
17515 (vec_unpacks_lo_<mode>): Macroize expander from
17516 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17517 (vec_unpacks_hi_<mode>): Macroize expander from
17518 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17519 (vec_unpacku_lo_<mode>): Macroize expander from
17520 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17521 (vec_unpacku_hi_<mode>): Macroize expander from
17522 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17523 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
17524 ix86_expand_sse4_unpack.
17525 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
17526
e7f23018
JH
175272011-04-16 Jan Hubicka <jh@suse.cz>
17528
17529 * cgraphbuild.c: Include ipa-inline.h.
17530 (reset_inline_failed): Use initialize_inline_failed.
17531 * cgraph.c: Include ipa-inline.h.
17532 (cgraph_create_node_1): Do not initialize estimated_growth.
17533 (initialize_inline_failed): More to ipa-inline-analysis.c
17534 (dump_cgraph_node): Do not dump inline flags.
17535 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
17536 and disregard_inline_limits flags.
17537 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
17538 time, size, estimated_growth.
8dfb9f16
UB
17539 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
17540 Update.
e7f23018
JH
17541 * cgraphunit.c (cgraph_decide_is_function_needed): Use
17542 DECL_DISREGARD_INLINE_LIMITS.
17543 (cgraph_analyze_function): Do not initialize
17544 node->local.disregard_inline_limits.
17545 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17546 inlinable, versionable and disregard_inline_limits.
17547 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
17548 cgraph_check_inline_limits, cgraph_default_inline_p,
17549 cgraph_edge_badness, update_caller_keys, update_callee_keys,
17550 add_new_edges_to_heap): Update.
17551 (cgraph_decide_inlining_of_small_function): Update; set
17552 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
17553 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
17554 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
17555 * ipa-inline.h (inline_summary): Add inlinable, versionable,
17556 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
17557 time, size and estimated_growth parameters.
e7f23018
JH
17558 (estimate_edge_growth): Update.
17559 (initialize_inline_failed): Declare.
17560 * ipa-split.c: Include ipa-inline.h
17561 (execute_split_functions): Update.
17562 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
17563 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
17564 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
17565 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
17566 estimated_growth to INT_MIN.
17567 (inline_node_duplication_hook): Likewise.
17568 (dump_inline_summary): Dump new fields.
17569 (compute_inline_parameters): Update.
17570 (estimate_edge_time, estimate_time_after_inlining,
17571 estimate_size_after_inlining, estimate_growth, inline_read_summary,
17572 inline_write_summary):
17573 (initialize_inline_failed): Move here from cgraph.c.
17574 * tree-sra.c: Include ipa-inline.h.
17575 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
17576 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
17577 ipa-inline.h.
e7f23018 17578
e81b8564
UB
175792011-04-16 Uros Bizjak <ubizjak@gmail.com>
17580
17581 * config/i386/sse.md (V16): New mode iterator.
17582 (VI1, VI8): Ditto.
17583 (AVXMODEQI, AVXMODEDI): Remove.
17584 (sse2, sse3): New mode attribute.
17585 (mov<mode>): Use V16 mode iterator.
17586 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
17587 (push<mode>1): Use V16 mode iterator.
17588 (movmisalign<mode>): Ditto.
17589 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17590 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
17591 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17592 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
17593 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
17594 avx_movdqu<avxmodesuffix>.
17595 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
17596 *avx_movdqu<avxmodesuffix>.
17597 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
17598 avx_lddqu<avxmodesuffix>.
17599 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
17600 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
17601 avx_movnt<AVXMODEDI:mode>.
17602 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
17603 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
17604
4743d438
BS
176052011-04-16 Bernd Schmidt <bernds@codesourcery.com>
17606
17607 PR target/48629
17608 * haifa-sched.c (prune_ready_list, schedule_block): Use
17609 sched_pressure_p rather than flag_sched_pressure.
17610
748f7574 176112011-04-15 Pat Haugen <pthaugen@us.ibm.com>
eb229cf4
PH
17612
17613 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17614 cgraph_get_node instead of cgraph_get_create_node.
17615
2ba172e0
JJ
176162011-04-15 Jakub Jelinek <jakub@redhat.com>
17617
17618 * cfgexpand.c (expand_debug_expr): Use
17619 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
17620
63d2a353
MM
176212011-04-15 Michael Matz <matz@suse.de>
17622
17623 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
17624 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
17625 * function.c (gimplify_parameters): Ditto.
17626 * gimplify.c (gimplify_vla_decl): Ditto.
17627
17628 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
17629 (gimple_call_set_alloca_for_var): New inline function.
17630 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
17631 * gimple.c (gimple_build_call_from_tree): Remember
17632 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
17633 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
17634
17635 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
17636 calls if they were for VLA objects.
17637
dee74c34
MJ
176382011-04-15 Martin Jambor <mjambor@suse.cz>
17639
17640 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
17641 of ADR_EXPRs.
17642
8e5837bc
MJ
176432011-04-15 Martin Jambor <mjambor@suse.cz>
17644
17645 PR middle-end/48601
17646 * tree-emutls.c (lower_emutls_function_body): Call
17647 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
17648 result is non-NULL.
17649
0dc33c3c
NP
176502011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
17651
17652 * c-decl.c (detect_field_duplicates): Call
17653 objc_detect_field_duplicates instead of objc_get_interface_ivars.
17654
edcdea5b
NF
176552011-04-15 Nathan Froyd <froydnj@codesourcery.com>
17656
17657 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
17658 * gimple.c (gimple_asm_clobbers_memory_p): Define.
17659 * ipa-pure-const.c (check_stmt): Call it.
17660 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
17661
8456558d
RG
176622011-04-15 Richard Guenther <rguenther@suse.de>
17663
17664 PR tree-optimization/48290
17665 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
17666 Properly decide inhibiting propagation based on the valueized
17667 operand. Do loop-closed SSA form preserving here ...
17668 (init_copy_prop): ... not here.
17669
266446be
L
176702011-04-15 H.J. Lu <hongjiu.lu@intel.com>
17671
17672 PR target/48612
17673 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
17674 (*ieee_smax<mode>3): Likewise.
17675
17465c6e
AK
176762011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17677
17678 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
17679 Replace match_operand with match_dup for the third operand in
17680 these expanders.
17681
bce204e5
MK
176822011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
17683
17684 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
17685 to track processing of conditionals. Update all callers.
17686 (try_combine, simplify_if_then_else): Update.
17687
3162fdf4
MK
176882011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
17689
17690 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
17691 -fsched-pressure.
17692
79002a57 176932011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 17694
79002a57
GJL
17695 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
17696 instead of match_operand for operand 3.
17697
4fd3a105
RS
176982011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
17699
17700 * recog.h (insn_operand_data): Add an "allows_mem" field.
17701 * genoutput.c (output_operand_data): Initialize it.
17702 * optabs.c (maybe_legitimize_operand_same_code): New function.
17703 (maybe_legitimize_operand): Use it when matching the original
17704 op->value.
17705
ad19c4be
EB
177062011-04-15 Eric Botcazou <ebotcazou@adacore.com>
17707
17708 * gimplify.c: Fix issues in comments throughout.
17709 (voidify_wrapper_expr): Fix long line.
17710 (build_stack_save_restore): Likewise.
17711 (gimplify_loop_expr): Likewise.
17712 (gimplify_compound_lval): Likewise.
17713 (gimplify_init_ctor_eval): Likewise.
17714 (gimplify_modify_expr_rhs): Likewise.
17715 (omp_notice_threadprivate_variable): Likewise.
17716
b25aa0e8 177172011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 17718
b25aa0e8
EB
17719 * cfgexpand.c (expand_call_stmt): Convert the function type to the
17720 original one if this is not a builtin function.
e7925582 17721
09db7afe
JJ
177222011-04-14 Jakub Jelinek <jakub@redhat.com>
17723
17724 PR target/48605
17725 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
17726 offset it as needed based on top 2 bits in operands[3], change
17727 MEM mode to SFmode and mask those 2 bits away from operands[3].
17728
c59633d9
NP
177292011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
17730
17731 * c-parser.c (c_parser_objc_protocol_definition): Updated for
17732 change from objc_declare_protocols() to objc_declare_protocol().
17733
5e60198b
UB
177342011-04-14 Uros Bizjak <ubizjak@gmail.com>
17735
17736 * config/i386/sse.md (sse4_1): New mode attribute.
17737 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
17738 avx_blend<ssemodesuffix><avxmodesuffix> and
17739 sse4_1_blend<ssemodesuffix> using VF mode iterator.
17740 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
17741 avx_blendv<ssemodesuffix><avxmodesuffix> and
17742 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
17743 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
17744 avx_dp<ssemodesuffix><avxmodesuffix> and
17745 sse4_1_dp<ssemodesuffix> using VF mode iterator.
17746 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
17747 (sse4_1_packusdw): Merge with *avx_packusdw.
17748 (sse4_1_pblendvb): Merge with *avx_pblendvb.
17749 (sse4_1_pblendw): Merge with *avx_pblendw.
17750 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
17751 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
17752 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
17753 VF mode iterator.
17754 (sse4_1_round<ssescalarmodesuffix>): Merge with
17755 *avx_round<ssescalarmodesuffix>.
17756 (aesenc): Merge with *avx_aesenc.
17757 (aesenclast): Merge with *avx_aesenclast.
17758 (aesdec): Merge with *avx_aesdec.
17759 (aesdeclast): Merge with *avx_aesdeclast.
17760 (pclmulqdq): Merge with *pclmulqdq.
17761 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
17762 New predicate.
17763 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
17764
6f197850
L
177652011-04-14 H.J. Lu <hongjiu.lu@intel.com>
17766
17767 PR middle-end/48608
17768 * cfgexpand.c (get_decl_align_unit): Renamed to ...
17769 (align_local_variable): This. Update DECL_ALIGN.
17770 (add_stack_var): Updated.
17771 (expand_one_stack_var): Likewise.
17772
4a5ba3ed
RG
177732011-04-14 Richard Guenther <rguenther@suse.de>
17774
17775 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
17776 Remove.
17777 (dse_initialize_block_local_data, dse_leave_block,
17778 record_voperand_set, get_stmt_uid): Likewise.
17779 (dse_possible_dead_store_p): Allow any kind of killing stmt.
17780 (dse_optimize_stmt): Remove voperand set handling code.
17781 Simplify and improve to handle any kind of killing stmt.
17782 (dse_record_phi): Remove.
17783 (dse_enter_block): Simplify.
17784 (tree_ssa_dse): Likewise.
17785 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
17786
10a5dd5d
JH
177872011-04-14 Jan Hubicka <jh@suse.cz>
17788
17789 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
17790 * cgraph.h (struct inline_summary): Move to ipa-inline.h
17791 (cgraph_local_info): Remove inline_summary.
17792 * ipa-cp.c: Include ipa-inline.h.
17793 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
17794 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
17795 accesor.
17796 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
17797 (input_overwrite_node): Do not set inline summary.
17798 (input_node): Do not stream inline summary.
17799 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
17800 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
17801 growth; we do not have inline parameters computed for that anyway.
17802 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
17803 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
17804 (inline_summary_t): New type and VECtor.
17805 (debug_inline_summary, dump_inline_summaries): Declare.
17806 (inline_summary): Use VOCtor.
17807 (estimate_edge_growth): Kill hack computing call stmt size directly.
17808 * lto-section-in.c (lto_section_name): Add inline section.
17809 * ipa-inline-analysis.c: Include lto-streamer.h
17810 (node_removal_hook_holder, node_duplication_hook_holder): New holders
17811 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
17812 (inline_summary_vec): Define.
17813 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
17814 dump_inline_summaries): New functions.
5e60198b
UB
17815 (estimate_function_body_sizes): Properly compute size/time of outgoing
17816 calls.
17817 (compute_inline_parameters): Alloc inline_summary; do not compute
17818 size/time of incomming calls.
10a5dd5d
JH
17819 (estimate_edge_time): Avoid missing time summary hack.
17820 (inline_read_summary): Read inline summary info.
17821 (inline_write_summary): Write inline summary info.
17822 (inline_free_summary): Free all hooks and inline summary vector.
17823 * lto-streamer.h: Add LTO_section_inline_summary section.
17824 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
17825 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
17826
b602d918
RS
178272011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
17828
17829 * tree-vectorizer.h (vect_strided_store_supported): Add a
17830 HOST_WIDE_INT argument.
17831 (vect_strided_load_supported): Likewise.
17832 (vect_permute_store_chain): Return void.
17833 (vect_transform_strided_load): Likewise.
17834 (vect_permute_load_chain): Delete.
17835 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
17836 count argument. Check that the count is a power of two.
17837 (vect_strided_load_supported): Likewise.
17838 (vect_permute_store_chain): Return void. Update after above changes.
17839 Assert that the access is supported.
17840 (vect_permute_load_chain): Likewise.
17841 (vect_transform_strided_load): Return void.
17842 * tree-vect-stmts.c (vectorizable_store): Update calls after
17843 above interface changes.
17844 (vectorizable_load): Likewise.
17845 (vect_analyze_stmt): Don't check for strided powers of two here.
17846
ab4472fa
RG
178472011-04-14 Richard Guenther <rguenther@suse.de>
17848
17849 PR tree-optimization/48590
17850 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
17851 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17852 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
17853 BUILT_IN_STACK_SAVE.
17854 * tree-ssa-dce.c (propagate_necessity): Handle
17855 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17856
32dabdaf
NP
178572011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
17858
17859 * c-parser.c (c_parser_objc_class_declaration): Updated call to
17860 objc_declare_class.
17861
daade206
RG
178622011-04-14 Richard Guenther <rguenther@suse.de>
17863
17864 * tree.h (get_object_alignment_1): Declare.
17865 * builtins.c (get_object_alignment_1): Split out worker from ...
17866 (get_object_alignment): ... here.
17867 * fold-const.c (get_pointer_modulus_and_residue): Use
17868 get_object_alignment_1.
17869
920e8172
RS
178702011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
17871
17872 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
17873 type parameter.
17874 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
17875 parameter. Generalise code to handle arrays as well as vectors.
17876 (vect_setup_realignment): Update accordingly.
17877 * tree-vect-stmts.c (vectorizable_store): Likewise.
17878 (vectorizable_load): Likewise.
17879
5ce1ee7f
RS
178802011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
17881
17882 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
17883 within the per-copy loop.
17884
6438fe33 178852011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
17886
17887 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
17888 in the dump file.
17889
6438fe33 178902011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
17891
17892 * doc/options.texi (Negative): Explicitly mention that the
17893 Negative chain must be circular.
17894
61e46a7d
NF
178952011-04-14 Nathan Froyd <froydnj@codesourcery.com>
17896
17897 * function.h (block_chainon): Declare.
17898 * function.c (block_chainon): Define.
17899
43ea6502 179002011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b 17901 Eric Weddington <eric.weddington@atmel.com>
748f7574 17902 Georg-Johann Lay <avr@gjlay.de>
5e60198b 17903
f60c2554 17904 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
17905 New Includes
17906 (avr_init_builtins, avr_expand_builtin,
17907 avr_expand_delay_cycles, avr_expand_unop_builtin,
17908 avr_expand_binop_builtin ): New functions.
17909 (avr_builtin_id): New enum
17910 (struct avr_builtin_description): New struct
17911 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
17912 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 17913
43ea6502 17914 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 17915 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
17916 UNSPECV_DELAY_CYCLES): new enumeration values
17917 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
17918 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
17919 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
17920 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
17921 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
17922 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
17923 "fmulsu"): New insns
5e60198b 17924
43ea6502
AS
17925 * config/avr/avr-c.c: fix line endings
17926 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
17927 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
17928 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
17929 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
17930 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 17931
43ea6502
AS
17932 * doc/extend.texi (AVR Built-in Functions): New node
17933 (Target Builtins): Add documentation of AVR
17934 built-in functions.
17935
8a9b55f3
GJL
179362011-04-14 Georg-Johann Lay <avr@gjlay.de>
17937
17938 PR target/44643
17939 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
17940 alone. Error if non-const data has attribute progmem.
17941
94bd1825
NF
179422011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17943
17944 * tree.h (struct tree_constructor): Include tree_typed instead of
17945 tree_common.
17946 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
17947 TS_TYPED instead of TS_COMMON.
17948
5e60198b 179492011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
17950
17951 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
17952 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
17953 (sse2_psadbw): Merge with *avx_psadbw.
17954 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
17955 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
17956 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
17957 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
17958 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
17959 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
17960 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
17961 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
17962 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
17963 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
17964 (ssse3_palignrti): Merge with *avx_palignrti.
17965
4b1a4694
NF
179662011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17967
17968 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
17969 * tree-ssanames.c (fini_ssanames): VEC_free it.
17970 (make_ssa_name_fn): Update for VECness of free_ssanames.
17971 (release_ssa_name, release_dead_ssa_names): Likewise.
17972 * tree.h (struct tree_ssa_name): Include tree_typed instead of
17973 tree_common.
17974 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
17975 TS_TYPED instead of TS_COMMON.
17976
4da3b811
NF
179772011-04-13 Nathan Froyd <froydnj@codesourcery.com>
17978
17979 * postreload-gcse.c (gcse_after_reload_main): Add calls to
17980 statistics_counter_event.
17981 * tree-ssa-copyrename.c (stats): Define.
17982 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
17983 statistics_counter_event.
17984 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
17985 (bswap_stats, widen_mul_stats): Define.
17986 (insert_reciprocals): Increment rdivs_inserted.
17987 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
17988 rfuncs_inserted. Add calls to statistics_counter_event.
17989 (execute_cse_sincos_1): Increment inserted.
17990 (execute_cse_sincos): Zeroize sincos_stats. Add call to
17991 statistics_counter_event.
17992 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
17993 of bswap_stats. Add calls to statistics_counter_event.
17994 (convert_mult_to_widen): Increment widen_mults_inserted.
17995 (convert_plusminus_to_widen): Increment maccs_inserted.
17996 (convert_mult_to_fma): Increment fmas_inserted.
17997 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
17998 calls to statistics_counter_event.
17999
89fa552a
VM
180002011-04-13 Vladimir Makarov <vmakarov@redhat.com>
18001
18002 PR rtl-optimization/48455
18003 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
18004 `temp_costs->mem_cost'.
18005
03dfc36d
JH
180062011-04-13 Jan Hubicka <jh@suse.cz>
18007
18008 * ipa-inline.h: New file.
18009 * ipa-inline-analysis.c: New file. Broken out of ...
18010 * ipa-inline.c: ... this file; update toplevel comment;
18011 include ipa-inline.h
18012 (inline_summary): Move to ipa-inline.h
18013 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
18014 ipa-inline-analysis.c.
7d4f8d02
EB
18015 (cgraph_estimate_time_after_inlining): Rename to
18016 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
18017 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
18018 to estimate_edge_growth.
18019 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
18020 rename to estimate_size_after_inlining.
18021 (cgraph_mark_inline_edge): Update for new naming convention.
18022 (cgraph_check_inline_limits): Likewise.
18023 (cgraph_edge_badness): Likewise.
18024 (cgraph_decide_recursive_inlining): Likewise.
18025 (cgraph_decide_inlining_of_small_functions): Likewise.
18026 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
18027 (cgraph_estimate_growth): Rename to estimate_growth; move to
18028 ipa-inline-analysis.c.
03dfc36d
JH
18029 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
18030 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
18031 (compute_inline_parameters): Likewise.
18032 (compute_inline_parameters_for_current): Likewise.
18033 (pass_inline_parameters): Likewise.
18034 (inline_indirect_intraprocedural_analysis): Likewise.
18035 (analyze_function): Rename to inline_analyze_function; likewise.
18036 (add_new_function): Move to ipa-inline-analysis.c.
18037 (inline_generate_summary): Likewise.
18038 (inline_read_summary): Likewise.
18039 (inline_write_summary): Likewise.
18040 * Makefile.in (ipa-inline-analysis.c): New file.
18041
7673c962
RO
180422011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18043
18044 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
18045 * configure: Regenerate.
18046
9698252f
NF
180472011-04-13 Nathan Froyd <froydnj@codesourcery.com>
18048
18049 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
18050 instead of tree_common.
18051 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
18052 Likewise.
18053 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
18054 TS_TYPED rather than TS_COMMON.
18055 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
18056
3a7bfdd5
GJL
180572011-04-01 Georg-Johann Lay <avr@gjlay.de>
18058
18059 PR target/45263
86d83530
GJL
18060 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
18061 r20 around calls of __tablejump_elpm__
3a7bfdd5 18062
20790697
JJ
180632011-04-13 Jakub Jelinek <jakub@redhat.com>
18064
18065 PR middle-end/48591
18066 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
18067 NULL.
18068 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
18069
094d7661
BS
180702011-04-13 Bernd Schmidt <bernds@codesourcery.com>
18071
18072 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
18073 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
18074 (cfi_vec): New typedef.
18075 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
18076 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
18077 (cie_cfi_vec): New static variable.
18078 (cie_cfi_head): Delete.
18079 (add_cfi): Accept a cfi_vec * as first argument. All callers and
18080 declaration changed. Use vector rather than list operations.
18081 (new_cfi): Don't initialize the dw_cfi_next field.
18082 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
18083 rather than list operations.
18084 (lookup_cfa): Use vector rather than list operations.
18085 (output_cfis): New argument upto. Accept a cfi_vec rather than
18086 a dw_cfi_ref list head as argument. All callers changed.
18087 Iterate over the vector using upto as a maximum index.
18088 (output_all_cfis): New static function.
18089 (output_fde): Use vector rather than list operations. Use the
18090 new upto argument for output_cfis rather than manipulating a
18091 list.
18092 (dwarf2out_begin_prologue): Change initializations to match
18093 new struct members.
18094 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
18095 from the vector length rather than searching for the end of a list.
18096 Use output_all_cfis.
18097 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
18098
673a5740
NC
180992011-04-13 Nick Clifton <nickc@redhat.com>
18100
18101 * config/rx/rx.md (movmemsi): Do not use this pattern when
18102 volatile pointers are involved.
18103
1ee8b298
UB
181042011-04-13 Uros Bizjak <ubizjak@gmail.com>
18105
18106 * config/i386/sse.md (pinsrbits): Remove.
18107 (sse2_packsswb): Merge with *avx_packsswb.
18108 (sse2_packssdw): Merge with *avx_packssdw.
18109 (sse2_packuswb): Merge with *avx_packuswb.
18110 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
18111 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
18112 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
18113 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
18114 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
18115 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
18116 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
18117 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
18118 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
18119 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
18120 (sse2_loadld): Merge with *avx_loadld.
18121 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
18122 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
18123 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
18124 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
18125 (vec_concatv2di): Merge with *vec_concatv2di_avx.
18126
81f653d6
NF
181272011-04-12 Nathan Froyd <froydnj@codesourcery.com>
18128
18129 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
18130 calling TREE_CHAIN.
18131 * print-tree.c (print_node): Likewise.
18132 * tree-inline.c (copy_tree_r): Likewise.
18133 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
18134 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
18135 instead of TS_COMMON.
18136 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
18137 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
18138 (copy_node_stat): Zero TREE_CHAIN only if necessary.
18139 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
18140 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
18141 ...and these...
18142 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
18143 * tree.h: ...here.
18144 (TREE_CHAIN): Check for a TS_COMMON structure.
18145 (TREE_TYPE): Check for a TS_TYPED structure.
18146
748f7574 181472011-04-12 Pat Haugen <pthaugen@us.ibm.com>
ed940a4a
PH
18148
18149 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
18150 cgraph_get_create_node instead of cgraph_node.
18151
eb345401
NP
181522011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
18153
18154 * c-parser.c (c_parser_initelt): Updated call to
18155 objc_build_message_expr.
18156 (c_parser_postfix_expression): Likewise.
18157
a6c46762
KT
181582011-04-12 Kai Tietz <ktietz@redhat.com>
18159
18160 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
18161 MASK_MS_BITFIELD_LAYOUT bit.
18162
b4ccfed9
JJ
181632011-04-12 Jakub Jelinek <jakub@redhat.com>
18164
18165 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
18166 assert it is always true.
18167 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
18168 moves.
18169
0d8a2528
NP
181702011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
18171
18172 * c-parser.c (c_lex_one_token): Rewritten conditional used when
18173 compiling Objective-C to be more efficient.
18174
06bd234a
AF
181752011-04-12 Axel Freyn <axel-freyn@gmx.de>
18176
18177 * opts-common.c (decode_cmdline_options_to_array): Remove variable
18178 argv_copied.
18179
28569ac3
RS
181802011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
18181
18182 * recog.h, genoutput.c, optabs.c: Revert last patch.
18183
ae59e00d
RR
181842011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18185
81b1e7eb
UB
18186 PR target/48090
18187 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 18188
cff1b7e0
RS
181892011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
18190
18191 * recog.h (insn_operand_data): Add an "allows_mem" field.
18192 * genoutput.c (output_operand_data): Initialize it.
18193 * optabs.c (maybe_legitimize_operand_same_code): New function.
18194 (maybe_legitimize_operand): Use it when matching the original
18195 op->value.
18196
77059241
RS
181972011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
18198
18199 * genpreds.c (process_define_predicate): Move most processing
18200 to gensupport.c. Continue to validate the expression.
18201 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
18202 (process_define_predicate): Move processing to gensupport.c.
18203 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
18204 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
18205 (compute_predicate_codes): Moved from genrecog.c. Add lineno
18206 argument.
18207 (valid_predicate_name_p): New function, split out from old
18208 genpreds.c:process_define_predicate.
18209 (process_define_predicate): New function, combining code from
18210 old genpreds.c and genrecog.c functions.
18211 (process_rtx): Call it for DEFINE_PREDICATE and
18212 DEFINE_SPECIAL_PREDICATE.
18213
6308e208
RS
182142011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
18215
18216 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
18217 size of a '%A' memory reference.
18218 (T_DREG, T_QREG): New neon_builtin_type_bits.
18219 (arm_init_neon_builtins): Assert that the load and store operands
18220 are neon_struct_operands.
18221 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
18222 (NEON_ARG_MEMORY): New builtin_arg.
18223 (neon_dereference_pointer): New function.
18224 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
18225 Handle NEON_ARG_MEMORY.
18226 (arm_expand_neon_builtin): Update after above interface changes.
18227 Use NEON_ARG_MEMORY for loads and stores.
18228 * config/arm/predicates.md (neon_struct_operand): New predicate.
18229 * config/arm/iterators.md (V_two_elem): Tweak formatting.
18230 (V_three_elem): Use BLKmode for accesses that have no associated mode.
18231 (V_four_elem): Tweak formatting.
18232 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
18233 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
18234 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
18235 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
18236 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
18237 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
18238 (neon_vst4<mode>): Replace pointer operand with a memory operand.
18239 Use %A in the output template.
18240 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
18241 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
18242 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
18243 the width of the memory access. Remove post-increment.
18244 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
18245
e5db8f2f
NC
182462011-04-12 Nick Clifton <nickc@redhat.com>
18247
18248 * config/v850/v850.c (expand_prologue): Do not use the CALLT
18249 instruction for interrupt handlers if the target is the basic V850
18250 architecture.
18251 (expand_epilogue): Likewise.
18252
74f091d6
JJ
182532011-04-12 Jakub Jelinek <jakub@redhat.com>
18254
18255 PR rtl-optimization/48549
18256 * combine.c (propagate_for_debug): Also stop after BB_END of
18257 this_basic_block. Process LAST and just stop processing after it.
18258 (combine_instructions): If last_combined_insn has been deleted,
18259 set last_combined_insn to its PREV_INSN.
18260
f20ca725
RG
182612011-04-12 Richard Guenther <rguenther@suse.de>
18262
18263 PR tree-optimization/46076
18264 * gimple.h (struct gimple_statement_call): Add fntype field.
18265 (gimple_call_fntype): Adjust.
18266 (gimple_call_set_fntype): New function.
18267 * gimple.c (gimple_build_call_1): Set the call function type.
18268 * gimplify.c (gimplify_call_expr): Preserve the function
18269 type the frontend used for the call.
18270 (gimplify_modify_expr): Likewise.
18271 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
18272 function type.
18273 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
18274 function type.
18275 * tree-ssa.c (useless_type_conversion_p): Function pointer
18276 conversions are useless.
18277
a358e188
MJ
182782011-04-12 Martin Jambor <mjambor@suse.cz>
18279
18280 * cgraph.h (cgraph_node): Remove function declaration.
18281 (cgraph_create_node): Declare.
18282 (cgraph_get_create_node): Likewise.
18283 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
18284 Updated all callers.
18285 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
18286 the decl does not already exist. Call cgraph_get_create_node instead
18287 of cgraph_node.
18288 (cgraph_get_create_node): New function.
18289 (cgraph_same_body_alias): Update comment.
18290 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
18291 assert it does not return NULL.
18292 (cgraph_update_edges_for_call_stmt): Likewise.
18293 (cgraph_clone_edge): Likewise.
18294 (cgraph_create_virtual_clone): Likewise.
18295 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
18296 instead of cgraph_node.
18297 (cgraph_add_new_function): Call cgraph_create_node or
18298 cgraph_get_create_node instead of cgraph_node.
18299 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
18300 instead of cgraph_node.
18301 (record_eh_tables): Likewise.
18302 (mark_address): Likewise.
18303 (mark_load): Likewise.
18304 (build_cgraph_edges): Call cgraph_get_create_node instead
18305 of cgraph_node.
18306 (rebuild_cgraph_edges): Likewise.
18307 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
18308 instead of cgraph_node.
18309 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
18310 cgraph_node.
18311 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
18312 cgraph_create_node instead of cgraph_node.
18313 * c-decl.c (finish_function): Call cgraph_get_create_node instead
18314 of cgraph_node.
18315 * lto-cgraph.c (input_node): Likewise.
18316 * lto-streamer-in.c (input_function): Likewise.
18317 * varasm.c (mark_decl_referenced): Likewise.
18318 (assemble_alias): Likewise.
18319
fe660d7b
MJ
183202011-04-12 Martin Jambor <mjambor@suse.cz>
18321
18322 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
18323 instead of cgraph_node and assert it does not return NULL.
18324 * lto-streamer-in.c (lto_read_body): Likewise.
18325 * omp-low.c (new_omp_context): Likewise.
18326 (create_task_copyfn): Likewise.
18327 * tree-emutls.c (lower_emutls_function_body): Likewise.
18328 * matrix-reorg.c (transform_allocation_sites): Likewise.
18329
bae5cddf
JJ
183302011-04-12 Jakub Jelinek <jakub@redhat.com>
18331
18332 PR c/48552
18333 * c-typeck.c (build_asm_expr): Error out on attempts to use
18334 void type outputs or inputs for constraints that allow reg or
18335 don't allow memory.
18336
06eb52ca
CLT
183372011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
18338 Richard Earnshaw <rearnsha@arm.com>
18339
18340 PR target/48250
18341 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
18342 to use sign-magnitude offsets. Reject unsupported unaligned
18343 cases. Add detailed description in comments.
18344 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
18345 condition from TARGET_32BIT to TARGET_ARM.
18346
648a616b
NF
183472011-04-11 Nathan Froyd <froydnj@codesourcery.com>
18348
18349 * tree.h (struct typed_tree): New.
18350 (struct tree_common): Include it instead of tree_base.
18351 (TREE_TYPE): Update for new location of type field.
18352 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
18353 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
18354 (union tree_node): Add typed field.
18355 * treestruct.def (TS_TYPED): New.
18356 * lto-streamer.c (check_handled_ts_structures): Handle it.
18357 * tree.c (MARK_TS_TYPED): New macro.
18358 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
18359
1e6d1da0
EB
183602011-04-11 Eric Botcazou <ebotcazou@adacore.com>
18361
18362 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
18363 (force_nonfallthru): Do not alter the loop nest if no basic block
18364 was created.
18365
183662011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
18367
18368 * config/i386/sse.md (VI): New mode iterator.
18369 (SSEMODEI): Remove.
18370 (AVX256MODEI): Ditto.
18371 (AVXMODEF4P): Ditto.
18372 (avxvecpsmode): Ditto.
18373 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
18374 (sse2_andnot<mode>3): New expander.
18375 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
18376 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
18377 (<any_logic:code><mode>3): Use VI mode iterator.
18378 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
18379 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
18380 (*andnottf3): Handle AVX three-operand constraints.
18381 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
18382
b1372d5d 183832011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 18384 Robert Millan <rmh@gnu.org>
b1372d5d
JM
18385
18386 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
18387 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
18388 GNU_USER_DYNAMIC_LINKER64): Define.
18389 (REG_NAME): Don't undefine.
18390 (MD_UNWIND_SUPPORT): Undefine.
18391 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
18392 (REG_NAME): Don't undefine.
18393 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 18394 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 18395
761c0c6e
JM
183962011-04-11 Joseph Myers <joseph@codesourcery.com>
18397
18398 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
18399 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
18400
26e0228f
XDL
184012011-04-11 Xinliang David Li <davidxl@google.com>
18402
18403 * value-profile.c (check_ic_target): New function.
18404 (gimple_ic_transform): Sanity check indirect call target.
18405 * gimple-low.c (gimple_check_call_args): Interface change.
18406 (gimple_check_call_matching_types): New function.
18407 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
18408
184092011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
18410
18411 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
18412 tree-pretty-print.h & realmpfr.h.
18413
a58dfa49
VM
184142011-04-11 Vladimir Makarov <vmakarov@redhat.com>
18415
18416 PR middle-end/48464
18417 * ira.c (setup_pressure_classes): Fix typo in loop condition.
18418 (setup_allocno_and_important_classes): Ditto.
18419
107fd1c1
JM
184202011-04-11 Joseph Myers <joseph@codesourcery.com>
18421
18422 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
18423 GNU_USER_DYNAMIC_LINKER.
18424 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
18425 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18426 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
18427 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18428 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18429 GNU_USER_TARGET_OS_CPP_BUILTINS.
18430 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
18431 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18432 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18433 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18434 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
18435 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18436 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18437 GNU_USER_TARGET_OS_CPP_BUILTINS.
18438 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18439 GNU_USER_DYNAMIC_LINKER.
18440 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18441 GNU_USER_TARGET_OS_CPP_BUILTINS.
18442 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
18443 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18444 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
18445 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18446 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
18447 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
18448 GNU_USER_DYNAMIC_LINKER64): Remove.
18449 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
18450 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18451 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18452 GNU_USER_DYNAMIC_LINKER.
18453 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18454 GNU_USER_TARGET_OS_CPP_BUILTINS.
18455 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18456 GNU_USER_TARGET_OS_CPP_BUILTINS.
18457 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
18458 to GNU_USER_TARGET_OS_CPP_BUILTINS.
18459 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18460 GNU_USER_TARGET_OS_CPP_BUILTINS.
18461 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
18462 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
18463 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18464 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
18465 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18466 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18467 GNU_USER_DYNAMIC_LINKER.
18468 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18469 GNU_USER_TARGET_OS_CPP_BUILTINS.
18470 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
18471 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18472 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18473 GNU_USER_DYNAMIC_LINKER.
18474 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18475 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18476 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
18477 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18478 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18479 GNU_USER_DYNAMIC_LINKER.
18480 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
18481 GNU_USER_DYNAMIC_LINKERN32.
18482 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
18483 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
18484 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
18485 GNU_USER_DYNAMIC_LINKER32.
18486 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
18487 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18488 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18489 GNU_USER_DYNAMIC_LINKER.
18490 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18491 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18492 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
18493 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 18494 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
18495 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
18496 GNU_USER_DYNAMIC_LINKER32.
18497 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18498 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
18499 GNU_USER_DYNAMIC_LINKER.
18500 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
18501 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18502 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18503 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
18504 GNU_USER_DYNAMIC_LINKER64.
18505 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
18506 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18507 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18508 GNU_USER_DYNAMIC_LINKER.
18509 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
18510 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18511 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18512 GNU_USER_DYNAMIC_LINKER.
18513 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
18514 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18515 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18516 GNU_USER_DYNAMIC_LINKER32.
18517 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18518 GNU_USER_DYNAMIC_LINKER64.
18519 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18520 GNU_USER_DYNAMIC_LINKER64.
18521 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
18522 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18523 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
18524 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 18525 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 18526
e24609cf
JM
185272011-04-11 Joseph Myers <joseph@codesourcery.com>
18528
18529 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
18530 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
18531 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
18532 GNU_USER_DYNAMIC_LINKER.
18533 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18534 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
18535 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
18536 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
18537 GNU_USER_DYNAMIC_LINKER64.
18538 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18539 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
18540 GNU_USER_LINK_EMULATION.
18541 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
18542 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
18543 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
18544 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
18545 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
18546 CPP_SPEC, CC1_SPEC): Remove.
18547 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
18548 (GNU_USER_DYNAMIC_LINKER): Define.
18549 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
18550 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
18551 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
18552 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
18553 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
18554 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
18555 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18556 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
18557 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
18558 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
18559 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
18560 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
18561 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
18562 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
18563 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
18564 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18565 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18566 GNU_USER_DYNAMIC_LINKER.
18567 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18568 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
18569 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18570 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
18571 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18572 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
18573 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
18574 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
18575 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 18576 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 18577
b8ce4e94
KT
185782011-04-11 Kai Tietz <ktietz@redhat.com>
18579
18580 PR target/9601
18581 PR target/11772
18582 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
18583 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
18584 comment.
18585 (ix86_is_msabi_thiscall): Removed.
18586 (ix86_is_type_thiscall): Likewise.
18587 (ix86_get_callcvt): New function.
18588 (ix86_comp_type_attributes): Simplify check.
18589 (ix86_function_regparm): Use ix86_get_callcvt for calling
18590 convention attribute checks.
18591 (ix86_return_pops_args): Likewise.
18592 (ix86_static_chain): Likewise.
18593 (x86_this_parameter): Likewise.
18594 (x86_output_mi_thunk): Likewise.
18595 (ix86_function_type_abi): Optimize check for types without attributes.
18596 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
18597 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
18598 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
18599 by flag-values.
18600 (IX86_BASE_CALLCVT): Helper macro.
18601 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
18602 Use ix86_get_callcvt for calling convention attribute checks and avoid
18603 symbol-decoration for stdcall in TARGET_RTD case.
18604 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
18605 Likewise.
18606 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
18607 for declaration.
18608
798dd0ba
UB
186092011-04-11 Uros Bizjak <ubizjak@gmail.com>
18610
18611 * config/i386/sse.md (VI_128): New mode iterator.
18612 (VI12_128): Rename from SSEMODE12.
18613 (VI14_128): Rename from SSEMODE14.
18614 (VI124_128): New mode iterator.
18615 (VI24_128): Rename from SSEMODE248.
18616 (VI248_128): Rename from SSEMODE248.
18617 (SSEMODE124C8): Remove.
18618 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18619 (*sse2_<plusminus_insn><mode>3): Merge with
18620 *avx_<plusminus_insn><mode>3.
18621 (*mulv8hi3): Merge with *avx_mulv8hi3.
18622 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
18623 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
18624 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
18625 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
18626 (ashr<mode>3): Merge with *avx_ashr<mode>3.
18627 (lshr<mode>3): Merge with *avx_lshr<mode>3.
18628 (ashl<mode>3): Merge with *avx_ashl<mode>3.
18629 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
18630 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
18631 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18632 (*<smaxmin:code>v8hi3): Ditto.
18633 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
18634 (*<smaxmin:code>v16qi3): Ditto.
18635 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
18636 (*sse2_eq<mode>3): Ditto.
18637 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
18638 (*sse2_gt<mode>3): Ditto.
18639 (vcondv2di): Split out of vcond<mode>.
18640 (vconduv2di): Split out of vcondu<mode>.
18641
956011be
RG
186422011-04-11 Richard Guenther <rguenther@suse.de>
18643
18644 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
18645 before calling tree_low_cst.
18646
e6313a78
RG
186472011-04-11 Richard Guenther <rguenther@suse.de>
18648
18649 * stor-layout.c (layout_type): Compute all array index size operations
18650 in the original type.
18651 (initialize_sizetypes): Add comment.
18652 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
18653
e69d7376
JM
186542011-04-11 Joseph Myers <joseph@codesourcery.com>
18655
18656 * common.opt (Tbss=, Tdata=, Ttext=): New options.
18657
9f9ebcdf
MJ
186582011-04-11 Martin Jambor <mjambor@suse.cz>
18659
18660 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
18661 of cgraph_node, handle NULL return value.
18662 (cgraph_global_info): Likewise.
18663 (cgraph_rtl_info): Likewise.
18664 * tree-inline.c (estimate_num_insns): Likewise.
18665 * gimplify.c (unshare_body): Likewise.
18666 (unvisit_body): Likewise.
18667 (gimplify_body): Likewise.
18668 * predict.c (optimize_function_for_size_p): Likewise.
18669 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18670 (call_may_clobber_ref_p_1): Likewise.
18671 * varasm.c (function_section_1): Likewise.
18672 (assemble_start_function): Likewise.
18673
581985d7
MJ
186742011-04-11 Martin Jambor <mjambor@suse.cz>
18675
18676 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
18677 of cgraph_node.
18678 * final.c (rest_of_clean_state): Likewise.
18679 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
18680 * passes.c (pass_init_dump_file): Likewise.
18681 (execute_all_ipa_transforms): Likewise.
18682 (function_called_by_processed_nodes_p): Likewise.
18683 * predict.c (maybe_hot_frequency_p): Likewise.
18684 (probably_never_executed_bb_p): Likewise.
18685 (compute_function_frequency): Likewise.
18686 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
18687 (unnest_nesting_tree_1): Likewise.
18688 (lower_nested_functions): Likewise.
18689 * tree-optimize.c (execute_fixup_cfg): Likewise.
18690 (tree_rest_of_compilation): Likewise.
18691 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
18692 * tree-sra.c (ipa_early_sra): Likewise.
18693 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
18694 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
18695 * ipa.c (record_cdtor_fn): Likewise.
18696 * ipa-inline.c (cgraph_early_inlining): Likewise.
18697 (compute_inline_parameters_for_current): Likewise.
18698 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18699 * ipa-pure-const.c (local_pure_const): Likewise.
18700 * ipa-split.c (split_function): Likewise.
18701 (execute_split_functions): Likewise.
18702 * cgraphbuild.c (build_cgraph_edges): Likewise.
18703 (rebuild_cgraph_edges): Likewise.
18704 (cgraph_rebuild_references): Likewise.
18705 (remove_cgraph_callee_edges): Likewise.
18706 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
18707 (verify_cgraph_node): Likewise.
18708 (cgraph_analyze_functions): Likewise.
18709 (cgraph_preserve_function_body_p): Likewise.
18710 (save_inline_function_body): Likewise.
18711 (save_inline_function_body): Likewise.
18712 * tree-inline.c (copy_bb): Likewise.
18713 (optimize_inline_calls): Likewise.
18714
57dbdc5a
MJ
187152011-04-11 Martin Jambor <mjambor@suse.cz>
18716
18717 PR tree-optimization/48195
18718 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
18719 ipa_check_create_edge_args.
18720 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
18721 ipa_check_create_edge_args.
18722 * ipa-inline.c (inline_generate_summary): Do not call
18723 ipa_check_create_node_params and ipa_check_create_edge_args.
18724 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
18725 ipa_check_create_edge_args.
18726
d108e679
AS
187272011-04-09 Anatoly Sokolov <aesok@post.ru>
18728
18729 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
18730 instead of loop.
18731 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
18732 * function.c (record_hard_reg_sets): Likewise.
18733 * ira.c (compute_regs_asm_clobbered): Likewise.
18734 * sched-deps.c (sched_analyze_1): Likewise.
18735 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
18736
3411bc59
XDL
187372011-04-09 Xinliang David Li <davidxl@google.com>
18738
18739 PR tree-optimization/PR48484
18740 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
18741 has_valid_pred lazily
18742
b365495a
DS
187432011-04-09 Duncan Sands <baldrick@free.fr>
18744
18745 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
18746
68bc509a
EB
187472011-04-08 Eric Botcazou <ebotcazou@adacore.com>
18748
18749 * combine.c (combine_validate_cost): Adjust comments. Set registered
18750 cost of I0 to zero at the end, if any.
18751
041e059f
XDL
187522011-04-08 Xinliang David Li <davidxl@google.com>
18753
68bc509a
EB
18754 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
18755 to insane profile data.
041e059f 18756
444b3995
XDL
187572011-04-08 Xinliang David Li <davidxl@google.com>
18758
18759 * ipa-cp.c (ipcp_update_profiling): Correct
18760 negative scale factor due to insane profile data.
18761
6a801cf2
XDL
187622011-04-08 Xinliang David Li <davidxl@google.com>
18763
18764 * final.c (dump_basic_block_info): New function.
18765 (final): Dump basic block.
18766 (final_scan_insn): Remove old dump.
18767
d5f3624e
SK
187682011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
18769
68bc509a
EB
18770 PR target/47829
18771 * config.gcc (i386-*-freebsd): Disable unwind table generation for
18772 crtbegin/crtend.
d5f3624e 18773
42821aff
MM
187742011-04-08 Michael Matz <matz@suse.de>
18775
18776 PR middle-end/48389
18777 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
18778 functions.
18779 (rebuild_jump_labels): Call rebuild_jump_labels_1.
18780 * rtl.h (rebuild_jump_labels_chain): Declare.
18781 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
18782 insns inserted on edges.
18783
ad7be009
JM
187842011-04-08 Joseph Myers <joseph@codesourcery.com>
18785
18786 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
18787 * config/arm/arm-arches.def: New.
18788 * config/arm/arm-opts.h: New.
18789 * config/arm/genopt.sh: New.
18790 * config/arm/arm-tables.opt: New (generated).
18791 * config/arm/arm.c (arm_handle_option, arm_target_help,
18792 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
18793 (all_architectures): Get most table contents from arm-arches.def.
18794 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
18795 arm_selected_tune here.
18796 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
18797 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
18798 (march=, mcpu=, mtune=): Use Enum and Var.
18799 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
18800 (arm.o): Update dependencies.
ecbb6fb7 18801
42821aff 188022011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
18803
18804 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
18805 of header_file.
18806 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
18807 (write_typed_alloc_defns): Likewise.
18808 (main): Calls write_typed_alloc_defns with output_header.
18809
8d189b3f
VM
188102011-04-08 Vladimir Makarov <vmakarov@redhat.com>
18811
68bc509a 18812 PR inline-asm/48435
8d189b3f
VM
18813 * ira-color.c (setup_profitable_hard_regs): Add comments.
18814 Don't take prohibited hard regs into account.
18815 (setup_conflict_profitable_regs): Rename to
18816 get_conflict_profitable_regs.
18817 (check_hard_reg_p): Check prohibited hard regs.
18818
44f370bf
NF
188192011-04-08 Nathan Froyd <froydnj@codesourcery.com>
18820
18821 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
18822 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
18823 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
18824
483d7ad3
JDA
188252011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18826
18827 PR target/48366
18828 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 18829 move from floating point to shift amount register.
483d7ad3
JDA
18830 (emit_move_sequence): Remove secondary reload support for floating
18831 point to shift amount amount register copies.
18832 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
18833 amount register copies.
18834 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
18835 register, return false if mode isn't a scalar integer mode.
18836 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
18837
97e03fa1
RG
188382011-04-08 Richard Guenther <rguenther@suse.de>
18839
18840 * gimple.c (gimple_call_flags): Remove kludge.
18841
9d40778b
AM
188422011-04-08 Alexander Monakov <amonakov@ispras.ru>
18843
18844 * sel-sched.c (sel_region_init): Move call to
18845 sel_setup_region_sched_flags after setup_current_loop_nest.
18846
19ac7892
AB
188472011-04-08 Andrey Belevantsev <abel@ispras.ru>
18848
18849 PR rtl-optimization/48272
19ac7892
AB
18850 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
18851 init_insn_reg_pressure_info. Adjust a caller.
18852 * sched-int.h (init_insn_reg_pressure_info): Declare.
18853 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
18854 when sched-pressure is enabled.
18855
0f8c63cc
RG
188562011-04-08 Richard Guenther <rguenther@suse.de>
18857
18858 * gimple.c (gimple_set_modified): Do not queue calls to
18859 MODIFIED_NORETURN_CALLS here ...
18860 * tree-ssa-operands.c (update_stmt_operands): ... but here.
18861
5e5a425e
RG
188622011-04-08 Richard Guenther <rguenther@suse.de>
18863
18864 PR lto/48467
18865 * toplev.c (lang_dependent_init): Do not open asm_out_file
18866 in WPA mode, nor perform debug machinery initialization.
18867 (finalize): Do not unlink asm_out_file in WPA mode.
18868
9bfc434b
RG
188692011-04-08 Richard Guenther <rguenther@suse.de>
18870
18871 * gimple.h (gimple_call_fntype): New function.
18872 (gimple_call_return_type): Use it.
18873 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
18874 * gimple-low.c (gimple_check_call_args): Likewise.
18875 * gimple.c (gimple_call_flags): Likewise.
18876 (gimple_call_arg_flags): Likewise.
18877 (gimple_call_return_flags): Likewise.
18878 * tree-cfg.c (verify_gimple_call): Likewise.
18879 (do_warn_unused_result): Likewise.
18880 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
18881 * value-prof.c (gimple_ic_transform): Fix fndecl check.
18882
7c1f0b40
DM
188832011-04-08 Dmitry Melnik <dm@ispras.ru>
18884
18885 PR rtl-optimization/48235
18886 * sel-sched.c (code_motion_process_successors): Recompute the last
18887 insn in basic block if control flow changed.
18888 (code_motion_path_driver): Ditto. Recompute the first insn as well.
18889 Update condition for ilist_remove.
18890
ea4d630f
AM
188912011-04-08 Alexander Monakov <amonakov@ispras.ru>
18892
18893 PR rtl-optimization/48302
18894 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
18895 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
18896 it to record added preheader blocks.
18897 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
18898 on to sel_add_loop_preheaders.
18899 (sel_region_init): Move call to setup_current_loop_nest after
18900 sel_init_bbs.
18901
07643d76
AM
189022011-04-08 Alexander Monakov <amonakov@ispras.ru>
18903
18904 PR target/48273
18905 * cfgloop.h (loop_has_exit_edges): New helper.
18906 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
18907 non-clonable.
18908 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
18909 that have no exit edges.
18910
1f3b2b4e
AM
189112011-04-08 Alexander Monakov <amonakov@ispras.ru>
18912
18913 PR rtl-optimization/48442
18914 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
18915 all callers. Adjust assert.
18916
554f1948
JJ
189172011-04-08 Jakub Jelinek <jakub@redhat.com>
18918
18919 PR tree-optimization/48377
18920 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
18921 is_packed to true even for types with smaller TYPE_ALIGN than
18922 TYPE_SIZE.
18923
ddf72388
RG
189242011-04-08 Richard Guenther <rguenther@suse.de>
18925
18926 PR bootstrap/48513
18927 * doc/tm.texi: Re-generate.
18928
0c27e2d8
WG
189292011-04-08 Wei Guozhi <carrot@google.com>
18930
18931 PR target/47855
18932 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
18933 * config/arm/arm.c (arm_attr_length_push_multi): New function.
18934 * config/arm/arm.md (*push_multi): Change the length computation to
18935 call a C function.
18936
07c5f94e
AS
189372011-04-08 Anatoly Sokolov <aesok@post.ru>
18938
18939 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
18940 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
18941 * doc/tm.texi: Regenerate.
18942 * system.h (ASM_OUTPUT_BSS): Poison.
18943 * varasm.c (asm_output_bss): Remove function.
18944 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 18945
07c5f94e
AS
18946 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
18947 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
18948 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
18949 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18950 Likewise.
18951 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18952 Likewise.
18953 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
18954 Likewise.
18955 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
18956
5f2c36e1
JM
189572011-04-07 Joseph Myers <joseph@codesourcery.com>
18958
18959 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
18960 EnumValue lines.
18961
39e7722b
JM
189622011-04-07 Joseph Myers <joseph@codesourcery.com>
18963
18964 * config/m68k/m68k.c (m68k_handle_option): Don't handle
18965 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
18966 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
18967 OPT_mcpu32.
18968 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
18969 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
18970 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
18971 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
18972 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
18973 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
18974 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
18975 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
18976 options. Don't map other m68k options manually. Don't handle
18977 old-style options as canonical.
18978 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 18979 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 18980
cf103ca4
EB
189812011-04-07 Eric Botcazou <ebotcazou@adacore.com>
18982
18983 * basic-block.h (force_nonfallthru): Move to...
18984 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
18985 (force_nonfallthru): ...here.
18986 * cfghooks.c (force_nonfallthru): New function.
18987 * cfgrtl.c (force_nonfallthru): Rename into...
18988 (rtl_force_nonfallthru): ...this.
18989 (commit_one_edge_insertion): Do not set AUX field.
18990 (commit_edge_insertions): Do not discover new basic blocks.
18991 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
18992 (cfg_layout_rtl_cfg_hooks): Likewise.
18993 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
18994 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
18995 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
18996
14431f58
AS
189972011-04-07 Anatoly Sokolov <aesok@post.ru>
18998
18999 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19000 Remove macros.
19001
3729983c
UB
190022011-04-07 Uros Bizjak <ubizjak@gmail.com>
19003
19004 * config/i386/sse.md: Update copyright year.
19005 (avxcvtvecmode): Remove.
19006 (sse_movhlps): Merge with *avx_movhlps.
19007 (sse_movlhps): Merge with *avx_movlhps.
19008 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
19009 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
19010 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
19011 (sse_loadhps): Merge with *avx_loadhps.
19012 (sse_storelps): Merge with *avx_storelps.
19013 (sse_loadlps): Merge with *avx_loadlps.
19014 (sse_movss): Merge with *avx_movss.
19015 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
19016 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
19017 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
19018 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
19019 (vec_set<mode>_0): Ditto.
19020 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
19021 (sse4_1_insertps): Merge with *avx_insertps.
19022 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
19023 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
19024 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
19025 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
19026 (sse2_storehpd): Merge with *avx_storehpd.
19027 (sse2_loadhpd): Merge with *avx_loadhpd.
19028 (sse2_loadlpd): Merge with *avx_loadlpd.
19029 (sse2_movsd): Merge with *avx_movsd.
19030 (*vec_concatv2df): Merge with *vec_concatv2df.
19031
4e626909
JJ
190322011-04-07 Jakub Jelinek <jakub@redhat.com>
19033
19034 PR debug/48343
19035 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 19036 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
19037 (try_combine): Add last_combined_insn parameter, pass it instead of
19038 i3 to propagate_for_debug.
19039
3729983c 190402011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
19041
19042 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
19043 to handle MDR <-> data register transfers.
19044 (movhi_internal): Likewise.
19045
20c03367
AM
190462011-04-07 Alan Modra <amodra@gmail.com>
19047
19048 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
19049 previous stack info.
19050
bf22920b
TV
190512011-04-07 Tom de Vries <tom@codesourcery.com>
19052
19053 PR target/43920
19054 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
19055 flow_find_cross_jump. Swap variables to implement backward replacement.
19056 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
19057
823918ae
TV
190582011-04-07 Tom de Vries <tom@codesourcery.com>
19059
19060 PR target/43920
19061 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
19062 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
19063 and bb2.
19064 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
19065 src1 or src2. Redirect edges to the last basic block. Update
19066 frequency and count on multiple basic blocks in case of fallthru.
823918ae 19067
472c95f5
TV
190682011-04-07 Tom de Vries <tom@codesourcery.com>
19069
19070 PR target/43920
19071 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
19072 function.
3729983c
UB
19073 (old_insns_match_p): Change return type. Replace return false/true
19074 with return dir_none/dir_both. Use can_replace_by.
19075 (flow_find_cross_jump): Add dir_p parameter. Init replacement
19076 direction from dir_p. Register replacement direction in dir, last_dir
19077 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
19078 merge_dir. Return replacement direction in dir_p.
19079 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
19080 return type of old_insns_match_p.
19081 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
19082 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
19083 flow_find_cross_jump.
19084 * basic-block.h (enum replace_direction): New type.
19085 (flow_find_cross_jump): Add parameter to declaration.
19086
a95d4000
UB
190872011-04-06 Uros Bizjak <ubizjak@gmail.com>
19088
19089 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
19090 (AVXMODEDCVTPS2DQ): Ditto.
19091 (VEC_FLOAT_MODE): Ditto.
19092 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
19093 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
19094 (<any_logic:code><mode>3): Use VF mode iterator.
19095 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
19096 Use VF mode iterator.
19097 (copysign<mode>3): Use VF mode iterator.
19098 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
19099 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
19100 (*<any_logic:code><MODEF:mode>3): Merge with
19101 *avx_<any_logic:code><MODEF:mode>3.
19102 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
19103 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
19104 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
19105 (avx_cvtdq2ps<avxmodesuffix>): Remove.
19106 (sse2_cvtdq2ps): Use %v modifier.
19107 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
19108 (avx_cvtps2dq<avxmodesuffix>): Remove.
19109 (sse2_cvtps2dq): Use %v modifier.
19110 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
19111 (avx_cvttps2dq<avxmodesuffix>): Remove.
19112 (sse2_cvttps2dq): Use %v modifier.
19113 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
19114 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
19115 (sse2_cvtsd2siq): Fix insn template.
19116 (sse2_cvtsd2siq_2): Ditto.
19117 (sse2_cvttsd2siq): Ditto.
19118 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
19119 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
19120
ad01c437
JM
191212011-04-06 Joseph Myers <joseph@codesourcery.com>
19122
19123 * gcov-io.c: Use GCC Runtime Library Exception.
19124
fe846284
JJ
191252011-04-06 Jakub Jelinek <jakub@redhat.com>
19126
19127 PR debug/48466
19128 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
19129 as base_reg whatever register reg has been eliminated to, instead
19130 of hardcoding STACK_POINTER_REGNUM.
19131
acce4e77
JM
191322011-04-06 Joseph Myers <joseph@codesourcery.com>
19133
19134 * doc/tm.texi.in: Document C target hooks as separate from general
19135 target hooks.
19136 * doc/tm.texi: Regenerate.
19137 * genhooks.c (struct hook_desc): Add docname field.
19138 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
19139 docname field.
19140 (hook_array): Include c-target.def.
19141 (emit_documentation): Use docname field in output.
19142 (emit_init_macros): Take docname argument. Only emit definitions
19143 for hooks matching docname.
19144 (main): Expect additional arguments in all cases. Pass argument
19145 to emit_init_macros.
19146 * target.def: Move initial macro definitions and comments to
19147 target-hooks-macros.h.
19148 (gcc_targetcm): Move to c-family/c-target.def.
19149 * target.h (targetcm): Move declaration to c-family/c-target.h.
19150 * targhooks.c (default_handle_c_option): Move to
19151 c-family/c-opts.c.
19152 * targhooks.h (default_handle_c_option): Move declaration to
19153 c-family/c-common.h.
19154 * target-hooks-macros.h: New file.
19155 * config.gcc (target_has_targetcm): Define and use to add to
19156 c_target_objs and cxx_target_objs.
19157 * config/default-c.c: New file.
19158 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
19159 of target.h and target-def.h.
19160 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
19161 (darwin_objc_construct_string, darwin_cfstring_ref_p,
19162 darwin_check_cfstring_format_arg): Make static.
19163 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
19164 TARGET_STRING_OBJECT_REF_TYPE_P,
19165 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
19166 * config/darwin-protos.h (darwin_objc_construct_string,
19167 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
19168 declare.
19169 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
19170 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 19171 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
19172 * config/t-darwin (darwin-c.o): Update dependencies.
19173 * system.h (TARGET_HAS_TARGETCM): Poison.
19174 * Makefile.in (TARGET_H): Update.
19175 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
19176 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
19177 (default-c.o): New target.
19178 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 19179 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
19180 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
19181 c-target.def.
19182 (build/genhooks.o): Update dependencies.
19183
275b4baa 191842011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 19185
275b4baa
RG
19186 * ipa-inline.c (enum inlining_mode): Remove.
19187 (cgraph_flatten): Use some other token.
19188 (cgraph_edge_early_inlinable_p): New function, split out from ...
19189 (cgraph_perform_always_inlining): New function, split out from ...
19190 (cgraph_decide_inlining_incrementally): ... here.
19191 (cgraph_mark_inline_edge): Adjust.
19192 (cgraph_early_inlining): Re-structure.
19193 (pass_early_inline): Require SSA form.
19194
f15b8bdf 191952011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
19196 Julian Brown <julian@codesourcery.com>
19197 Mark Shinwell <shinwell@codesourcery.com>
19198
19199 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
19200 LO_REGS only for Thumb-1.
19201 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
19202 be used in short instructions when optimising for size on Thumb-2.
19203
516426da
EB
192042011-04-06 Eric Botcazou <ebotcazou@adacore.com>
19205
19206 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
19207 associated with user returns to be preserved.
19208
96621ebf
TG
192092011-04-06 Tristan Gingold <gingold@adacore.com>
19210
f15b8bdf
EB
19211 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
19212 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
19213 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
19214 if XCOFF_DEBUGGING_INFO.
19215
07c0852e
UB
192162011-04-06 Uros Bizjak <ubizjak@gmail.com>
19217
19218 * config/i386/i386.md (attribute isa): New.
19219 (attribute enabled): New.
19220 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
19221 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
19222 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
19223 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
19224 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
19225 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19226 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
19227 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
19228
19229 * config/i386/sse.md (VF): New mode iterator.
19230 (VF1): Ditto.
19231 (VF2): Ditto.
19232 (VF_128): Ditto.
19233 (SSEMODEF4): Remove.
19234 (attribute sse): Handle V8SF and V4DF modes.
19235 (<absneg:code><mode>2): Use VF mode iterator.
19236 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
19237 mode iterator.
19238 (<plusminus_insn><mode>3): Use VF mode iterator.
19239 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
19240 Use VF mode iterator.
19241 (<sse>_vm<plusminus_insn><mode>3): Merge with
19242 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
19243 (mul<mode>3): Use VF mode iterator.
19244 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
19245 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
19246 mode iterator.
19247 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
19248 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
19249 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
19250 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
19251 mode iterator.
19252 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
19253 Use VF1 mode iterator.
19254 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
19255 (sqrt<VF2:mode>2): New expander.
19256 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
19257 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
19258 and sqrtv2df2. Use VF mode iterator.
19259 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
19260 mode iterator.
19261 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
19262 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
19263 Use VF1 mode iterator.
19264 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
19265 (<smaxmin:code><mode>3): Use VF mode iterator.
19266 (*<smaxmin:code><mode>3_finite): Merge with
19267 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
19268 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19269 (<sse>_vm<smaxmin:code><mode>2): Merge with
19270 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
19271 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
19272 mode iterator.
19273 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
19274 mode iterator.
19275 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
19276 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
19277 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
19278 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
19279 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
19280 VF mode iterator.
19281 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
19282 Use VF_128 mode iterator.
19283 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
19284 mode iterator.
19285 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
19286 VF_128 mode iterator.
19287 (vcond<mode>): Use VF mode iterator.
19288 * config/i386/predicates.md (sse_comparison_operator): Merge with
19289 avx_comparison_float_operator. Do not declare as special_predicate.
19290 * config/i386/i386.c (struct builtin_description): Update for renamed
19291 compare patterns.
19292 (ix86_expand_args_builtin): Ditto.
19293 (ix86_expand_sse_compare_mask): Ditto.
19294
ff5d142c
RG
192952011-04-06 Richard Guenther <rguenther@suse.de>
19296
19297 * tree-inline.c (estimate_num_insns): For calls simply account
19298 for all passed arguments and a used return value.
19299
d7d1d041 193002011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 19301
d7d1d041
RG
19302 PR tree-optimization/47663
19303 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
19304 call_stmt_time fields.
19305 (cgraph_edge_inlinable_p): Declare.
19306 (cgraph_edge_recursive_p): New inline function.
19307 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
19308 (cgraph_clone_edge): Copy it.
19309 * ipa-inline.c (cgraph_estimate_edge_time): New function.
19310 Account for call stmt time.
19311 (cgraph_estimate_time_after_inlining): Take edge argument.
19312 (cgraph_estimate_edge_growth): Account call stmt size.
19313 (cgraph_estimate_size_after_inlining): Take edge argument.
19314 (cgraph_mark_inline_edge): Adjust.
19315 (cgraph_check_inline_limits): Likewise.
19316 (cgraph_recursive_inlining_p): Remove.
19317 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
19318 (cgraph_decide_recursive_inlining): Take edge argument and
19319 adjust.
19320 (cgraph_decide_inlining_of_small_functions): Do not avoid
19321 diags for recursive inlining here.
19322 (cgraph_flatten): Adjust.
19323 (cgraph_decide_inlining_incrementally): Likewise.
19324 (estimate_function_body_sizes): Remove call cost handling.
19325 (compute_inline_parameters): Initialize caller edge call costs.
19326 (cgraph_estimate_edge_growth): New function.
19327 (cgraph_estimate_growth): Use it.
19328 (cgraph_edge_badness): Likewise.
19329 (cgraph_check_inline_limits): Take an edge argument.
19330 (cgraph_decide_inlining_of_small_functions): Adjust.
19331 (cgraph_decide_inlining): Likewise.
19332 * tree-inline.c (estimate_num_insns): Only account for call
19333 return value if it is used.
19334 (expand_call_inline): Avoid diagnostics on recursive inline
19335 functions here.
19336 * lto-cgraph.c (lto_output_edge): Output edge call costs.
19337 (input_edge): Input edge call costs.
19338
2feb95f7
RO
193392011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19340
19341 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
19342
26fbd9c2
JW
193432011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
19344
19345 * doc/invoke.texi (Spec Files): Fix typo.
19346
694dc0ca
EB
193472011-04-06 Eric Botcazou <ebotcazou@adacore.com>
19348
19349 * profile.c (branch_prob): Move declaration of local variable. Remove
19350 obsolete ??? comment. Expand the location explicitly instead of using
19351 the LOCATION_FILE and LOCATION_LINE macros.
19352
4925d0d5
WG
193532011-04-06 Wei Guozhi <carrot@google.com>
19354
19355 PR target/47855
19356 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
19357 (arm_cond_branch): Likewise.
19358 (arm_cond_branch_reversed): Likewise.
19359 (arm_jump): Likewise.
19360 (push_multi): Likewise.
19361 * config/arm/constraints.md (Py): New constraint.
19362
f55dfa2f
NF
193632011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19364
19365 PR bootstrap/48471
19366 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
19367 Move these...
19368 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
19369 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
19370 #ifdef DBX_DEBUGGING_INFO.
19371
fca96842
BS
193722011-04-05 Bernd Schmidt <bernds@codesourcery.com>
19373
19374 PR bootstrap/48403
19375 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
19376 if old and new states differ.
19377
30b83e38
JM
193782011-04-05 Joseph Myers <joseph@codesourcery.com>
19379
19380 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
19381 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
19382 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
19383 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
19384 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
19385 mcfv4e): Use Alias.
19386 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
19387 ColdFire options to -mcpu= options.
19388
277a9aa5
JL
193892011-04-05 Jeff Law <law@redhat.com>
19390
19391 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
19392 check if BB is a successor of LOOP->header and return
19393 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
19394
c1e2610e
SB
193952011-04-05 Steven Bosscher <steven@gcc.gnu.org>
19396
19397 * cprop.c (struct reg_use): Remove.
19398 (reg_use_table): Make an array of RTX.
19399 (find_used_regs, constprop_register, local_cprop_pass,
19400 bypass_block): Simplify users of reg_use_table.
19401 (cprop_insn): Likewise. Iterate if copy propagation succeeded
19402 on one of the uses found by find_used_regs.
19403
e532f586
NF
194042011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19405
19406 PR bootstrap/48469
19407 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
19408 declaration.
19409
3fb7c055
NF
194102011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19411
19412 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
19413 as an rtx.
19414 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
19415
b71b43d9
SB
194162011-04-05 Steven Bosscher <steven@gcc.gnu.org>
19417
19418 PR middle-end/48441
19419 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
19420
b405b274
NF
194212011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19422
19423 * combine.c: Include obstack.h.
19424 (struct insn_link): Define.
19425 (uid_log_links): Adjust type.
19426 (FOR_EACH_LOG_LINK): New macro.
19427 (insn_link_obstack): Declare.
19428 (alloc_insn_link): Define.
19429 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
19430 type of link variables.
19431 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
19432 (try_combine, record_promoted_values, distribute_notes): Likewise.
19433 (distribute_links): Likewise. Tweak prototype.
19434 (clear_log_links): Delete.
19435 (adjust_for_new_dest): Call alloc_insn_link.
19436 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
19437
6409abe3
NF
194382011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19439
19440 * gcse.c (modify_mem_list): Convert to an array of VECs.
19441 (canon_modify_mem_list, compute_transp): Tweak formatting.
19442 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
19443 (load_killed_in_block_p): Likewise.
19444 (record_last_mem_set_info): Likewise.
19445 (clear_modify_mem_tables): Likewise.
19446
170d8157
TV
194472011-04-05 Tom de Vries <tom@codesourcery.com>
19448
19449 PR middle-end/48461
19450 * function.c (emit_use_return_register_into_block): Only define if
19451 HAVE_return.
19452
c5911a55
EB
194532011-04-05 Eric Botcazou <ebotcazou@adacore.com>
19454
19455 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
19456
abd016e6
JM
194572011-04-05 Joseph Myers <joseph@codesourcery.com>
19458
19459 * config/rx/rx-opts.h: New.
19460 * config/rx/rx.c (rx_cpu_type): Remove.
19461 (rx_handle_option): Don't assert that global structures are in
19462 use. Access variables via opts pointer. Defer most handling of
19463 OPT_mint_register_. Use error_at.
19464 (rx_option_override): Handle deferred OPT_mint_register_ here.
19465 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
19466 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
19467 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
19468 (rx_cpu_types): New Enum and EnumValue entries.
19469 (mint-register=): Use Defer and use Var accordingly.
19470
1ed13f83
NF
194712011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19472
19473 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
19474 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
19475 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
19476 Move these...
19477 (debug_free_queue, debug_nesting, symbol_queue_index):
19478 ...and these...
19479 * dbxout.c: ...to here. Make static.
19480
6ce1edcf
NF
194812011-04-05 Nathan Froyd <froydnj@codesourcery.com>
19482
19483 * gcse.c (modify_pair): Define. Define a VEC of it.
19484 (canon_modify_mem_list): Convert to an array of VECs.
19485 (free_insn_expr_list_list): Delete.
19486 (clear_modify_mem_tables): Call VEC_free instead.
19487 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
19488 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
19489 (canon_list_insert, compute_transp): Likewise.
19490
c201ac94
TV
194912011-04-05 Tom de Vries <tom@codesourcery.com>
19492
19493 PR target/43920
19494 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
19495 for size.
19496
4c029f40
TV
194972011-04-05 Tom de Vries <tom@codesourcery.com>
19498
19499 PR target/43920
19500 * function.c (emit_use_return_register_into_block): New function.
19501 (thread_prologue_and_epilogue_insns): Use
19502 emit_use_return_register_into_block.
19503
2a562b0a
TV
195042011-04-05 Tom de Vries <tom@codesourcery.com>
19505
19506 PR target/43920
19507 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
19508 insn.
19509
0248bceb
TV
195102011-04-05 Tom de Vries <tom@codesourcery.com>
19511
19512 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
19513
ffa94123
YZ
195142011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
19515
798dd0ba
UB
19516 * config/arm/arm.md (define_constants for unspec): Replace with
19517 define_c_enum.
19518 (define_constants for unspecv): Replace with define_c_enum.
19519 * config/arm/neon.md (define_constants for unspec): Replace with
19520 define_c_enum.
ffa94123 19521
3b8f9b46
RH
195222011-04-04 Richard Henderson <rth@redhat.com>
19523
720cf80f 19524 PR bootstrap/48400
3b8f9b46
RH
19525 * dwarf2out.c (output_line_info): Always emit line info from
19526 at least one section.
19527 (dwarf2out_init): Create text_section_line_info here ...
19528 (set_cur_line_info_table): ... not here.
19529
720cf80f 195302011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
19531
19532 PR target/48380
19533 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 19534 not called.
e5b0e1ca 19535
720cf80f 19536 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 19537
196565d4
SB
195382011-04-04 Steven Bosscher <steven@gcc.gnu.org>
19539
b77f9eab
SB
19540 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
19541 (expr_equiv_p): Remove.
19542 (insert_set_in_table): Look at <dest, src> pair instead of expr.
19543 (hash_scan_set): Update call to insert_set_in_table.
19544 (dump_hash_table): Dump <dest, src> pair.
19545 (lookup_set): Simplify. Lookup <dest, src> pair.
19546 (compute_transp): Remove, fold heavily simplified code into...
19547 (compute_local_properties): ...here. Expect COMP and TRANSP
19548 unconditionally.
19549 (find_avail_set): Take set directly from struct expr.
19550 (find_bypass-set): Likewise.
19551 (bypass_block): Likewise.
19552 (cprop_insn): Likewise. Remove redundant INSN_P test.
19553
384d7a55
SB
19554 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
19555 checks on form of COND from find_implicit_sets to here.
19556 (find_implicit_sets): Cleanup control flow. Split critical edges
19557 if it exposes implicit sets. Allocate/resize implicit_sets as
19558 necessary.
19559 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
19560 changed something. Run df_analyze after find_implicit_sets if any
19561 edges were split. Do not allocate implicit_sets here.
19562
3084ce69
SB
19563 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
19564 (gcse_obstack): Renamed to cprop_obstack.
19565 (GNEW, GNEWVEC, GNEWVAR): Remove.
19566 (gmalloc): Remove.
19567 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
19568 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
19569 (gcse_alloc): Likewise, and rename to cprop_alloc.
19570 (alloc_gcse_men, free_gcse_mem): Remove.
19571 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
19572 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
19573 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
19574
196565d4
SB
19575 * cprop.c (oprs_not_set_p): Remove.
19576 (mark_set, mark_clobber): Remove.
19577 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
19578 (reg_not_set_p): New function.
19579 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
19580 (cprop_insn): Likewise.
19581 (cprop_jump): Use FOR_EACH_EDGE.
19582
9b69cf83
BS
195832011-04-04 Bernd Schmidt <bernds@codesourcery.com>
19584
19585 PR bootstrap/48403
19586 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
19587 (rank_for_schedule): Use scheduled_insns vector instead of
19588 last_scheduled_insn.
19589 (ok_for_early_queue_removal): Likewise.
19590 (queue_to_ready): Search forward in nonscheduled_insns_begin if
19591 we have a dbg_cnt.
19592 (choose_ready): Likewise.
19593 (commit_schedule): Use VEC_iterate.
19594 (schedule_block): Initialize nonscheduled_insns_begin. If we have
19595 a dbg_cnt, use it and ensure the first insn is in the ready list.
19596 (haifa_sched_init): Allocate scheduled_insns.
19597 (sched_extend_ready_list): Don't allocate it; reserve space.
19598 (haifa_sched_finish): Free it.
19599
24f48c2f
JM
196002011-04-04 Joseph Myers <joseph@codesourcery.com>
19601
19602 * optc-gen.awk: Always remove type from Variable entry before
19603 recording in var_seen.
19604
8effe856
EB
196052011-04-04 Eric Botcazou <ebotcazou@adacore.com>
19606
19607 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
19608 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
19609 call to tidy_fallthru_edges.
19610
413519ae
JM
196112011-04-04 Joseph Myers <joseph@codesourcery.com>
19612
19613 * doc/options.texi (ToLower): Document.
3729983c 19614 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
19615 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
19616 * opts.h (cl_option): Add cl_tolower field.
19617 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
19618 arguments with lowercase strings.
19619 * config/rx/rx.opt (mcpu=): Add ToLower.
19620 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
19621 argument.
19622
7d34a1b0
RS
196232011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
19624
19625 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
19626
c30e7434
RS
196272011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
19628
19629 * config/vax/vax.c: Include reload.h.
19630
112a861d
AS
196312011-04-04 Anatoly Sokolov <aesok@post.ru>
19632
19633 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
19634 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19635 (sparc_preferred_reload_class): New function.
19636
e8c6bb74
JJ
196372011-04-04 Jakub Jelinek <jakub@redhat.com>
19638
2aeaa366 19639 PR debug/48401
e8c6bb74
JJ
19640 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19641 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
19642
2c081caf
NF
196432011-04-03 Nathan Froyd <froydnj@codesourcery.com>
19644
19645 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
19646 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
19647
53802f27
AS
196482011-04-03 Anatoly Sokolov <aesok@post.ru>
19649
19650 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
19651 (ASM_OUTPUT_ALIGNED_BSS): Define.
19652
e89964e3
MM
196532011-04-03 Michael Matz <matz@suse.de>
19654
19655 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
19656 and next_slot members.
19657 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
19658 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
19659 (lto_streamer_cache_append): Declare.
19660 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
19661 unsigned index, remove offset parameter, ensure that we append
19662 or update existing entries.
19663 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
19664 parameter, update next_slot for append.
19665 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
19666 parameter.
19667 (lto_streamer_cache_insert_at): Likewise.
19668 (lto_streamer_cache_append): New function.
19669 (lto_streamer_cache_lookup): Use unsigned index.
19670 (lto_streamer_cache_get): Likewise.
19671 (lto_record_common_node): Don't test tree_node_can_be_shared.
19672 (preload_common_node): Adjust call to lto_streamer_cache_insert.
19673 (lto_streamer_cache_delete): Don't free offsets member.
19674 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
19675 (lto_output_string_with_length): Use lto_output_data_stream.
19676 (lto_output_tree_header): Remove ix parameter, don't write it.
19677 (lto_output_builtin_tree): Likewise.
19678 (lto_write_tree): Adjust callers to above, don't track and write
19679 offset, write unsigned index.
19680 (output_unreferenced_globals): Don't emit all global vars.
19681 (write_global_references): Use unsigned indices.
19682 (lto_output_decl_state_refs): Likewise.
19683 (write_symbol): Likewise.
19684 * lto-streamer-in.c (lto_input_chain): Move earlier.
19685 (input_function): Use unsigned index.
19686 (input_alias_pairs): Don't read and then ignore all global vars.
19687 (lto_materialize_tree): Remove ix_p parameter, don't read index,
19688 don't pass it back, use lto_streamer_cache_append.
19689 (lto_register_var_decl_in_symtab): Use unsigned index.
19690 (lto_register_function_decl_in_symtab): Likewise.
19691 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
19692 index.
19693 (lto_get_builtin_tree): Don't read index, use
19694 lto_streamer_cache_append.
19695 (lto_read_tree): Adjust call to lto_materialize_tree.
19696
19697 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
19698 don't use function calls in arguments to MIN.
19699
19700 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
19701 twice.
19702
19703 * gimple.c (gimple_type_leader_entry): Mark deletable.
19704
b9a5b5b2
AM
197052011-04-03 Alan Modra <amodra@gmail.com>
19706
19707 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
19708
ac6a641b
MM
197092011-04-03 Michael Matz <matz@suse.de>
19710
19711 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
19712 an integer.
19713 * tree.h (tree_decl_non_common.vindex): Adjust comment.
19714
0038d4e0
MM
197152011-04-03 Michael Matz <matz@suse.de>
19716
e9c18386 19717 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
19718 * gimple-fold.c (canonicalize_constructor_val): Accept being called
19719 without function context.
19720 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
19721 current_function_decl and cfun.
19722
91f2fae8
MM
197232011-04-03 Michael Matz <matz@suse.de>
19724
19725 * tree.c (decl_init_priority_insert): Don't create entry for
19726 default priority.
19727 (decl_fini_priority_insert): Ditto.
19728 (fields_compatible_p, find_compatible_field): Remove.
19729 * tree.h (fields_compatible_p, find_compatible_field): Remove.
19730 * gimple.c (gimple_compare_field_offset): Adjust block comment.
19731
da29e070
EB
197322011-04-03 Eric Botcazou <ebotcazou@adacore.com>
19733
19734 * combine.c (try_combine): Remove useless local variable.
19735
4979c28b 197362011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 19737 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
19738
19739 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
19740 non-variable offsets and compare the remaining bases of the two
19741 accesses instead of looking for exact same data-ref.
19742
b4ddcaee
KT
197432011-04-02 Kai Tietz <ktietz@redhat.com>
19744
f90298e1
KT
19745 PR target/48416
19746 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
19747
b4ddcaee
KT
19748 * i386.c (ix86_is_msabi_thiscall): New helper function.
19749 (ix86_is_type_thiscall): New helper function.
19750 (ix86_comp_type_attributes): Handle thiscall for method-functions
19751 special.
19752 (init_cumulative_args): Likewise.
19753 (find_drap_reg): Likewise.
19754 (ix86_static_chain): Likewise.
19755 (x86_this_parameter): Likewise.
19756 (x86_output_mi_thunk): Likewise.
19757
2a9d769a 197582011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
19759 Nicolas Setton <setton@adacore.com>
19760 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
19761
19762 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
19763 (add_gnat_descriptive_type_attribute): New function.
19764 (gen_array_type_die): Call it.
19765 (gen_enumeration_type_die): Likewise.
19766 (gen_struct_or_union_type_die): Likewise.
19767 (modified_type_die): Likewise.
19768 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
19769 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
19770 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
19771
15a03a11
JJ
197722011-04-01 Jakub Jelinek <jakub@redhat.com>
19773
19774 PR bootstrap/48148
19775 * dwarf2out.c (resolve_addr): Don't call force_decl_die
19776 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
19777
19778 Revert:
19779 2011-03-17 Richard Guenther <rguenther@suse.de>
19780
19781 PR bootstrap/48148
19782 * lto-cgraph.c (input_overwrite_node): Clear the abstract
19783 origin for decls in other ltrans units.
19784 (input_varpool_node): Likewise.
19785
19228b93
JJ
197862011-04-01 Jakub Jelinek <jakub@redhat.com>
19787
19788 PR middle-end/48335
19789 * expr.c (expand_assignment): Handle all possibilities
19790 if TO_RTX is CONCAT.
e9c18386 19791 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
19792 (store_split_bit_field): If SUBREG_REG (op0) or
19793 op0 itself has smaller mode than word, return it
19794 for offset 0 and const0_rtx for out-of-bounds stores.
19795 If word is const0_rtx, skip it.
19796
88cb339e
N
197972011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
19798
19799 * config/h8300/h8300.c (print_operand_address): Rename to...
19800 (h8300_print_operand_address): ...this. Make static. Adjust comments.
19801 Call h8300_print_operand and h8300_print_operand_address instead of
19802 print_operand and print_operand_address. Declare.
19803 (print_operand): Renake to...
19804 (h8300_print_operand): ...this. Make static. Adjust comments.
19805 Call h8300_print_operand instead of print_operand. Declare.
19806 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
19807 (h8300_register_move_cost): Likewise.
19808 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
19809 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
19810 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
19811 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
19812 * config/h8300/h8300-protos.h (print_operand): Delete.
19813 (print_operand_address): Delete.
19814
756d6ee9
RH
198152011-04-01 Richard Henderson <rth@redhat.com>
19816
19817 PR 48400
19818 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
19819 in strict mode before dwarf4. Re-order tests to early out
19820 before switching sections.
19821
ceaaaeab
NF
198222011-04-01 Nathan Froyd <froydnj@codesourcery.com>
19823
19824 * config/h8300/constraints.md: New file.
19825 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
19826 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
19827 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
19828 * config/h8300/predicates.md (bit_operand): Likewise.
19829 (incdec_operand): Use satisfies_constraint_M and
19830 satisfies_constraint_O. Don't use C code block.
19831 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
19832 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
19833 (compute_mov_length): Use satisfies_constraint_G.
19834 (fix_bit_operand): Use satisfies_constraint_U.
19835 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
19836 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
19837 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
19838 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
19839 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
19840 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
19841 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19842 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
19843 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
19844 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
19845 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
19846 (EXTRA_MEMORY_CONSTRAINT): Delete.
19847
08ae38e0
AP
198482011-04-01 Andrew Pinski <pinskia@gmail.com>
19849 Michael Meissner <meissner@linux.vnet.ibm.com>
19850
19851 PR target/48262
19852 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
19853 operands, as per the specifications.
19854
19855 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
19856 (vec_extract_evenv4sf): Ditto.
19857 (vec_extract_evenv8hi): Ditto.
19858 (vec_extract_evenv16qi): Ditto.
19859 (vec_extract_oddv4si): Ditto.
19860
bdb0b0f6
MW
198612011-03-31 Mark Wielaard <mjw@redhat.com>
19862
19863 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
19864 high_pc attribute if the CU has no associated code. Only output
19865 DW_AT_entry_pc for CU if not generating strict dwarf and
19866 dwarf_version < 4.
19867
722279e4
BS
198682011-04-01 Bernd Schmidt <bernds@codesourcery.com>
19869
19870 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
19871 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
19872 out of ...
19873 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
19874 * final.c (final_start_function): Call the new function rather
19875 than using a NULL argument for dwarf2out_frame_debug.
19876
c5dd277d
BS
19877 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
19878 that contains the prologue.
19879
ec4efea9
BS
19880 * haifa-sched.c (queue_insn): New arg REASON. All callers
19881 changed. Print it in debugging output.
19882
2a6a0d80
BS
19883 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
19884
86014d07
BS
19885 * sched-ebb.c (begin_schedule_ready): Remove second argument.
19886 Split most of the code into...
19887 (begin_move_insn): ... here. New function.
19888 (ebb_sched_info): Add a pointer to it.
19889 * haifa-sched.c (scheduled_insns): New static variable.
19890 (sched_extend_ready_list): Allocate it.
19891 (schedule_block): Use it to record the order of scheduled insns.
19892 Perform RTL changes to move insns only after all scheduling
19893 decisions have been made.
19894 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
19895 begin_move_insn field.
19896 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
19897 * sched-int.h (struct haifa_sched_info): Remove second argument
19898 from begin_schedule_ready hook. Add new member begin_move_insn.
19899 * sched-rgn.c (begin_schedule_ready): Remove second argument.
19900 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
19901
9d701248
BS
19902 * haifa-sched.c (prune_ready_list): New function, broken out of
19903 schedule_block.
19904 (schedule_block): Use it.
19905
1ca1dad5
UW
199062011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19907
19908 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
19909
49568e45
KT
199102011-04-01 Kai Tietz <ktietz@redhat.com>
19911
19912 * config.gcc (*-*-mingw*): Allow as option the
19913 posix threading model.
07c0852e 19914 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
19915 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
19916 definition.
19917 (CPP_SPEC): Add pthread/no-pthread handling.
19918 (LIB_SPEC): Likewise.
19919 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
19920 (LIB_SPEC): Likewise.
19921 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
19922 flag to pass -pthread option for shared libgcc build.
19923 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
19924 for shared libgcc build.
19925 * config/i386/t-mingw-pthread: New file.
19926 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
19927 New define to enable use of library pthread by default.
19928 * config/i386/mingw.opt (pthread): New driver option.
19929 (no-pthread): New driver option.
e9c18386 19930 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
19931 * config/i386/mingw-w64.opt: Likewise.
19932
748f7574 199332011-04-01 Gary Funck <gary@intrepid.com>
636b4106
GF
19934
19935 * c-decl.c (grokdeclarator): Fix formatting.
19936
f04713ee
RS
199372011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19938
19939 * expr.c (emit_block_move_via_movmem): Use n_generator_args
19940 instead of n_operands.
19941 (set_storage_via_setmem): Likewise.
19942 * optabs.c (maybe_gen_insn): Likewise.
19943 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
19944 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
19945 (mips_expand_builtin_direct): Likewise.
19946 * config/spu/spu.c (expand_builtin_args): Likewise.
19947
b29387ee
RS
199482011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19949
19950 * recog.h (insn_data_d): Add n_generator_args.
19951 * genoutput.c (data): Likewise.
19952 (output_insn_data): Print it.
19953 (max_opno, num_dups): Delete.
19954 (scan_operands): Just fill in "d->operand[...]".
19955 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
19956
e792559a
RS
199572011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
19958
19959 * gensupport.h (pattern_stats): New structure.
19960 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
19961 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
19962 (max_operand_1, max_operand_vec): Delete.
19963 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
19964
e8110d6f
NF
199652011-03-31 Nathan Froyd <froydnj@codesourcery.com>
19966
19967 * emit-rtl.c (emit_pattern_after_setloc): New function.
19968 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
19969 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
19970 (emit_pattern_after): New function.
19971 (emit_insn_after, emit_jump_insn_after): Call it.
19972 (emit_call_insn_after, emit_debug_insn_after): Likewise.
19973 (emit_pattern_before_setloc): New function.
19974 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
19975 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
19976 Likewise.
19977 (emit_pattern_before): New function.
19978 (emit_insn_before, emit_jump_insn_before): Call it.
19979 (emit_call_insn_before, emit_debug_insn_before): Likewise.
19980
576f85f1
RH
199812011-03-31 Richard Henderson <rth@redhat.com>
19982
19983 * dwarf2out.c (dw_separate_line_info_ref): Remove.
19984 (dw_separate_line_info_entry): Remove.
19985 (enum dw_line_info_opcode): New.
19986 (dw_line_info_entry): Use it.
19987 (dw_line_info_table, dw_line_info_table_p): New.
19988 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
19989 (line_info_table, line_info_label_num): Remove.
19990 (line_info_table_in_use): Remove.
19991 (separate_line_info_table): Remove.
19992 (separate_line_info_table_allocated): Remove.
19993 (separate_line_info_table_in_use): Remove.
19994 (LINE_INFO_TABLE_INCREMENT): Remove.
19995 (line_info_label_num): New.
19996 (cur_line_info_table): New.
19997 (text_section_line_info, cold_text_section_line_info): New.
19998 (separate_line_info): New.
19999 (SEPARATE_LINE_CODE_LABEL): Remove.
20000 (print_dwarf_line_table): Remove.
20001 (debug_dwarf): Don't dump it.
20002 (output_one_line_info_table): New.
20003 (output_line_info): Use it.
20004 (new_line_info_table): New.
20005 (set_cur_line_info_table): New.
20006 (dwarf2out_switch_text_section): Use it.
20007 (dwarf2out_begin_function): Likewise.
20008 (push_dw_line_info_entry): New.
20009 (dwarf2out_source_line): Rewrite for new line info tables.
20010 (dwarf2out_init): Remove dead initailizations.
20011
300d83d9
JM
200122011-03-31 Joseph Myers <joseph@codesourcery.com>
20013
20014 * opts.h (cl_option): Add comments to fields. Add bit-fields for
20015 various flags.
20016 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
20017 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
20018 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
20019 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
20020 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
20021 * opt-functions.awk (flag_init, switch_bit_fields): New.
20022 (switch_flags): Don't handle flags moved to bit-fields. Don't
20023 generate CL_MISSING_OK or CL_SAVE.
20024 * optc-gen.awk: Update to generate bit-field output as well as
20025 flags field.
20026 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
20027 bit-field instead of CL_REJECT_DRIVER flag.
20028 * opts-common.c (generate_canonical_option,
20029 decode_cmdline_option): Use bit-fields instead of CL_* flags.
20030 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
20031 instead of CL_REJECT_NEGATIVE flag.
20032 * toplev.c (print_switch_values): Use cl_report bit-field instead
20033 of CL_REPORT flag.
20034
d4d73ce2
EB
200352011-03-31 Eric Botcazou <ebotcazou@adacore.com>
20036
20037 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
20038 a zero minimum index only if it is redundant.
20039
b8faca75
VM
200402011-03-31 Vladimir Makarov <vmakarov@redhat.com>
20041
20042 PR rtl-optimization/48381
20043 * ira-color.c (assign_hard_reg): Use hard reg set intersection
20044 instead of ira_class_hard_reg_index for calculating conflicting
20045 hard registers.
20046
7d11cebe
SB
200472011-03-31 Steven Bosscher <steven@gcc.gnu.org>
20048
20049 * cprop.c: Clean up hash table building.
20050 (reg_avail_info): Remove.
20051 (oprs_available_p): Remove.
20052 (record_last_reg_set_info): Remove.
20053 (record_last_set_info): Remove.
20054 (reg_available_p): New function.
20055 (gcse_constant_p): Do not treat unfolded conditions as constants.
20056 (make_set_regs_unavailable): New function.
20057 (hash_scan_set): Simplify with new reg_available_p.
20058 (compute_hash_table_work): Traverse insns stream only once.
20059 Do not compute reg_avail_info. Traverse insns in reverse order.
20060 Record implicit sets after recording explicit sets from the block.
20061
98faf84f
MM
200622011-03-31 Michael Matz <matz@suse.de>
20063
e9c18386 20064 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 20065
f52d97da
AS
200662011-03-31 Anatoly Sokolov <aesok@post.ru>
20067
20068 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
20069 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
20070 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20071 (h8300_mode_dependent_address_p): New function.
20072 (h8300_get_index): Make static.
20073
e16b6fd0
JL
200742011-03-31 Jeff Law <law@redhat.com>
20075
10c51983
JL
20076 * reload1.c (elimination_effects): Fix typo in recent change.
20077
e9c18386 20078 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
20079 typo potentially leading to null pointer dereference.
20080
20081 * caller-save.c (new_saved_hard_reg): Eliminate return value.
20082 (setup_save_areas): Corresponding changes to avoid useless
20083 assignments.
20084
20085 * jump.c (reversed_comparison_code_parts): Avoid successive return
20086 statements when REVERSE_CONDITION is defined.
20087
20088 * expr.c (expand_assignment): Avoid useless assignments.
20089 (expand_expr_real_1): Likewise.
20090 (expand_expr_real_2): Avoid useless statements.
20091
20092 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
20093
20094 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
20095
20096 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
20097 statements.
20098
20099 * stmt.c (expand_expr_stmt): Avoid useless assignment.
20100
eb1eb914
JM
201012011-03-31 Joseph Myers <joseph@codesourcery.com>
20102
20103 PR target/47109
20104 * doc/tm.texi.in (TARGET_VERSION): Remove.
20105 * doc/tm.texi: Regenerate.
20106 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
20107 * collect2.c (main): Don't use TARGET_VERSION.
20108 * mips-tdump.c (main): Don't use TARGET_VERSION.
20109 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 20110 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
20111 * config/rs6000/vxworksae.h: Remove.
20112 * config/alpha/alpha.h (TARGET_VERSION): Remove.
20113 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
20114 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
20115 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
20116 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
20117 * config/arm/arm.h (TARGET_VERSION): Remove.
20118 * config/arm/coff.h (TARGET_VERSION): Remove.
20119 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
20120 * config/arm/elf.h (TARGET_VERSION): Remove.
20121 * config/arm/freebsd.h (TARGET_VERSION): Remove.
20122 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
20123 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
20124 * config/arm/pe.h (TARGET_VERSION): Remove.
20125 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
20126 * config/arm/semi.h (TARGET_VERSION): Remove.
20127 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
20128 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
20129 * config/arm/vxworks.h (TARGET_VERSION): Remove.
20130 * config/avr/avr.h (TARGET_VERSION): Remove.
20131 * config/bfin/bfin.h (TARGET_VERSION): Remove.
20132 * config/fr30/fr30.h (TARGET_VERSION): Remove.
20133 * config/frv/frv.h (TARGET_VERSION): Remove.
20134 * config/h8300/h8300.h (TARGET_VERSION): Remove.
20135 * config/i386/cygwin.h (TARGET_VERSION): Remove.
20136 * config/i386/darwin.h (TARGET_VERSION): Remove.
20137 * config/i386/darwin64.h (TARGET_VERSION): Remove.
20138 * config/i386/djgpp.h (TARGET_VERSION): Remove.
20139 * config/i386/freebsd.h (TARGET_VERSION): Remove.
20140 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
20141 * config/i386/gnu.h (TARGET_VERSION): Remove.
20142 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
20143 * config/i386/i386elf.h (TARGET_VERSION): Remove.
20144 * config/i386/linux.h (TARGET_VERSION): Remove.
20145 * config/i386/linux64.h (TARGET_VERSION): Remove.
20146 * config/i386/lynx.h (TARGET_VERSION): Remove.
20147 * config/i386/mingw32.h (TARGET_VERSION): Remove.
20148 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
20149 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
20150 * config/i386/netware.h (TARGET_VERSION): Remove.
20151 * config/i386/nto.h (TARGET_VERSION): Remove.
20152 * config/i386/openbsd.h (TARGET_VERSION): Remove.
20153 * config/i386/vxworks.h (TARGET_VERSION): Remove.
20154 * config/ia64/elf.h (TARGET_VERSION): Remove.
20155 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
20156 * config/ia64/hpux.h (TARGET_VERSION): Remove.
20157 * config/ia64/linux.h (TARGET_VERSION): Remove.
20158 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
20159 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
20160 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
20161 * config/lm32/lm32.h (TARGET_VERSION): Remove.
20162 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
20163 * config/m32c/m32c.h (TARGET_VERSION): Remove.
20164 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
20165 * config/m32r/m32r.h (TARGET_VERSION): Remove.
20166 * config/m68k/linux.h (TARGET_VERSION): Remove.
20167 * config/m68k/m68k.h (TARGET_VERSION): Remove.
20168 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
20169 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
20170 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
20171 * config/mep/mep.h (TARGET_VERSION): Remove.
20172 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
20173 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
20174 * config/mips/iris6.h (MACHINE_TYPE): Remove.
20175 * config/mips/linux.h (TARGET_VERSION): Remove.
20176 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
20177 * config/mips/vxworks.h (TARGET_VERSION): Remove.
20178 * config/mmix/mmix.h (TARGET_VERSION): Remove.
20179 * config/mn10300/linux.h (TARGET_VERSION): Remove.
20180 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
20181 * config/pa/pa.h (TARGET_VERSION): Remove.
20182 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
20183 * config/picochip/picochip.h (TARGET_VERSION): Remove.
20184 * config/rs6000/aix.h (TARGET_VERSION): Remove.
20185 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
20186 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
20187 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
20188 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
20189 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
20190 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
20191 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
20192 * config/rs6000/linux.h (TARGET_VERSION): Remove.
20193 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
20194 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
20195 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
20196 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
20197 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
20198 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
20199 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
20200 * config/s390/linux.h (TARGET_VERSION): Remove.
20201 * config/s390/s390.h (TARGET_VERSION): Remove.
20202 * config/s390/tpf.h (TARGET_VERSION): Remove.
20203 * config/score/score.h (TARGET_VERSION): Remove.
20204 * config/sh/linux.h (TARGET_VERSION): Remove.
20205 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
20206 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
20207 * config/sh/sh.h (TARGET_VERSION): Remove.
20208 * config/sh/sh64.h (TARGET_VERSION): Remove.
20209 * config/sh/superh.h (TARGET_VERSION): Remove.
20210 * config/sh/vxworks.h (TARGET_VERSION): Remove.
20211 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
20212 * config/sparc/linux.h (TARGET_VERSION): Remove.
20213 * config/sparc/linux64.h (TARGET_VERSION): Remove.
20214 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
20215 TARGET_NAME32, TARGET_NAME): Remove.
20216 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
20217 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
20218 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
20219 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
20220 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
20221 * config/spu/spu.h (TARGET_VERSION): Remove.
20222 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
20223 * config/v850/v850.h (TARGET_VERSION): Remove.
20224 * config/vax/linux.h (TARGET_VERSION): Remove.
20225 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
20226 * config/xtensa/elf.h (TARGET_VERSION): Remove.
20227 * config/xtensa/linux.h (TARGET_VERSION): Remove.
20228
ace31bca
EB
202292011-03-31 Eric Botcazou <ebotcazou@adacore.com>
20230
20231 PR target/48142
20232 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
20233 frame-related from frame-unrelated adjustments to the stack pointer.
20234
76f9db36
JJ
202352011-03-31 Jakub Jelinek <jakub@redhat.com>
20236
20237 * common.opt (fdebug-types-section): Move earlier.
20238 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
20239
b7826465
AT
202402011-03-31 Andreas Tobler <andreast@fgznet.ch>
20241
20242 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
20243 var.
20244
1290e54c
NF
202452011-03-30 Nathan Froyd <froydnj@codesourcery.com>
20246
20247 * tree.h (CASE_CHAIN): Define.
20248 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
20249 (gimple_redirect_edge_and_branch): Likewise.
20250
bddc98e1
VM
202512011-03-30 Vladimir Makarov <vmakarov@redhat.com>
20252
20253 PR middle-end/48367
20254 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
20255 calculation.
20256
c865e437
JL
202572011-03-30 Jeff Law <law@redhat.com>
20258
b3750213 20259 * PR bootstrap/48371
c865e437
JL
20260 * reload1.c (reload): Fix botch in last change.
20261
20262 * reload.h (struct reload): Fix typo introduced in last change.
20263
2cdf9574
JM
202642011-03-30 Joseph Myers <joseph@codesourcery.com>
20265
20266 * config/arm/arm.opt (mhard-float, msoft-float): Mark
20267 Undocumented. Remove help text.
20268 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
20269 -mhard-float.
20270
666a21a2
JM
202712011-03-30 Joseph Myers <joseph@codesourcery.com>
20272
20273 * doc/options.texi (NegativeAlias): Document.
20274 (Alias): Mention NegativeAlias.
20275 * opt-functions.awk: Handle NegativeAlias.
e9c18386 20276 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
20277 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
20278 * opts.h (CL_NEGATIVE_ALIAS): Define.
20279 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
20280 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
20281 OPT_mspe_.
20282 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
20283 Alias entries.
20284 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
20285 mno-spe and mno-isel instead of mspe=no and -misel=no.
20286
0fa4e351
MW
202872011-03-29 Mark Wielaard <mjw@redhat.com>
20288
20289 * common.opt (fdebug-types-section): New flag.
20290 * doc/invoke.texi: Document new -fno-debug-types-section flag.
20291 * dwarf2out.c (use_debug_types): New define.
20292 (struct die_struct): Mark die_id with GTY desc use_debug_types.
20293 (print_die): Guard output of type unit signatures using
20294 use_debug_types.
20295 (build_abbrev_table): Replace assert of dwarf_version >= 4
20296 with assert on use_debug_types.
20297 (size_of_die): Likewise.
20298 (unmark_dies): Likewise.
20299 (value_format): Decide AT_ref_external form on use_debug_types.
20300 (output_die): Replace dwarf_version version check guard with
20301 use_debug_types where appropriate.
20302 (modified_type_die): Likewise.
20303 (gen_reference_type_die): Likewise.
20304 (dwarf2out_start_source_file): Likewise.
20305 (dwarf2out_end_source_file): Likewise.
20306 (prune_unused_types_walk_attribs): Likewise.
20307 (dwarf2out_finish): Likewise.
20308
4648deb4
VM
203092011-03-30 Vladimir Makarov <vmakarov@redhat.com>
20310
20311 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
20312
4f431835
RS
203132011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
20314
20315 PR rtl-optimization/48332
20316 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
20317 mode of input operand N and modeN to its actual mode.
20318
f2034d06
JL
203192011-03-30 Jeff Law <law@redhat.com>
20320
20321 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
20322 define accessor macro.
20323 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
20324 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
20325 (reg_equiv_init): Likewise.
20326 (reg_equivs_size): New variable.
20327 (reg_equiv_init_size): Remove.
20328 (allocate_initial_values): Move prototype to here from....
20329 * integrate.h (allocate_initial_values): Remove prototype.
20330 * integrate.c: Include reload.h.
20331 (allocate_initial_values): Corresponding changes.
20332 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
20333 (fix_reg_equiv_init, no_equiv): Corresponding changes.
20334 (update_equiv_regs): Corresponding changes.
20335 (ira): Corresponding changes.
20336 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
20337 (push_secondary_reload): Corresponding changes.
20338 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
20339 (make_memloc, find_reloads_address): Corresponding changes.
20340 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
20341 (find_reloads_address_1): Corresponding changes.
20342 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
20343 (refers_to_regno_for_reload_p): Corresponding changes.
20344 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
20345 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
20346 * reload1.c: Include ggc.h.
20347 (grow_reg_equivs): New function.
20348 (replace_pseudos_in, reload): Corresponding changes.
20349 (calculate_needs_all_insns, alter_regs): Corresponding changes.
20350 (eliminate_regs_1, elimination_effects): Corresponding changes.
20351 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
20352 (delete_output_reload): Likewise.
20353 * caller-save.c (mark_referenced_regs): Corresponding changes.
20354 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
20355 * frv/predicates.md (frv_load_operand): Corresponding changes.
20356 * microblaze/microblaze.c (double_memory_operand): Corresponding
20357 changes.
20358 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
20359 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 20360 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
20361 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
20362 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
20363 changes.
20364 * pa/pa.c (emit_move_sequence): Corresponding changes.
20365 * vax/vax.c (nonindexed_address_p): Corresponding changes.
20366
159b81b0
RS
203672011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
20368
20369 PR target/47551
20370 * config/arm/arm.c (coproc_secondary_reload_class): Handle
20371 structure modes. Don't check neon_vector_mem_operand for
20372 vector or structure modes.
20373
a6217191
RS
203742011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
20375 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
20376
20377 PR target/43590
20378 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
20379 operand 1 and reshuffle the operands to match.
20380 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
20381
bd837408
CS
203822011-03-30 Christian Schüler <cschueler@gmx.de>
20383
6955d771 20384 PR driver/48208
bd837408 20385 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 20386
6955d771 20387 PR driver/48260
bd837408
CS
20388 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
20389 handler function.
20390 * config/darwin.opt: Added '-arch' option.
20391
e9c0470a
NC
203922011-03-30 Nick Clifton <nickc@redhat.com>
20393
20394 * config/rx/rx.md: Add peepholes and patterns to combine
20395 extending loads and simple arithmetic instructions.
20396 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
20397 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
20398 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 20399 modes to use pre-decrement and post-increment addressing.
e9c18386 20400 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 20401 addresses.
e9c18386
UB
20402 (rx_print_operand): Add support for %Q. Fix handling of %Q.
20403 (rx_memory_move_cost): Adjust cost of stores.
20404 (rx_adjust_insn_length): New function.
e9c0470a 20405
8a87e7ab
JJ
204062011-03-30 Jakub Jelinek <jakub@redhat.com>
20407
20408 PR c/48305
20409 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20410 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
20411 matching arg00/arg01 types.
20412
12486e03
EB
204132011-03-30 Eric Botcazou <ebotcazou@adacore.com>
20414
20415 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
20416 last_location to UNKNOWN_LOCATION.
20417
0b99eef6
L
204182011-03-30 H.J. Lu <hongjiu.lu@intel.com>
20419
20420 PR target/48349
20421 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
20422 FLOAT_SSE_REGS.
20423
023592aa
JM
204242011-03-30 Joseph Myers <joseph@codesourcery.com>
20425 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20426
20427 PR bootstrap/48337
20428 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
20429 Init(PROCESSOR_V7).
20430 (sparc_cpu): Likewise.
20431 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
20432 PROCESSOR_V7.
20433
ad3b266b
VM
204342011-03-29 Vladimir Makarov <vmakarov@redhat.com>
20435
20436 PR target/48336
20437 PR middle-end/48342
20438 PR rtl-optimization/48345
20439 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
20440 hard regs for given mode from profitable regs when doing secondary
20441 allocation.
20442
633c9126
JL
204432011-03-29 Jeff Law <law@redhat.com>
20444
20445 PR bootstrap/48327
20446 * tree-ssa-threadupdate.c (struct redirection_data): Remove
20447 do_not_duplicate field.
20448 (lookup_redirection_data): Corresponding changes.
20449 (create_duplicates): Always create a template block.
20450 (redirect_edges): Remove code which reused the original block
20451 when it was going to become unreachable code.
20452 (thread_block): Don't set do_not_duplicate field.
20453
eb50f63a
JM
204542011-03-29 Joseph Myers <joseph@codesourcery.com>
20455
20456 * lto-opts.c (register_user_option_p, lto_register_user_option):
20457 Make type argument unsigned.
20458 * lto-streamer.h (lto_register_user_option): Make type argument
20459 unsigned.
20460 * opth-gen.awk: Make CL_* macros unsigned.
20461 * opts-common.c (find_opt): Make lang_mask argument unsigned.
20462 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
20463 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
20464 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
20465 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
20466 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
20467 (find_opt): Make lang_mask argument unsigned.
20468
76763a6d
VM
204692011-03-29 Vladimir Makarov <vmakarov@redhat.com>
20470
20471 PR rtl-optimization/48331
20472 PR rtl-optimization/48334
20473 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
20474 for any used algorithm.
20475
5c82436e
VM
204762011-03-29 Vladimir Makarov <vmakarov@redhat.com>
20477
20478 * ira-conflicts.c (build_object_conflicts): Add unused attribute
20479 to parent_max.
20480
7a81008b
UB
204812011-03-29 Uros Bizjak <ubizjak@gmail.com>
20482
20483 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
20484 (alpha_option_override): Don't set alpha_sr_alias_set.
20485 (emit_frame_store_1): Use gen_frame_mem rather than calling
20486 set_mem_alias_set.
20487 (alpha_expand_epilogue): Ditto.
20488
86c8d1f6
IR
204892011-03-29 Ira Rosen <ira.rosen@linaro.org>
20490
20491 PR tree-optimization/48290
20492 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
20493 vectorization, check that relevant phis in the basic block after
20494 the inner loop are really inner loop's exit phis.
20495
0d12220f
RS
204962011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
20497
e8cf17e7 20498 PR debug/48190
0d12220f
RS
20499 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
20500 (cached_dw_loc_list_def): New structure.
20501 (cached_dw_loc_list): New typedef.
20502 (cached_dw_loc_list_table): New variable.
20503 (cached_dw_loc_list_table_hash): New function.
20504 (cached_dw_loc_list_table_eq): Likewise.
20505 (add_location_or_const_value_attribute): Take a bool cache_p.
20506 Cache the list when the parameter is true.
20507 (gen_formal_parameter_die): Update caller.
20508 (gen_variable_die): Likewise.
20509 (dwarf2out_finish): Likewise.
20510 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
20511 while generating debug info for the decl.
20512 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
20513 (dwarf2out_init): Initialize cached_dw_loc_list_table.
20514 (resolve_addr): Cache the result of resolving a chain of
20515 location lists.
20516
1756cb66
VM
205172011-03-28 Vladimir Makarov <vmakarov@redhat.com>
20518
20519 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
20520 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 20521
1756cb66
VM
20522 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
20523 after regstat_init_n_sets_and_refs.
20524
20525 * ira.c: Add more comments at the top.
20526 (setup_stack_reg_pressure_class, setup_pressure_classes):
20527 Add comments how we compute the register pressure classes.
20528 (setup_allocno_and_important_classes): Add more comments.
20529 (setup_class_translate_array, reorder_important_classes)
20530 (setup_reg_class_relations): Add comments.
20531
20532 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
20533 start of the file.
20534
20535 * ira-color.c: Add 2011 to the Copyright line.
20536 (assign_hard_reg): Add more comments.
20537 (improve_allocation): Ditto.
20538
20539 * ira-costs.c: Add 2011 to the Copyright line.
20540 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
20541 comments.
20542 (setup_regno_cost_classes_by_mode): Ditto.
20543
20544 Initial patches from ira-improv branch:
20545
20546 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
20547
f60c2554 20548 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
20549 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
20550 (ira_create_allocno): Remove initialization of
20551 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
20552 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
20553 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20554 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
20555 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
20556 Initialize ALLOCNO_ADD_DATA.
20557 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
20558 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
20559 ALLOCNO_REG.
20560 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
20561 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
20562
20563 * ira.c (ira_reallocate): Remove.
20564 (setup_pressure_classes): Call
20565 ira_init_register_move_cost_if_necessary. Use
20566 ira_register_move_cost instead of ira_get_register_move_cost.
20567 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
20568 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
20569
20570 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
20571 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20572 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
20573 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
20574 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
20575 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
20576 Fix formatting.
7a81008b 20577 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
20578 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20579 (struct allocno_color_data): New.
20580 (allocno_color_data_t): New typedef.
20581 (allocno_color_data): New definition.
20582 (ALLOCNO_COLOR_DATA): New macro.
20583 (struct object_color_data): New.
20584 (object_color_data_t): New typedef.
20585 (object_color_data): New definition.
20586 (OBJECT_COLOR_DATA): New macro.
20587 (update_copy_costs, calculate_allocno_spill_cost): Call
20588 ira_init_register_move_cost_if_necessary. Use
20589 ira_register_move_cost instead of ira_get_register_move_cost.
20590 (move_spill_restore, update_curr_costs): Ditto.
20591 (allocno_spill_priority): Make it inline.
7a81008b 20592 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
20593 (struct coalesce_data, coalesce_data_t): New.
20594 (allocno_coalesce_data): New definition.
20595 (ALLOCNO_COALESCE_DATA): New macro.
20596 (merge_allocnos, coalesced_allocno_conflict_p): Use
20597 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
20598 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
20599 (coalesce_allocnos): Ditto.
20600 (setup_coalesced_allocno_costs_and_nums): Ditto.
20601 (collect_spilled_coalesced_allocnos): Ditto.
20602 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
20603 (setup_slot_coalesced_allocno_live_ranges): Ditto.
20604 (coalesce_spill_slots): Ditto.
20605 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
20606 free allocno_coalesce_data.
20607
20608 * ira-conflicts.c: Fix formatting.
20609 (process_regs_for_copy): Call
20610 ira_init_register_move_cost_if_necessary. Use
20611 ira_register_move_cost instead of ira_get_register_move_cost.
20612 (build_object_conflicts): Optimize.
20613
20614 * ira-costs.c (record_reg_classes): Optimize. Call
20615 ira_init_register_move_cost_if_necessary. Use
20616 ira_register_move_cost, ira_may_move_in_cost, and
20617 ira_may_move_out_cost instead of ira_get_register_move_cost and
20618 ira_get_may_move_cost.
20619 (record_address_regs): Ditto.
20620 (scan_one_insn): Optimize.
20621 (find_costs_and_classes): Optimize.
20622 (process_bb_node_for_hard_reg_moves): Call
20623 ira_init_register_move_cost_if_necessary. Use
20624 ira_register_move_cost instead of ira_get_register_move_cost.
20625
20626 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
20627 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
20628 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
20629 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
20630 definitions.
20631 (ira_initiate_emit_data, ira_finish_emit_data)
20632 (create_new_allocno): New functions.
7a81008b 20633 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
20634 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
20635 Use ira_register_move_cost instead of ira_get_register_move_cost.
20636
20637 * ira-int.h: Fix some comments.
7a81008b
UB
20638 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
20639 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
20640 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
20641 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
20642 add_data.
20643 (struct ira_allocno): Make mode and aclass a bitfield. Move other
20644 bitfield after mode. Make hard_regno a short int. Make
20645 hard_regno short. Remove first_coalesced_allocno and
20646 next_coalesced_allocno. Move mem_optimized_dest_p,
20647 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
20648 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
20649 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
20650 temp, colorable_p. Add new member add_data.
20651 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
20652 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
20653 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
20654 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
20655 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
20656 (ALLOCNO_ADD_DATA): New macro.
20657 (ira_emit_data_t): New typedef.
20658 (struct ira_emit_data): New. Move mem_optimized_dest_p,
20659 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
20660 from struct ira_allocno.
20661 (ALLOCNO_EMIT_DATA): New macro.
20662 (ira_allocno_emit_data, allocno_emit_reg): New.
20663 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 20664 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
20665 (OBJECT_ADD_DATA): New macro.
20666 (ira_reallocate): Remove.
20667 (ira_initiate_emit_data, ira_finish_emit_data): New.
20668 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
20669 (ira_init_register_move_cost_if_necessary): New.
20670 (ira_object_conflict_iter_next): Merge into
20671 ira_object_conflict_iter_cond.
7a81008b 20672 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 20673
f60c2554 20674 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
20675 ira_init_register_move_cost_if_necessary. Use
20676 ira_register_move_cost instead of ira_get_register_move_cost.
20677
20678 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
20679
20680 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
20681
20682 * ira-costs.c: Fix formatting.
20683 (cost_classes, cost_classes_num): Remove.
20684 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
20685 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
20686 (cost_classes_del, cost_classes_htab): New.
20687 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
20688 (initiate_regno_cost_classes, setup_cost_classes): New.
20689 (setup_regno_cost_classes_by_aclass): New.
7a81008b 20690 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
20691 (record_reg_classes): Use regno_cost_classes instead of
20692 cost_classes. Move checking opposite operand up.
20693 (record_address_regs): Use regno_cost_classes
20694 instead of cost_classes.
20695 (scan_one_insn): Ditto. Use always general register.
20696 (print_allocno_costs): Use regno_cost_classes instead of
20697 cost_classes.
20698 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
20699 (find_costs_and_classes): Set up cost classes for each registers.
20700 Use also their mode for this. Use regno_cost_classes instead of
20701 cost_classes.
20702 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
20703 cost_classes.
20704 (free_ira_costs, ira_init_costs): Don't use cost_classes.
20705 (ira_costs, ira_set_pseudo_classes): Call
20706 initiate_regno_cost_classes and finish_regno_cost_classes.
20707
20708 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
20709
20710 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
20711
20712 * target.def (ira_cover_classes): Remove.
20713
7a81008b 20714 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
20715
20716 * doc/tm.texi.in: Ditto.
20717
20718 * ira-conflicts.c: Remove mentioning cover classes from the file.
20719 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 20720 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
20721
20722 * targhooks.c (default_ira_cover_classes): Remove.
20723
20724 * targhooks.h (default_ira_cover_classes): Ditto.
20725
20726 * haifa-sched.c: Remove mentioning cover classes from the file.
20727 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
20728 ira_pressure_classes and ira_pressure_classes_num instead of
20729 ira_reg_class_cover_size and ira_reg_class_cover. Use
20730 sched_regno_pressure_class instead of sched_regno_cover_class.
20731 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
20732 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20733
20734 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
20735 classes from the file.
20736 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
20737 (struct object_hard_regs, struct object_hard_regs_node): New.
20738 (struct ira_object): New members profitable_hard_regs,
20739 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
20740 (struct ira_allocno): Rename cover_class to aclass. Rename
20741 cover_class_cost and updated_cover_class_cost to class_cost and
20742 updated_class_cost. Remove splay_removed_p and
20743 left_conflict_size. Add new members colorable_p.
20744 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
20745 (ALLOCNO_COLORABLE_P): New macro.
20746 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
20747 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
20748 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
20749 (OBJECT_...): Rename parameter C to O.
20750 (OBJECT_PROFITABLE_HARD_REGS): New macro.
20751 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
20752 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
20753 (struct target_ira_int): New members x_ira_max_memory_move_cost,
20754 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
20755 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
20756 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
20757 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
20758 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
20759 x_ira_reg_class_subunion.
20760 (ira_max_memory_move_cost, ira_max_register_move_cost)
20761 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
20762 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
20763 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 20764 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
20765 (ira_reg_class_union): Rename to ira_reg_class_subunion.
20766 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20767 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20768 (ira_tune_allocno_costs_and_cover_classes): Rename to
20769 ira_tune_allocno_costs.
20770 (ira_debug_hard_regs_forest): New.
20771 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
20772 (ira_object_conflict_iter_next): Fix comments.
7a81008b 20773 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
20774 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
20775 cover_class to aclass.
20776 (ira_allocate_and_accumulate_costs): Ditto.
20777 (ira_allocate_and_set_or_copy_costs): Ditto.
20778
20779 * opts.c (decode_options): Remove ira_cover_class check.
20780
20781 * ira-color.c: Remove mentioning cover classes from the file. Use
20782 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
20783 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
20784 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
20785 (splay-tree.h): Remove include.
20786 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
20787 before copy_freq_compare_func.
20788 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
20789 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
20790 New definitions.
20791 (hard_regs_roots, hard_regs_node_vec): Ditto.
20792 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
20793 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
20794 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
20795 (create_new_object_hard_regs_node): Ditto.
20796 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 20797 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
20798 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
20799 Ditto.
20800 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
20801 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
20802 (remove_unused_object_hard_regs_nodes): Ditto.
20803 (enumerate_object_hard_regs_nodes): Ditto.
20804 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
20805 (object_hard_regs_subnode_t): Ditto.
20806 (struct object_hard_regs_subnode): Ditto.
20807 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
20808 (setup_object_hard_regs_subnode_index): Ditto.
20809 (get_object_hard_regs_subnodes_num): Ditto.
20810 (form_object_hard_regs_nodes_forest): Ditto.
20811 (finish_object_hard_regs_nodes_tree): Ditto.
20812 (finish_object_hard_regs_nodes_forest): Ditto.
20813 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 20814 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
20815 (pseudos_have_intersected_live_ranges_p): Rename to
20816 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
20817 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
20818 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
20819 (update_copy_costs): Remove assert. Skip cost update if the hard
20820 reg does not belong the class.
20821 (assign_hard_reg): Process only profitable hard regs.
20822 (uncolorable_allocnos_num): Make it scalar.
20823 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20824 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
20825 and ira_reg_class_max_nregs.
20826 (bucket_allocno_compare_func): Check frequency first.
20827 (sort_bucket): Add compare function as a parameter.
20828 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
20829 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
20830 (push_allocno_to_stack): Rewrite for checking new allocno
20831 colorability.
7a81008b 20832 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
20833 (push_only_colorable): Pass new parameter to sort_bucket.
20834 (push_allocno_to_spill): Remove.
20835 (allocno_spill_priority_compare): Make it inline and rewrite.
20836 (splay_tree_allocate, splay_tree_free): Remove.
20837 (allocno_spill_sort_compare): New function.
20838 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
20839 build and use splay tree. Choose first allocno in uncolorable
20840 allocno bucket to spill. Remove setting spill cost.
20841 (all_conflicting_hard_regs): Remove.
20842 (setup_allocno_available_regs_num): Check only profitable hard
20843 regs. Print info about hard regs nodes.
20844 (setup_allocno_left_conflicts_size): Remove.
20845 (put_allocno_into_bucket): Don't call
7a81008b 20846 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
20847 (improve_allocation): New.
20848 (color_allocnos): Call setup_profitable_hard_regs,
20849 form_object_hard_regs_nodes_forest, improve_allocation,
20850 finish_object_hard_regs_nodes_forest. Setup spill cost.
20851 (print_loop_title): Use pressure classes.
20852 (color_allocnso): Ditto.
20853 (do_coloring): Remove allocation and freeing splay_tree_node_pool
20854 and allocnos_for_spilling.
20855 (ira_sort_regnos_for_alter_reg): Don't setup members
20856 {first,next}_coalesced_allocno.
20857 (color): Remove allocating and freeing removed_splay_allocno_vec.
20858 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
20859 prohibited_class_mode_regs.
20860
20861 * ira-lives.c: Remove mentioning cover classes from the file. Fix
20862 formatting.
20863 (update_allocno_pressure_excess_length): Use pressure classes.
20864 (inc_register_pressure, dec_register_pressure): Check for pressure
20865 class.
20866 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
20867 pressure class. Use ira_reg_class_nregs instead of
20868 ira_reg_class_max_nregs.
20869 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
20870 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
20871 (single_reg_class): Use ira_reg_class_nregs instead of
20872 ira_reg_class_max_nregs.
20873 (process_bb_node_lives): Use pressure classes.
20874
20875 * ira-emit.c: Remove mentioning cover classes from the file. Use
20876 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
20877 (change_loop): Use pressure classes.
20878 (modify_move_list): Call ira_set_allocno_class instead of
20879 ira_set_allocno_cover_class.
20880
20881 * ira-build.c: Remove mentioning cover classes from the file. Use
20882 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
20883 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
20884 ALLOCNO_UPDATED_CLASS_COST instead of
20885 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
20886 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
20887 (ira_create_allocno): Remove initialization of
20888 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
20889 ALLOCNO_COLORABLE_P.
20890 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20891 Update conflict regs for the objects.
20892 (create_cap_allocno): Remove assert. Don't propagate
20893 ALLOCNO_AVAILABLE_REGS_NUM.
20894 (ira_free_allocno_costs): New function.
20895 (finish_allocno): Change a part of code into call of
20896 ira_free_allocno_costs.
20897 (low_pressure_loop_node_p): Use pressure classes.
20898 (object_range_compare_func): Don't compare classes.
20899 (setup_min_max_conflict_allocno_ids): Ditto.
20900
20901 * loop-invariant.c: Remove mentioning cover classes from the file.
20902 Use ira_pressure_classes and ira_pressure_classes_num instead of
20903 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
20904 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
20905 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20906 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
20907 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
20908 STACK_REG_COVER_CLASS.
20909 (get_regno_cover_class): Rename to get_regno_pressure_class.
20910 (move_loop_invariants): Initialize and finalize regstat.
20911
20912 * ira.c: Remove mentioning cover classes from the file. Add
20913 comments about coloring without cover classes. Use ALLOCNO_CLASS
20914 instead of ALLOCNO_COVER_CLASS. Fix formatting.
20915 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
20916 setup_class_subset_and_memory_move_costs.
20917 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
20918 (setup_cover_and_important_classes): Rename to
20919 setup_allocno_and_important_classes.
20920 (setup_class_translate_array): New.
20921 (setup_class_translate): Call it for allocno and pressure classes.
20922 (cover_class_order): Rename to allocno_class_order.
20923 (comp_reg_classes_func): Use ira_allocno_class_translate instead
20924 of ira_class_translate.
20925 (reorder_important_classes): Set up ira_important_class_nums.
20926 (setup_reg_class_relations): Set up ira_reg_class_superunion.
20927 (print_class_cover): Rename to print_classes. Add parameter.
20928 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20929 Print pressure classes too.
20930 (find_reg_class_closure): Rename to find_reg_classes. Don't call
20931 setup_reg_subclasses.
7a81008b 20932 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
20933 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20934 (setup_prohibited_class_mode_regs): Use
7a81008b 20935 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
20936 (clarify_prohibited_class_mode_regs): New function.
20937 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
20938 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
20939 (ira_init_once): Initialize them.
20940 (free_register_move_costs): Process them.
20941 (ira_init): Move calls of find_reg_classes and
20942 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
20943 Call clarify_prohibited_class_mode_regs.
20944 (ira_no_alloc_reg): Remove.
20945 (too_high_register_pressure_p): Use pressure classes.
20946
20947 * sched-deps.c: Remove mentioning cover classes from the file.
20948 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
20949 ira_pressure_classes and ira_pressure_classes_num instead of
20950 ira_reg_class_cover_size and ira_reg_class_cover.
20951 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
20952 sched_regno_pressure_class instead of sched_regno_cover_class.
20953 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
20954 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20955
20956 * ira.h: Add 2010 to Copyright.
20957 (ira_no_alloc_reg): Remove external.
20958 (struct target_ira): Rename x_ira_hard_regno_cover_class,
20959 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
20960 x_ira_class_translate to x_ira_hard_regno_allocno_class,
20961 x_ira_allocno_classes_num, x_ira_allocno_classes, and
20962 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
20963 x_ira_pressure_classes, x_ira_pressure_class_translate, and
20964 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
20965 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
20966 x_ira_no_alloc_regs.
7a81008b 20967 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
20968 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
20969 ira_allocno_classes_num and ira_allocno_classes.
20970 (ira_class_translate): Rename to ira_allocno_class_translate.
20971 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
20972 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
20973 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
20974 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
20975 (ira_no_alloc_regs): New.
20976
20977 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
20978 classes from the file. Use ALLOCNO_CLASS instead of
20979 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
20980 ALLOCNO_COVER_CLASS_COST.
20981 (regno_cover_class): Rename to regno_aclass.
20982 (record_reg_classes): Use ira_reg_class_subunion instead of
20983 ira_reg_class_union.
20984 (record_address_regs): Check overflow.
20985 (scan_one_insn): Ditto.
7a81008b 20986 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
20987 (print_pseudo_costs): Use REG_N_REFS.
20988 (find_costs_and_classes): Use classes intersected with them on the
20989 1st pass. Check overflow. Use ira_reg_class_subunion instead of
20990 ira_reg_class_union. Use ira_allocno_class_translate and
20991 regno_aclass instead of ira_class_translate and regno_cover_class.
20992 Modify code for finding regno_aclass. Setup preferred classes for
20993 the next pass.
20994 (setup_allocno_cover_class_and_costs): Rename to
20995 setup_allocno_class_and_costs. Use regno_aclass instead of
20996 regno_cover_class. Use ira_set_allocno_class instead of
20997 ira_set_allocno_cover_class.
20998 (init_costs, finish_costs): Use regno_aclass instead of
20999 regno_cover_class.
21000 (ira_costs): Use setup_allocno_class_and_costs instead of
21001 setup_allocno_cover_class_and_costs.
21002 (ira_tune_allocno_costs_and_cover_classes): Rename to
21003 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
21004 by processing objects. Use ira_reg_class_max_nregs instead of
21005 ira_reg_class_nregs.
21006
21007 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
21008
21009 * sched-int.h: Remove mentioning cover classes from the file.
21010 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
21011
21012 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
21013 classes from the file.
21014 (struct reg_pref): Rename coverclass into allocnoclass.
21015 (reg_cover_class): Rename to reg_allocno_class.
21016
7a81008b 21017 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
21018
21019 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
21020
21021 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
21022
21023 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
21024
21025 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
21026
21027 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
21028
21029 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
21030
21031 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
21032
21033 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
21034
21035 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
21036
21037 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
21038 (i386_ira_cover_classes): Ditto.
21039
21040 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
21041
21042 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
21043
21044 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
21045
21046 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
21047
21048 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
21049
21050 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
21051
21052 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
21053 (mips_ira_cover_classes): Ditto.
21054
21055 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
21056
21057 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
21058
21059 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
21060
21061 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
21062
21063 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
21064
21065 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
21066 (IRA_COVER_CLASSES_VSX): Ditto.
21067
21068 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
21069 (rs6000_ira_cover_classes): Ditto.
21070
21071 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
21072
21073 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
21074
21075 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
21076
21077 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
21078
21079 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
21080
21081 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
21082
21083 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
21084
21085 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
21086
21087 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
21088
21089 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
21090
2b80199f
JJ
210912011-03-29 Jakub Jelinek <jakub@redhat.com>
21092
71dae1fe
JJ
21093 PR debug/48253
21094 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
21095 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
21096 dw_fde_unlikely_section_end_label, cold_in_std_section,
21097 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
21098 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
21099 fields.
21100 (output_fde): Use dw_fde_second_{begin,end} if second is
21101 true, otherwise dw_fde_{begin,end}.
21102 (output_call_frame_info): Test dw_fde_second_begin != NULL
21103 instead of dw_fde_switched_sections.
21104 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
21105 fields, initialize new fields. Initialize in_std_section
21106 unconditionally from the first partition.
21107 (dwarf2out_end_epilogue): Don't override dw_fde_end when
21108 dw_fde_second_begin is non-NULL.
21109 (dwarf2out_switch_text_section): Stop initializing removed
21110 dw_fde_struct fields, initialize new fields, initialize
21111 also dw_fde_end here. Set dw_fde_switch_cfi even when
21112 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
21113 (struct var_loc_list_def): Add last_before_switch field.
21114 (arange_table, arange_table_allocated, arange_table_in_use,
21115 ARANGE_TABLE_INCREMENT, add_arange): Removed.
21116 (size_of_aranges): Count !in_std_section and !second_in_std_section
21117 hunks in fdes, instead of looking at arange_table_in_use.
21118 (output_aranges): Add aranges_length argument, don't call
21119 size_of_aranges here. Instead of using aranges_table*
21120 emit ranges for fdes when !in_std_section resp.
21121 !second_in_std_section.
21122 (dw_loc_list): Break ranges crossing section switch.
21123 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 21124 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
21125 (gen_subprogram_die): Don't call add_arange. Use
21126 dw_fde_{begin,end} for first partition and if switched
21127 section dw_fde_second_{begin,end} for the second.
21128 (var_location_switch_text_section_1,
21129 var_location_switch_text_section): New functions.
21130 (dwarf2out_begin_function): Initialize cold_text_section even
21131 when function_section () isn't text_section.
21132 (prune_unused_types): Don't walk arange_table.
21133 (dwarf2out_finish): Don't needlessly test
21134 flag_reorder_blocks_and_partition when testing cold_text_section_used.
21135 If info_section_emitted, call size_of_aranges and if it indicates
21136 non-empty .debug_aranges, call output_aranges with the computed
21137 size. Stop using removed dw_fde_struct fields, use
21138 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
21139 for second.
21140
2b80199f
JJ
21141 PR debug/48203
21142 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
21143 create ENTRY_VALUE if incoming or address of incoming's MEM
21144 is a hard REG.
21145 * dwarf2out.c (mem_loc_descriptor): Don't emit
21146 DW_OP_GNU_entry_value of DW_OP_fbreg.
21147 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
21148 on ENTRY_VALUE is able to find the canonical parameter VALUE.
21149 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
21150 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
21151 ENTRY_VALUE_EXPs.
21152 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
21153 is a REG_P or MEM_P with REG_P address, compute hash directly
21154 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
21155 (preserve_only_constants): Don't clear VALUES forwaring
21156 ENTRY_VALUE to some other VALUE.
21157
8a445129
RS
211582011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
21159
21160 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
21161 instead of GEN_INT.
21162
c82fee88
EB
211632011-03-28 Eric Botcazou <ebotcazou@adacore.com>
21164
21165 * cfgexpand.c (expand_gimple_cond): Always set the source location and
21166 block before expanding the statement.
21167 (expand_gimple_stmt_1): Likewise. Set them here...
21168 (expand_gimple_stmt): ...and not here. Tidy.
21169 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
21170 unknown.
21171
e45425ec
SB
211722011-03-28 Steven Bosscher <steven@gcc.gnu.org>
21173
21174 * Makefile.in: New rule for cprop.o.
21175 * gcse.c: Move constant/copy propagation to cprop.c.
21176 (compute_local_properties): Only handle expression tables.
21177 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
21178 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
21179 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
21180 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 21181 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
21182 compute_cprop_data, find_used_regs, try_replace_reg,
21183 find_avail_set, cprop_jump, constprop_register, cprop_insn,
21184 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
21185 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
21186 find_bypass_set, reg_killed_on_edge, bypass_block,
21187 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
21188 execute_rtl_cprop, pass_rtl_cprop): Move to...
21189 * cprop.c: ...here. New file, constant/copy propagation for RTL
21190 moved from gcse.c to here with minor cleanups in duplicated code.
21191
c09d5426
L
211922011-03-28 H.J. Lu <hongjiu.lu@intel.com>
21193
21194 * config/i386/i386.c (flag_opts): Fix a typo in
21195 -mavx256-split-unaligned-store.
21196
9eaa7740
AS
211972011-03-28 Anatoly Sokolov <aesok@post.ru>
21198
21199 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
21200 LIBCALL_VALUE): Remove macros.
21201 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21202 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21203 (h8300_function_value, h8300_libcall_value,
21204 h8300_function_value_regno_p): New functions.
21205
dcec2be2
AS
212062011-03-28 Anatoly Sokolov <aesok@post.ru>
21207
21208 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
21209
520af9ec
JL
212102011-03-28 Jeff Law <law@redhat.com>
21211
21212 * tree-ssa-threadupdate.c (redirect_edges): Call
21213 create_edge_and_update_destination_phis as needed.
21214 (create_edge_and_update_destination_phis): Accept new BB argument.
21215 All callers updated.
21216 (thread_block): Do not update the profile when threading around
21217 intermediate blocks.
21218 (thread_single_edge): Likewise.
21219 (determine_bb_domination_status): If BB is not a successor of the
21220 loop header, return NONDOMINATING.
21221 (register_jump_thread): Note when we register a jump thread around
21222 an intermediate block.
21223 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
21224 (thread_across_edge): Use it.
21225
7450b54f
TG
212262011-03-28 Tristan Gingold <gingold@adacore.com>
21227
21228 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
21229 when for_return is 2.
21230
649beb33
JL
212312011-03-28 Jeff Law <law@redhat.com>
21232
21233 * var-tracking.c (canonicalize_values_mark): Delete unused
21234 lhs assignment.
21235 (canonicalize_values_star, set_variable_part): Likewise.
21236 (clobber_variable_part, delete_variable_part): Likewise.
21237
d5b8da97
SB
212382011-03-28 Steven Bosscher <steven@gcc.gnu.org>
21239
21240 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
21241
322dd859
MJ
212422011-03-28 Martin Jambor <mjambor@suse.cz>
21243
21244 * tree-inline.c (expand_call_inline): Do not check that destination
21245 node is analyzed.
21246 (optimize_inline_calls): Assert that destination node is analyzed.
21247 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
21248 not call tree_lowering_passes.
21249 * cgraph.h (cgraph_analyze_function): Declare.
21250 * cgraphunit.c (cgraph_analyze_function): Make public.
21251
aa53e58b
JM
212522011-03-28 Joseph Myers <joseph@codesourcery.com>
21253
21254 * config/sparc/sparc-opts.h: New.
21255 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
21256 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
21257 (sparc_option_override): Store processor_type enumeration rather
21258 than string in cpu_default. Remove name and enumeration from
21259 cpu_table. Directly default -mcpu then default -mtune from -mcpu
21260 without using sparc_select. Use target_flags_explicit instead of
21261 fpu_option_set.
21262 * config/sparc/sparc.h (enum processor_type): Move to
21263 sparc-opts.h.
21264 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
21265 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
21266 HeaderInclude entry.
21267 (mcpu=, mtune=): Use Var and Enum.
21268 (sparc_processor_type): New Enum and EnumValue entries.
21269
dd350eba
RO
212702011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21271 Iain Sandoe <iains@gcc.gnu.org>
21272
21273 PR target/48245
21274 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
21275
1b29f05e
EB
212762011-03-28 Eric Botcazou <ebotcazou@adacore.com>
21277
21278 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
21279 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
21280 Insert new statements at it in lieu of STMT.
21281 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
21282 * tree-vect-stmts.c (vectorizable_store): Likewise.
21283 (vectorizable_load): Likewise.
21284
506e6808
UB
212852011-03-28 Uros Bizjak <ubizjak@gmail.com>
21286
21287 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
21288 (divtf3): Ditto.
21289 (multf3): Ditto.
21290 (subtf3): Ditto.
21291
2e939ee9
L
212922011-03-27 H.J. Lu <hongjiu.lu@intel.com>
21293
21294 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
21295 unaligned 256bit load/store.
21296 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
21297 (*avx_movdqu<avxmodesuffix>): Likewise.
21298
5e85ab88
JDA
212992011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21300
21301 PR target/48288
21302 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
21303 * config/pa/pa.md (iordi3): Use new predicate in expander.
21304 (iorsi3): Likewise.
21305
47be3d6d
AS
213062011-03-27 Anatoly Sokolov <aesok@post.ru>
21307
506e6808 21308 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 21309 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
21310 * config/mips/mips-protos.h (mips_function_value): Remove.
21311 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
21312 (mips_function_value_1): ... this. Make static. Handle receiving
21313 the function type in 'fn_decl_or_type' argument.
21314 (mips_function_value, mips_libcall_value,
21315 mips_function_value_regno_p): New function.
21316 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21317 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21318
d253656a
L
213192011-03-27 H.J. Lu <hongjiu.lu@intel.com>
21320
21321 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
21322 and -mavx256-split-unaligned-store.
21323 (ix86_option_override_internal): Split 32-byte AVX unaligned
21324 load/store by default.
21325 (ix86_avx256_split_vector_move_misalign): New.
21326 (ix86_expand_vector_move_misalign): Use it.
21327
21328 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
21329 -mavx256-split-unaligned-store.
21330
21331 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
21332 256bit load/store. Generate unaligned store on misaligned memory
21333 operand.
21334 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
21335 256bit load/store.
21336 (*avx_movdqu<avxmodesuffix>): Likewise.
21337
21338 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
21339 -mavx256-split-unaligned-store.
21340
1ea9206a
RS
213412011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
21342
21343 PR target/38598
21344 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
21345 Update commentary.
21346
b99ce2a8
RS
213472011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
21348
21349 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
21350 opno arguments with an expand_operand. Use create_input_operand.
21351 (mips_prepare_builtin_target): Delete.
21352 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
21353 functions.
21354 (mips_expand_builtin_direct): Use create_output_operand and
21355 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
21356 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
21357 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
21358
69d52339
IR
213592011-03-27 Ira Rosen <ira.rosen@linaro.org>
21360
21361 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
21362 function.
21363 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
21364
ba5e9aca
EB
213652011-03-26 Eric Botcazou <ebotcazou@adacore.com>
21366
21367 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
21368 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
21369 basic blocks and call commit_edge_insertions directly.
21370 (fixup_abnormal_edges): Move from here to...
21371 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
21372 on the edges and return whether some have actually been inserted.
21373 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
21374 compensation code.
21375
5d369d58
AB
213762011-03-26 Andrey Belevantsev <abel@ispras.ru>
21377
21378 PR rtl-optimization/48144
21379 * sel-sched-ir.c (merge_history_vect): Factor out from ...
21380 (merge_expr_data): ... here.
21381 (av_set_intersect): Rename to av_set_code_motion_filter.
21382 Update all callers. Call merge_history_vect when an expression
21383 is found in both sets.
21384 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
21385
f082c000
AM
213862011-03-26 Alan Modra <amodra@gmail.com>
21387
21388 * config/rs6000/predicates.md (word_offset_memref_op): Handle
21389 cmodel medium addresses.
21390 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
21391 64-bit gpr loads and stores.
21392 (rs6000_secondary_reload_ppc64): New function.
21393 * config/rs6000/rs6000-protos.h: Declare it.
21394 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
21395
8ac5e12e
AM
213962011-03-26 Alan Modra <amodra@gmail.com>
21397
21398 PR target/47487
21399 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
21400 GNU Go in traceback table.
21401
c2654ded
RH
214022011-03-25 Richard Henderson <rth@redhat.com>
21403
21404 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
21405 if there are exactly 6 operands.
21406 (set_storage_via_setmem): Similarly.
21407
ba78087b
KT
214082011-03-25 Kai Tietz <ktietz@redhat.com>
21409
21410 * collect2.c (write_c_file_stat): Handle backslash
21411 as right-hand directory separator.
21412 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
21413 checking just for slash.
21414 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
21415 instead of checking for trailing slash.
21416 * gcc.c (record_temp_file): Use filename_cmp instead
21417 of strcmp.
21418 (do_spec_1): Likewise.
21419 (replace_outfile_spec_function): Likewise.
21420 (is_directory): Use filename_ncmp instead of strncmp.
21421 (print_multilib_info): Likewise.
21422 * gcov.c (find_source): Use filename_cmp instead
21423 instead of strcmp.
21424 (make_gcov_file_name): Fix order of slash/backslash
21425 checks.
21426 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
21427 (add_standard_paths): Likewise.
21428 * mips-tfile.c (saber_stop): Handle backslash.
21429 * prefix.c (update_path): Use filename_ncmp instead of
21430 strncmp.
21431 * profile.c (output_location): Use filename_cmp instead
21432 of strcmp.
21433 * read-md.c (handle_toplevel_file): Handle backslash.
21434 * tlink.c (frob_extension): Likewise.
21435 * tree-cfg.c (same_line_p): Use filename_cmp instead of
21436 strcmp.
21437 * tree-dump.c (dequeue_and_dump): Handle backslash.
21438 * tree.c (get_file_function_name): Likewise.
21439 * gengtype.c (read_input_list): Likewise.
21440 (get_file_realbasename): Likewise.
21441 (get_output_file_with_visibility): Use filename_cmp
21442 instead of strcmp.
21443
75f6ec9a
RS
214442011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
21445
21446 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
21447 case to VFPv1.
21448
6c4e2997
NF
214492011-03-25 Nathan Froyd <froydnj@codesourcery.com>
21450
21451 * fold-const.c (expr_location_or): New function.
21452 (fold_truth_not_expr): Call it.
21453
0edf1bb2
JL
214542011-03-25 Jeff Law <law@redhat.com>
21455
21456 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
21457 va_end.
21458 * c-family/c-common.c (def_fn_type): Likewise.
21459 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
21460 * emit-rtl.c (gen_rtvec): Likewise.
21461 * lto/lto-lang.c (def_fn_type): Likewise.
21462
fdc2de95
RG
214632011-03-25 Richard Guenther <rguenther@suse.de>
21464
21465 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
21466 also generate copies.
21467 (fini_copy_prop): Handle constant values properly.
21468
21385db0
JJ
214692011-03-25 Jakub Jelinek <jakub@redhat.com>
21470
21471 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
21472 mode size instead of bitsize with DWARF2_ADDR_SIZE.
21473 (hash_loc_operands, compare_loc_operands): Handle
21474 DW_OP_GNU_entry_value.
21475
6510e8bb
KT
214762011-03-25 Kai Tietz <ktietz@redhat.com>
21477
21478 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
21479 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
21480 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
21481 comment and use macro TARGET_64BIT_MS_ABI instead.
21482 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
21483 and change default behavior for 32-bit MS_ABI.
21484 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
21485 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
21486 32-bit, too.
21487 (ix86_cfun_abi): Likewise.
21488 (ix86_maybe_switch_abi): Adjust comment.
21489 (init_cumulative_args): Check for bit-ness in MS_ABI case.
21490 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
21491 instead of checking for SYSV_ABI.
21492 (ix86_nsaved_sseregs): Likewise.
21493 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
21494 to 16 bytes.
21495 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
21496 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
21497 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
21498 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
21499 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
21500
34019e28
RG
215012011-03-25 Richard Guenther <rguenther@suse.de>
21502
21503 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
21504 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21505 (verify_gimple): Remove.
21506 * tree-cfg.c (verify_gimple_call): Merge verification
21507 from verify_stmts.
21508 (verify_gimple_phi): Merge verification from verify_stmts.
21509 (verify_gimple_label): New function.
21510 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
21511 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21512 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
21513 (verify_stmts): Rename to verify_gimple_in_cfg.
21514 (verify_gimple_in_cfg): New function.
21515 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
21516 * tree-ssa.c (verify_ssa): Likewise.
21517 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
21518
605896f5
RG
215192011-03-25 Richard Guenther <rguenther@suse.de>
21520
21521 * passes.c (init_optimization_passes): Add FRE pass after
21522 early SRA.
21523
7baa7c13
BS
215242011-03-25 Bernd Schmidt <bernds@codesourcery.com>
21525 Andrew Stubbs <ams@codesourcery.com>
21526
21527 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
21528 for Cortex-A8.
21529 (arm_movdi_vfp_cortexa8): New pattern.
21530 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
21531 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
21532 instructions when tuning for Cortex-A8. Set attribute "arch".
21533 * config/arm/arm.md: Move include arm-tune.md up a bit.
21534 (define_attr "arch"): Add "onlya8" and "nota8" values.
21535 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
21536
45dbce1b
NF
215372011-03-25 Nathan Froyd <froydnj@codesourcery.com>
21538
4ff08abf 21539 PR bootstrap/48282
45dbce1b
NF
21540 Revert:
21541 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
21542
21543 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21544 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
21545 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21546 * passes.c (init_optimization_passes): Move
21547 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21548
ac9a30ae
KT
215492011-03-25 Kai Tietz <ktietz@redhat.com>
21550
21551 * c-typeck.c (comptypes_internal): Replace target
21552 hook call of comp_type_attributes by version in tree.c file.
21553 * gimple.c (gimple_types_compatible_p_1): Likewise.
21554 * tree-ssa.c (useless_type_conversion_p): Likewise.
21555 * tree.c (build_type_attribute_qual_variant): Likewise.
21556 (attribute_value_equal): New static helper function.
21557 (comp_type_attributes): New function.
21558 (merge_attributes): Use attribute_value_equal for comparison.
21559 (attribute_list_contained): Likewise.
21560 * tree.h (comp_type_attributes): New prototype.
21561
afdac116
RG
215622011-03-25 Richard Guenther <rguenther@suse.de>
21563
21564 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
21565 of complex types at -O0.
21566 (verify_gimple_assign_binary): Likewise.
21567 (verify_gimple_assign_ternary): Likewise.
21568
ec6165f8
MW
215692011-03-24 Mark Wielaard <mjw@redhat.com>
21570
21571 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
21572 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
21573
2a5ac39a
MW
215742011-03-24 Mark Wielaard <mjw@redhat.com>
21575
21576 PR debug/48041
21577 * dwarf2out.c (output_abbrev_section): Only write table when
21578 abbrev_die_table_in_use > 1.
21579
e533b2a4
RH
215802011-02-24 Richard Henderson <rth@redhat.com>
21581
21582 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
21583 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
21584 (alpha_expand_unaligned_load_words): Use extql.
21585 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
21586 (emit_insxl): Handle all modes for consistency.
21587
0b2a7367
RH
215882011-02-24 Richard Henderson <rth@redhat.com>
21589
21590 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
21591 (alpha_expand_unaligned_load): Likewise.
21592 (alpha_expand_unaligned_store): Likewise.
21593 (alpha_expand_unaligned_load_words): Likewise.
21594 (alpha_expand_unaligned_store_words): Likewise.
21595 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
21596 (alpha_split_lock_test_and_set_12): Likewise.
21597 (print_operand, alpha_fold_builtin_extxx): Likewise.
21598 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
21599 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
21600 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
21601 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
21602 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
21603 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
21604 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
21605 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
21606 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
21607 (extwl, extll, extql): Similarly.
21608 (inswh, inslh, insqh): Similarly.
21609 (mskbl, mskwl, mskll, mskql): Similarly.
21610 (mskwh, msklh, mskqh): Similarly.
21611
315b2bef
RH
216122011-02-24 Richard Henderson <rth@redhat.com>
21613
21614 * config/alpha/alpha.md (attribute isa): Add er, ner.
21615 (attribute enabled): Handle them.
21616 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
21617
67102517
RH
216182011-02-24 Richard Henderson <rth@redhat.com>
21619
21620 * config/alpha/alpha.md (attribute isa): Add vms.
21621 (attribute enabled): Handle it.
21622 (*movsf): Merge *movsf_{nofix,fix,nofp}.
21623 (*movdf): Merge *movdf_{nofix,fix,nofp}.
21624 (*movtf): Rename from *movtf_internal for consistency.
21625 (*movsi): Merge with *movsi_nt_vms.
21626 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
21627 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
21628 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
21629 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
21630
6aba5cb4
RH
216312011-02-24 Richard Henderson <rth@redhat.com>
21632
21633 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
21634 (extendqisi2, extendhisi2): Likewise.
21635 (extendqidi2): Simplify BWX/non-BWX expansions.
21636 (extendhidi2): Similarly.
21637
bdfb351b
RH
216382011-02-24 Richard Henderson <rth@redhat.com>
21639
21640 * config/alpha/alpha.md (attribute isa): New.
21641 (attribute enabled): New.
21642 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
21643 (zero_extendqisi2, zero_extendqidi2): Similarly.
21644 (zero_extendhisi2, zero_extendhidi2): Similarly.
21645 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
21646
6abe71eb
RH
216472011-02-24 Richard Henderson <rth@redhat.com>
21648
21649 * config/alpha/predicates.md (input_operand): Revert last change;
21650 update comment to mention 32-bit VMS rather than Windows.
21651
7114321e
NF
216522011-03-24 Nathan Froyd <froydnj@codesourcery.com>
21653
21654 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21655 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
21656 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21657 * passes.c (init_optimization_passes): Move
21658 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21659
c8679567
EB
216602011-03-24 Eric Botcazou <ebotcazou@adacore.com>
21661
21662 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
21663
27173058
UB
216642011-03-24 Uros Bizjak <ubizjak@gmail.com>
21665
21666 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
21667 correctly.
21668
6f0c9f06
JJ
216692011-03-24 Jakub Jelinek <jakub@redhat.com>
21670
21671 PR debug/48204
21672 * simplify-rtx.c (simplify_const_unary_operation): Call
21673 real_convert when changing mode class with FLOAT_EXTEND.
21674
662666e5
NC
216752011-03-24 Nick Clifton <nickc@redhat.com>
21676
21677 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
21678 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
21679 * config/rx/rx.c (rx_option_override): Set align_jumps,
21680 align_loops and align_labels if not set by the user.
21681 (rx_align_for_label): New function.
21682 (rx_max_skip_for_label): New function.
21683 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
21684 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
21685 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
21686 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
21687 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
21688
2b99b2b8
RS
216892011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
21690
21691 PR rtl-optimization/48263
21692 * optabs.c (expand_binop_directly): Reinstate convert_modes code
21693 and original commutative_p handling. Use maybe_gen_insn.
21694
ccecd6ea
AK
216952011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21696
21697 * reload.c (find_reloads_subreg_address): Add address_reloaded
21698 parameter and return true there if the full address has been
21699 reloaded.
21700 (find_reloads_toplev): Pass address_reloaded flag.
21701 (find_reloads_address_1): Don't use address_reloaded parameter.
21702
67295642
JL
217032011-03-24 Jeff Law <law@redhat.com>
21704
21705 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
21706 unused variable "ann".
21707 (remove_unused_locals): Likewise.
21708
21709 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
21710 statement.
21711
21712 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
21713 after it is freed.
21714
212aa74f
AK
217152011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21716
21717 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
21718 for invalid symbolic addresses.
21719 (s390_secondary_reload): Don't use s390_check_symref_alignment for
21720 larl operands.
21721
fe784e0d
EB
217222011-03-24 Eric Botcazou <ebotcazou@adacore.com>
21723
21724 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
21725 the argument in calls to fold_truth_not_expr.
21726
63ee8641
NF
217272011-03-24 Nathan Froyd <froydnj@codesourcery.com>
21728
21729 * tree.c (record_node_allocation_statistics): New function.
21730 (make_node_stat, copy_node_stat, build_string): Call it.
21731 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
21732 (build1_stat, build_omp_clause): Likewise.
21733
61be2a1c
RS
217342011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
21735
21736 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
21737 last commit.
21738
a881aaa7
RG
217392011-03-24 Richard Guenther <rguenther@suse.de>
21740
21741 PR tree-optimization/48271
21742 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
21743 blocks that still exist.
21744
dbaa912c
RG
217452011-03-24 Richard Guenther <rguenther@suse.de>
21746
21747 PR tree-optimization/48270
21748 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
21749 not free datarefs before ddrs.
21750
1d60cc55
EB
217512011-03-24 Eric Botcazou <ebotcazou@adacore.com>
21752
21753 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
21754 from the address built for a reference with variable offset.
21755
c78dd519
UB
217562011-03-24 Uros Bizjak <ubizjak@gmail.com>
21757
21758 PR target/48237
21759 * config/i386/i386.md (*movdf_internal_rex64): Do not split
21760 alternatives that can be handled with movq or movabsq insn.
21761 (*movdf_internal): Disable for !TARGET_64BIT.
21762 (*movdf_internal_nointeger): Ditto.
21763 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
21764
b25b9e8f
NF
217652011-03-24 Nathan Froyd <froydnj@codesourcery.com>
21766
21767 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21768 (FUNCTION_ARG_ADVANCE): Likewise.
21769 * tm.texi.in: Change references to them to hook references.
21770 * tm.texi: Regenerate.
c78dd519 21771 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
21772 (default_function_incoming_arg): Likewise.
21773 (default_function_arg_advance): Likewise.
c78dd519 21774 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
21775 (function_arg_advance): Likewise.
21776 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21777
190b2187
RG
217782011-03-24 Richard Guenther <rguenther@suse.de>
21779
21780 PR middle-end/48269
21781 * tree-object-size.c (addr_object_size): Do not double-account
21782 for MEM_REF offsets.
21783
a183b5c7
DN
217842011-03-24 Diego Novillo <dnovillo@google.com>
21785
21786 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 21787 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
21788 (lto_input_data_block): Move from lto-opts.c. Make extern.
21789 Update all users.
21790 (lto_input_string): Rename from input_string. Make extern.
21791 Update all users.
21792 * lto-streamer-out.c (lto_output_string_with_length): Rename from
21793 output_string_with_length.
21794 Output 0 to indicate a non-NULL string. Update all callers to
21795 not emit 0.
21796 (lto_output_string): Rename from output_string. Make extern.
21797 Update all users.
21798 (lto_output_decl_state_streams): Make extern.
21799 (lto_output_decl_state_refs): Make extern.
21800 * lto-streamer.h (lto_input_string): Declare.
21801 (lto_input_data_block): Declare.
21802 (lto_output_string): Declare.
21803 (lto_output_string_with_length): Declare.
21804 (lto_output_decl_state_streams): Declare.
21805 (lto_output_decl_state_refs): Declare.
21806
cfef45c8
RG
218072011-03-24 Richard Guenther <rguenther@suse.de>
21808
21809 PR tree-optimization/46562
21810 * tree.c (build_invariant_address): New function.
21811 * tree.h (build_invariant_address): Declare.
21812 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
21813 a renamed function moved ...
21814 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
21815 Take valueization callback parameter.
21816 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
21817 * gimple-fold.h: New file.
21818 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
21819 (ccp_fold, fold_const_aggregate_ref,
21820 fold_ctor_reference, fold_nonarray_ctor_reference,
21821 fold_array_ctor_reference, fold_string_cst_ctor_reference,
21822 get_base_constructor): Move ...
21823 * gimple-fold.c: ... here.
21824 (gimple_fold_stmt_to_constant_1): New function
21825 split out from ccp_fold. Take a valueization callback parameter.
21826 Valueize all operands.
21827 (gimple_fold_stmt_to_constant): New wrapper function.
21828 (fold_const_aggregate_ref_1): New function split out from
21829 fold_const_aggregate_ref. Take a valueization callback parameter.
21830 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
21831 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
21832 invariant POINTER_PLUS_EXPRs to invariant form.
21833 (vn_valueize): New function.
21834 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
21835 * tree-vrp.c (vrp_valueize): New function.
21836 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
21837 to fold statements to constants.
21838 * tree-ssa-pre.c (eliminate): Properly guard propagation of
21839 function declarations.
21840 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
21841 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
21842
5e0a7e40
RS
218432011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
21844
21845 * config/h8300/predicates.md (jump_address_operand): Fix register
21846 mode check.
21847
bfe068c3
IR
218482011-03-24 Ira Rosen <ira.rosen@linaro.org>
21849
21850 * doc/invoke.texi (max-stores-to-sink): Document.
21851 * params.h (MAX_STORES_TO_SINK): Define.
21852 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
21853 if either vectorization or if-conversion is disabled.
21854 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
21855 tree-vect-data-refs.c vect_equal_offsets.
21856 (dr_equal_offsets_p): New function.
21857 (find_data_references_in_bb): Remove static.
21858 * tree-data-ref.h (find_data_references_in_bb): Declare.
21859 (dr_equal_offsets_p): Likewise.
21860 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
21861 (vect_drs_dependent_in_basic_block): Update calls to
21862 vect_equal_offsets.
21863 (vect_check_interleaving): Likewise.
21864 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
21865 (cond_if_else_store_replacement): Rename to...
21866 (cond_if_else_store_replacement_1): ... this. Change arguments and
21867 documentation.
21868 (cond_if_else_store_replacement): New function.
21869 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
21870 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
21871
4908b0bf
CLT
218722011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
21873
21874 PR target/46934
21875 * config/arm/arm.md (casesi): Use the gen_int_mode() function
21876 to subtract lower bound instead of GEN_INT().
21877
2be478a2
JW
218782011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
21879
21880 PR other/48179
21881 PR other/48221
21882 PR other/48234
21883 * doc/extend.texi (Alignment): Move section to match order in TOC.
21884 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
21885 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
21886
0c617be4
JL
218872011-03-23 Jeff Law <law@redhat.com>
21888
21889 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
21890 before removing the edge.
21891
21892 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
21893 it may have been freed by redirect_branch_edge or
21894 redirect_edge_succ_nodup.
21895
58da96fe
RG
218962011-03-23 Richard Guenther <rguenther@suse.de>
21897
c78dd519 21898 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
21899 (check_va_list_escapes): Likewise.
21900 (check_all_va_list_escapes): Likewise.
21901
b8beb4d1
RG
219022011-03-23 Richard Guenther <rguenther@suse.de>
21903
21904 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
21905 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
21906 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
21907 (alias.o): Likewise.
21908 (ipa-type-escape.o): Remove.
21909 (ipa-struct-reorg.o): Likewise.
21910 (GTFILES): Remove ipa-struct-reorg.c.
21911 * alias.c: Do not include ipa-type-escape.h.
21912 * tree-ssa-alias.c: Likewise.
21913 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
21914 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
21915 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
21916 and ipa-type-escape passes.
21917 * tree-pass.h (pass_ipa_type_escape): Remove.
21918 (pass_ipa_struct_reorg): Likewise.
21919 * ipa-struct-reorg.h: Remove.
21920 * ipa-struct-reorg.c: Likewise.
21921 * ipa-type-escape.h: Likewise.
21922 * ipa-type-escape.c: Likewise.
21923 * doc/invoke.texi (-fipa-struct-reorg): Remove.
21924 (--param struct-reorg-cold-struct-ratio): Likewise.
21925 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21926 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
21927 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
21928
f137aa63
AK
219292011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21930
21931 * config/s390/2084.md: Enable all insn reservations also for z9_ec
21932 cpu attribute value.
21933 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
21934 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
21935 * config/s390/s390.c (processor_flags_table): New constant array.
21936 (s390_handle_arch_option): Remove.
21937 (s390_handle_option): Remove s390_handle_arch_option invocations
21938 and OPT_mwarn_framesize_ handling.
21939 (s390_option_override): Remove s390_handle_arch_option invocation.
21940 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
21941 warnings.
21942 * config/s390/s390.md (cpu attribute): Add z9_ec value.
21943 * config/s390/s390.opt (s390_tune, s390_arch)
21944 (march=): Replace s390_arch_option enum and values with
21945 processor_type. Set variable name to s390_arch. Set
21946 initialization value.
21947 (mtune=): Replace s390_arch_option with processor_type. Set
21948 variable name to s390_tune. Set initialization value.
21949
bf90208f
JB
219502011-03-23 Julian Brown <julian@codesourcery.com>
21951
21952 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
21953 accesses which are not naturally aligned.
21954
3460fdf3
RS
219552011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
21956
21957 PR target/47553
21958 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
21959
a5c7d693
RS
219602011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
21961
21962 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
21963 parameter from "int" to "enum insn_code".
21964 (expand_operand_type): New enum.
21965 (expand_operand): New structure.
21966 (create_expand_operand): New function.
21967 (create_fixed_operand, create_output_operand): Likewise
21968 (create_input_operand, create_convert_operand_to): Likewise.
21969 (create_convert_operand_from, create_address_operand): Likewise.
21970 (create_integer_operand): Likewise.
21971 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
21972 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
21973 (expand_insn, expand_jump_insn): Likewise.
21974 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
21975 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
21976 (expand_movstr, expand_builtin___clear_cache): Likewise.
21977 (expand_builtin_lock_release): Likewise.
21978 * explow.c (allocate_dynamic_stack_space): Likewise.
21979 (probe_stack_range): Likewise. Allow check_stack to FAIL,
21980 and use the default handling in that case.
21981 * expmed.c (check_predicate_volatile_ok): Delete.
21982 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
21983 (emit_cstore): Likewise.
21984 * expr.c (emit_block_move_via_movmem): Likewise.
21985 (set_storage_via_setmem, expand_assignment): Likewise.
21986 (emit_storent_insn, try_casesi): Likewise.
21987 (emit_single_push_insn): Likewise. Allow the expansion to fail.
21988 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
21989 (expand_vec_shift_expr, expand_binop_directly): Likewise.
21990 (expand_twoval_unop, expand_twoval_binop): Likewise.
21991 (expand_unop_direct, emit_indirect_jump): Likewise.
21992 (emit_conditional_move, vector_compare_rtx): Likewise.
21993 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
21994 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
21995 (expand_sync_lock_test_and_set): Likewise.
21996 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
21997 (emit_unop_insn): Likewise.
21998 (expand_copysign_absneg): Change icode to an insn_code.
21999 (create_convert_operand_from_type): New function.
22000 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
22001 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
22002 (expand_insn, expand_jump_insn): Likewise.
22003 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
22004 than const_int_operand for operand 2.
22005
78fadbab
AK
220062011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22007
22008 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
22009 if possible.
22010
5f02387d
NF
220112011-03-22 Nathan Froyd <froydnj@codesourcery.com>
22012
22013 * emit-rtl.c (emit_pattern_before_noloc): New function.
22014 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
22015 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
22016 (emit_pattern_after_noloc): New function.
22017 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
22018 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
22019
fdf3e18a
NF
220202011-03-22 Nathan Froyd <froydnj@codesourcery.com>
22021
22022 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
22023 (__ffsDI2): Likewise.
22024
42d085c1
RH
220252011-03-22 Richard Henderson <rth@redhat.com>
22026
22027 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
22028 of !TARGET_ABI_OPEN_VMS.
22029 (alpha_trampoline_init, alpha_start_function): Likewise.
22030 (alpha_expand_epilogue, alpha_file_start): Likewise.
22031 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
22032 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
22033 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
22034 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
22035 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
22036
cabbe12a
JM
220372011-03-22 Joseph Myers <joseph@codesourcery.com>
22038
22039 * config/s390/s390-opts.h: New.
22040 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
22041 s390_arch_flags, s390_warn_framesize, s390_stack_size,
22042 s390_stack_guard): Remove.
22043 (s390_handle_arch_option): Return void. Take enum
22044 s390_arch_option value instead of string and searching array.
22045 (s390_handle_option): Don't assert that global structures are in
22046 use. Access variables via opts pointer. Use error_at. Don't use
22047 sscanf for -mstack-guard= or -mstack-size=. Update call to
22048 s390_handle_arch_option.
22049 (s390_option_override): Update call to s390_handle_arch_option.
22050 (s390_emit_prologue): Use %d format for s390_stack_size in
22051 diagnostic. Use %wd for HOST_WIDE_INT.
22052 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
22053 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
22054 * config/s390/s390.opt (config/s390/s390-opts.h): New
22055 HeaderInclude entry.
22056 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
22057 s390_arch_flags, s390_warn_framesize): New Variable entries.
22058 (s390_arch_option): New Enum and EnumValue entries.
22059 (march=): Use Enum instead of Var.
22060 (mstack-guard=, mstack-size=): Use UInteger and Var.
22061 (mtune=): Use Enum.
22062
05b12036
JM
220632011-03-22 Joseph Myers <joseph@codesourcery.com>
22064
22065 * config/score/score.c (score_handle_option): Don't assert that
22066 global structures are in use. Access target_flags via opts
22067 pointer. Use value of -march= option to determine target_flags
22068 settings.
22069 * config/score/score.opt (march=): Use Enum.
22070 (score_arch): New Enum and EnumValue entries.
22071
dd51e35a
JM
220722011-03-22 Joseph Myers <joseph@codesourcery.com>
22073
22074 * config/mep/mep.c (option_mtiny_specified): Remove.
22075 (mep_option_override): Move register handling for -mivc2 from
22076 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
22077 instead of option_mtiny_specified.
22078 (mep_handle_option): Access target_flags via opts pointer. Don't
22079 assert that global structures are in use. Defer part of -mivc2
22080 handling and move it to mep_option_override.
22081 * config/mep/mep.opt (IVC2): New Mask entry.
22082 (mivc2): Use Var and Defer instead of Mask.
22083
4a8d3d91
JM
220842011-03-22 Joseph Myers <joseph@codesourcery.com>
22085
22086 * config/v850/v850-opts.h: New.
22087 * config/v850/v850.c (small_memory): Replace with
22088 small_memory_physical_max array. Make that array static const.
22089 (v850_handle_memory_option): Take integer value of argument. Take
22090 gcc_options pointer, option text and location. Return void.
22091 Update for changes to small memory structures.
22092 (v850_handle_option): Access target_flags via opts pointer. Don't
22093 assert that global structures are in use. Update calls to
22094 v850_handle_memory_option.
c78dd519
UB
22095 (v850_encode_data_area): Update references to small memory settings.
22096 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
22097 (enum small_memory_type): Move to v850-opts.h.
22098 * config/v850/v850.opt (config/v850/v850-opts.h): New
22099 HeaderInclude entry.
22100 (small_memory_max): New Variable entry.
22101 (msda): Replace by pair of options msda= and msda-. Use UInteger.
22102 (mtda, mzda): Likewise.
22103
117fdbfa
JM
221042011-03-22 Joseph Myers <joseph@codesourcery.com>
22105
22106 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
22107 pointer. Don't assert that global structures are in use.
22108
d715091c
JM
221092011-03-22 Joseph Myers <joseph@codesourcery.com>
22110
22111 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
22112 via opts pointer. Don't assert that global structures are in use.
22113
1bb721dc
JM
221142011-03-22 Joseph Myers <joseph@codesourcery.com>
22115
22116 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
22117 (munix=93): Use Var.
22118 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
22119 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
22120 * config/pa/pa-opts.h: New.
22121 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
22122 (pa_handle_option): Don't assert that global structures are in
22123 use. Access target_flags via opts pointer. Don't handle
22124 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
22125 OPT_munix_98 here.
22126 (pa_option_override): Handle deferred OPT_mfixed_range_.
22127
cd8d8754
JM
221282011-03-22 Joseph Myers <joseph@codesourcery.com>
22129
22130 * config/mn10300/mn10300-opts.h: New.
22131 * config/mn10300/mn10300.c (mn10300_processor,
22132 mn10300_tune_string): Remove.
22133 (mn10300_handle_option): Don't assert that global structures are
22134 in use. Access mn10300_processor via opts pointer. Don't handle
22135 OPT_mtune_ here.
22136 * config/mn10300/mn10300.h (enum processor_type): Move to
22137 mn10300-opts.h.
22138 (mn10300_processor): Remove.
22139 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
22140 HeaderInclude entry.
22141 (mn10300_processor): New Variable entry.
22142 (mtune=): Use Var.
22143
24e6e6b1
JM
221442011-03-22 Joseph Myers <joseph@codesourcery.com>
22145
22146 * config/microblaze/microblaze.c: Don't include opts.h.
22147 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
22148 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
22149 (mno-clearbss): Use Var and Warn.
22150
8a784afb
JM
221512011-03-22 Joseph Myers <joseph@codesourcery.com>
22152
22153 * config/m32r/m32r-opts.h: New.
22154 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
22155 (m32r_handle_option): Don't assert that global structures are in
22156 use. Access target_flags and m32r_cache_flush_func via opts
22157 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
22158 OPT_mno_flush_trap here.
22159 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
22160 include of m32r-opts.h.
22161 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
22162 HeaderInclude entry.
22163 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
22164 (mmodel=): Use Enum and Var.
22165 (m32r_model): New Enum and EnumValue entries.
22166 (mno-flush-trap): Use Var.
22167 (msdata=): Use Enum and Var.
22168 (m32r_sdata): New Enum and EnumValue entries.
22169
bbfc9a8c
JM
221702011-03-22 Joseph Myers <joseph@codesourcery.com>
22171
22172 * config/m32c/m32c.c: Don't include opts.h.
22173 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
22174 m32c_handle_option): Remove.
22175 (m32c_option_override): Check global_options_set.x_target_memregs
22176 instead of target_memregs_set.
22177 * config/m32c/m32c.h (target_memregs): Remove.
22178 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
22179 variable.
22180
e24b8335
JM
221812011-03-22 Joseph Myers <joseph@codesourcery.com>
22182
22183 * config/iq2000/iq2000-opts.h: New.
22184 * config/iq2000/iq2000.c: Don't include opts.h.
22185 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 22186 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
22187 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
22188 HeaderInclude entry.
22189 (iq2000_tune): New Variable entry.
22190 (march=): Add comment. Use Enum.
22191 (iq2000_arch): New Enum and EnumValue entries.
22192 (mcpu=): Use Enum and Var.
22193 (iq2000_tune): New Enum and EnumValue entries.
22194
e6cc0c98
JM
221952011-03-22 Joseph Myers <joseph@codesourcery.com>
22196
22197 * config/ia64/ia64-opts.h: New.
22198 * config/ia64/ia64.c (ia64_tune): Remove.
22199 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
22200 here. Use error_at.
22201 (ia64_option_override): Handle deferred OPT_mfixed_range_.
22202 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
22203 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
22204 HeaderInclude entry.
22205 (ia64_tune): New Variable entry.
22206 (mfixed-range=): Use Defer and Var.
22207 (mtune=): Use Enum and Var.
22208 (ia64_tune): New Enum and EnumValue entries.
22209
db25893c
JM
222102011-03-22 Joseph Myers <joseph@codesourcery.com>
22211
22212 * config/frv/frv-opts.h: New.
22213 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
22214 frv-opts.h.
22215 (frv_cpu_type): Remove.
22216 * config/frv/frv.c: Don't include opts.h.
22217 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 22218 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
22219 (frv_cpu_type): New Variable entry.
22220 (frv_cpu): New Enum and EnumValue entries.
22221
6c223f5d
JM
222222011-03-22 Joseph Myers <joseph@codesourcery.com>
22223
22224 * config/cris/cris.c (cris_handle_option): Access target_flags via
22225 opts pointer. Don't assert that global structures are in use.
22226 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
22227 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
22228
bbd399cf
JM
222292011-03-22 Joseph Myers <joseph@codesourcery.com>
22230
22231 * config/bfin/bfin-opts.h: New.
22232 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
22233 bfin_si_revision, bfin_workarounds): Remove.
22234 (bfin_cpus): Make static const.
22235 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
22236 not bfin_lib_id_given.
22237 (bfin_handle_option): Don't set bfin_lib_id_given. Access
22238 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 22239 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
22240 * config/bfin/bfin.h: Include bfin-opts.h.
22241 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
22242 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
22243 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
22244 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
22245 entries.
22246
5e1b4d5a
JM
222472011-03-22 Joseph Myers <joseph@codesourcery.com>
22248
22249 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
22250 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
22251 or -msoft-float here.
22252 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
22253 -msoft-float and -mhard-float.
c78dd519 22254 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
22255 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
22256 msoft-float.
22257 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
22258 -msoft-float.
22259 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
22260 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
22261 not mhard-float.
22262 (LIBGCC_SPEC): Don't handle -msoft-float.
22263 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
22264 -mhard-float.
22265 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
22266 msoft-float.
22267 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
22268 -mfloat-abi=*, not -msoft-float and -mhard-float.
22269 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
22270 -msoft-float.
22271 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
22272 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
22273 mhard-float and msoft-float.
22274 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
22275 mfloat-abi=soft in comments, not mhard-float and msoft-float.
22276 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
22277 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
22278 mhard-float.
22279 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
22280 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
22281 msoft-float.
22282 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
22283 not mhard-float.
22284 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
22285 not msoft-float.
22286
800d1de1
RH
222872011-03-22 Richard Henderson <rth@redhat.com>
22288
22289 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
22290 TARGET_ABI_WINDOWS_NT.
22291 (alpha_output_function_end_prologue): Likewise.
22292 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
22293 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
22294 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
22295 (trap, *movsi_nt_vms): Likewise.
22296 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
22297 (*tablejump_osf_nt_internal): Remove.
22298 * config/alpha/predicates.md (input_operand): Only test Pmode.
22299
c59ddd2b
JM
223002011-03-22 Joseph Myers <joseph@codesourcery.com>
22301
22302 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
22303 via opts pointer. Use error_at. Don't assert that global
22304 structures are in use.
22305
1333f97f
JM
223062011-03-22 Joseph Myers <joseph@codesourcery.com>
22307
22308 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
22309 (ix86_handle_option): Access ix86_isa_flags and
22310 ix86_isa_flags_explicit via opts pointer. Don't assert that
22311 global structures are in use.
22312 (ix86_function_specific_save, ix86_function_specific_restore):
22313 Update ix86_isa_flags_explicit field name.
c78dd519 22314 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
22315 (ix86_isa_flags_explicit): Rename TargetSave entry to
22316 x_ix86_isa_flags_explicit.
22317
75db85d8
RH
223182011-03-22 Richard Henderson <rth@redhat.com>
22319
22320 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
22321 (alpha_option_override, direct_return): Likewise.
22322 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
22323 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
22324 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
22325 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
22326 (alpha_expand_epilogue, alpha_end_function): Likewise.
22327 (alpha_init_libfuncs): Likewise.
22328 (struct machine_function): Remove unicosmk members.
22329 (print_operand) ['t']: Remove.
22330 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
22331 unicosmk_output_module_name, unicosmk_output_common,
22332 current_section_align, unicosmk_output_text_section_asm_op,
22333 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
22334 unicosmk_section_type_flags, unicosmk_unique_section,
22335 unicosmk_asm_named_section, unicosmk_insert_attributes,
22336 unicosmk_output_align, unicosmk_defer_case_vector,
22337 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
22338 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
22339 unicosmk_output_ssib, unicosmk_add_call_info_word,
22340 unicosmk_extern_head, unicosmk_output_default_externs,
22341 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
22342 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
22343 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
22344 * config/alpha/alpha-protos.h: Update.
22345 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
22346 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
22347 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
22348 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
22349 (*mulsi_se, mulvsi3): Likewise.
22350 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
22351 (*divmodsi_internal, call, call_value, realign): Likewise.
22352 (moddi3, umoddi3): Likewise; remove duplicate expander.
22353 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
22354 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
22355 (*movdi_nofix): Remove r/U alternative.
22356 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
22357 * config/alpha/constraints.md ("U"): Remove.
22358 * config/alpha/predicates.md (call_operand"): Don't test
22359 TARGET_ABI_UNICOSMK.
22360
96e45421
JM
223612011-03-22 Joseph Myers <joseph@codesourcery.com>
22362
22363 * target.def (handle_option): Take gcc_options and
22364 cl_decoded_option pointers and location_t.
22365 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
22366 * doc/tm.texi: Regenerate.
22367 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
22368 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
22369 * lto-opts.c (lto_reissue_options): Generate option structure for
22370 targetm.handle_option call.
22371 * opts.c (target_handle_option): Update call to
22372 targetm.handle_option. Remove assertions about values now passed
22373 down to hook.
22374 * targhooks.c (default_target_handle_option): New.
22375 * targhooks.h (default_target_handle_option): Declare.
22376 * config/alpha/alpha.c: Include opts.h.
22377 (alpha_handle_option): Update to new hook interface.
22378 * config/arm/arm.c: Include opts.h.
22379 (arm_handle_option): Update to new hook interface.
22380 * config/arm/t-arm (arm.o): Update dependencies.
22381 * config/bfin/bfin.c: Include opts.h.
22382 (bfin_handle_option): Update to new hook interface.
22383 * config/cris/cris.c: Include opts.h.
22384 (cris_handle_option): Update to new hook interface.
22385 * config/frv/frv.c: Include opts.h.
22386 (frv_handle_option): Update to new hook interface.
22387 * config/i386/i386.c: Include opts.h.
22388 (ix86_handle_option): Update to new hook interface.
22389 (ix86_valid_target_attribute_inner_p): Generate option structure
22390 for call to ix86_handle_option.
22391 * config/i386/t-i386 (i386.o): Update dependencies.
22392 * config/ia64/ia64.c: Include opts.h.
22393 (ia64_handle_option): Update to new hook interface.
22394 * config/ia64/t-ia64 (ia64.o): Update dependencies.
22395 * config/iq2000/iq2000.c: Include opts.h.
22396 (iq2000_handle_option): Update to new hook interface.
22397 * config/m32c/m32c.c: Include opts.h.
22398 (m32c_handle_option): Update to new hook interface.
22399 * config/m32r/m32r.c: Include opts.h.
22400 (m32r_handle_option): Update to new hook interface.
22401 * config/m68k/m68k.c: Include opts.h.
22402 (m68k_handle_option): Update to new hook interface.
22403 * config/mep/mep.c: Include opts.h.
22404 (mep_handle_option): Update to new hook interface.
22405 * config/microblaze/microblaze.c: Include opts.h.
22406 (microblaze_handle_option): Update to new hook interface.
22407 * config/mips/mips.c: Include opts.h.
22408 (mips_handle_option): Update to new hook interface.
22409 * config/mn10300/mn10300.c: Include opts.h.
22410 (mn10300_handle_option): Update to new hook interface.
22411 * config/pa/pa.c: Include opts.h.
22412 (pa_handle_option): Update to new hook interface.
22413 * config/pdp11/pdp11.c: Include opts.h.
22414 (pdp11_handle_option): Update to new hook interface.
22415 * config/rs6000/rs6000.c: Include opts.h.
22416 (rs6000_handle_option): Update to new hook interface.
22417 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
22418 * config/rx/rx.c: Include opts.h.
22419 (rx_handle_option): Update to new hook interface.
22420 * config/s390/s390.c: Include opts.h.
22421 (s390_handle_option): Update to new hook interface.
22422 * config/score/score.c: Include opts.h.
22423 (score_handle_option): Update to new hook interface.
22424 * config/sh/sh.c: Include opts.h.
22425 (sh_handle_option): Update to new hook interface.
22426 * config/sparc/sparc.c: Include opts.h.
22427 (sparc_handle_option): Update to new hook interface.
22428 * config/v850/v850.c: Include opts.h.
22429 (v850_handle_option): Update to new hook interface.
22430
66017846
JM
224312011-03-22 Joseph Myers <joseph@codesourcery.com>
22432
22433 * gcc.c (driver_unknown_option_callback): Only permit and save
22434 unknown -Wno- options.
22435 (driver_wrong_lang_callback): Save options directly instead of via
22436 driver_unknown_option_callback.
22437
e8b97ccd
EB
224382011-03-22 Eric Botcazou <ebotcazou@adacore.com>
22439
22440 * combine.c (simplify_set): Try harder to find the best CC mode when
22441 simplifying a nested COMPARE on the RHS.
22442
ebb9f8b0
JM
224432011-03-22 Joseph Myers <joseph@codesourcery.com>
22444
22445 * config/alpha/gnu.h: Remove.
22446 * config/arc: Remove directory.
22447 * config/arm/netbsd.h: Remove.
22448 * config/arm/t-pe: Remove.
22449 * config/crx: Remove directory.
22450 * config/i386/netbsd.h: Remove.
22451 * config/m68hc11: Remove directory.
22452 * config/m68k/uclinux-oldabi.h: Remove.
22453 * config/mcore/mcore-pe.h: Remove.
22454 * config/mcore/t-mcore-pe: Remove.
22455 * config/netbsd-aout.h: Remove.
22456 * config/rs6000/gnu.h: Remove.
22457 * config/sh/sh-symbian.h: Remove.
22458 * config/sh/symbian-base.c: Remove.
22459 * config/sh/symbian-c.c: Remove.
22460 * config/sh/symbian-cxx.c: Remove.
22461 * config/sh/symbian-post.h: Remove.
22462 * config/sh/symbian-pre.h: Remove.
22463 * config/sh/t-symbian: Remove.
22464 * config/svr3.h: Remove.
22465 * config/vax/netbsd.h: Remove.
22466 * config.build: Don't handle i[34567]86-*-pe.
22467 * config.gcc: Remove handling of deprecations for most deprecated
22468 targets.
22469 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
22470 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
22471 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
22472 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
22473 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
22474 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
22475 Remove cases.
22476 * config.host: Don't handle i[34567]86-*-pe.
22477 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
22478 (ASM_SPEC32): Don't handle -mcall-gnu.
22479 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
22480 -mcall-gnu.
22481 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
22482 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
22483 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
22484 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
22485 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
22486 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
22487 conditional on SYMBIAN.
22488 * configure.ac: Don't handle powerpc*-*-gnu*.
22489 * configure: Regenerate.
22490 * doc/extend.texi (interrupt attribute): Don't mention CRX.
22491 * doc/install-old.texi (m6811, m6812): Don't mention.
22492 * doc/install.texi (arc-*-elf*): Don't document multilib option.
22493 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
22494 (m68k-uclinuxoldabi): Don't mention.
22495 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
22496 Remove.
22497 (-mcall-gnu): Remove.
22498 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
22499 families): Remove constraint documentation.
22500
999a7d80
MS
225012011-03-22 Marius Strobl <marius@FreeBSD.org>
22502
22503 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
22504 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
22505 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
22506
45540bcf
MM
225072011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
22508
22509 PR target/48226
22510 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
22511 vector when peeking at the next token for vector, don't expand the
22512 keywords.
22513
980a0ff4
GJL
225142011-03-21 Georg-Johann Lay <avr@gjlay.de>
22515
22516 * config/avr/avr-protos.h (expand_epilogue): Change prototype
22517 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
22518 * config/avr/avr.c (init_cumulative_args)
22519 (avr_function_arg_advance): Use it.
22520 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
22521 sibcall epilogues.
22522 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
22523 (avr_function_ok_for_sibcall): ...this new function.
22524 (avr_lookup_function_attribute1): New static Function.
22525 (avr_naked_function_p, interrupt_function_p)
22526 (signal_function_p, avr_OS_task_function_p)
22527 (avr_OS_main_function_p): Use it.
22528 * config/avr/avr.md ("sibcall", "sibcall_value")
22529 ("sibcall_epilogue"): New expander.
22530 ("*call_insn", "*call_value_insn"): New insn.
22531 ("call_insn", "call_value_insn"): Remove
22532 ("call", "call_value", "epilogue"): Change expander to handle
22533 sibling calls.
22534
49168734
NC
225352011-03-21 Nick Clifton <nickc@redhat.com>
22536
22537 * doc/invoke.texi (Overall Options): Move closing brace to end of
22538 options list.
22539 (Optimization Options): Add missing @gol.
22540 (Directory Options): Likewise.
22541 (i386 and x86-64 Options): Likewise.
22542 (RS6000 and PowerPC Options): Likewise.
22543 (i386 and x86-64 Windows Options): Likewise.
22544 (V850 Options): Add text missing from descriptions.
22545
bdfe906f
RH
225462011-03-22 Richard Henderson <rth@redhat.com>
22547
22548 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
22549 (avr_incoming_return_addr_rtx): New.
22550 (emit_push_byte): New.
22551 (expand_prologue): Use it. Remove incorrect dwarf annotation for
22552 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
22553 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
22554 (emit_pop_byte): New.
22555 (expand_epilogue): Use it. Pop frame pointer by bytes.
22556 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
22557 (INCOMING_RETURN_ADDR_RTX): New.
22558 (INCOMING_FRAME_SP_OFFSET): New.
22559 (ARG_POINTER_CFA_OFFSET): New.
22560 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
22561 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
22562 (pophi): Remove.
22563
d090a5aa
RH
22564 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
22565
fdf3e18a
NF
225662011-03-22 Nathan Froyd <froydnj@codesourcery.com>
22567
22568 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
22569 (FUNCTION_ARG_ADVANCE): Likewise.
22570 * tm.texi.in: Change references to them to hook references.
22571 * tm.texi: Regenerate.
22572 * targhooks.c (default_function_arg): Eliminate check for target
22573 macro.
22574 (default_function_incoming_arg): Likewise.
22575 (default_function_arg_advance): Likewise.
c78dd519 22576 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
22577 (function_arg_advance): Likewise.
22578 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
22579
009d3fcf
NF
225802011-03-22 Nathan Froyd <froydnj@codesourcery.com>
22581
22582 * tree.c (build_call_1): New function.
22583 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
22584
7bec30e1
RG
225852011-03-22 Richard Guenther <rguenther@suse.de>
22586
22587 PR tree-optimization/48228
22588 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
22589 for single-arg PHIs.
22590
0b7e851b
AB
225912011-03-22 Andrey Belevantsev <abel@ispras.ru>
22592
22593 PR rtl-optimization/48143
22594 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
22595 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
22596 sse2_cvtps2pd): Likewise.
22597
d89afca5
AK
225982011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22599
22600 * recog.c (canonicalize_change_group): Use validate_unshare_change.
22601
f471fe72
RG
226022011-03-22 Richard Guenther <rguenther@suse.de>
22603
22604 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
22605 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
22606 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
22607 and REALIGN_LOAD_EXPR.
22608 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
22609 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
22610 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
22611 DOT_PROD_EXPR case ...
22612 (expand_expr_real_2): ... here.
22613 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
22614 and REALIGN_LOAD_EXPR.
22615 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
22616 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
22617 (vect_create_epilog_for_reduction): Likewise.
22618 (vectorizable_reduction): Likewise.
22619 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
22620 * tree-vect-stmts.c (vectorizable_load): Likewise.
22621
f2f81d57
EB
226222011-03-22 Eric Botcazou <ebotcazou@adacore.com>
22623
22624 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
22625
ab081dd6
AK
226262011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22627
22628 * config/s390/s390.c (s390_delegitimize_address): Fix offset
22629 handling for PLTOFF/GOTOFF.
22630
6fd5332b
NC
226312011-03-22 Nick Clifton <nickc@redhat.com>
22632
22633 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
22634 trailing backslash from the end of the macro definition.
22635
01841ac0
AK
226362011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22637
22638 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
22639 and PLT unspecs.
22640
2ef6ce06
RS
226412011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
22642
22643 * expr.h (prepare_operand): Move to...
22644 * optabs.h (prepare_operand): ...here and change the insn code
22645 parameter from "int" to "enum insn_code".
22646 (insn_operand_matches): Declare.
22647 * expr.c (init_expr_target): Use insn_operand_matches.
22648 (compress_float_constant): Likewise.
22649 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
22650 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
22651 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
22652 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
22653 Likewise.
2ef6ce06
RS
22654 (gen_cond_trap): Likewise.
22655 (prepare_operand): Likewise. Change icode to an insn_code.
22656 (insn_operand_matches): New function.
22657 * reload.c (find_reloads_address_1): Use insn_operand_matches.
22658 * reload1.c (gen_reload): Likewise.
22659 * targhooks.c (default_secondary_reload): Likewise.
22660
9e43ad68
UB
226612011-03-21 Uros Bizjak <ubizjak@gmail.com>
22662
9a96da32
UB
22663 * config/alpha/alpha.md (unspec): New define_c_enum.
22664 (unspecv): Ditto.
22665
226662011-03-21 Uros Bizjak <ubizjak@gmail.com>
22667
22668 PR debug/48214
9e43ad68
UB
22669 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
22670 between a call and its CALL_ARG_LOCATION note.
22671
31408f60
EB
226722011-03-21 Eric Botcazou <ebotcazou@adacore.com>
22673
22674 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
22675
226762011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
22677
22678 PR c/42544
22679 PR c/48197
22680 * c-common.c (shorten_compare): If primopN is first sign-extended
22681 to opN and then zero-extended to result type, set primopN to opN.
22682
9dfd55f5
DJ
226832011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
22684
22685 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
22686 for barrier handlers.
22687
f3c33d9d
MM
226882011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
22689
22690 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
22691 UNSPEC constants to be in the unspec enumeration, and redefine
22692 all UNSPECV constants to be in the unspecv enumeration, so that
22693 dumps print which unspec/unspec_volatile this is.
22694 * config/rs6000/vector.md (UNSPEC_*): Ditto.
22695 * config/rs6000/paired.md (UNSPEC_*): Ditto.
22696 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
22697 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
22698 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
22699
22700 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
22701 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
22702 UNSPECV_LWSYNC, since these are used as unspec_volatile.
22703 * config/rs6000/sync.md (isync, lwsync): Ditto.
22704
ac43f774
RG
227052011-03-21 Richard Guenther <rguenther@suse.de>
22706
22707 * params.def (lto-min-partition): Fix typo.
22708
411cdbd8
RG
227092011-03-21 Richard Guenther <rguenther@suse.de>
22710
22711 PR c/47939
22712 * c-decl.c (grokdeclarator): Drop to the main variant only
22713 for array types. Drop flag_gen_aux_info check.
22714
1cd9e416
RG
227152011-03-21 Richard Guenther <rguenther@suse.de>
22716
22717 PR translation/47911
22718 * params.def (lto-partitions): Fix typo.
22719 (lto-min-partition): Fix wording.
22720
ada5ad67
AT
227212011-03-21 Andreas Tobler <andreast@fgznet.ch>
22722
22723 * config/rs6000/t-freebsd: Remove duplication from file.
22724
f9613c9a
RG
227252011-03-21 Richard Guenther <rguenther@suse.de>
22726
22727 PR middle-end/47661
22728 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
22729
9bfbc1eb
RG
227302011-03-21 Richard Guenther <rguenther@suse.de>
22731
22732 PR lto/48210
22733 * params.def (lto-partitions): Require at least 1 partition.
22734
a2268084
RO
227352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22736
22737 * gthr-solaris.h: Remove.
22738 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
22739 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
22740 (LIB_SPEC): Likewise.
22741 * config/sol2.opt (threads): Remove.
9e43ad68 22742 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
22743 (sparc*-*-solaris2*): Likewise.
22744 * configure.ac (enable_threads): Enable solaris support.
22745 * configure: Regenerate.
9e43ad68 22746 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
22747 * doc/install.texi (Configuration, --enable-threads=lib): Remove
22748 solaris.
22749
c43d9a1b
RO
227502011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22751
22752 * config.gcc: Obsolete *-*-solaris2.8*.
22753 * doc/install.texi (Specific, *-*-solaris2*): Document it.
22754
084239f4
RO
227552011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22756
22757 PR bootstrap/48135
22758 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
22759 reference. Solaris 8 perl works.
22760
64cadbe7
RO
227612011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22762
22763 PR bootstrap/48135
22764 * doc/install.texi (Prerequisites): Move jar etc. up.
22765 Explain support library version requirements.
22766
eb975109
RO
227672011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22768
22769 PR bootstrap/48135
22770 * doc/install.texi (Prerequisites): Move Perl to build
22771 requirements. Always necessary on Solaris 2 with Sun ld.
22772
8a509ffd
RO
227732011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22774
22775 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
22776 binutils 2.21.
22777 (Specific, i?86-*-solaris2.[89]): Likewise.
22778 (Specific, i?86-*-solaris2.10): Likewise.
22779 (Specific, mips-sgi-irix6): Likewise.
22780 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
22781 Update for binutils 2.21.
22782
8fbc58a1
RO
227832011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22784
22785 * configure.ac (gcc_cv_lto_plugin): Fix typo.
22786 Allow -fuse-linker-plugin for non-default plugin linker.
22787 * configure: Regenerate.
22788
7e84ad0b
NP
227892011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
22790
22791 PR bootstrap/48167
22792 * gengtype.c (files_rules): Added rule for cp/parser.h.
22793
2f36e14b
JJ
227942011-03-21 Jakub Jelinek <jakub@redhat.com>
22795
22796 PR target/48213
22797 * config/s390/s390.c (s390_delegitimize_address): Don't call
22798 lowpart_subreg if orig_x has BLKmode.
22799
62d784f7
KT
228002011-03-21 Kai Tietz <ktietz@redhat.com>
22801
22802 PR target/12171
9e43ad68
UB
22803 * doc/plugins.texi: Adjust documentation for plugin register_callback.
22804 * tree.h (attribute_spec): Add new member affects_type_identity.
22805 * attribs.c (empty_attribute_table): Adjust attribute_spec
22806 initializers.
62d784f7
KT
22807 * config/alpha/alpha.c: Likewise.
22808 * config/arc/arc.c: Likewise.
22809 * config/arm/arm.c: Likewise.
22810 * config/avr/avr.c: Likewise.
22811 * config/bfin/bfin.c: Likewise.
22812 * config/crx/crx.c: Likewise.
22813 * config/darwin.h: Likewise.
22814 * config/h8300/h8300.c: Likewise.
22815 * config/i386/cygming.h: Likewise.
22816 * config/i386/i386.c: Likewise.
22817 * config/ia64/ia64.c: Likewise.
22818 * config/m32c/m32c.c: Likewise.
22819 * config/m32r/m32r.c: Likewise.
22820 * config/m68hc11/m68hc11.c: Likewise.
22821 * config/m68k/m68k.c: Likewise.
22822 * config/mcore/mcore.c: Likewise.
22823 * config/mep/mep.c: Likewise.
22824 * config/microblaze/microblaze.c: Likewise.
22825 * config/mips/mips.c: Likewise.
22826 * config/rs6000/rs6000.c: Likewise.
22827 * config/rx/rx.c: Likewise.
22828 * config/sh/sh.c: Likewise.
22829 * config/sol2.h: Likewise.
22830 * config/sparc/sparc.c: Likewise.
22831 * config/spu/spu.c: Likewise.
22832 * config/stormy16/stormy16.c: Likewise.
22833 * config/v850/v850.c: Likewise.
22834
54833ec0
CLT
228352011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
22836
22837 * simplify-rtx.c (simplify_binary_operation_1): Handle
22838 (xor (and A B) C) case when B and C are both constants.
22839
14a41392
MX
228402011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
22841
22842 * tree-dfa.c (add_referenced_var): Fix typo in comment.
22843
806c3492
EB
228442011-03-20 Eric Botcazou <ebotcazou@adacore.com>
22845
22846 PR bootstrap/48168
22847 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
22848
65e0a0f3
JJ
228492011-03-20 Jakub Jelinek <jakub@redhat.com>
22850
22851 PR rtl-optimization/48156
22852 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
22853 assume df and df_lr are not NULL.
22854
b6a75dda
RR
228552011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
22856
22857 PR debug/48023
22858 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
22859 between a call and its CALL_ARG_LOCATION note.
22860
5969b52d
KK
228612011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
22862
22863 PR debug/48178
22864 * config/sh/sh.c (find_barrier): Don't emit a constant pool
22865 between a call and its corresponding CALL_ARG_LOCATION note.
22866
f773c2bd
AS
228672011-03-19 Anatoly Sokolov <aesok@post.ru>
22868
22869 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
22870 instead of loop. Use HARD_REGISTER_NUM_P predicate.
22871 * haifa-sched.c (setup_ref_regs): Ditto.
22872 * caller-save.c (add_used_regs_1): Ditto.
22873 * dse.c (look_for_hardregs): Ditto.
22874 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
22875 * sched-rgn.c (check_live_1): Ditto.
22876
8bf872f9
JM
228772011-03-18 Joseph Myers <joseph@codesourcery.com>
22878
22879 * c-decl.c (diagnose_mismatched_decls): Give an error for
22880 redefining a typedef with variably modified type.
22881
ff8e2159
JM
228822011-03-18 Joseph Myers <joseph@codesourcery.com>
22883
22884 * c-decl.c (grokfield): Don't allow typedefs for structures or
22885 unions with no tag by default.
22886 * doc/extend.texi (Unnamed Fields): Update.
22887
16cc4440
UB
228882011-03-18 Uros Bizjak <ubizjak@gmail.com>
22889
22890 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
22891 Rewrite using indirect functions.
22892 (lwp_slwpcb): Ditto.
22893 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
22894 (avx_vinsertf128<mode>): Ditto.
22895
e101e12e
AK
228962011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22897
22898 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
22899 unspecs.
22900
4627c7fb
AK
229012011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22902
22903 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 22904 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 22905
2d36b47f
MK
229062011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
22907
22908 PR rtl-optimization/48170
22909 * gcse.c (hoist_code): Remove bogus asserts.
22910
2a3d7659
JL
229112011-03-18 Georg-Johann Lay <avr@gjlay.de>
22912
22913 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
22914 computation for prologue/epilogue.
22915
34c3ef05
RO
229162011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22917
22918 * Makefile.in (check-consistency): Remove.
22919
81f2b976
JJ
229202011-03-18 Jakub Jelinek <jakub@redhat.com>
22921
22922 PR debug/48176
22923 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
22924 arange_table_in_use is 0, but either text_section_used or
22925 cold_text_section_used is true. Don't call it if
22926 !info_section_emitted.
22927
68fd7765
AS
229282011-03-18 Anatoly Sokolov <aesok@post.ru>
22929
22930 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
22931 FUNCTION_VALUE_REGNO_P): Remove.
22932 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
22933 Remove.
22934 * config/avr/avr.c (avr_ret_register): Make static inline.
22935 (avr_function_value_regno_p): New function.
22936 (avr_libcall_value): Make static. Add 'func' argument.
22937 (avr_function_value): Make static. Rename 'func' argument to
22938 'fn_decl_or_type', forward it to avr_libcall_value. Call
22939 avr_ret_register function instead of RET_REGISTER macro.
b8bc3a43 22940 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
68fd7765 22941
b4ef8aac
JM
229422011-03-18 Jason Merrill <jason@redhat.com>
22943
22944 PR c++/23372
22945 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
22946
09a52fc3
RG
229472011-03-18 Richard Guenther <rguenther@suse.de>
22948
22949 * doc/install.texi (--enable-gold): Remove.
22950 (--with-plugin-ld): Document.
22951 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
22952
2a3d7659 229532011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
22954
22955 PR middle-end/47790
22956 * expr.c (optimize_bitfield_assignment_op): Revamp to work
22957 again after expansion changes.
22958
2abbb0fe
CLT
229592011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
22960
22961 * combine.c (try_combine): Do simplification only call of
22962 subst() on i2 even when i1 is present. Update comments.
22963
2efd0aa6
KK
229642011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
22965
22966 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
22967 and UNSPEC_PCREL_SYMOFF.
22968
30a49b23
AK
229692011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22970
22971 * config/s390/s390.md: Use define_c_enum for the unspec constant
22972 definitions.
22973
419e1853
JJ
229742011-03-18 Richard Henderson <rth@redhat.com>
22975 Jakub Jelinek <jakub@redhat.com>
22976
22977 PR bootstrap/48161
22978 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
22979 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
22980
24da2019
AS
229812011-03-17 Anatoly Sokolov <aesok@post.ru>
22982
22983 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
22984 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
22985 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
22986 Change return type to bool.
22987 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
22988
a82ff31f
JJ
229892011-03-17 Jakub Jelinek <jakub@redhat.com>
22990
8b29c87a
JJ
22991 PR debug/48163
22992 * var-tracking.c (prepare_call_arguments): If CALL target
22993 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
22994 pc instead of looking it up using cselib_lookup and use
22995 Pmode for it if x has VOIDmode.
22996 * dwarf2out.c (gen_subprogram_die): If also both first and
22997 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
22998
a82ff31f
JJ
22999 PR debug/48163
23000 * function.c (assign_parms): For data.passed_pointer parms
23001 use MEM of data.entry_parm instead of data.entry_parm itself
23002 as DECL_INCOMING_RTL.
23003 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
23004 also when passed and declared mode is the same, DECL_RTL
23005 is a MEM with pseudo as address and DECL_INCOMING_RTL is
23006 a MEM too.
23007
82ce305c
JL
230082011-03-16 Jeff Law <law@redhat.com>
23009
23010 PR rtl-optimization/37273
23011 * ira-costs.c (scan_one_insn): Detect constants living in memory and
23012 handle them like argument loads from stack slots. Do not double
23013 count memory for memory constants and argument loads from stack slots.
23014
fe58e02b
L
230152011-03-17 H.J. Lu <hongjiu.lu@intel.com>
23016
23017 PR debug/48160
23018 * var-tracking.c (prepare_call_arguments): Check SUBREG.
23019
6fc4dbc7
L
230202011-03-17 H.J. Lu <hongjiu.lu@intel.com>
23021
23022 PR target/48171
23023 * config/i386/i386.opt: Add Save to -mavx and -mfma.
23024
db3ed0b3
JJ
230252011-03-17 Jakub Jelinek <jakub@redhat.com>
23026
8054a389
JJ
23027 PR bootstrap/48153
23028 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
23029 if dwarf_strict.
23030 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
23031 Clear call_arg_locations and call_arg_loc_last always.
23032
db3ed0b3
JJ
23033 PR middle-end/48152
23034 * var-tracking.c (prepare_call_arguments): If argument needs to be
23035 passed by reference, adjust argtype and mode.
23036
1bce4ff3
RG
230372011-03-17 Richard Guenther <rguenther@suse.de>
23038
23039 PR middle-end/48134
23040 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
23041 a value make sure to fold the statement.
23042
7c71147d
CLT
230432011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
23044
23045 PR target/43872
23046 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
23047 return condition with !cfun->calls_alloca.
23048
0e1ee172
RG
230492011-03-17 Richard Guenther <rguenther@suse.de>
23050
23051 PR bootstrap/48148
23052 * lto-cgraph.c (input_overwrite_node): Clear the abstract
23053 origin for decls in other ltrans units.
23054 (input_varpool_node): Likewise.
23055
f8bce518
RG
230562011-03-17 Richard Guenther <rguenther@suse.de>
23057
23058 PR middle-end/48165
23059 * tree-object-size.c (compute_object_offset): Properly return
23060 the offset operand of MEM_REFs as sizetype.
23061
1b6fa860
JJ
230622011-03-17 Jakub Jelinek <jakub@redhat.com>
23063
dabd47e7
JJ
23064 PR rtl-optimization/48141
23065 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
23066 * dse.c: Include params.h.
23067 (active_local_stores_len): New variable.
23068 (add_wild_read, dse_step1): Clear it when setting active_local_stores
23069 to NULL.
23070 (record_store, check_mem_read_rtx): Decrease it when removing
23071 from the chain.
23072 (scan_insn): Likewise. Increase it when adding to chain, if it
23073 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
23074 set active_local_stores to NULL before the addition.
23075 * Makefile.in (dse.o): Depend on $(PARAMS_H).
23076
1b6fa860
JJ
23077 PR rtl-optimization/48141
23078 * dse.c (record_store): If no positions are needed in an insn
23079 that cannot be deleted, at least unchain it from active_local_stores.
23080
7b5cb7d6
DS
230812011-03-16 Dodji Seketeli <dodji@redhat.com>
23082
23083 PR debug/47510
23084 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
23085 (lookup_type_die_strip_naming_typedef): ... here.
23086 (get_context_die): Use it.
23087 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
23088 the anonymous struct named by the naming typedef.
23089
585e9d9d
L
230902011-03-16 H.J. Lu <hongjiu.lu@intel.com>
23091
23092 PR target/48154
23093 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
23094 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23095
6261ab0e
JL
230962011-03-16 Jeff Law <law@redhat.com>
23097
23098 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 23099 check for operands of conditional. Allow type to be a pointer.
6261ab0e 23100
0b0081ec
RG
231012011-03-16 Richard Guenther <rguenther@suse.de>
23102
23103 PR tree-optimization/48149
23104 * fold-const.c (fold_binary_loc): Fold
23105 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
23106
64a3d647
RG
231072011-03-16 Richard Guenther <rguenther@suse.de>
23108
23109 PR tree-optimization/26134
23110 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
23111 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
23112 (non_rewritable_mem_ref_base): Handle complex type component
23113 accesses, constrain offsets for vector and complex extracts
23114 more properly.
23115
ef13324e
RG
231162011-03-16 Richard Guenther <rguenther@suse.de>
23117
23118 PR tree-optimization/48146
23119 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
23120 operands avoiding the need for renaming.
23121
f0eddb90
RG
231222011-03-16 Richard Guenther <rguenther@suse.de>
23123
23124 * gimple-fold.c (maybe_fold_reference): Open-code relevant
23125 constant folding. Move MEM_REF canonicalization first.
23126 Rely on fold_const_aggregate_ref for initializer folding.
23127 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
23128
e42348b8
JJ
231292011-03-16 Jakub Jelinek <jakub@redhat.com>
23130
29f10e71
JJ
23131 PR middle-end/48136
23132 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23133 arg0/arg1 or their arguments are always fold converted to matching
23134 types.
23135
e42348b8
JJ
23136 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
23137 to nargs.
23138
55b46574
RO
231392011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23140
23141 PR lto/46944
23142 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
23143 Handle in-tree gold.
23144 (ld_vers): Extract binutils version for gold.
23145 (gcc_cv_ld_hidden): Handle gold here.
23146 (gcc_cv_lto_plugin): Determine level of linker plugin support.
23147 * configure: Regenerate.
23148 * config.in: Regenerate.
23149 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
23150 -fuse-linker-plugin otherwise.
23151 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
23152 (LINK_COMMAND_SPEC): Use it.
23153 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
23154
2b1c5433
JJ
231552011-03-16 Jakub Jelinek <jakub@redhat.com>
23156
c2969d8e
JJ
23157 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
23158 * calls.c: Remove debug.h include.
23159 (emit_call_1): Don't call virtual_call_token debug hook.
23160 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
23161 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
23162 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
23163 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
23164 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
23165 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
23166 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
23167 dwarf2out_virtual_call): Remove.
23168 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
23169 copy_call_info and virtual_call hooks.
23170 (dwarf2out_init): Don't initialize vcall_insn_table,
23171 debug_dcall_section and debug_vcall_section.
23172 (prune_unused_types): Don't mark nodes from dcall_table.
23173 (dwarf2out_finish): Don't output dcall or vcall tables.
23174 * final.c (final_scan_insn): Don't call direct_call or
23175 virtual_call debug hooks.
23176 * debug.h (struct gcc_debug_hooks): Remove direct_call,
23177 virtual_call_token, copy_call_info and virtual_call hooks.
23178 (debug_nothing_uid): Remove prototype.
23179 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
23180 copy_call_info and virtual_call hooks.
23181 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
23182 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
23183 * debug.c (do_nothing_debug_hooks): Likewise.
23184 (debug_nothing_uid): Remove.
23185 * doc/invoke.texi (-fenable-icf-debug): Remove.
23186 * common.opt (-fenable-icf-debug): Likewise.
23187
325f5379
JJ
23188 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
23189 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
23190 call's MEM. Handle functions returning aggregate through a hidden
23191 first pointer. For virtual calls add clobbered pc to call arguments
23192 chain.
23193 * dwarf2out.c (gen_subprogram_die): Emit
23194 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
23195 can't be emitted.
23196
a58a8e4b
JJ
23197 PR debug/45882
23198 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
23199 * rtl.h (ENTRY_VALUE_EXP): Define.
23200 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
23201 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
23202 * print-rtl.c (print_rtx): Likewise.
23203 * gengtype.c (adjust_field_rtx_def): Likewise.
23204 * var-tracking.c (vt_add_function_parameter): Adjust
23205 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
23206 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
23207 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
23208 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
23209 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
23210
2b1c5433
JJ
23211 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
23212 Call var_location debug hook even on CALL_INSNs.
23213 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
23214 * rtl.def (ENTRY_VALUE): New.
23215 * dwarf2out.c: Include cfglayout.h.
23216 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
23217 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
23218 (struct call_arg_loc_node): New type.
23219 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
23220 tail_call_site_count): New variables.
23221 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
23222 DW_TAG_GNU_call_site_parameter.
23223 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
23224 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
23225 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
23226 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
23227 and DW_AT_GNU_all_source_call_sites.
23228 (mem_loc_descriptor): Handle ENTRY_VALUE.
23229 (add_src_coords_attributes): Don't add enything if
23230 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
23231 (dwarf2out_abstract_function): Save and clear call_arg_location,
23232 call_site_count and tail_call_site_count around dwarf2out_decl call.
23233 (gen_call_site_die): New function.
23234 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
23235 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
23236 (dwarf2out_function_decl): Clear call_arg_locations,
23237 call_arg_loc_last, set call_site_count and tail_call_site_count
23238 to -1 and free block_map.
23239 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
23240 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
23241 followed by any real instructions.
23242 (dwarf2out_begin_function): Set call_site_count and
23243 tail_call_site_count to 0.
23244 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
23245 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
23246 attempt to force a DIE for it and worst case remove the attribute.
23247 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
23248 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
23249 the decl itself.
23250 * var-tracking.c: Include tm_p.h.
23251 (vt_stack_adjustments): For calls call note_register_arguments.
23252 (argument_reg_set): New variable.
23253 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
23254 ensure the VALUE is resolved.
23255 (call_arguments): New variable.
23256 (prepare_call_arguments): New function.
23257 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
23258 (struct expand_loc_callback_data): Add ignore_cur_loc field.
23259 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
23260 always use the best expression.
23261 (vt_expand_loc): Add ignore_cur_loc argument.
23262 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
23263 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
23264 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
23265 note for all calls.
23266 (vt_add_function_parameter): Use cselib_lookup_from_insn.
23267 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
23268 argument. Don't call cselib_preserve_only_values and
23269 cselib_reset_table.
23270 (note_register_arguments): New function.
23271 (vt_initialize): Compute argument_reg_set. Call
23272 vt_add_function_parameters before processing basic blocks instead of
23273 afterwards. For calls call prepare_call_arguments before calling
23274 cselib_process_insn.
23275 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
23276 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
23277 (var-tracking.o): Depend on $(TM_P_H).
23278 * cfglayout.h (insn_scope): New prototype.
23279 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
23280 * cfglayout.c (insn_scope): No longer static.
23281 * insn-notes.def (CALL_ARG_LOCATION): New.
23282 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
23283 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
23284 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
23285 nothing for DECL_EXTERNAL BLOCK_VARS.
23286
9ef13bd0
AM
232872011-03-16 Alan Modra <amodra@gmail.com>
23288
23289 PR target/45844
23290 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
23291 create invalid offset address for vsx splat insn.
23292 * config/rs6000/predicates.md (splat_input_operand): New.
23293 * config/rs6000/vsx.md (vsx_splat_*): Use it.
23294
56b67510
XDL
232952011-03-15 Xinliang David Li <davidxl@google.com>
23296
23297 PR c/47837
23298 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
23299 (normalize_preds): New function.
23300 (is_use_properly_guarded): Normalize def predicates.
23301
80fffdef
RR
233022011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
23303
732f37c6 23304 PR target/46788
80fffdef
RR
23305 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
23306 in the output template.
23307
930672ad
RG
233082011-03-15 Richard Guenther <rguenther@suse.de>
23309
23310 PR middle-end/47650
23311 * tree-pretty-print.c (dump_function_declaration): Properly
23312 dump unprototyped and varargs function types.
23313
c7ee7b45
RG
233142011-03-15 Richard Guenther <rguenther@suse.de>
23315
23316 PR tree-optimization/13954
23317 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
23318 and friends.
23319
b2ad5e37
RG
233202011-03-15 Richard Guenther <rguenther@suse.de>
23321
23322 PR tree-optimization/48037
23323 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
23324 selects into BIT_FIELD_REFs.
23325 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
23326 vector select.
23327
7ee93d4e
JJ
233282011-03-15 Jakub Jelinek <jakub@redhat.com>
23329
23330 PR tree-optimization/48129
23331 * builtins.c (fold_builtin_snprintf): Convert to type of
23332 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
23333 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
23334
e106efc7
RG
233352011-03-15 Richard Guenther <rguenther@suse.de>
23336
23337 PR tree-optimization/41490
23338 * tree-ssa-dce.c (propagate_necessity): Handle returns without
23339 value but with VUSE.
23340 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
23341 return statements.
23342 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
23343 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
23344 * tree-tailcall.c (find_tail_calls): Ignore returns.
23345
17dea42f
RG
233462011-03-15 Richard Guenther <rguenther@suse.de>
23347
23348 PR middle-end/48031
23349 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
23350 or variable-indexed array accesses when in gimple form.
23351
01c77a60
RG
233522011-03-15 Richard Guenther <rguenther@suse.de>
23353
16cc4440 23354 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 23355
77b0791e
AM
233562011-03-15 Alan Modra <amodra@gmail.com>
23357
23358 PR target/48032
23359 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
23360 presume symbol_refs without a symbol_ref_decl are suitably
23361 aligned, nor other trees we may see here. Handle anchor symbols.
23362 (legitimate_constant_pool_address_p): Comment. Add mode param.
23363 Check cmodel=medium addresses. Adjust all calls.
23364 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
23365 creating cmodel=medium optimized access to locals.
23366 * config/rs6000/constraints.md (R): Pass QImode to
23367 legitimate_constant_pool_address_p.
23368 * config/rs6000/predicates.md (input_operand): Pass mode to
23369 legitimate_constant_pool_address_p.
23370 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
23371 Update prototype.
23372
35f61ba4
MM
233732011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23374
23375 PR target/48053
23376 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
23377 64-bit constants being loaded into registers other than GPRs such
23378 as loading 0 into a VSX register.
23379
07332e6d
RO
233802011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23381
16cc4440 23382 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 23383
de888d90
JJ
233842011-03-14 Jakub Jelinek <jakub@redhat.com>
23385
ba3ceb2d
JJ
23386 PR middle-end/47917
23387 * builtins.c (fold_builtin_snprintf): New function.
23388 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
23389 (fold_builtin_4): Likewise.
23390
2e64f8b8
JJ
23391 PR middle-end/38878
23392 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
23393 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
23394 and C - X == X also strip nops from +/-/p+ operand.
23395 When optimizing -X == C, fold C to arg0's type.
23396
de888d90
JJ
23397 PR debug/47946
23398 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
23399 emit it as add_AT_int instead of add_AT_unsigned.
23400
234012011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
23402
23403 * unwind-dw2.c: Include sys/sdt.h if it exists.
23404 (_Unwind_DebugHook): Use STAP_PROBE2.
23405 * config.in, configure: Rebuild.
23406 * configure.ac: Check for sys/sdt.h.
23407
d34abfd2
UB
234082011-03-14 Uros Bizjak <ubizjak@gmail.com>
23409
23410 * config/i386/i386.md (ROUND_FLOOR): New constant.
23411 (ROUND_CEIL): Ditto.
23412 (ROUND_TRUNC): Ditto.
23413 (ROUND_MXCSR): Ditto.
23414 (ROUND_NO_EXC): Ditto.
23415 (rint<mode>2): Use new defines instead of numerical constants.
23416 (floor<mode>2): Ditto.
23417 (ceil<mode>2): Ditto.
23418 (btrunc<mode>2): Ditto.
23419 * config/i386/i386-builtin-types.def: Define ROUND function type
23420 aliases.
23421 * config/i386/i386.c (enum ix86_builtins): Add
23422 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
23423 (struct builtin_description): Add
23424 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
23425 (ix86_expand_sse_round): New static function.
23426 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
23427 function types.
23428 (ix86_builtin_vectorized_function): Handle
23429 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23430
87f9e23d
TT
234312011-03-14 Tom Tromey <tromey@redhat.com>
23432
23433 * c-parser.c (c_parser_asm_string_literal): Clear
23434 warn_overlength_strings.
23435
b3ab9ea2
TT
234362011-03-14 Tom Tromey <tromey@redhat.com>
23437
23438 * c-parser.c (disable_extension_diagnostics): Save
23439 warn_overlength_strings.
23440 (restore_extension_diagnostics): Restore warn_overlength_strings.
23441
6bd73dd8
JJ
234422011-03-14 Jakub Jelinek <jakub@redhat.com>
23443
23444 * BASE-VER: Change to 4.7.0.
23445
7f4d6e1b
RG
234462011-03-14 Richard Guenther <rguenther@suse.de>
23447
23448 PR middle-end/48098
23449 * tree.c (build_vector_from_val): Adjust assert to requirements
23450 and reality.
23451
c6104ef1
JJ
234522011-03-14 Jakub Jelinek <jakub@redhat.com>
23453
23454 PR bootstrap/48102
d34abfd2 23455 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 23456
dfa95e19
AT
234572011-03-14 Andreas Tobler <andreast@fgznet.ch>
23458
f60c2554 23459 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
23460 terms of target_flags_explicit. Adjust copyright year.
23461
23462 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
23463 * config/rs6000/t-freebsd: New file. Add override for
23464 LIB2FUNCS_EXTRA.
23465
bb322018
CD
234662011-03-13 Chris Demetriou <cgd@google.com>
23467
23468 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
23469 (-fno-diagnostics-show-option): this, to reflect current default.
23470 (-Werror=): Update text about -fno-diagnostics-show-option.
23471
12b1c80b
PB
234722011-03-12 Peter Bergner <bergner@vnet.ibm.com>
23473
23474 PR target/48053
23475 * config/rs6000/predicates.md (easy_vector_constant_add_self,
23476 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
23477 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
23478 mode is not V2DImode or V2DFmode.
23479 (vspltis_constant): Do not handle V2DImode and V2DFmode.
23480 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
23481 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
23482 registers to 0.
23483 (movdi_internal64): Likewise.
23484
57d598f7
SP
234852011-03-12 Sebastian Pop <sebastian.pop@amd.com>
23486
23487 PR tree-optimization/47127
23488 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
23489 parameter.
23490 (set_cloog_options): Same.
23491 (scop_to_clast): Same.
23492 (print_clast_stmt): Do not call cloog_state_malloc and
23493 cloog_state_free.
23494 (print_generated_program): Same.
23495 (gloog): Same.
23496 * graphite-clast-to-gimple.h (cloog_state): Declared.
23497 (scop_to_clast): Adjust declaration.
23498 * graphite.c (cloog_state): Defined here.
23499 (graphite_initialize): Call cloog_state_malloc.
23500 (graphite_finalize): Call cloog_state_free.
23501
f231b5ff
JM
235022011-03-11 Jason Merrill <jason@redhat.com>
23503
23504 * attribs.c (lookup_attribute_spec): Take const_tree.
23505 * tree.h: Adjust.
23506
6a4e2bd5
JM
235072011-03-11 Joseph Myers <joseph@codesourcery.com>
23508
23509 * config/sparc/sparc.c (sparc_option_override): Use
23510 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
23511
a758fd67
RG
235122011-03-11 Richard Guenther <rguenther@suse.de>
23513
23514 PR tree-optimization/48067
23515 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
23516 multiplication result will be only used once on the target
23517 stmt.
23518
03dfda54
RG
235192011-03-11 Richard Guenther <rguenther@suse.de>
23520
23521 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
23522
5f11a50a
RG
235232011-03-11 Richard Guenther <rguenther@suse.de>
23524
23525 PR lto/48073
23526 * tree.c (find_decls_types_r): Do not walk types only reachable
23527 from IDENTIFIER_NODEs.
23528
4074f163
JJ
235292011-03-11 Jakub Jelinek <jakub@redhat.com>
23530
23531 PR middle-end/48044
23532 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
23533 all vnode->force_output nodes as needed.
23534
30f7cdcd
JM
235352011-03-11 Jason Merrill <jason@redhat.com>
23536
23537 PR c++/48069
23538 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
23539 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
23540
62ecfeb8
MJ
235412011-03-11 Martin Jambor <mjambor@suse.cz>
23542
23543 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
23544 cgraph_node.
23545
e89e03ab
JJ
235462011-03-11 Jakub Jelinek <jakub@redhat.com>
23547
23548 PR tree-optimization/48063
23549 * ipa-inline.c (cgraph_decide_inlining): Don't try to
23550 inline functions called once if !tree_can_inline_p (node->callers).
23551
efbe978b 235522011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 23553
efbe978b
EB
23554 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
23555 extra_objs.
9d6193a7
CL
23556 * config/score/score3.c: Delete.
23557 * config/score/score3.h: Delete.
23558 * config/score/mul-div.S: Delete.
23559 * config/score/sfp-machine.h: Add new file.
23560 * config/score/constraints.md: Add new file.
23561 * config/score/t-score-softfp: Add new file.
efbe978b 23562 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
23563 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
23564 (score7_extra_constraint): Delete.
efbe978b 23565 (score7_option_override): Remove unused code.
9d6193a7
CL
23566 * config/score/score.c: Remove score3 and score5 define and code.
23567 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 23568 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
23569 * config/score/score.opt: Remove score3 and score5 options.
23570
5de27cca
JDA
235712011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23572
23573 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
23574 when _HPUX_SOURCE is defined.
23575 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
23576
18d92053
JM
235772011-03-10 Jason Merrill <jason@redhat.com>
23578
23579 PR c++/48029
23580 * stor-layout.c (layout_type): Don't set structural equality
23581 on arrays of incomplete type.
23582 * tree.c (type_hash_eq): Handle comparing them properly.
23583
67a2f76d
JJ
235842011-03-10 Jakub Jelinek <jakub@redhat.com>
23585
23586 PR debug/48043
18d92053 23587 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
23588 result mode matches original rtl mode.
23589
d845b2f9
NC
235902011-03-10 Nick Clifton <nickc@redhat.com>
23591
23592 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 23593 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 23594
db7ec035
JJ
235952011-03-09 Jakub Jelinek <jakub@redhat.com>
23596
23597 PR rtl-optimization/47866
23598 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
23599 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
23600 if target wasn't scalar.
23601 * function.c (assign_stack_temp_for_type): Assert that neither
23602 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
23603 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
23604 macro.
23605 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
23606
5d304e47
AK
236072011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23608
23609 * config/s390/s390-protos.h (s390_label_align): New prototype.
23610 * config/s390/s390.c (s390_label_align): New function.
23611 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
23612
93b826f0
MM
236132011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
23614
23615 PR target/47755
23616 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
23617 V2DI/V2DF constants. Only all 0's or all 1's are easy.
23618 (output_vec_const_move): Ditto.
23619
ef78aed6
AS
236202011-03-08 Anatoly Sokolov <aesok@post.ru>
23621
23622 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
23623 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
23624 * config/mips/mips.c (mips_preferred_reload_class): Make static.
23625 Change 'rclass' argument and result type to reg_class_t.
23626 (TARGET_PREFERRED_RELOAD_CLASS): Define.
23627
5f892aa0
GJL
236282011-03-08 Georg-Johann Lay <avr@gjlay.de>
23629
9e43ad68
UB
23630 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23631 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
23632 (TARGET_MEMORY_MOVE_COST): Define.
23633 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 23634
32bd2409
JJ
236352011-03-08 Jakub Jelinek <jakub@redhat.com>
23636
530a4800
JJ
23637 PR debug/47881
23638 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
23639 removed anything.
23640
32bd2409
JJ
23641 PR tree-optimization/48022
23642 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
23643 for EQ/NE_EXPR.
23644
c7148991
JJ
236452011-03-07 Jakub Jelinek <jakub@redhat.com>
23646
23647 PR debug/47991
23648 * var-tracking.c (find_use_val): Return NULL for
23649 cui->sets && cui->store_p BLKmode MEMs.
23650
43070a6e
AS
236512011-03-07 Anatoly Sokolov <aesok@post.ru>
23652
23653 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
23654 Remove.
23655 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
23656 xstormy16_print_operand_address): Remove.
23657 * config/stormy16/stormy16.c (xstormy16_print_operand,
23658 xstormy16_print_operand_address): Make static.
23659 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23660
efbe978b 236612011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
23662
23663 PR target/47862
23664 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23665 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
23666 before definition.
23667
cec8ac0b
ZD
236682011-03-07 Zdenek Dvorak <ook@ucw.cz>
23669
23670 PR bootstrap/48000
23671 * cfgloopmanip.c (fix_bb_placements): Return immediately
23672 if FROM is BASE_LOOP's header.
23673
59527282
PW
236742011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
23675
23676 * gimplify.c (gimplify_function_tree): Fix building calls
23677 to __builtin_return_address.
23678
617718f7
AM
236792011-03-07 Alan Modra <amodra@gmail.com>
23680
23681 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
23682 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
23683 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
23684 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
23685 return_mode args.
23686 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
23687 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
23688 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
23689 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
23690 * config/rs6000/rs6000.c
23691 (rs6000_elf_end_indicate_exec_stack): Rename to..
23692 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
23693 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
23694 (rs6000_file_start): ..here.
23695 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
23696 file scope variables.
23697 (call_ABI_of_interest): New function.
23698 (init_cumulative_args): Set above vars when function return value
23699 is a float, vector, or small struct.
23700 (rs6000_function_arg_advance_1): Likewise for function args.
23701 (rs6000_va_start): Set rs6000_passes_float if variable arg function
23702 references float args.
23703
38528d50
MX
237042011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
23705
23706 * doc/cfg.texi: Remove "See" before @ref.
23707 * doc/invoke.texi: Likewise.
23708
f42cf4f4
JM
237092011-03-05 Jason Merrill <jason@redhat.com>
23710
23711 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
23712
804a304d
AG
237132011-03-05 Anthony Green <green@moxielogic.com>
23714
23715 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
23716
634ee309
ZD
237172011-03-05 Zdenek Dvorak <ook@ucw.cz>
23718
23719 PR rtl-optimization/47899
23720 * cfgloopmanip.c (fix_bb_placements): Fix first argument
23721 to flow_loop_nested_p when moving the loop upward.
23722
6fe471c8
RE
237232011-03-05 Richard Earnshaw <rearnsha@arm.com>
23724
23725 PR target/47719
23726 * arm.md (movhi_insn_arch4): Accept any immediate constant.
23727
cc58ceee
JJ
237282011-03-05 Jakub Jelinek <jakub@redhat.com>
23729
23730 PR tree-optimization/47967
23731 * ipa-cp.c (build_const_val): Return NULL instead of creating
23732 VIEW_CONVERT_EXPR for mismatching sizes.
23733 (ipcp_create_replace_map): Return NULL if build_const_val failed.
23734 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
23735 give up on versioning.
23736
ea868305
AM
237372011-03-05 Alan Modra <amodra@gmail.com>
23738
23739 PR target/47986
23740 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23741 full cmodel medium/large lo_sum + high addresses.
23742
bc6ce334
AK
237432011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23744
23745 * config/s390/s390.c (s390_decompose_address): Reject non-literal
23746 pool references in UNSPEC_LTREL_OFFSET.
23747
87e7b310
JH
237482011-03-04 Jan Hubicka <jh@suse.cz>
23749
23750 PR lto/47497
23751 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
23752 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
23753 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
23754 Add node pointers.
87e7b310
JH
23755 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
23756 cgraph_add_thunk): Add node pointers.
23757 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
23758 associated to right node.
23759 (input_node): Update use of cgraph_same_body_alias
23760 and cgraph_add_thunk.
23761
d9c64246
CF
237622011-03-04 Changpeng Fang <changpeng.fang@amd.com>
23763
23764 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
23765 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
23766 modes when the flag -mprefer-avx128 is on.
d9c64246 23767
08707076
RS
237682011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
23769
23770 * dwarf2out.c (compare_loc_operands): Fix address handling.
23771
52517c81
AM
237722011-03-04 Alan Modra <amodra@gmail.com>
23773
23774 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
23775
b147c5b9
RG
237762011-03-04 Richard Guenther <rguenther@suse.de>
23777
23778 PR middle-end/47968
23779 * expmed.c (extract_bit_field_1): Prefer vector modes that
23780 vec_extract patterns can handle.
23781
8750672f
RG
237822011-03-04 Richard Guenther <rguenther@suse.de>
23783
23784 PR middle-end/47975
23785 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
23786
9eac0f2a
RH
237872011-03-04 Richard Henderson <rth@redhat.com>
23788
23789 * explow.c (emit_stack_save): Remove 'after' parameter.
23790 (emit_stack_restore): Likewise.
23791 * expr.h: Update to match.
23792 * builtins.c, calls.c, stmt.c: Likewise.
23793 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
23794 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
23795 * function.c (expand_function_end): Insert the emit_stack_save
23796 sequence before parm_birth_insn instead of after.
23797
dfee1406
UB
237982011-03-03 Uros Bizjak <ubizjak@gmail.com>
23799
23800 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
23801 (ssse3_pmaddubsw128): Ditto.
23802 (ssse3_pmaddubsw): Ditto.
23803
f1d4c3de
SE
238042011-03-03 Steve Ellcey <sje@cup.hp.com>
23805
23806 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
23807
71f3a3f5
JJ
238082011-03-03 Jakub Jelinek <jakub@redhat.com>
23809
423ed416
JJ
23810 PR c/47963
23811 * gimplify.c (omp_add_variable): Only call omp_notice_variable
23812 on TYPE_SIZE_UNIT if it is a DECL.
23813
71f3a3f5
JJ
23814 PR debug/47283
23815 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
23816 first operand is not is_gimple_mem_ref_addr, try to fold it.
23817 If the operand still isn't is_gimple_mem_ref_addr, clear
23818 MEM_EXPR on op0.
23819
4b1a5c0d
RG
238202011-03-03 Richard Guenther <rguenther@suse.de>
23821
23822 PR middle-end/47283
23823 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
23824 match comment.
23825 (refs_may_alias_p_1): For release branches return true if
23826 we are confused by our input.
23827
b46616fd
AK
238282011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
23829
23830 * config/s390/s390.c (s390_function_value): Rename to ...
23831 (s390_function_and_libcall_value): ... this.
23832 (s390_function_value): New function.
23833 (s390_libcall_value): New function.
dfee1406 23834 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
23835 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
23836 target macro definitions.
23837 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
23838
46d8fabb
JM
238392011-03-02 Joseph Myers <joseph@codesourcery.com>
23840
23841 * config/i386/freebsd64.h (CC1_SPEC): Define.
23842 * config/i386/linux64.h (CC1_SPEC): Define.
23843 * config/i386/x86-64.h (CC1_SPEC): Don't define.
23844
6b1ce545
AS
238452011-03-02 Anatoly Sokolov <aesok@post.ru>
23846
23847 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23848 Remove.
23849 * config/stormy16/stormy16.c: Include reload.h.
23850 (xstormy16_memory_move_cost): New function.
23851 (TARGET_MEMORY_MOVE_COST): Define.
23852
34161e98
RS
238532011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
23854
23855 PR rtl-optimization/47925
23856 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
23857 with side effects. Remove the more-specific check for volatile asms.
23858
f60a97cf
AM
238592011-03-02 Alan Modra <amodra@gmail.com>
23860
23861 PR target/47935
23862 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
23863 toc relative addresses for valid offsets.
23864
f2ca11ca
RG
238652011-03-01 Richard Guenther <rguenther@suse.de>
23866
23867 PR tree-optimization/47890
23868 * tree-vect-loop.c (get_initial_def_for_induction): Set
23869 related stmt properly.
23870
7a00d9ea
RG
238712011-03-01 Richard Guenther <rguenther@suse.de>
23872
23873 PR lto/47924
23874 * lto-streamer.c (lto_record_common_node): Also register
23875 the canonical type.
23876
06c7edcc
RG
238772011-03-01 Richard Guenther <rguenther@suse.de>
23878
23879 PR lto/46911
23880 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
23881 Do not stream DECL_ABSTRACT_ORIGIN.
23882 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23883 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23884 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23885 Do not stream DECL_ABSTRACT_ORIGIN.
23886 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
23887 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
23888
998871e9
AS
238892011-02-28 Anatoly Sokolov <aesok@post.ru>
23890
23891 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
23892 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 23893 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
23894 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
23895 Add 'outgoing' argument.
23896 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
23897 function.
23898 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
23899 TARGET_FUNCTION_VALUE_REGNO_P): Define.
23900
94369251
KT
239012011-02-28 Kai Tietz <kai.tietz@onevision.com>
23902
23903 PR debug/28047
23904 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
23905 (lookup_filename): Likewise.
b2e2ea67 23906 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 23907
80a832cd
JJ
239082011-02-28 Bernd Schmidt <bernds@codesourcery.com>
23909 Jakub Jelinek <jakub@redhat.com>
23910
23911 PR middle-end/47893
23912 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
23913 (assign_stack_local_1): Change last argument type to int.
23914 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
23915 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 23916 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
23917 (assign_stack_local): Adjust caller.
23918 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
23919 of assign_stack_local, pass 0 as last argument.
23920 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
23921 callers.
23922
1b500976
JJ
239232011-02-28 Jakub Jelinek <jakub@redhat.com>
23924
f61c6f34
JJ
23925 PR debug/47283
23926 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
23927 Use target address_mode and pointer_mode hooks instead of hardcoded
23928 Pmode and ptr_mode. Handle some simple cases of extending if
23929 POINTERS_EXTEND_UNSIGNED < 0.
23930 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
23931 Call convert_debug_memory_address.
23932 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
23933 convert_debug_memory_address.
23934
1b500976
JJ
23935 PR middle-end/46790
23936 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
23937 * configure: Regenerated.
23938 * config.in: Regenerated.
23939 * varasm.c (default_function_section): Return NULL
b2e2ea67 23940 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 23941
2f2935b6
MJ
239422011-02-28 Martin Jambor <mjambor@suse.cz>
23943
23944 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
23945 the description to match the printed values.
23946
474086eb
RG
239472011-02-28 Richard Guenther <rguenther@suse.de>
23948
23949 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
23950 of the copied scope tree.
23951
15bf6f3a
RW
239522011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
23953
23954 * doc/extend.texi (Function Attributes): Avoid deeply (and
23955 wrongly) nested tables.
23956
f6b439c9
JJ
239572011-02-27 Jakub Jelinek <jakub@redhat.com>
23958
23959 PR middle-end/47903
23960 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
23961 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
23962 r isn't op0 nor op1.
23963
1d8ca2c7
GJL
239642011-02-23 Georg-Johann Lay <avr@gjlay.de>
23965
23966 * config/avr/avr.md: Remove magic comment for emacs.
23967
593fca4b
GJL
239682011-02-23 Georg-Johann Lay <avr@gjlay.de>
23969
23970 PR target/45261
23971 * config/avr/avr.c (avr_option_override): Use error on bad options.
23972 (avr_help): New function.
23973 (TARGET_HELP): Define.
23974
6609216e
GJL
239752011-02-22 Georg-Johann Lay <avr@gjlay.de>
23976
23977 PR target/42240
23978 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
23979 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
23980
03d458af
GP
239812011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
23982
23983 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
23984 (ARM Options): Ditto.
23985 (i386 and x86-64 Options): Ditto.
23986 (RX Options): Ditto.
23987 (SPARC Options): Ditto.
23988
1c379b78
TC
239892011-02-26 Tijl Coosemans <tijl@coosemans.org>
23990
23991 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
23992 FreeBSD 6 and later. Generally use cpu generic.
23993
d5ed058c 239942011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 23995
d5ed058c
GP
23996 * doc/cpp.texi: Update copyright years.
23997
509d65dd 239982011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 23999
509d65dd 24000 PR target/46898
308d39cd
SB
24001 * config/lm32/lm32.md (ashrsi3): Added needed variable.
24002
509d65dd 240032011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 24004
509d65dd 24005 PR target/46898
308d39cd
SB
24006 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
24007 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
24008 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
24009 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 24010 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
24011 (gen_int_relational): Move declarations to start of function.
24012
822ba6d7
EB
240132011-02-25 Eric Botcazou <ebotcazou@adacore.com>
24014
24015 PR tree-optimization/45470
24016 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
24017 can throw internally only.
24018 * tree-vect-stmts.c (vectorizable_call): Likewise.
24019
ef795fc2
AS
240202011-02-24 Anatoly Sokolov <aesok@post.ru>
24021
24022 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
24023 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24024 * config/stormy16/stormy16-protos.h
24025 (xstormy16_preferred_reload_class): Remove.
24026 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
24027 static. Change 'rclass' argument and return type to reg_class_t.
24028 (TARGET_PREFERRED_RELOAD_CLASS,
24029 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24030
1c3277ee
RG
240312011-02-24 Richard Guenther <rguenther@suse.de>
24032
24033 * lto-streamer-in.c (input_bb): Do not find referenced vars
24034 in debug statements.
24035
67e18edb
JM
240362011-02-23 Jason Merrill <jason@redhat.com>
24037
24038 * common.opt (fabi-version): Document v5 and v6.
24039
b14fad9d
RG
240402011-02-23 Richard Guenther <rguenther@suse.de>
24041
24042 PR tree-optimization/47849
24043 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
24044
7fcf46f5
JZ
240452011-02-23 Jie Zhang <jie@codesourcery.com>
24046
24047 * opts-common.c (decode_cmdline_option): Print empty string
24048 argument as "" in decoded->orig_option_with_args_text.
24049 * gcc.c (execute): Print empty string argument as ""
24050 in the verbose output.
24051 (do_spec_1): Keep empty string argument.
24052
f85b70fd
NF
240532011-02-23 Nathan Froyd <froydnj@codesourcery.com>
24054
24055 * config.gcc: Declare score-* and crx-* obsolete.
24056
b152a615
JZ
240572011-02-23 Jie Zhang <jie@codesourcery.com>
24058
24059 PR rtl-optimization/47763
24060 * web.c (web_main): Ignore naked clobber when replacing register.
24061
bb6e77bc
AS
240622011-02-22 Anatoly Sokolov <aesok@post.ru>
24063
24064 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
24065 Remove.
24066
68bf6491
SP
240672011-02-22 Sebastian Pop <sebastian.pop@amd.com>
24068
24069 PR doc/47848
24070 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
24071
88ee1fc7
MS
240722011-02-22 Mike Stump <mikestump@comcast.net>
24073
24074 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
24075 assembler.
24076 * configure: Regenerate.
24077
6042d1dd
CLT
240782011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
24079
24080 PR rtl-optimization/46002
24081 * ira-color.c (update_copy_costs): Change class intersection
24082 test to reg_class_contents[] test of 'hard_regno'.
24083
7de97f9e
JM
240842011-02-21 Joseph Myers <joseph@codesourcery.com>
24085
24086 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
24087 than Driver option.
24088 * config/hpux11.opt (mt): Likewise.
24089 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
24090 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
24091 * config/vax/elf.opt (mno-asm-pic): Likewise.
24092 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
24093
d1d46f9f
MS
240942011-02-21 Mike Stump <mikestump@comcast.net>
24095
24096 PR target/47822
24097 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
24098 tree so we can get save the type.
24099 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
24100 for CFString instead of trying to use past the end of the builtins.
24101 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
24102 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
24103 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
24104 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
24105 Rename to darwin_builtin_cfstring.
24106 (darwin_init_cfstring_builtins): Return the built type.
24107
23e0d930
UB
241082011-02-21 Uros Bizjak <ubizjak@gmail.com>
24109
24110 PR target/47840
24111 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
24112 (_mm256_insert_epi64): Use _mm_insert_epi64.
24113
192997cf
AS
241142011-02-21 Anatoly Sokolov <aesok@post.ru>
24115
24116 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24117 * config/stormy16/stormy16-protos.h
24118 (xstormy16_mode_dependent_address_p): Remove.
24119 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
24120 Make static. Change return type to bool. Change argument type to
24121 const_rtx. Remove dead code.
24122 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24123
e292d003
RG
241242011-02-21 Richard Guenther <rguenther@suse.de>
24125
24126 PR lto/47820
24127 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
24128 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
24129 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
24130 TUs context.
23e0d930 24131 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
24132 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
24133
77f846e9
RG
241342011-02-20 Richard Guenther <rguenther@suse.de>
24135
24136 PR lto/47822
24137 * tree.c (free_lang_data_in_decl): Clean builtins from
24138 the TU decl BLOCK_VARS.
23e0d930 24139
b2cddfc8
AO
241402011-02-19 Alexandre Oliva <aoliva@redhat.com>
24141
24142 PR debug/47620
24143 PR debug/47630
24144 * haifa-sched.c (fix_tick_ready): Skip tick computation
24145 for debug insns.
24146
becf4c11
RG
241472011-02-19 Richard Guenther <rguenther@suse.de>
24148
24149 PR lto/47647
24150 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
24151 Remove lazy BLOCK_VARS streaming.
24152 (lto_input_ts_block_tree_pointers): Likewise.
24153 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
24154
27f98305
JM
241552011-02-19 Joseph Myers <joseph@codesourcery.com>
24156
24157 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
24158
064bf3f4
JM
241592011-02-19 Joseph Myers <joseph@codesourcery.com>
24160
24161 * config/i386/biarch32.h, config/i386/mach.h,
24162 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
24163
9215ddc3
JJ
241642011-02-19 Jakub Jelinek <jakub@redhat.com>
24165
24166 PR target/47800
24167 * config/i386/i386.md (peephole2 for shift and plus): Use
24168 operands[1] original mode in the first insn.
24169
8b021004
MS
241702011-02-18 Mike Stump <mikestump@comcast.net>
24171
65ded153 24172 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 24173
f84ae14c
JH
241742011-02-18 Jan Hubicka <jh@suse.cz>
24175
24176 PR middle-end/47788
65ded153
EB
24177 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
24178 to zero when the function is not inlinable at all.
f84ae14c 24179
eddabc80
JDA
241802011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24181
24182 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
24183 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24184 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
24185 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
24186 * config/pa/t-pa64: Likewise.
24187 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
24188
ca3da783
JJ
241892011-02-18 Jakub Jelinek <jakub@redhat.com>
24190
24191 PR driver/47787
24192 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
24193
430aa868
JDA
241942011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24195
24196 PR target/47792
24197 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
24198
4bf7ff7e
AS
241992011-02-18 Anatoly Sokolov <aesok@post.ru>
24200
24201 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
24202 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
24203 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
24204 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
24205 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
24206 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
24207 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
24208 m32r_load_postinc_p, m32r_store_preinc_predec_p,
24209 m32r_legitimate_address_p): New functions.
24210 * config/m32r/constraints.md (constraint "S"): Don't use
24211 STORE_PREINC_PREDEC_P.
24212 (constraint "U"): Don't use LOAD_POSTINC_P.
24213
7efcf910
CLT
242142011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
24215
24216 PR rtl-optimization/46178
24217 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
24218 compute ira_hard_regno_cover_class[].
24219
237d6259
RG
242202011-02-18 Richard Guenther <rguenther@suse.de>
24221
24222 PR lto/47798
24223 * lto-streamer.h (lto_global_var_decls): Declare.
24224 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
24225 statics for global var processing.
24226
12d80acc
RG
242272011-02-18 Richard Guenther <rguenther@suse.de>
24228
24229 PR tree-optimization/47737
24230 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
24231 edge dominance check.
24232
abfea58d
JJ
242332011-02-18 Jakub Jelinek <jakub@redhat.com>
24234
24235 PR debug/47780
24236 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
24237 avoid invalid rtx sharing.
24238
f73c8882
GP
242392011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
24240
24241 * doc/cpp.texi (Obsolete Features): Add background on the
24242 origin of assertions.
24243
d764a8e6
IS
242442011-02-17 Iain Sandoe <iains@gcc.gnu.org>
24245
24246 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 24247 objc_abi == 2.
d764a8e6
IS
24248 * config/darwin.c (output_objc_section_asm_op): Added support for
24249 ABI v1 and v2.
24250 (is_objc_metadata): New.
24251 (darwin_objc2_section): New.
24252 (darwin_objc1_section): New.
24253 (machopic_select_section): Added support for ABI v1 and v2.
24254 (darwin_emit_objc_zeroed): New.
24255 (darwin_output_aligned_bss): Detect objc metadata and treat it
24256 appropriately.
24257 (darwin_asm_output_aligned_decl_common): Same.
24258 (darwin_asm_output_aligned_decl_local): Same.
24259 * config/darwin-sections.def: Updated for ABI v1 and v2.
24260 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
24261 compiling Objective-C code for the NeXT runtime, default to using
24262 ABI version 0 for 32-bit, and version 2 for 64-bit.
24263
0a8134ca
JM
242642011-02-17 Joseph Myers <joseph@codesourcery.com>
24265
24266 * common.opt (optimize_fast): New Variable.
24267 * opts.c (default_options_optimization): Use opts->x_optimize_fast
24268 instead of local variable ofast.
24269
0a256240
NP
242702011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
24271
24272 * doc/invoke.texi (fobjc-abi-version): Documented.
24273 (fobjc-nilcheck): Documented.
24274 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
24275 version.
24276
fa381cb2
JM
242772011-02-17 Joseph Myers <joseph@codesourcery.com>
24278
24279 PR driver/47390
24280 * common.opt (export-dynamic): New Driver option.
24281 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
24282
5437eaa6
JM
242832011-02-17 Joseph Myers <joseph@codesourcery.com>
24284
24285 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
24286
bb7e6d55
AO
242872011-02-17 Alexandre Oliva <aoliva@redhat.com>
24288 Jan Hubicka <jh@suse.cz>
24289
24290 PR debug/47106
24291 PR debug/47402
24292 * cfgexpand.c (account_used_vars_for_block): Remove.
24293 (estimated_stack_frame_size): Use referenced vars.
24294 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
24295 that were referenced in the original function. Test src_fn
24296 rather than cfun. Drop redundant get_var_ann.
24297 (setup_one_parameter): Drop redundant get_var_ann.
24298 (declare_return_variable): Likewise.
24299 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
24300 (copy_arguments_for_versioning): Drop redundant get_var_ann.
24301 * ipa-inline.c (compute_inline_parameters): Do not compute
24302 disregard_inline_limits here.
bb7e6d55
AO
24303 (compute_inlinable_for_current, pass_inlinable): New.
24304 (pass_inline_parameters): Require PROP_referenced_vars.
24305 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 24306 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
24307 (cgraph_analyze_function): Set .disregard_inline_limits.
24308 * tree-sra.c (convert_callers): Compute inliner parameters
24309 only for functions already in SSA form.
24310
f181a8a7
JM
243112011-02-17 Joseph Myers <joseph@codesourcery.com>
24312
24313 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
24314 -mlittle-endian-data.
24315
c6869789
JM
243162011-02-17 Joseph Myers <joseph@codesourcery.com>
24317
24318 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
24319 -mno-fpu, not -fpu and -no-fpu.
24320 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
24321 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
24322
fbf4bfd3
UB
243232011-02-17 Uros Bizjak <ubizjak@gmail.com>
24324
24325 PR target/43653
24326 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
24327 input reload with PLUS RTX.
24328
70be5dc7
JM
243292011-02-16 Joseph Myers <joseph@codesourcery.com>
24330
24331 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
24332 of InverseVar(MDMX).
24333
30b1646e
JM
243342011-02-16 Joseph Myers <joseph@codesourcery.com>
24335
24336 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
24337 --m4-340.
24338
ab7b71e9
JM
243392011-02-16 Joseph Myers <joseph@codesourcery.com>
24340
24341 * config/mn10300/mn10300.opt (mno-crt0): New.
24342
466f3f08
JM
243432011-02-16 Joseph Myers <joseph@codesourcery.com>
24344
24345 * config/m68k/uclinux.opt (static-libc): New Driver option.
24346
8226cd7b
JM
243472011-02-16 Joseph Myers <joseph@codesourcery.com>
24348
24349 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
24350
45cab1d7
JM
243512011-02-16 Joseph Myers <joseph@codesourcery.com>
24352
24353 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
24354 %{muser-extend-enabled}.
24355
65aab64f
RG
243562011-02-16 Richard Guenther <rguenther@suse.de>
24357
24358 PR tree-optimization/47738
24359 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
24360 the TODO from tree_predictive_commoning.
24361
fc2fa4fb
JL
243622011-02-15 Jeff Law <law@redhat.com>
24363
24364 Revert
24365 2011-01-25 Jeff Law <law@redhat.com>
24366
24367 PR rtl-optimization/37273
24368 * ira-costs.c (scan_one_insn): Detect constants living in memory and
24369 handle them like argument loads from stack slots. Do not double
24370 count memory for memory constants and argument loads from stack slots.
24371
e3a69bb4
MM
243722011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
24373
24374 PR target/47755
24375 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
24376 mode for vector constants. Remove code that checks for TImode.
24377
de650422
AO
243782011-02-15 Alexandre Oliva <aoliva@redhat.com>
24379
24380 PR debug/47106
24381 PR debug/47402
24382 * cgraph.h (compute_inline_parameters): Return void.
24383 * ipa-inline.c (compute_inline_parameters): Adjust.
24384
30925d94
AO
243852011-02-15 Alexandre Oliva <aoliva@redhat.com>
24386
24387 PR debug/47106
24388 PR debug/47402
24389 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
24390 rather than decl.
24391 * cfgexpand.c (estimated_stack_frame_size): Likewise.
24392 * ipa-inline.c (compute_inline_parameters): Adjust.
24393
1b9a784a
AO
243942011-02-15 Alexandre Oliva <aoliva@redhat.com>
24395
24396 PR debug/47106
24397 PR debug/47402
24398 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
24399 Adjust all users. Pass FN to...
24400 * tree-flow-inline.h (first_referenced_var): ... this. Add
24401 fn argument.
24402 * ipa-struct-reorg.c: Adjust.
24403 * tree-dfa.c: Adjust.
24404 * tree-into-ssa.c: Adjust.
24405 * tree-sra.c: Adjust.
24406 * tree-ssa-alias.c: Adjust.
24407 * tree-ssa-live.c: Adjust.
24408 * tree-ssa.c: Adjust.
24409 * tree-ssanames.c: Adjust.
24410 * tree-tailcall.c: Adjust.
24411
27c6b086
AO
244122011-02-15 Alexandre Oliva <aoliva@redhat.com>
24413
24414 PR debug/47106
24415 PR debug/47402
24416 * tree-flow.h (referenced_var_lookup): Add fn parameter.
24417 Adjust all callers.
24418 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
24419 * tree-flow-inline.h: Adjust.
24420 * gimple-pretty-print.c: Adjust.
24421 * tree-into-ssa.c: Adjust.
24422 * tree-ssa.c: Adjust.
24423 * cfgexpand.c: Adjust.
24424
679e8183
NF
244252011-02-15 Nathan Froyd <froydnj@codesourcery.com>
24426
fbf4bfd3
UB
24427 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
24428 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24429 (EXTRA_CONSTRAINT): Delete.
24430 * config/iq2000/constraints.md: New file.
24431 * config/iq2000/iq2000.md: Include it.
679e8183
NF
24432 (define_insn ""): Delete.
24433 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
24434 unsupported constraint letters from patterns.
24435 (call_value, call_value_internal1): Likewise.
24436 (call_value_multiple_internal1): Likewise.
24437
a45d420a
NC
244382011-02-15 Nick Clifton <nickc@redhat.com>
24439
24440 * config/mn10300/mn10300.c: Include tm-constrs.h.
24441 (struct liw_data): New data structure describing an LIW candidate
24442 instruction.
24443 (extract_bundle): Use struct liw_data. Allow small integer
24444 operands for some instructions.
24445 (check_liw_constraints): Use struct liw_data. Remove swapped
24446 parameter. Add comments describing the checks. Fix bug when
24447 assigning the source of liw1 to the source of liw2.
24448 (liw_candidate): Delete. Code moved into extract_bundle.
24449 (mn10300_bundle_liw): Use struct liw_data. Check constraints
24450 before swapping.
24451 * config/mn10300/predicates.md (liw_operand): New predicate.
24452 Allows registers and small integer constants.
24453 * config/mn10300/constraints.md (O): New constraint. Accetps
24454 integers in the range -8 to +7 inclusive.
24455 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
24456 for moving a small integer into a register. Give this alternative
24457 LIW attributes.
24458 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
24459 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
24460 using the J,K,L and M constraints,
24461 (liw): Remove SI mode on second operands to allow for HI and QI
24462 mode values.
24463 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
24464 instruction.
24465
48feba28
RG
244662011-02-15 Richard Guenther <rguenther@suse.de>
24467
24468 PR tree-optimization/47743
24469 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
24470 for a non-type-compatible VN lookup bail out.
24471
ad1c1eeb
NF
244722011-02-15 Nathan Froyd <froydnj@codesourcery.com>
24473
24474 * config/fr30/constraints.md: New file.
24475 * config/fr30/fr30.md: Include it.
24476 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
24477 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24478 (EXTRA_CONSTRAINT): Delete.
24479
49ac143d
NF
244802011-02-15 Nathan Froyd <froydnj@codesourcery.com>
24481
24482 * config/frv/constraints.md: New file.
24483 * config/frv/predicates.md: Include it.
24484 * config/frv/frv.c (reg_class_from_letter): Delete.
24485 (frv_option_override): Don't initialize it.
24486 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
24487 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
24488 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
24489 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24490 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
24491 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24492 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
24493 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
24494 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
24495 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
24496 (REG_CLASS_FROM_CONSTRAINT): Delete.
24497
c95f9494
JJ
244982011-02-15 Jakub Jelinek <jakub@redhat.com>
24499
24500 PR middle-end/47581
24501 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
24502 if frame size is 0 in a leaf function.
24503
13aed611
RO
245042011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24505
24506 PR pch/14940
24507 * config/alpha/host-osf.c: New file.
24508 * config/alpha/x-osf: New file.
24509 * config.host (alpha*-dec-osf*): Use it.
24510
b09c3081
AS
245112011-02-14 Anatoly Sokolov <aesok@post.ru>
24512
24513 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24514 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
24515 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
24516 (rx_mode_dependent_address_p): ...this. Make static. Change argument
24517 type to const_rtx.
24518 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24519
d634083b
NF
245202011-02-14 Nathan Froyd <froydnj@codesourcery.com>
24521
24522 * config/stormy16/constraints.md: New file.
24523 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
24524 Use satisfies_constraint_Q and satisfies_constraint_R.
24525 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
24526 Delete.
24527 (xstormy16_legitiamte_address_p): Declare.
24528 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
24529 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24530 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 24531 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
24532 Un-staticize.
24533 (xstormy16_extra_constraint_p): Delete.
24534
c7dd803e
EB
245352011-02-14 Eric Botcazou <ebotcazou@adacore.com>
24536
24537 PR tree-optimization/46494
24538 * loop-unroll.c (split_edge_and_insert): Adjust comment.
24539 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
24540 (pass_rtl_loop_done): Add TODO_verify_flow.
24541 * fwprop.c (pass_rtl_fwprop): Likewise.
24542 * modulo-sched.c (pass_sms): Likewise.
24543 * tree-ssa-dom.c (pass_dominator): Likewise.
24544 * tree-ssa-loop-ch.c (pass_ch): Likewise.
24545 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
24546 (pass_tree_loop_done): Likewise.
24547 * tree-ssa-pre.c (execute_pre): Likewise.
24548 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
24549 * tree-ssa-sink.c (pass_sink_code): Likewise.
24550 * tree-vrp.c (pass_vrp): Likewise.
24551
c6150df6
NF
245522011-02-14 Nathan Froyd <froydnj@codesourcery.com>
24553
c7dd803e
EB
24554 * config/v850/constraints.md: New file.
24555 * config/v850/v850.md: Include it.
24556 * config/v850/predicates.md (reg_or_0_operand): Use
24557 satisfies_constraint_G.
24558 (special_symbolref_operand): Use satisfies_constraint_K.
24559 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
24560 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
24561 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
24562 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24563 (EXTRA_CONSTRAINT): Delete.
24564 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
24565 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
24566 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 24567
30dd1ea3
AS
245682011-02-14 Anatoly Sokolov <aesok@post.ru>
24569
24570 PR target/47696
24571 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
24572 description.
24573
944f4bb3
NF
245742011-02-14 Nathan Froyd <froydnj@codesourcery.com>
24575
24576 * config/mcore/constraints.md: New file.
24577 * config/mcore/mcore.md: Include it.
24578 * config/mcore/mcore.c (reg_class_from_letter): Delete.
24579 * config/mcore/mcore.h (reg_class_from_letter): Delete.
24580 (REG_CLASS_FROM_LETTER): Delete.
24581 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
24582 insn_const_int_ok_for_constraint.
24583 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
24584 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
24585 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24586 (EXTRA_CONSTRAINT): Delete.
24587
ad56a54c
RO
245882011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24589
24590 PR ada/41929
24591 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
24592 (IS_SIGHANDLER): Define.
24593 (sparc64_is_sighandler): New function, split off from
24594 sparc64_fallback_frame_state.
24595 (sparc_is_sighandler): New function, split off from
24596 sparc_fallback_frame_state.
24597 (sparc64_fallback_frame_state): Merge with ...
24598 (sparc_fallback_frame_state): ... this into ...
24599 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
24600 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
24601 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
24602 stack instead of hardcoded offsets.
ad56a54c 24603
fbf4bfd3 246042011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
24605
24606 PR target/45808
24607 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
24608
029c8f3e
RW
246092011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24610
24611 * configure: Regenerate.
24612
a016dc83
JM
246132011-02-12 Joseph Myers <joseph@codesourcery.com>
24614
24615 PR driver/45731
24616 * gcc.c (asm_options): Correct spec matching --target-help.
24617
8957a0ec
MJ
246182011-02-12 Martin Jambor <mjambor@suse.cz>
24619
24620 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
24621 to gimple call error.
24622
6ef828bc
MS
246232011-02-12 Mike Stump <mikestump@comcast.net>
24624
24625 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
24626 comments in backslash regions.
24627
a4015be5
MS
246282011-02-12 Mike Stump <mikestump@comcast.net>
24629 Jakub Jelinek <jakub@redhat.com>
24630 Iain Sandoe <iains@gcc.gnu.org>
24631
24632 PR target/47324
24633 * dwarf2out.c (output_cfa_loc): When required, apply the
24634 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
24635 (output_loc_sequence): Likewise.
24636 (output_loc_operands_raw): Likewise.
24637 (output_loc_sequence_raw): Likewise.
24638 (output_cfa_loc): Likewise.
24639 (output_loc_list): Suppress register number adjustment when
24640 calling output_loc_sequence()
24641 (output_die): Likewise.
24642
5378dda2
AS
246432011-02-12 Anatoly Sokolov <aesok@post.ru>
24644
24645 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
24646 Remove macros.
24647 * config/xtensa/xtensa.c (xtensa_register_move_cost,
24648 xtensa_memory_move_cost): New functions.
24649 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
24650
f3d533d3
AO
246512011-02-12 Alexandre Oliva <aoliva@redhat.com>
24652
24653 PR lto/47225
24654 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
24655 in the current directory.
24656 * configure: Rebuilt.
24657
9d53403c
IS
246582011-02-12 Iain Sandoe <iains@gcc.gnu.org>
24659
24660 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 24661 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
24662 correct indents of the preceding block.
24663
a350a6c8
IS
246642011-02-12 Iain Sandoe <iains@gcc.gnu.org>
24665
24666 * gcc.c (driver_handle_option): Concatenate the argument to -F with
24667 the switch.
24668
bab79a40
JM
246692011-02-11 Joseph Myers <joseph@codesourcery.com>
24670
24671 * common.opt (nostartfiles): New Driver option.
24672
1bbc6693
XDL
246732011-02-11 Xinliang David Li <davidxl@google.com>
24674
24675 PR tree-optimization/47707
24676 * tree-chrec.c (convert_affine_scev): Keep type precision.
24677
1da7d8c0
EB
246782011-02-11 Eric Botcazou <ebotcazou@adacore.com>
24679
24680 PR tree-optimization/47420
24681 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
24682
246832011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
24684
24685 PR rtl-optimization/47614
24686 * rtl.h (check_for_inc_dec): Declare.
24687 * dse.c (check_for_inc_dec): Externalize...
24688 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
24689 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
24690
4df47bca
JM
246912011-02-11 Joseph Myers <joseph@codesourcery.com>
24692
24693 PR driver/47678
24694 * gcc.c (main): Do not compile inputs if there were errors in
24695 option handling.
24696 * opts-common.c (read_cmdline_option): Check for wrong language
24697 after other error checks.
24698
61502ca8
NF
246992011-02-11 Nathan Froyd <froydnj@codesourcery.com>
24700
24701 * cgraph.c: Fix comment typos.
24702 * cgraph.h: Likewise.
24703 * cgraphunit.c: Likewise.
24704 * ipa-cp.c: Likewise.
24705 * ipa-inline.c: Likewise.
24706 * ipa-prop.c: Likewise.
24707 * ipa-pure-const.c: Likewise.
24708 * ipa-ref.c: Likewise.
24709 * ipa-reference.c: Likewise.
24710
b63f974e
JJ
247112011-02-11 Jakub Jelinek <jakub@redhat.com>
24712
d50c5e0c
JJ
24713 PR debug/47684
24714 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 24715
6dd2a13c
RO
247162011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24717
24718 PR testsuite/47400
24719 * doc/sourcebuild.texi (Require Support): Document
24720 dg-require-ascii-locale.
24721
4a087ccf
MX
247222011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
24723
24724 * doc/lto.texi (Write summary): Fix missing parentheses.
24725
a4403164
DD
247262011-02-10 DJ Delorie <dj@redhat.com>
24727
24728 * config/m32c/m32c.c (m32c_option_override): Disable
24729 -fcombine-stack-adjustments until flag value tracking and compare
24730 optimization can be rewritten.
24731
4fac45bd
PB
247322011-02-10 Peter Bergner <bergner@vnet.ibm.com>
24733
24734 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
24735 PROCESSOR_POWER7.
24736 (PROCESSOR_DEFAULT64): Likewise.
24737
72602cd1
RH
247382011-02-10 Richard Henderson <rth@redhat.com>
24739
24740 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
24741 change from 2011-02-03.
24742 * config/rx/rx.c (flags_from_code): Likewise.
24743 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
24744 is valid, n/pz otherwise.
24745 (rx_select_cc_mode): Return CCmode if Y is not zero.
24746
ea57f573
RG
247472011-02-10 Richard Guenther <rguenther@suse.de>
24748
ea4c3e65 24749 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 24750
92b1d23b
RG
247512011-02-10 Richard Guenther <rguenther@suse.de>
24752
24753 PR tree-optimization/47677
24754 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
24755
525a2d06
JJ
247562011-02-10 Jakub Jelinek <jakub@redhat.com>
24757
24758 PR target/47665
24759 * combine.c (make_compound_operation): Only change shifts into
24760 multiplication for SCALAR_INT_MODE_P.
24761
06c969bd
JZ
247622011-02-10 Jie Zhang <jie@codesourcery.com>
24763
24764 PR testsuite/47622
24765 Revert
24766 2011-02-05 Jie Zhang <jie@codesourcery.com>
24767 PR debug/42631
24768 * web.c (entry_register): Don't clobber the number of the
24769 first uninitialized reference in used[].
24770
282ec48e
RG
247712011-02-09 Richard Guenther <rguenther@suse.de>
24772
24773 PR tree-optimization/47664
24774 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
24775 all edges again.
24776
df98c3e8
DE
247772011-02-09 David Edelsohn <dje.gcc@gmail.com>
24778
d0f21cd6
DE
24779 PR target/46481
24780 PR target/47032
df98c3e8
DE
24781 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
24782 PROCESSOR_POWER7.
24783 (PROCESSOR_DEFAULT64): Same.
24784 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
24785
67b6839f
RO
247862011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24787
24788 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
24789
4fd73214
MJ
247902011-02-09 Martin Jambor <mjambor@suse.cz>
24791
24792 PR middle-end/45505
24793 * tree-sra.c (struct access): New flags grp_scalar_read and
24794 grp_scalar_write. Changed description of assignment read and write
24795 flags.
24796 (dump_access): Dump new flags, reorder all of them.
24797 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
24798 to detect multiple scalar reads.
24799 (analyze_access_subtree): Use the new scalar read write flags instead
24800 of the old flags. Adjusted comments.
24801
91140cd3
DD
248022011-02-08 DJ Delorie <dj@redhat.com>
24803
24804 PR target/47548
24805 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
24806 patterns.
24807
4254bbfe
JM
248082011-02-08 Joseph Myers <joseph@codesourcery.com>
24809
24810 * config/m68k/uclinux.opt: New.
24811 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
24812
f1fda84e
JM
248132011-02-08 Joseph Myers <joseph@codesourcery.com>
24814
24815 * config/cris/elf.opt (sim): New Driver option.
24816
4933ae74
JM
248172011-02-08 Joseph Myers <joseph@codesourcery.com>
24818
24819 * config/xtensa/elf.opt: New.
24820 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
24821
4ad70280
JM
248222011-02-08 Joseph Myers <joseph@codesourcery.com>
24823
24824 * config/vax/elf.opt: New.
24825 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
24826
20893707
JM
248272011-02-08 Joseph Myers <joseph@codesourcery.com>
24828
24829 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
24830
b8e7038e
JM
248312011-02-08 Joseph Myers <joseph@codesourcery.com>
24832
24833 * config/gnu-user.opt: New.
24834 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
24835 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
24836 *-*-uclinux*): Use gnu-user.opt.
24837
e1c5225a
TS
248382011-02-08 Thomas Schwinge <thomas@schwinge.name>
24839
24840 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
24841 * config/i386/gnu.h (CPP_SPEC): Likewise.
24842
5e46b0c6
ILT
248432011-02-08 Ian Lance Taylor <iant@google.com>
24844
24845 * common.opt (fcx-limited-range): Add SetByCombined flag.
24846 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
24847 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
24848 (fassociative-math, freciprocal-math): Likewise.
24849 (funsafe-math-optimizations): Likewise.
24850 * opth-gen.awk: Handle SetByCombined.
24851 * optc-gen.awk: Likewise.
ea4c3e65 24852 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
24853 (set_unsafe_math_optimizations_flags): Likewise.
24854 * doc/options.texi (Option properties): Document SetByCombined.
24855
32243d46
JM
248562011-02-08 Joseph Myers <joseph@codesourcery.com>
24857
24858 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
24859 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
24860 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
24861 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
24862 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
24863
479c1fb3
SP
248642011-02-08 Sebastian Pop <sebastian.pop@amd.com>
24865
24866 PR tree-optimization/46834
24867 PR tree-optimization/46994
24868 PR tree-optimization/46995
24869 * graphite-sese-to-poly.c (used_outside_reduction): New.
24870 (detect_commutative_reduction): Call used_outside_reduction.
24871 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
24872 translate_scalar_reduction_to_array only when at least one
24873 loop-phi/close-phi tuple has been detected.
24874
3865a06f
RG
248752011-02-08 Richard Guenther <rguenther@suse.de>
24876
24877 PR middle-end/47639
24878 * tree-vect-generic.c (expand_vector_operations_1): Update
24879 stmts here ...
24880 (expand_vector_operations): ... not here. Cleanup EH info
24881 and the CFG if required.
24882
62902f3f
RG
248832011-02-08 Richard Guenther <rguenther@suse.de>
24884
24885 PR tree-optimization/47641
24886 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
24887 require type compatibility.
24888
0efb9d64
AK
248892011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24890
24891 * gimple-low.c (lower_function_body): Don't remove the location of
24892 the return statement here.
24893 (lower_gimple_return): Do it here instead but only if the return
24894 statement is actually used twice.
24895
034b8ae4
RG
248962011-02-08 Richard Guenther <rguenther@suse.de>
24897
24898 PR tree-optimization/47632
24899 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
24900 unused up_to_stmt parameter, return whether cfg-cleanup is
24901 necessary, remove EH info properly.
24902 (forward_propagate_into_gimple_cond): Adjust caller.
24903 (forward_propagate_into_cond): Likewise.
24904 (forward_propagate_comparison): Likewise.
24905 (tree_ssa_forward_propagate_single_use_vars): Make
24906 forward_propagate_comparison case similar to the two others.
24907
298362c8
NC
249082011-02-08 Nick Clifton <nickc@redhat.com>
24909
24910 * config/mn10300/mn10300.opt (mliw): New command line option.
24911 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
24912 (liw_bundling): New automaton.
24913 (liw): New attribute.
24914 (liw_op): New attribute.
24915 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
24916 (movsi_internal): Add LIW attributes.
24917 (andsi3): Likewise.
24918 (iorsi3): Likewise.
24919 (xorsi3): Likewise.
24920 (addsi3): Separate register and immediate alternatives.
24921 Add LIW attributes.
24922 (subsi3): Likewise.
24923 (cmpsi): Likewise.
24924 (aslsi3): Likewise.
24925 (lshrsi3): Likewise.
24926 (ashrsi3): Likewise.
24927 (liw): New pattern.
24928 * config/mn10300/mn10300.c (liw_op_names): New
24929 (mn10300_print_operand): Handle 'W' operand descriptor.
24930 (extract_bundle): New function.
24931 (check_liw_constraints): New function.
24932 (liw_candidate): New function.
24933 (mn10300_bundle_liw): New function.
24934 (mn10300_reorg): New function.
24935 (TARGET_MACHINE_DEPENDENT_REORG): Define.
24936 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
24937 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
24938 __LIW__ or __NO_LIW__.
24939 * doc/invoke.texi: Describe the -mliw command line option.
24940
90488014
JDA
249412011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24942
24943 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
24944 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24945 pthread_mutex_unlock): Remove.
24946 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
24947 * config/pa/t-pa64: Likewise.
24948 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
24949 shared libc if not linking against libpthread.
24950 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
24951
689ff841
IS
249522011-02-07 Iain Sandoe <iains@gcc.gnu.org>
24953
24954 PR target/47558
24955 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
24956 on 10.6 and later to ensure that we always use the unwinder from
24957 the system. Only add -no_compact_unwind when tarteting darwin
24958 10.6 or later.
24959
821014aa
SE
249602011-02-07 Steve Ellcey <sje@cup.hp.com>
24961
24962 PR target/46997
24963 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
24964 (vec_interleave_lowv2sf): Ditto.
24965 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
24966 (vec_extract_oddv2sf): Ditto.
24967
41cf94fb
MS
249682011-02-07 Mike Stump <mikestump@comcast.net>
24969
62dea57d 24970 PR target/42333
41cf94fb
MS
24971 Add __ieee_divdc3 entry point.
24972 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
24973 entry point.
24974 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
24975 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
24976 * config/darwin.c (darwin_rename_builtins): Add.
24977 * config/darwin-protos.h (darwin_rename_builtins): Add.
24978
ee09a3dd
MM
249792011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
24980
24981 PR target/47636
24982 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
24983 for the condition.
24984
83296cd0
MS
249852011-02-07 Mike Stump <mikestump@comcast.net>
24986
ea4c3e65 24987 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 24988
0f4e946f
DC
249892011-02-07 Denis Chertykov <chertykov@gmail.com>
24990
24991 PR target/47534
24992 * config/avr/libgcc.S (exit): Move .endfunc
24993
1ec87690
RG
249942011-02-07 Richard Guenther <rguenther@suse.de>
24995
24996 PR tree-optimization/47615
24997 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
24998 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
24999 (run_scc_vn): Initialize it.
25000 (visit_reference_op_load): Use it.
25001 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
25002
b46ae6da
UW
250032011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25004
25005 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
25006 DImode trapping arithmetic libfuncs.
25007
c0aae19c
RG
250082011-02-07 Richard Guenther <rguenther@suse.de>
25009
25010 PR tree-optimization/47621
25011 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
25012 two duplicates ...
25013 (execute_update_addresses_taken): ... here. Make it more
25014 conservative in what we accept.
25015
295d926b
JM
250162011-02-06 Joseph Myers <joseph@codesourcery.com>
25017
25018 * config/sparc/freebsd.h (ASM_SPEC): Define.
25019 * config/sparc/vxworks.h (ASM_SPEC): Define.
25020
bdeb2471
JM
250212011-02-06 Joseph Myers <joseph@codesourcery.com>
25022
25023 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
25024
d5d3781a
SB
250252011-02-06 Steven Bosscher <steven@gcc.gnu.org>
25026
25027 * doc/invoke.texi: Remove reference to compiler internals from
25028 user documentation.
25029
25030 * reg-notes.def: Remove REG_VALUE_PROFILE.
25031 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
25032
c42c09fc
JJ
250332011-02-05 Jakub Jelinek <jakub@redhat.com>
25034
25035 PR middle-end/47610
25036 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 25037 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 25038
beea2755
JZ
250392011-02-05 Jie Zhang <jie@codesourcery.com>
25040
25041 PR debug/42631
25042 * web.c (entry_register): Don't clobber the number of the
25043 first uninitialized reference in used[].
25044
a130584a
SP
250452011-02-04 Sebastian Pop <sebastian.pop@amd.com>
25046
25047 PR tree-optimization/46194
25048 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
25049 (build_classic_dist_vector_1): Do not represent classic distance
25050 vectors when the access functions are variating in different loops.
25051
962101ac
JM
250522011-02-04 Joseph Myers <joseph@codesourcery.com>
25053
25054 * config/mips/iris6.opt: New.
25055 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
25056
55eaaa5b
RH
250572011-02-04 Richard Henderson <rth@redhat.com>
25058 Steve Ellcey <sje@cup.hp.com>
25059
25060 PR target/46997
25061 * config/ia64/predicates.md (mux1_brcst_element): New.
25062 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
25063 * config/ia64/ia64.c (ia64_unpack_assemble): New.
25064 (ia64_unpack_sign): New.
25065 (ia64_expand_unpack): Rewrite using new routines.
25066 (ia64_expand_widen_sum): Ditto.
25067 (ia64_expand_dot_prod_v8qi): Ditto.
25068 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
25069 routines, add endian check.
25070 (pmpy2_even): Rename from pmpy2_r, add endian check.
25071 (pmpy2_odd): Rename from pmpy2_l, add endian check.
25072 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
25073 (vec_widen_smult_hi_v4hi): Ditto.
25074 (vec_widen_umult_lo_v4hi): Ditto.
25075 (vec_widen_umult_hi_v4hi): Ditto.
25076 (mulv2si3): Change endian checks.
25077 (sdot_prodv4hi): Rewrite with new calls.
25078 (udot_prodv4hi): New.
25079 (vec_pack_ssat_v4hi): Add endian check.
25080 (vec_pack_usat_v4hi): Ditto.
25081 (vec_pack_ssat_v2si): Ditto.
25082 (max1_even): Rename from max1_r, add endian check.
25083 (max1_odd): Rename from max1_l, add endian check.
25084 (*mux1_rev): Format change.
25085 (*mux1_mix): Ditto.
25086 (*mux1_shuf): Ditto.
25087 (*mux1_alt): Ditto.
25088 (*mux1_brcst_v8qi): Use new predicate.
25089 (vec_extract_evenv8qi): Remove endian check.
25090 (vec_extract_oddv8qi): Ditto.
25091 (vec_interleave_lowv4hi): Format change.
25092 (vec_interleave_highv4hi): Ditto.
25093 (mix2_even): Rename from mix2_r, add endian check.
25094 (mix2_odd): Rename from mux2_l, add endian check.
25095 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
25096 (vec_extract_evenodd_helper): Format change.
25097 (vec_extract_evenv4hi): Remove endian check.
25098 (vec_extract_oddv4hi): Remove endian check.
25099 (vec_interleave_lowv2si): Format change.
25100 (vec_interleave_highv2si): Format change.
25101 (vec_initv2si): Remove endian check.
25102 (vecinit_v2si): Add endian check.
25103 (reduc_splus_v2sf): Add endian check.
25104 (reduc_smax_v2sf): Ditto.
25105 (reduc_smin_v2sf): Ditto.
25106 (vec_initv2sf): Remove endian check.
25107 (fpack): Add endian check.
25108 (fswap): Add endian check.
25109 (vec_interleave_highv2sf): Add endian check.
25110 (vec_interleave_lowv2sf): Add endian check.
25111 (fmix_lr): Add endian check.
25112 (vec_setv2sf): Format change.
25113 (*vec_extractv2sf_0_be): Use shift to extract operand.
25114 (*vec_extractv2sf_1_be): New.
25115 (vec_pack_trunc_v4hi): Add endian check.
25116 (vec_pack_trunc_v2si): Format change.
25117
dcde5957
JJ
251182011-02-04 Jakub Jelinek <jakub@redhat.com>
25119
25120 PR inline-asm/23200
25121 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 25122 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
25123 (stmt_is_replaceable_p): New function.
25124 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
25125 callers.
25126 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
25127 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
25128 SSA_NAME_DEF_STMT.
25129 * tree-flow.h (stmt_is_replaceable_p): New prototype.
25130
a64a8e5a
JM
251312011-02-04 Joseph Myers <joseph@codesourcery.com>
25132
25133 * config/rs6000/xilinx.opt: New.
25134 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
25135
4da2ed2f
JM
251362011-02-04 Joseph Myers <joseph@codesourcery.com>
25137
25138 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
25139
a6e508f9
AS
251402011-02-03 Anatoly Sokolov <aesok@post.ru>
25141
25142 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
25143 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
25144 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
25145 secondary_reload_info, xtensa_secondary_reload): Remove.
25146 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
25147 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
25148 (xtensa_preferred_reload_class): Make static. Change return and
25149 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
25150 Use CONST_DOUBLE_P predicate.
25151 (xtensa_preferred_output_reload_class): New function.
25152 (xtensa_secondary_reload): Make static.
25153
82dc0de3
JM
251542011-02-03 Joseph Myers <joseph@codesourcery.com>
25155
25156 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
25157 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
25158 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
25159
7fece979
JJ
251602011-02-03 Jakub Jelinek <jakub@redhat.com>
25161
25162 PR middle-end/31490
25163 * output.h (SECTION_RELRO): Define.
25164 (SECTION_MACH_DEP): Adjust.
25165 (get_variable_section): New prototype.
25166 * varpool.c (varpool_finalize_named_section_flags): New function.
25167 (varpool_assemble_pending_decls): Call it.
25168 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
25169 * cgraphunit.c (cgraph_output_in_order): Call
25170 varpool_finalize_named_section_flags.
25171 * varasm.c (get_section): Allow section flags conflicts between
25172 relro and read-only sections if the section hasn't been declared yet.
25173 Set SECTION_OVERRIDE after diagnosing section type conflict.
25174 (get_variable_section): No longer static.
25175 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
25176 readonly sections that need relocations.
25177 (decl_readonly_section_1): New function.
25178 (decl_readonly_section): Use it.
25179
25180 Revert:
509d65dd 25181 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
25182 Steve Ellcey <sje@cup.hp.com>
25183
25184 PR middle-end/31490
25185 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
25186 if section attribute used.
25187
d18d5478
JJ
251882011-02-03 Jakub Jelinek <jakub@redhat.com>
25189
25190 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
25191 * config/darwin.c (SECTION_NO_ANCHOR): Define.
25192 (darwin_init_sections): Remove assertion.
25193
6479ed4b
NC
251942011-02-03 Nick Clifton <nickc@redhat.com>
25195
25196 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
25197 lt and ge.
38be4072 25198 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
25199 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
25200 instead of "n" and "pz".
25201 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
25202 CC_FLAG_S.
25203
89843f5d
JJ
252042011-02-03 Jakub Jelinek <jakub@redhat.com>
25205
65450d64
JJ
25206 PR target/47312
25207 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
25208 fma, expand FMA_EXPR as fma{,f,l} call.
25209
7d58701c
JJ
25210 PR lto/47274
25211 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
25212 copy them into a unsigned char variable and pass address of it to
25213 lto_output_data_stream.
25214
89843f5d
JJ
25215 PR target/47564
25216 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
25217 around backend_init_target and lang_dependent_init_target calls.
25218 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
25219 (verify_cgraph_node): Don't call set_cfun here. Use
25220 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
25221 Set error_found for incorrectly represented calls to thunks.
25222
4deef538
AO
252232011-02-03 Alexandre Oliva <aoliva@redhat.com>
25224
25225 PR debug/43092
25226 PR rtl-optimization/43494
25227 * rtl.h (for_each_inc_dec_fn): New type.
25228 (for_each_inc_dec): Declare.
25229 * rtlanal.c (struct for_each_inc_dec_ops): New type.
25230 (for_each_inc_dec_find_inc_dec): New fn.
25231 (for_each_inc_dec_find_mem): New fn.
25232 (for_each_inc_dec): New fn.
25233 * dse.c (struct insn_size): Remove.
25234 (replace_inc_dec, replace_inc_dec_mem): Remove.
25235 (emit_inc_dec_insn_before): New fn.
25236 (check_for_inc_dec): Use it, along with for_each_inc_dec.
25237 (canon_address): Pass mem modes to cselib_lookup.
25238 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
25239 (cselib_lookup_from_insn): Likewise.
25240 (cselib_subst_to_values): Likewise.
25241 * cselib.c (find_slot_memmode): New var.
25242 (cselib_find_slot): New fn. Use it instead of
25243 htab_find_slot_with_hash everywhere.
25244 (entry_and_rtx_equal_p): Use find_slot_memmode.
25245 (autoinc_split): New fn.
25246 (rtx_equal_for_cselib_p): Rename and implement in terms of...
25247 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
25248 Deal with autoinc. Special-case recursion into MEMs.
25249 (cselib_hash_rtx): Likewise.
25250 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
25251 address and MEM modes.
25252 (cselib_subst_to_values): Add memmode, pass it on.
25253 Deal with autoinc.
25254 (cselib_lookup): Add memmode argument, pass it on.
25255 (cselib_lookup_from_insn): Add memmode.
25256 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
25257 (struct cselib_record_autoinc_data): New.
25258 (cselib_record_autoinc_cb): New fn.
25259 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
25260 mode to cselib_lookup. Reset autoinced REGs here instead of...
25261 (cselib_process_insn): ... here.
25262 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
25263 to cselib_lookup.
25264 (add_uses): Likewise, also to cselib_subst_to_values.
25265 (add_stores): Likewise.
276e0224 25266 * sched-deps.c (add_insn_mem_dependence): Pass mode to
4deef538
AO
25267 cselib_subst_to_values.
25268 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
25269 * gcse.c (do_local_cprop): Adjusted.
25270 * postreload.c (reload_cse_simplify_set): Adjusted.
25271 (reload_cse_simplify_operands): Adjusted.
25272 * sel-sched-dump (debug_mem_addr_value): Pass mode.
25273
1551d44a
AO
252742011-02-03 Alexandre Oliva <aoliva@redhat.com>
25275
25276 PR tree-optimization/45122
25277 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
25278 unsafe assumptions when there's more than one loop exit.
25279
c9485473
MM
252802011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
25281
25282 PR target/47272
25283 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25284 Document using vector double with the load/store builtins, and
25285 that the load/store builtins always use Altivec instructions.
25286
25287 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
25288 to use altivec memory instructions, even on VSX.
25289 (vector_altivec_store_<mode>): Ditto.
25290
25291 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
25292 function.
25293
25294 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25295 V2DF, V2DI support to load/store overloaded builtins.
25296
25297 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
25298 altivec load/store builtins for V2DF/V2DI types.
25299
25300 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
25301 set avoid indexed addresses on power6 if -maltivec.
25302 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
25303 vector_altivec_load/vector_altivec_store builtins.
25304 (altivec_expand_st_builtin): Ditto.
25305 (altivec_expand_builtin): Add VSX memory builtins.
25306 (rs6000_init_builtins): Add V2DI types to internal types.
25307 (altivec_init_builtins): Add support for V2DF/V2DI altivec
25308 load/store builtins.
25309 (rs6000_address_for_altivec): Insure memory address is appropriate
25310 for Altivec.
25311
25312 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
25313 vec_vsx_ld and vec_vsx_st.
25314 (vsx_store_<mode>): Ditto.
25315
25316 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
25317 variables to hold long long types for VSX vector memory builtins.
25318 (RS6000_BTI_unsigned_long_long): Ditto.
25319 (long_long_integer_type_internal_node): Ditti.
25320 (long_long_unsigned_type_internal_node): Ditti.
25321
25322 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
25323 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
25324 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
25325
25326 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
25327 short cuts.
25328 (vec_vsx_st): Ditto.
25329
b24d1acf
JM
253302011-02-02 Joseph Myers <joseph@codesourcery.com>
25331
25332 * config/pa/pa-hpux10.opt: New.
25333 * config/hpux11.opt (pthread): New Driver option.
25334 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
25335 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
25336
aa18dd0f
JM
253372011-02-02 Joseph Myers <joseph@codesourcery.com>
25338
25339 * config/ia64/vms.opt: New.
25340 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
25341
28fc3eee
MM
253422011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
25343
25344 PR target/47580
25345 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
25346 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
25347 generator functions.
25348 (vsx_floatuns<VSi><mode>2): Ditto.
25349 (vsx_fix_trunc<mode><VSi>2): Ditto.
25350 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
25351
b5838b1f
JM
253522011-02-02 Joseph Myers <joseph@codesourcery.com>
25353
25354 * config/i386/djgpp.opt (posix): New Driver option.
25355
0db8fa89
GP
253562011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
25357
25358 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
25359 Move to the unsupported targets list.
25360
9cd4f22a
PB
253612011-02-02 Peter Bergner <bergner@vnet.ibm.com>
25362
25363 PR rtl-optimization/47525
25364 * df-scan.c: Update copyright years.
25365 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
25366 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
25367
9ed8059c
RO
253682011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25369
25370 * config/i386/sysv4.h (TARGET_VERSION): Remove.
25371 (SUBTARGET_RETURN_IN_MEMORY): Remove.
25372 (ASM_OUTPUT_ASCII): Remove.
25373 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
25374
2a737389
JL
253752011-02-02 Jeff Law <law@redhat.com>
25376
25377 PR middle-end/47543
25378 * reload.c (find_reloads_address): Handle reg+d address where both
25379 components are invalid by reloading the entire address.
25380
9dac82c4
SP
253812011-02-02 Sebastian Pop <sebastian.pop@amd.com>
25382 Richard Guenther <rguenther@suse.de>
25383
25384 PR tree-optimization/40979
25385 PR bootstrap/47044
25386 * passes.c (init_optimization_passes): After LIM call copy_prop
25387 and DCE to clean up.
25388 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
25389
14dd9aab
SP
253902011-02-02 Sebastian Pop <sebastian.pop@amd.com>
25391
25392 PR tree-optimization/47576
25393 PR tree-optimization/47555
25394 * doc/invoke.texi (scev-max-expr-complexity): Documented.
25395 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25396 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
25397 * tree-scalar-evolution.c (follow_ssa_edge): Use
25398 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
25399
5cbf5c20
RG
254002011-02-02 Richard Guenther <rguenther@suse.de>
25401
25402 PR tree-optimization/47566
25403 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
25404
83d70792
AO
254052011-02-02 Alexandre Oliva <aoliva@redhat.com>
25406
e829c321
AO
25407 PR debug/47106
25408 PR debug/47402
25409 * tree-inline.c (declare_return_variable): Remove unused caller
25410 variable.
25411
83d70792
AO
25412 PR debug/47106
25413 PR debug/47402
25414 * tree-flow-inline.h (clear_is_used, is_used_p): New.
25415 * cfgexpand.c (account_used_vars_for_block): Use them.
25416 * tree-nrv.c (tree_nrv): Likewise.
25417 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
25418 (dump_scope_block): Likewise.
25419 (remove_unused_locals): Likewise.
25420
aaa2ac93
AO
25421 PR debug/47106
25422 PR debug/47402
25423 * tree-inline.c (declare_return_variable): Add result decl to
25424 local decls only once.
25425 * gimple-low.c (record_vars_into): Mark newly-created variables
25426 as referenced.
25427
a59d15cf
AO
254282011-02-02 Alexandre Oliva <aoliva@redhat.com>
25429
25430 PR debug/47498
25431 PR debug/47501
25432 PR debug/45136
25433 PR debug/45130
25434 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25435 debug insns.
25436 (no_real_insns_p, schedule_block, set_priorities): Drop special
25437 treatment of boundary debug insns.
38be4072 25438 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
25439 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
25440 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25441 (BOUNDARY_DEBUG_INSN_P): Likewise.
25442 (SCHEDULE_DEBUG_INSN_P): Likewise.
25443 * sched-rgn.c (init_ready_list): Drop special treatment of
25444 boundary debug insns.
25445 * final.c (rest_of_clean_state): Clear notes' BB.
25446
6fc2f091
JM
254472011-02-01 Joseph Myers <joseph@codesourcery.com>
25448
25449 * config/openbsd.opt (assert=): New Driver option.
25450
fc523387
JM
254512011-02-01 Joseph Myers <joseph@codesourcery.com>
25452
25453 * config/i386/nto.opt: New.
25454 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
25455
6d9821e5
JM
254562011-02-01 Joseph Myers <joseph@codesourcery.com>
25457
25458 * config/i386/netware.opt: New.
25459 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
25460
cef932d4
JM
254612011-02-01 Joseph Myers <joseph@codesourcery.com>
25462
25463 * config/interix.opt (posix): New Driver option.
25464
22843acd
DD
254652011-02-01 DJ Delorie <dj@redhat.com>
25466
56490b74
DD
25467 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
25468
22843acd
DD
25469 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
25470 class for A0/A1.
25471
199c8f2f
SP
254722011-02-01 Sebastian Pop <sebastian.pop@amd.com>
25473
25474 PR tree-optimization/47561
25475 * toplev.c (process_options): Print the Graphite flags. Add
25476 flag_loop_flatten to the list of options requiring Graphite.
25477
926bcf22
JM
254782011-02-01 Joseph Myers <joseph@codesourcery.com>
25479
25480 * config/i386/cygming.opt (posix): New Driver option.
25481
59793c51
JM
254822011-02-01 Joseph Myers <joseph@codesourcery.com>
25483
25484 * config/arm/vxworks.opt: New.
25485 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
25486
183c38a4
JM
254872011-02-01 Joseph Myers <joseph@codesourcery.com>
25488
25489 * config/alpha/elf.opt: New.
25490 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
25491 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
25492
9939e416
RG
254932011-02-01 Richard Guenther <rguenther@suse.de>
25494
25495 PR tree-optimization/47559
25496 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
25497 store-motion on references that can throw.
25498
4a3c9687
BS
254992011-02-01 Bernd Schmidt <bernds@codesourcery.com>
25500
25501 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
25502 * tree-pass.h (TDF_CSELIB): New macro.
25503 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
25504 cselib_lookup): Check for it rather than for TDF_DETAILS.
25505
dd3b31fb
L
255062011-02-01 H.J. Lu <hongjiu.lu@intel.com>
25507
25508 PR driver/47547
25509 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
25510 is HOST_BIT_BUCKET.
25511
25512 * opts.c (finish_options): Don't add x_aux_base_name if it is
25513 HOST_BIT_BUCKET.
25514
34c1de79
RG
255152011-02-01 Richard Guenther <rguenther@suse.de>
25516
25517 PR tree-optimization/47555
25518 Revert
25519 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
25520
25521 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25522
dd2804d2
SB
255232011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
25524
25525 PR gcc/46692
25526 * config/lm32/t-lm32: Add multilib for all CPU options.
25527
3fd3b156
RG
255282011-02-01 Richard Guenther <rguenther@suse.de>
25529
25530 PR tree-optimization/47541
25531 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
25532 sure to have a field at offset zero.
25533
f16072b6
JM
255342011-01-31 Joseph Myers <joseph@codesourcery.com>
25535
25536 * config/arc/arc.opt (EB, EL): New Driver options.
25537
6456cf2e
JM
255382011-01-31 Joseph Myers <joseph@codesourcery.com>
25539
25540 * config/alpha/osf5.opt: New.
25541 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
25542
cdde6ab4
JM
255432011-01-31 Joseph Myers <joseph@codesourcery.com>
25544
25545 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
25546
7633415c
SP
255472011-01-31 Sebastian Pop <sebastian.pop@amd.com>
25548
25549 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
25550 -floop-interchange.
25551 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
25552 is an alias of -floop-interchange and that it requires the
25553 Graphite infrastructure.
25554 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
25555 flag_loop_interchange based on the value of flag_tree_loop_linear.
25556
0425d6f5
JJ
255572011-01-31 Jakub Jelinek <jakub@redhat.com>
25558 Richard Guenther <rguenther@suse.de>
25559
25560 PR tree-optimization/47538
25561 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
25562 type instead of r1type, except for comparisons. For right
25563 shifts and comparisons punt if there are mismatches in
25564 sizetype vs. non-sizetype types.
25565
500b16c3
RO
255662011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25567
25568 * doc/sourcebuild.texi (Effective-Target Keywords): Document
25569 avx_runtime.
25570
e279edb0
RO
255712011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25572
25573 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
25574 version number.
25575 * configure: Regenerate.
25576
c6092243
RO
255772011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25578
25579 * configure.ac (gcc_cv_ld_static_option): Define.
25580 (gcc_cv_ld_dynamic_option): Define.
25581 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
25582 instead.
25583 (HAVE_LD_STATIC_DYNAMIC): Update message.
25584 (LD_STATIC_OPTION): Define.
25585 (LD_DYNAMIC_OPTION): Define.
25586 * configure: Regenerate.
25587 * config.in: Regenerate.
25588 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
25589 HAVE_LD_STATIC_DYNAMIC]: Use them.
25590
d7862be3
NC
255912011-01-31 Nick Clifton <nickc@redhat.com>
25592
25593 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
25594 registers inside interrupt handlers if the handler is not a leaf
25595 function.
25596
ba4ec0e0
NC
255972011-01-31 Nick Clifton <nickc@redhat.com>
25598
25599 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
25600 reg_renumber returning an INVALID_REGNUM.
25601
29a63921
AO
256022011-01-31 Alexandre Oliva <aoliva@redhat.com>
25603
25604 PR libgcj/44341
25605 * doc/install.texi: Document host options discarded when cross
25606 configuring target libraries.
25607
ef591d3f
AO
256082011-01-31 Alexandre Oliva <aoliva@redhat.com>
25609
25610 Reverted:
25611 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
25612 PR debug/45136
25613 PR debug/45130
25614 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25615 debug insns.
25616 (no_real_insns_p, schedule_block, set_priorities): Drop special
25617 treatment of boundary debug insns.
38be4072 25618 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
25619 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25620 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25621 (BOUNDARY_DEBUG_INSN_P): Likewise.
25622 (SCHEDULE_DEBUG_INSN_P): Likewise.
25623 * sched-rgn.c (init_ready_list): Drop special treatment of
25624 boundary debug insns.
25625 * final.c (rest_of_clean-state): Clear notes' BB.
25626
61052244
AM
256272011-01-31 Alan Modra <amodra@gmail.com>
25628
25629 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
25630 toc relative expressions as we do in print_operand_address.
25631
c4c8962b
KH
256322011-01-30 Kazu Hirata <kazu@codesourcery.com>
25633
25634 * doc/extend.texi: Follow spelling conventions.
25635 * doc/invoke.texi: Fix a typo.
25636
e543b94c
JM
256372011-01-30 Joseph Myers <joseph@codesourcery.com>
25638
25639 * config/hpux11.opt: New.
25640 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
25641 ia64*-*-hpux*): Use hpux11.opt.
25642
509d65dd 256432011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
25644
25645 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
25646 to tmake_file.
25647
7be03a0e
GP
256482011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
25649
25650 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
25651 support sites.
25652
419d1d37
GP
256532011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
25654
b596ed64
GP
25655 * doc/install.texi (Binaries): Remove outdated reference for
25656 Motorola 68HC11/68HC12 downloads.
25657
256582011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 25659
419d1d37
GP
25660 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
25661 Drepper's paper.
25662
4406d0e9
JW
256632011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
25664
25665 PR bootstrap/47147
25666 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
25667 used by NetBSD.
25668
38be4072 256692011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
25670
25671 * value-prof.c (check_counter): Corrected error message.
25672
0cd98787
JZ
256732011-01-29 Jie Zhang <jie@codesourcery.com>
25674
25675 * config/arm/arm.c (arm_legitimize_reload_address): New.
25676 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25677 arm_legitimize_reload_address.
38be4072 25678 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 25679
9b798ac5
ILT
256802011-01-28 Ian Lance Taylor <iant@google.com>
25681
25682 * godump.c (go_define): Ignore macros whose definitions include
25683 two adjacent operands.
25684
591e29d9
JJ
256852011-01-28 Jakub Jelinek <jakub@redhat.com>
25686
25687 PR target/42894
25688 * varasm.c (force_const_mem): Store copy of x in desc->constant
25689 instead of x itself.
25690 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
25691 itself into REG_EQUAL note.
25692
62dcc44a
JM
256932011-01-28 Joseph Myers <joseph@codesourcery.com>
25694
25695 * config/freebsd.opt (posix, rdynamic): New Driver options.
25696
c9f58b9a
RO
256972011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25698
25699 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
25700 -Bstatic/-Bdynamic.
25701 * configure: Regenerate.
25702
5f02b9db
JM
257032011-01-27 Joseph Myers <joseph@codesourcery.com>
25704
25705 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
25706 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
25707
5df97412
AS
257082011-01-27 Anatoly Sokolov <aesok@post.ru>
25709
25710 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
25711 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
25712 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25713 (s390_preferred_reload_class): Make static. Change return and
25714 'rclass' argument type to reg_class_t.
25715
779d4b91
JH
257162011-01-27 Jan Hubicka <jh@suse.cz>
25717
25718 PR middle-end/46949
25719 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
25720 (process_function_and_variable_attributes): Check defined weakrefs.
25721
e80b21ed
MJ
257222011-01-27 Martin Jambor <mjambor@suse.cz>
25723
25724 PR tree-optimization/47228
25725 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
25726 build_ref_for_offset.
25727
6dcc4f31
UW
257282011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25729
25730 * config/spu/spu-elf.h (ASM_SPEC): Remove.
25731
509d65dd 257322011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
25733
25734 PR rtl-optimization/46856
25735 * postreload.c (reload_combine_recognize_const_pattern): Do not
25736 separate cc0 setter and user on cc0 targets.
25737
04af8788
NP
257382011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
25739
25740 PR c/43082
25741 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
25742 passed a VOID_TYPE expression, immediately emit an error and
25743 return error_mark_node.
25744
f7a60085
JL
257452011-01-26 Jeff Law <law@redhat.com>
25746
25747 PR rtl-optimization/47464
25748 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
25749 rather than may_trap_p as needed.
25750
5c2917ec
DD
257512011-01-26 DJ Delorie <dj@redhat.com>
25752
25753 PR rtl-optimization/46878
25754 * combine.c (insn_a_feeds_b): Check for the implicit cc0
25755 setter/user dependency as well.
25756
bef16e87
EB
257572011-01-26 Eric Botcazou <ebotcazou@adacore.com>
25758
25759 PR rtl-optimization/44469
25760 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
25761 after removing trivially dead basic blocks.
25762
c75d884b
JM
257632011-01-26 Joseph Myers <joseph@codesourcery.com>
25764
25765 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
25766 * config/frv/frv.h (LINK_SPEC): Likewise.
25767 * config/i386/netware.h (LINK_SPEC): Likewise.
25768 * config/m68k/linux.h (ASM_SPEC): Likewise.
25769 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25770 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25771 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25772 * config/sparc/linux.h (ASM_SPEC): Likewise.
25773 * config/sparc/linux64.h (ASM_SPEC): Likewise.
25774 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25775
d3153553
JM
257762011-01-26 Joseph Myers <joseph@codesourcery.com>
25777
25778 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
25779 * config/frv/frv.h (ASM_SPEC): Likewise.
25780 * config/m68k/linux.h (ASM_SPEC): Likewise.
25781 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25782 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
25783 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25784 * config/sparc/linux.h (ASM_SPEC): Likewise.
25785 * config/sparc/linux64.h (ASM_SPEC): Likewise.
25786 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25787
b89b1e9d
JM
257882011-01-26 Joseph Myers <joseph@codesourcery.com>
25789
25790 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
25791 * config/frv/frv.h (LINK_SPEC): Likewise.
25792 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25793
12eb1a9c
JM
257942011-01-26 Joseph Myers <joseph@codesourcery.com>
25795
25796 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
25797 * config/frv/frv.h (ASM_SPEC): Likewise.
25798 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
25799 * config/m68k/linux.h (ASM_SPEC): Likewise.
25800 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25801 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25802 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25803 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
25804 * config/sparc/linux.h (ASM_SPEC): Likewise.
25805 * config/sparc/linux64.h (ASM_SPEC): Likewise.
25806 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25807 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
25808
e435f098
SE
258092011-01-26 Steve Ellcey <sje@cup.hp.com>
25810
25811 PR target/46997
25812 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
25813 (*mux2): Ditto.
25814 (vec_extract_evenodd_help): Ditto.
25815 (vec_extract_evenv4hi): Ditto.
25816 (vec_extract_oddv4hi): Ditto.
25817 (vec_interleave_lowv2si): Ditto.
25818 (vec_interleave_highv2si): Ditto.
25819 (vec_extract_evenv2si): Ditto.
25820 (vec_extract_oddv2si: Ditto.
25821 (vec_pack_trunc_v2si): Ditto.
25822
34f0eee0
JH
258232011-01-22 Jan Hubicka <jh@suse.cz>
25824
25825 PR target/47237
25826 * cgraph.h (cgraph_local_info): New field can_change_signature.
25827 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
25828 signature can change.
25829 (ipcp_estimate_growth): Call sequence simplify only if calle signature
25830 can change.
25831 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
25832 (cgraph_function_versioning): We can not change signature of functions
25833 that don't allow that.
25834 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
25835 (lto_input_node): Likewise.
38be4072
UB
25836 * ipa-inline.c (compute_inline_parameters): Compute
25837 local.can_change_signature.
34f0eee0 25838 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
25839 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
25840 functions that can not change signature.
34f0eee0 25841 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
25842 init_cumulative_args): Do not use local calling conventions
25843 for functions that can not change signature.
34f0eee0 25844
980ca891
JH
258452011-01-22 Jan Hubicka <jh@suse.cz>
25846
25847 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
25848
768e3c60
RG
258492011-01-26 Richard Guenther <rguenther@suse.de>
25850
25851 PR tree-optimization/47190
61052244
AM
25852 * cgraphunit.c (process_common_attributes): New function.
25853 (process_function_and_variable_attributes): Use it.
768e3c60 25854
21d6a1c7
RG
258552011-01-26 Richard Guenther <rguenther@suse.de>
25856
25857 PR lto/47423
25858 * cgraphbuild.c (record_eh_tables): Record reference to personality
25859 function.
25860
48bb58b1
AO
258612011-01-26 Alexandre Oliva <aoliva@redhat.com>
25862
25863 PR debug/45454
25864 * sel-sched.c (moveup_expr): Don't let debug insns prevent
25865 non-debug insns from moving up.
25866
58c741a6
DK
258672011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
25868
25869 PR target/40125
25870 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
25871 t-dlldir{,-x} fragment for build and add it to tmake_file.
25872 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
25873 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
25874 * config/i386/t-dlldir: New file.
25875 (SHLIB_DLLDIR): Define.
25876 * config/i386/t-dlldir-x: New file.
25877 (SHLIB_DLLDIR): Define.
25878 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
25879 (SHLIB_INSTALL): Use it.
25880
bff99262
CLT
258812011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
25882
25883 PR target/47246
25884 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
25885 lower bound of the allowed Thumb-2 coprocessor load/store
25886 index range to -256. Add explaining comment.
25887
82c03907
ILT
258882011-01-25 Ian Lance Taylor <iant@google.com>
25889
25890 * godump.c (go_define): Improve lexing of macro expansion to only
25891 accept expressions which match Go spec.
25892
47ea1edf
DK
258932011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
25894
d4dba752 25895 PR c++/43601
47ea1edf
DK
25896 * tree.c (handle_dll_attribute): Handle it.
25897 * doc/extend.texi (@item dllexport): Mention it.
25898 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
25899
744f0946
ILT
259002011-01-25 Ian Lance Taylor <iant@google.com>
25901
25902 PR tree-optimization/26854
25903 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
25904 (decl_jump_unsafe): Move higher in file, with no other change.
25905 (bind): Set has_jump_unsafe_decl if appropriate.
25906 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
25907 (check_earlier_gotos): Likewise.
25908 (c_check_switch_jump_warnings): Likewise.
25909
5734f2b3
JW
259102011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
25911
25912 * doc/invoke.texi (Warning Options): Add missing hyphen.
25913 (-fprofile-dir): Minor grammatical fixes.
25914 (-fbranch-probabilities): Likewise.
25915
9bdbdcef
AO
259162011-01-25 Alexandre Oliva <aoliva@redhat.com>
25917
25918 PR debug/45136
25919 PR debug/45130
25920 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25921 debug insns.
25922 (no_real_insns_p, schedule_block, set_priorities): Drop special
25923 treatment of boundary debug insns.
38be4072 25924 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
25925 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25926 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25927 (BOUNDARY_DEBUG_INSN_P): Likewise.
25928 (SCHEDULE_DEBUG_INSN_P): Likewise.
25929 * sched-rgn.c (init_ready_list): Drop special treatment of
25930 boundary debug insns.
25931 * final.c (rest_of_clean-state): Clear notes' BB.
25932
b305e3da
SP
259332011-01-25 Sebastian Pop <sebastian.pop@amd.com>
25934
25935 * Makefile.in (LAMBDA_H): Removed.
25936 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
25937 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
25938 lambda-trans.o, and tree-loop-linear.o.
25939 (lto-symtab.o): Remove dependence on LAMBDA_H.
25940 (tree-loop-linear.o): Remove rule.
25941 (lambda-mat.o): Same.
25942 (lambda-trans.o): Same.
25943 (lambda-code.o): Same.
25944 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
25945 (tree-vect-slp.o): Same.
25946 * hwint.h (gcd): Moved here.
25947 (least_common_multiple): Same.
25948 * lambda-code.c: Removed.
25949 * lambda-mat.c: Removed.
25950 * lambda-trans.c: Removed.
25951 * lambda.h: Removed.
25952 * tree-loop-linear.c: Removed.
25953 * lto-symtab.c: Do not include lambda.h.
25954 * omega.c (gcd): Removed.
25955 * passes.c (init_optimization_passes): Remove pass_linear_transform.
25956 * tree-data-ref.c (print_lambda_vector): Moved here.
25957 (lambda_vector_copy): Same.
25958 (lambda_matrix_copy): Same.
25959 (lambda_matrix_id): Same.
25960 (lambda_vector_first_nz): Same.
25961 (lambda_matrix_row_add): Same.
25962 (lambda_matrix_row_exchange): Same.
25963 (lambda_vector_mult_const): Same.
25964 (lambda_vector_negate): Same.
25965 (lambda_matrix_row_negate): Same.
25966 (lambda_vector_equal): Same.
25967 (lambda_matrix_right_hermite): Same.
25968 * tree-data-ref.h: Do not include lambda.h.
25969 (lambda_vector): Moved here.
25970 (lambda_matrix): Same.
25971 (dependence_level): Same.
25972 (lambda_transform_legal_p): Removed declaration.
25973 (lambda_collect_parameters): Same.
25974 (lambda_compute_access_matrices): Same.
25975 (lambda_vector_gcd): Same.
25976 (lambda_vector_new): Same.
25977 (lambda_vector_clear): Same.
25978 (lambda_vector_lexico_pos): Same.
25979 (lambda_vector_zerop): Same.
25980 (lambda_matrix_new): Same.
25981 * tree-flow.h (least_common_multiple): Removed declaration.
25982 * tree-parloops.c (lambda_trans_matrix): Moved here.
25983 (LTM_MATRIX): Same.
25984 (LTM_ROWSIZE): Same.
25985 (LTM_COLSIZE): Same.
25986 (LTM_DENOMINATOR): Same.
25987 (lambda_trans_matrix_new): Same.
25988 (lambda_matrix_vector_mult): Same.
25989 (lambda_transform_legal_p): Same.
25990 * tree-pass.h (pass_linear_transform): Removed declaration.
25991 * tree-ssa-loop.c (tree_linear_transform): Removed.
25992 (gate_tree_linear_transform): Removed.
25993 (pass_linear_transform): Removed.
25994 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
25995 flag_loop_interchange.
25996
6bdfdb96
JJ
259972011-01-25 Jakub Jelinek <jakub@redhat.com>
25998
25999 PR tree-optimization/47265
26000 PR tree-optimization/47443
26001 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
26002 if name still has some uses.
26003
e4cba915
MJ
260042011-01-25 Martin Jambor <mjambor@suse.cz>
26005
26006 PR tree-optimization/47382
26007 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
26008 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
26009
509d65dd 260102011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
26011
26012 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
26013 sjlj_except_unwind_info.
26014
194313e2
RG
260152011-01-25 Richard Guenther <rguenther@suse.de>
26016
26017 PR tree-optimization/47426
26018 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
26019 visible functions results escape.
26020
147a0bcf
JJ
260212011-01-25 Jakub Jelinek <jakub@redhat.com>
26022
26023 PR target/45701
26024 * config/arm/arm.c (any_sibcall_uses_r3): New function.
26025 (arm_get_frame_offsets): Use it.
26026
db963b52
SP
260272011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26028 Jakub Jelinek <jakub@redhat.com>
26029
26030 PR tree-optimization/47271
26031 * tree-if-conv.c (bb_postdominates_preds): New.
26032 (if_convertible_bb_p): Call bb_postdominates_preds.
26033 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
26034 (predicate_scalar_phi): Call bb_postdominates_preds.
26035
bcddd3b9
NC
260362011-01-25 Nick Clifton <nickc@redhat.com>
26037
26038 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
26039 * config/rx/rx.c (rx_function_value): Likewise.
26040 (rx_promote_function_mode): Likewise.
26041 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
26042 in order to make it legitimate.
38be4072
UB
26043 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
26044 make sure that the first operand is the same as the result register.
bcddd3b9
NC
26045 (addsi3_unspec): Delete.
26046 (subdi3): Do not accept immediate operands.
26047 (subdi3_internal): Likewise.
26048
7e6cb022
JL
260492011-01-25 Jeff Law <law@redhat.com>
26050
26051 PR rtl-optimization/37273
26052 * ira-costs.c (scan_one_insn): Detect constants living in memory and
26053 handle them like argument loads from stack slots. Do not double
26054 count memory for memory constants and argument loads from stack slots.
26055
9ffa621e
JJ
260562011-01-25 Jakub Jelinek <jakub@redhat.com>
26057
26058 PR tree-optimization/47427
26059 PR tree-optimization/47428
26060 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
26061 coalesce if the new root var would be TREE_READONLY.
26062
5bd6e652
RG
260632011-01-25 Richard Guenther <rguenther@suse.de>
26064
26065 PR middle-end/47414
26066 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
26067 correct type for TBAA.
26068
7c48ea69
SP
260692011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26070
26071 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
26072 (close_phi_written_to_memory): Call for_each_index with
26073 dr_indices_valid_in_loop.
26074
38013f25
SP
260752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26076
26077 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
26078 when it is initialized.
26079
5c640e29
SP
260802011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26081
26082 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
26083 call to graphite_find_data_references_in_stmt.
26084 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
26085 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
26086 call to graphite_find_data_references_in_stmt.
26087 (analyze_drs_in_stmts): Same.
26088 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
26089 in which the scalar analysis of indices is performed.
26090 (create_data_ref): Same. Update call to dr_analyze_indices.
26091 (find_data_references_in_stmt): Update call to create_data_ref.
26092 (graphite_find_data_references_in_stmt): Same.
26093 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
26094 declaration.
26095 (create_data_ref): Same.
26096 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
26097 call to create_data_ref.
26098
ac53c069
SP
260992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26100
26101 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 26102 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 26103
3d17df15
SP
261042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26105
26106 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
26107 VAR_DECL, PARM_DECL, and RESULT_DECL.
26108
c513da01
SP
261092011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26110
26111 * graphite-dependences.c (reduction_dr_1): Allow several reductions
26112 in a reduction PBB.
26113 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
26114 that have already been marked as PBB_IS_REDUCTION.
26115
3a292d59
SP
261162011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26117
26118 * graphite-scop-detection.c (same_close_phi_node): New.
26119 (remove_duplicate_close_phi): New.
26120 (make_close_phi_nodes_unique): New.
26121 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
26122
ba858447
SP
261232011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26124
26125 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
26126 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
26127 of both data references to be the same.
26128
8d865c56
SP
261292011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26130
38be4072
UB
26131 * graphite-dependences.c (build_lexicographical_constraint): Remove
26132 the gdim parameter.
26133 (build_lexicographical_constraint): Adjust call to
26134 ppl_powerset_is_empty.
8d865c56
SP
26135 (dependence_polyhedron): Same.
26136 (graphite_legal_transform_dr): Same.
26137 (graphite_carried_dependence_level_k): Same.
38be4072
UB
26138 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
26139 parameter.
8d865c56
SP
26140 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
26141
50034a36
SP
261422011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26143
26144 * graphite-sese-to-poly.c
26145 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
26146 (close_phi_written_to_memory): New.
26147 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
26148 and unshare_expr.
26149
0deada9e
SP
261502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26151
26152 * doc/install.texi: Update the expected version number of PPL to 0.11.
26153 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
26154 #if PPL_VERSION_MINOR < 11.
26155
d7d3d6af
SP
261562011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26157
26158 * graphite-dependences.c: Include graphite-cloog-util.h.
26159 (new_poly_ddr): Inlined into dependence_polyhedron.
26160 (free_poly_ddr): Moved close by new_poly_ddr.
26161 (dependence_polyhedron_1): Renamed dependence_polyhedron.
26162 Early return NULL when ppl_powerset_is_empty returns true.
26163 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
26164 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
26165 (graphite_legal_transform_dr): Call new_poly_ddr.
26166 (graphite_carried_dependence_level_k): Same.
26167 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
26168 (dot_transformed_deps_stmt_1): Removed.
26169 (dot_deps_stmt_1): Call dot_deps_stmt_2.
26170 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
26171 (dot_deps_1): Call dot_deps_2.
26172 * Makefile.in (graphite-dependences.o): Add missing dependence on
26173 graphite-cloog-util.h.
26174
28c5db57
SP
261752011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26176
26177 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
26178 (build_lexicographical_constraint): Same.
26179 (dependence_polyhedron_1): Same.
26180 (graphite_legal_transform_dr): Same.
26181 (graphite_carried_dependence_level_k): Same.
26182 * graphite-ppl.c (ppl_powerset_is_empty): New.
26183 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
26184 * tree-data-ref.c (dump_data_reference): Print the basic block index.
26185
5168d98f
SP
261862011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26187
26188 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
26189 the "a followed by b" relation and document it.
26190
4a40293a
SP
261912011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26192
26193 * graphite-dependences.c (build_lexicographical_constraint): Stop the
26194 iteration when the bag of constraints is empty.
26195
271fb6fa
SP
261962011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26197
26198 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
26199
92d23680
SP
262002011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26201
26202 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
26203 nest and two loop depths as parameters.
26204 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
26205 lst_perfect_nestify.
26206
2f51deff
SP
262072011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26208
26209 * graphite-dependences.c (print_pddr): Call
26210 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
26211
07f3593c
SP
262122011-01-25 Sebastian Pop <sebastian.pop@amd.com>
26213
26214 * graphite-ppl.c (debug_gmp_value): New.
26215 * graphite-ppl.h (debug_gmp_value): Declared.
26216
3fae6099
TG
262172011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
26218
26219 * doc/install.texi: Document availability of cloog-0.16.
26220
1c3ba85b
SP
262212011-01-25 Vladimir Kargov <kargov@gmail.com>
26222
26223 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
26224 invalid postdominance info.
26225
e8ba94fc
JH
262262011-01-24 Jan Hubicka <jh@suse.cz>
26227
26228 PR c/21659
26229 * doc/extend.texi (weak pragma): Drop claim that it must
26230 appear before definition.
26231 * varasm.c (merge_weak, declare_weak): Only sanity check
26232 that DECL is not output at a time it is declared weak.
26233
2b6e2d13
KZ
262342011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
26235
26236 * machmode.def: Fixed comments.
1c3ba85b 26237
9841210f
KT
262382011-01-24 Kai Tietz <kai.tietz@onevision.com>
26239
26240 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
26241
262422011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
26243
26244 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 26245 WORDS_BIG_ENDIAN.
e046112d 26246
a6c5070a
L
262472011-01-24 H.J. Lu <hongjiu.lu@intel.com>
26248
26249 PR target/46519
26250 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
26251 (block_info): Add scanned and prev.
26252 (move_or_delete_vzeroupper_2): Return if the basic block
26253 has been scanned and the upper 128bit state is unchanged
26254 from the last scan.
26255 (move_or_delete_vzeroupper_1): Return true if the exit
26256 state is changed.
26257 (move_or_delete_vzeroupper): Visit basic blocks using the
26258 work-list based algorithm based on vt_find_locations in
26259 var-tracking.c.
26260
26261 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
26262
a40d79d7
NC
262632011-01-24 Nick Clifton <nickc@redhat.com>
26264
26265 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
26266 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
26267 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
26268 then define __v850e1__.
26269 * doc/invoke.texi: Document -mv850es.
26270
440eb8de
RH
262712011-01-24 Richard Henderson <rth@redhat.com>
26272
26273 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
26274 compound unordered comparisons.
26275 * config/rx/rx.c (rx_split_fp_compare): Remove.
26276 * config/rx/rx-protos.h: Update.
26277 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
26278 (cbranchsf4): Don't call rx_split_fp_compare.
26279 (*cbranchsf4): Use rx_split_cbranch.
26280 (*cmpsf): Don't accept "i" constraint.
26281 (*conditional_branch): Only valid after reload.
26282 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
26283
3ff79f99
MM
262842011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
26285
26286 PR target/47385
26287 * config/rs6000/altivec.md (vector constant splitters): Add
26288 support for creating vector single precision constants if -mvsx is
26289 used and we would create the constant using Altivec primitives.
26290
ff3d9d08
BS
262912011-01-23 Bernd Schmidt <bernds@codesourcery.com>
26292 Richard Sandiford <rdsandiford@googlemail.com>
26293
26294 PR rtl-optimization/47166
26295 * reload1.c (emit_reload_insns): Disable the spill_reg_store
26296 mechanism for PRE_MODIFY and POST_MODIFY.
26297 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
26298 reloadreg.
26299
7fcaf152
AS
263002011-01-23 Andreas Schwab <schwab@linux-m68k.org>
26301
8788adb6 26302 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 26303
d09b58c4
JH
263042011-01-22 Jan Hubicka <jh@suse.cz>
26305
26306 PR lto/47333
26307 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
26308
e8ff8c5a
JH
263092011-01-22 Jan Hubicka <jh@suse.cz>
26310
26311 PR tree-optimization/43884
26312 PR lto/44334
8788adb6 26313 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
26314 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
26315
ccaed3ba
AS
263162011-01-22 Anatoly Sokolov <aesok@post.ru>
26317
26318 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26319 * config/s390/s390.c (s390_register_move_cost,
26320 s390_memory_move_cost): New.
26321 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
26322
0cecee06
UW
263232011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26324
26325 PR middle-end/47401
26326 * except.c (sjlj_assign_call_site_values): Move setting the
26327 crtl->uses_eh_lsda flag to ...
26328 (sjlj_mark_call_sites): ... here.
26329 (sjlj_emit_function_enter): Support NULL dispatch label.
26330 (sjlj_build_landing_pads): In a function with no landing pads
26331 that still has must-not-throw regions, generate code to register
26332 a personality function with empty LSDA.
26333
e692f276
RH
263342011-01-21 Richard Henderson <rth@redhat.com>
26335
1b7ae0b7
RH
26336 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
26337
3843787f
RH
26338 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
26339
e692f276
RH
26340 * compare-elim.c: New file.
26341 * Makefile.in (OBJS-common): Add it.
26342 (compare-elim.o): New.
26343 * common.opt (fcompare-elim): New.
26344 * opts.c (default_options_table): Add OPT_fcompare_elim.
26345 * tree-pass.h (pass_compare_elim_after_reload): New.
26346 * passes.c (init_optimization_passes): Add it.
26347 * recog.h: Protect against re-inclusion.
26348 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
26349 * doc/invoke.texi (-fcompare-elim): Document it.
26350 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
26351 * doc/tm.texi: Rebuild.
26352
9a7c2050
NC
263532011-01-22 Nick Clifton <nickc@redhat.com>
26354
26355 * config/rx/rx.md (cstoresf4): Pass comparison operator to
26356 rx_split_fp_compare.
26357
15ba5696
NC
263582011-01-22 Nick Clifton <nickc@redhat.com>
26359
26360 * config/rx/rx.md (UNSPEC_CONST): New.
26361 (deallocate_and_return): Wrap the amount popped off the stack in
26362 an UNSPEC_CONST in order to stop it being rejected by
26363 -mmax-constant-size.
26364 (pop_and_return): Add a "(return)" rtx.
26365 (call): Drop the immediate operand.
26366 (call_internal): Likewise.
26367 (call_value): Likewise.
26368 (call_value_internal): Likewise.
26369 (sibcall_internal): Likewise.
26370 (sibcall_value_internal): Likewise.
26371 (sibcall): Likewise. Generate an explicit call using
26372 sibcall_internal.
26373 (sibcall_value): Likewise.
26374 (mov<>): FAIL if a constant operand is not legitimate.
26375 (addsi3_unpsec): New pattern.
9a7c2050 26376
38be4072 26377 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
26378 (ok_for_max_constant): New function.
26379 (gen_safe_add): New function.
26380 (rx_expand_prologue): Use gen_safe_add.
26381 (rx_expand_epilogue): Likewise.
26382 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
26383 UNSPEC CONSTs.
26384
caaf13d3
JL
263852011-01-21 Jeff Law <law@redhat.com>
26386
26387 PR tree-optimization/47053
26388 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
26389 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
26390 statements are deleted.
26391 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
26392 is nonempty, then purge dead edges and cleanup the CFG.
26393
12c30f2f
AO
263942011-01-21 Alexandre Oliva <aoliva@redhat.com>
26395
26396 PR debug/47402
26397 Temporarily revert:
26398 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
26399 PR debug/47106
26400 * tree-dfa.c (create_var_ann): Mark variable as used.
26401
7360d2ac
JJ
264022011-01-21 Jakub Jelinek <jakub@redhat.com>
26403
aaa52a96
JJ
26404 PR middle-end/45566
26405 * except.c (convert_to_eh_region_ranges): Emit queued no-region
26406 notes from other section in hot/cold partitioning even if
26407 last_action is -3. Increment call_site_base.
26408
7360d2ac
JJ
26409 PR rtl-optimization/47366
26410 * fwprop.c (forward_propagate_into): Return bool. If
26411 any changes are made, -fnon-call-exceptions is used and
26412 REG_EH_REGION note is present, call purge_dead_edges
26413 and return true if it purged anything.
26414 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
26415 any EH edges were purged.
26416
e90b336f
JL
264172011-01-21 Jeff Law <law@redhat.com>
26418
26419 PR rtl-optimization/41619
26420 * caller-save.c (setup_save_areas): Break out code to determine
26421 which hard regs are live across calls by examining the reload chains
26422 so that it is always used.
26423 Eliminate code which checked REG_N_CALLS_CROSSED.
26424
3ffe07e1
JJ
264252011-01-21 Jakub Jelinek <jakub@redhat.com>
26426
26427 PR tree-optimization/47355
26428 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
26429 NOP has non-debug uses beyond PHIs in new_bb.
26430
1c7d0b34
AO
264312011-01-21 Alexandre Oliva <aoliva@redhat.com>
26432
26433 PR debug/47106
26434 * cfgexpand.c (account_used_vars_for_block): Only account vars
26435 that are annotated as used.
26436 (estimated_stack_frame_size): Don't set TREE_USED.
26437 * tree-dfa.c (create_var_ann): Mark variable as used.
26438
f99cc488
RG
264392011-01-21 Richard Guenther <rguenther@suse.de>
26440
26441 PR middle-end/47395
26442 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
26443
3bc27de7
RG
264442011-01-21 Richard Guenther <rguenther@suse.de>
26445
26446 PR tree-optimization/47365
26447 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
26448 (vn_reference_lookup_pieces): Adjust.
26449 (vn_reference_lookup): Likewise.
26450 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
26451 (vn_reference_lookup_3): Only look through kills if in
26452 VN_WALKREWRITE mode.
26453 (vn_reference_lookup_pieces): Adjust.
26454 (vn_reference_lookup): Likewise.
26455 (visit_reference_op_load): Likewise.
26456 (visit_reference_op_store): Likewise.
26457 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
26458 (compute_avail): Likewise.
26459 (eliminate): Likewise.
26460
d8debb1d
JJ
264612011-01-21 Jakub Jelinek <jakub@redhat.com>
26462
26463 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
26464 DECL_IGNORED_P non-reg vars if they are used.
26465
3a2df831
JJ
26466 PR tree-optimization/47391
26467 * varpool.c (const_value_known_p): Return false if
26468 decl is volatile.
26469
1dd584a2
KT
264702011-01-21 Kai Tietz <kai.tietz@onevision.com>
26471
26472 PR bootstrap/47215
26473 * config/i386/i386.c (ix86_local_alignment): Handle
26474 case for va_list_type_node is nil.
26475 (ix86_canonical_va_list_type): Likewise.
26476
7f9f095e
AM
264772011-01-21 Alan Modra <amodra@gmail.com>
26478
26479 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
26480 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
26481
837b01f6
RR
264822011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26483
26484 * config/arm/arm.md (define_attr type): Rename f_load
26485 and f_store to f_fpa_load and f_fpa_store. Update.
26486 (write_conflict): Deal with rename fallout.
26487 (*push_fp_multi): Likewise.
26488 * config/arm/fpa.md (f_load): Use f_fpa_load.
26489 (f_store): Use f_fpa_store.
26490 (*movsf_fpa): Likewise.
26491 (*movdf_fpa): Likewise.
26492 (*movxf_fpa): Likewise.
26493 (*thumb2_movsf_fpa): Likewise.
26494 (*thumb2_movdf_fpa): Likewise.
26495 (*thumb2_movxf_fpa): Likewise.
26496 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
26497 f_loadd and f_stored.
26498 (*thumb2_movdi_vfp): Likewise.
26499 (*thumb2_movsf_vfp): Fix attribute to f_loads.
26500 (*thumb2_movsi_vfp): Likewise.
26501 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
26502 Use f_loads instead of f_load.
26503 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
26504
a1a79768
AS
265052011-01-20 Anatoly Sokolov <aesok@post.ru>
26506
26507 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26508 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
26509 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26510 (xtensa_mode_dependent_address_p): New function.
26511 (constantpool_address_p): Make static. Change return type to bool.
26512 Change argument type to const_rtx. Use CONST_INT_P predicate.
26513
427f6cec
AO
265142011-01-20 Alexandre Oliva <aoliva@redhat.com>
26515
26516 PR debug/46583
26517 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
26518
583ac69c
JJ
265192011-01-20 Jakub Jelinek <jakub@redhat.com>
26520
26521 PR debug/47283
26522 * cfgexpand.c (expand_debug_expr): Instead of generating
26523 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
26524 etc. handling.
26525
93e452ed
RG
265262011-01-20 Richard Guenther <rguenther@suse.de>
26527
26528 PR middle-end/47370
26529 * tree-inline.c (remap_gimple_op_r): Recurse manually for
26530 the pointer operand of MEM_REFs.
26531
28fc44f3
JJ
265322011-01-20 Jakub Jelinek <jakub@redhat.com>
26533
26534 PR tree-optimization/46130
26535 * ipa-split.c (consider_split): If return_bb contains non-virtual
26536 PHIs other than for retval or if split_function would not adjust it,
26537 refuse to split.
26538
ddd268f2
RG
265392011-01-20 Richard Guenther <rguenther@suse.de>
26540
26541 PR tree-optimization/47167
26542 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
26543 Revert previous change, only avoid enumeral type changes.
26544
882020aa
MS
265452011-01-19 Mike Stump <mikestump@comcast.net>
26546
26547 * doc/tm.texi.in (BRANCH_COST): Englishify.
26548 * doc/tm.texi (BRANCH_COST): Likewise.
26549
7edb6247
DS
265502011-01-19 Dodji Seketeli <dodji@redhat.com>
26551
26552 PR c++/47291
26553 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
26554 (gen_scheduled_generic_parms_dies): New functions.
26555 (gen_struct_or_union_type_die): Schedule template parameters DIEs
26556 generation for the end of CU compilation.
26557 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 26558
23d5ed5d
AO
265592011-01-19 Alexandre Oliva <aoliva@redhat.com>
26560
26561 PR debug/46240
26562 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
26563 debug bind stmt on merge edges.
26564
37d6a488
AO
265652011-01-19 Alexandre Oliva <aoliva@redhat.com>
26566
26567 PR debug/47079
26568 PR debug/46724
26569 * function.c (instantiate_expr): Instantiate incoming rtl of
26570 implicit arguments, and recurse on VALUE_EXPRs.
26571 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
26572 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
26573
689f2c82
AO
265742011-01-19 Alexandre Oliva <aoliva@redhat.com>
26575
26576 * c-parser.c (c_parser_for_statement): Initialize
26577 collection_expression.
26578
03029de4
JM
265792011-01-19 Joseph Myers <joseph@codesourcery.com>
26580
26581 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
26582
3e03217e
JM
265832011-01-19 Joseph Myers <joseph@codesourcery.com>
26584
26585 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
26586 (LINK_SHLIB_SPEC): Don't use %(link_path).
26587 (SUBTARGET_EXTRA_SPECS): Remove link_path.
26588
5bbe9b3f
JM
265892011-01-19 Joseph Myers <joseph@codesourcery.com>
26590
26591 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
26592 (NO_SHARED_LIB_SUPPORT): Remove.
26593 (LINK_SHLIB_SPEC): Remove one conditional definition.
26594
368e0b39
JM
265952011-01-19 Joseph Myers <joseph@codesourcery.com>
26596
26597 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
26598 %{call_shared}.
26599 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
26600 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
26601 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
26602 %{call_shared} and conditionals on these options not being passed.
26603 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
26604 %{call_shared}.
26605
ed7656f6
JJ
266062011-01-19 Jakub Jelinek <jakub@redhat.com>
26607
68457901
JJ
26608 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
26609 simplify.
26610
ed7656f6
JJ
26611 * ipa-split.c: Spelling fixes.
26612
e0d1958f
RH
266132011-01-19 Richard Henderson <rth@redhat.com>
26614
26615 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
26616 (*mulsi3): Likewise.
26617
27098b6b
RH
26618 * longlong.h [__mn10300__] (count_leading_zeros): New.
26619 [__mn10300__] (umul_ppmm, smul_ppmm): New.
26620 [__mn10300__] (add_ssaaaa, subddmmss): New.
26621 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
26622 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
26623
d6be7c36
UW
266242011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26625
26626 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
26627
b1efde2a
RH
266282011-01-19 Richard Henderson <rth@redhat.com>
26629
44217823
RH
26630 * config/mn10300/mn10300.md (addsi3_flags): New.
26631 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
26632 (subsi3_flags, subc_internal, subdi3): New.
26633 (subdi3_internal, *subdi3_degenerate): New.
26634 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
26635
37a185d7
RH
26636 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
26637 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
26638 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
26639 * config/mn10300/mn10300-protos.h: Update.
26640 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
26641 (return_ret): Likewise. Rename from return_internal_regs.
26642 (return_internal): Remove.
26643
040c5757
RH
26644 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
26645 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
26646 (mn10300_legitimate_constant_p): Likewise.
26647 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
26648 (mn10300_frame_size): New.
26649 (mn10300_expand_prologue): Use it.
26650 (mn10300_expand_epilogue): Likewise.
26651 (mn10300_initial_offset): Likewise.
26652 * config/mn10300/mn10300-protos.h: Update.
26653 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
26654 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
26655 (prologue, epilogue, return_internal): Tidy output code.
26656 (mn10300_store_multiple_operation, return): Likewise.
26657 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
26658 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
26659 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
26660 (load_pic, am33_load_pic): New.
26661 (mn10300_load_pic0, mn10300_load_pic1): New.
26662
bad41521
RH
26663 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
26664 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
26665 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
26666 (cc_flags_for_mode, cc_flags_for_code): New.
26667 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
26668 overflow flag is not valid. Validate that the flags we need
26669 for the comparison are valid.
26670 (mn10300_output_cmp): Remove.
26671 (mn10300_output_add): New.
26672 (mn10300_select_cc_mode): Use cc_flags_for_code.
26673 (mn10300_split_cbranch): New.
26674 (mn10300_match_ccmode): New.
26675 (mn10300_split_and_operand_count): New.
26676 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
26677 to the function.
26678 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
26679 (addsi3): ... here. Use mn10300_output_add.
26680 (*addsi3_flags): New.
26681 (*am33_subsi3, *mn10300_subsi3): Merge...
26682 (subsi3): ... here. Use attribute isa.
26683 (*subsi3_flags): New.
26684 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
26685 when possible.
26686 (*am33_andsi3, *mn10300_andsi3): Merge...
26687 (andsi3): ... here.
26688 (*andsi3_flags): New.
26689 (andsi3 splitters): New.
26690 (*am33_iorsi3, *mn10300_iorsi3): Merge...
26691 (iorsi3): ... here.
26692 (*iorsi3_flags): New.
26693 (*am33_xorsi3, *mn10300_xorsi3): Merge...
26694 (xorsi3): ... here.
26695 (*xorsi3_flags): New.
26696 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
26697 (one_cmplsi2): ... here.
26698 (*one_cmplsi2_flags): New.
26699 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
26700 instead of "dax" in constraints. Use mn10300_split_cbranch.
26701 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
26702 use matching constraints to eliminate a self-comparison.
26703 (*integer_conditional_branch): Rename from integer_conditional_branch.
26704 Use int_mode_flags to match CC_REG.
26705 (*cbranchsi4_btst, *btstsi): New.
26706 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
26707 mn10300_split_cbranch.
26708 (*am33_cmpsf): Rename from am33_cmpsf.
26709 (*float_conditional_branch): Rename from float_conditional_branch.
26710 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
26711 (zero_extendqisi2): ... here.
26712 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
26713 (zero_extendhisi2): ... here.
26714 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
26715 (extendqisi2): ... here.
26716 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
26717 (extendhisi2): ... here.
26718 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
26719 (ashlsi3): ... here.
26720 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
26721 (lshrsi3): ... here.
26722 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
26723 (ashrsi3): ... here.
26724 (consecutive add peephole): Remove.
26725 * config/mn10300/predicates.md (label_ref_operand): New.
26726 (int_mode_flags): New.
26727 (CCZN_comparison_operator): New.
26728
9efb4993
RH
26729 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
26730 (throughput_42_latency_43): New reservation.
26731 (mulsidi3, umulsidi3): New expanders.
26732 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
26733 the MDR register to allocation; separately allocate the low and
26734 high parts of the DImode result.
26735 (umulsidi3_internal): Similarly.
26736 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
26737 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
26738 (udivsi3, umodsi3): Remove.
26739 (udivmodsi4, divmodsi4): New expanders.
26740 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
26741 (*divmodsi4): Simiarly.
26742 (ext_internal): New.
26743
c25a21f5
RH
26744 * config/mn10300/constraints.md ("z"): New constraint.
26745 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
26746 (FIXED_REGISTERS): Don't fix MDR.
26747 (CALL_USED_REGSITERS): Reformat nicely.
26748 (REG_ALLOC_ORDER): Add MDR.
26749 (enum regclass): Add MDR_REGS.
26750 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
26751 (IRA_COVER_CLASSES): Add MDR_REGS.
26752 (REGNO_REG_CLASS): Handle MDR_REG.
26753 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
26754 (mn10300_register_move_cost): Likewise.
26755 * config/mn10300/mn10300.md (MDR_REG): New.
26756 (*movsi_internal): Handle moves to/from MDR_REGS.
26757
36846b26
RH
26758 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
26759 POST_MODIFY.
26760 (mn10300_secondary_reload): Tidy combination reload classes.
26761 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
26762 addresses for AM33. Allow symbolic offsets for reg+imm.
26763 (mn10300_regno_in_class_p): New.
26764 (mn10300_legitimize_reload_address): New.
26765 * config/mn10300/mn10300.h (enum reg_class): Remove
26766 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
26767 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
26768 SP_OR_GENERAL_REGS.
26769 (REG_CLASS_NAMES): Update to match.
26770 (REG_CLASS_CONTENTS): Likewise.
26771 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
26772 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
26773 (REGNO_IN_RANGE_P): Remove.
26774 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
26775 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
26776 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
26777 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
26778 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
26779 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
26780 (REGNO_GENERAL_P): New.
26781 (HAVE_POST_MODIFY_DISP): New.
26782 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
26783 (LEGITIMIZE_RELOAD_ADDRESS): New.
26784 * config/mn10300/mn10300-protos.h: Update.
26785
8b119bb6
RH
26786 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
26787 DATA_REGS for AM33 stack-pointer destination.
26788 (mn10300_preferred_output_reload_class): Likewise.
26789 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
26790 into a form appropriate for ...
26791 (TARGET_SECONDARY_RELOAD): New.
26792 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
26793 * config/mn10300/mn10300-protos.h: Update.
26794 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
26795 reload_insi; use the "A" constraint for the scratch; handle AM33
26796 moves of sp to non-address registers.
26797
b1efde2a
RH
26798 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
26799 (*movqi_internal): ... here.
26800 (*am33_movhi, *mn10300_movhi): Merge into...
26801 (*movhi_internal): ... here.
26802 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
26803 as the source/destination of moves from/to SP.
26804 (movsf): Only allow for AM33-2.
1c3ba85b 26805 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
26806 any integer constant constraint. Only allow for AM33-2. Tidy
26807 all of the alternative outputs.
26808 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
26809 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
26810 for MN103.
26811 (udivsi3, umodsi3): New patterns for MN103 only.
26812
b899fd78
JR
268132011-01-19 Joern Rennecke <amylaar@spamcop.net>
26814
26815 * doc/tm.texi.in: Spell out that a lack of register class unions
26816 can lead to ICEs.
26817 * doc/tm.texi: Regenerate.
26818
afaaa67d
JJ
268192011-01-19 Jakub Jelinek <jakub@redhat.com>
26820
2e0642cd
JJ
26821 PR rtl-optimization/47337
26822 * dce.c (check_argument_store): New function.
26823 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
26824
afaaa67d
JJ
26825 PR tree-optimization/47290
26826 * tree-eh.c (infinite_empty_loop_p): New function.
26827 (cleanup_empty_eh): Use it.
26828
d2cd871f
SE
268292011-01-18 Steve Ellcey <sje@cup.hp.com>
26830
26831 PR target/46997
26832 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
26833 (a64_expand_widen_sum): Ditto.
26834 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
26835 (vec_extract_evenodd_help): Ditto.
26836 (vec_extract_evenv4hi): Ditto.
26837 (vec_extract_oddv4hi): Ditto.
26838 (vec_extract_evenv2si): Ditto.
26839 (vec_extract_oddv2si): Ditto.
26840 (vec_extract_evenv2sf): Ditto.
26841 (vec_extract_oddv2sf): Ditto.
26842 (vec_pack_trunc_v4hi: Ditto.
26843 (vec_pack_trunc_v2si): Ditto.
26844 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
26845 (vec_interleave_highv8qi): Ditto.
26846 (mix1_r): Ditto.
26847 (vec_extract_oddv8qi): Ditto.
26848 (vec_interleave_lowv4hi): Ditto.
26849 (vec_interleave_highv4hi): Ditto.
26850 (vec_interleave_lowv2si): Ditto.
26851 (vec_interleave_highv2si): Ditto.
26852
41a1208a
JDA
268532011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
26854
26855 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
26856 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
26857 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
26858 (pa_c_mode_for_suffix): New.
26859 (TARGET_EXPAND_BUILTIN): Define.
26860 (TARGET_C_MODE_FOR_SUFFIX): Define.
26861 (pa_builtins): Define.
26862 (pa_init_builtins): Register __float128 type and init new support
26863 builtins.
26864 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
26865 * config/pa/quadlib.c (_U_Qfcopysign): New.
26866
1ecad98e
EB
268672011-01-18 Eric Botcazou <ebotcazou@adacore.com>
26868
26869 PR middle-end/46894
26870 * explow.c (allocate_dynamic_stack_space): Do not assume more than
26871 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
26872 are defined.
26873
d4f2460a
UW
268742011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
26875
26876 PR tree-optimization/47179
26877 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
26878 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
26879
4994da65
RG
268802011-01-18 Richard Guenther <rguenther@suse.de>
26881
26882 PR rtl-optimization/47216
26883 * emit-rtl.c: Include tree-flow.h.
26884 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
26885 of replicating it with different semantics.
26886 * Makefile.in (emit-rtl.o): Adjust.
26887
1eb458d1
RR
268882011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
26889
38be4072 26890 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 26891 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 26892
e7ef91dc
JJ
268932011-01-18 Jakub Jelinek <jakub@redhat.com>
26894
26895 PR rtl-optimization/47299
26896 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 26897 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
26898 * expmed.c (expand_widening_mult): Don't try to optimize constant
26899 multiplication if op0 has VOIDmode. Convert op1 constant to mode
26900 before using it.
26901
535b7874
RW
269022011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26903
26904 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
26905 spacing after 'e.g.', typos, comma, hyphenation.
26906
27bf36f3
RH
269072011-01-17 Richard Henderson <rth@redhat.com>
26908
8a5b5449
RH
26909 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
26910 (rx_restricted_mem_operand): New.
26911 (rx_shift_operand): Use register_operand.
26912 (rx_source_operand, rx_compare_operand): Likewise.
26913 * config/rx/rx.md (addsi3_flags): New expander.
26914 (adddi3): Rewrite as expander.
26915 (adc_internal, *adc_flags, adddi3_internal): New patterns.
26916 (subsi3_flags): New expander.
26917 (subdi3): Rewrite as expander.
26918 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
26919
784f69be
RH
26920 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
26921 (rx_init_builtins): Remove sat builtin.
26922 (rx_expand_builtin): Likewise.
26923 * config/rx/rx.md (ssaddsi3): New.
26924 (*sat): Rename from sat. Represent the CC_REG input.
26925
f033541c
RH
26926 * config/rx/predicates.md (rshift_operator): New.
26927 * config/rx/rx.c (rx_expand_insv): Remove.
26928 * config/rx/rx-protos.h: Update.
26929 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
26930 operand to the canonical position.
26931 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
26932 (*bitclr, *bitclr_in_memory): Similarly.
26933 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
26934 (insv): Retain the zero_extract in the expansion.
26935
34fee389
RH
26936 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
26937 (bswaphi2, bitinvert, revw): Likewise.
26938
265c835f
RH
26939 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
26940 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
26941 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
26942 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
26943 (bitset, bitset_in_memory): Likewise.
26944 (bitinvert, bitinvert_in_memory): Likewise.
26945 (bitclr, bitclr_in_memory): Likewise.
26946 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
26947 (rx_strend, rx_cmpstrn): Likewise.
26948 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
26949 (bitop peep2 patterns): Remove.
26950
b4d83be3
RH
26951 * config/rx/rx.c (rx_match_ccmode): New.
26952 * config/rx/rx-protos.h: Update.
26953 * config/rx/rx.md (abssi2): Clobber, don't set flags.
26954 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
26955 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
26956 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
26957 (fix_truncsfsi2, floatsisf2): Likewise.
26958 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
26959 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
26960 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
26961 (*subsi3_flags, *xorsi3_flags): New.
26962
d0acb939
RH
26963 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
26964
c06fc3d9
RH
26965 * config/rx/rx.c (rx_print_operand): Remove workaround for
26966 unsplit comparison operations.
26967
2882702b
RH
26968 * config/rx/rx.md (movsicc): Split after reload.
26969 (*movsicc): Merge *movsieq and *movsine via match_operator.
26970 (*stcc): New pattern.
26971
6f7310f2
RH
26972 * config/rx/rx.c (rx_float_compare_mode): Remove.
26973 * config/rx/rx.h (rx_float_compare_mode): Remove.
26974 * config/rx/rx.md (cstoresi4): Split after reload.
26975 (*sccc): New pattern.
26976
e963cb1a
RH
26977 * config/rx/predicates.md (label_ref_operand): New.
26978 (rx_z_comparison_operator): New.
26979 (rx_zs_comparison_operator): New.
26980 (rx_fp_comparison_operator): New.
26981 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
26982 Validate that the flags are set properly for the comparison.
26983 (rx_gen_cond_branch_template): Remove.
26984 (rx_cc_modes_compatible): Remove.
26985 (mode_from_flags): New.
26986 (flags_from_code): Rename from flags_needed_for_conditional.
26987 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
26988 (rx_select_cc_mode): Likewise.
26989 (rx_split_fp_compare): New.
26990 (rx_split_cbranch): New.
26991 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
26992 (*cbranchsi4): Use match_operator and rx_split_cbranch.
26993 (*cbranchsf4): Similarly.
26994 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
26995 match_operator and rx_split_cbranch.
26996 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
26997 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
26998 (*cmpsi): Rename from cmpsi.
26999 (*tstsi): Rename from tstsi.
27000 (*cmpsf): Rename from cmpsf; use CC_Fmode.
27001 (*conditional_branch): Rename from conditional_branch.
27002 (*reveresed_conditional_branch): Remove.
27003 (b<code>): Remove expander.
27004 * config/rx/rx-protos.h: Update.
27005
af530bb4
RH
27006 * config/rx/rx.c (rx_compare_redundant): Remove.
27007 * config/rx/rx.md (cmpsi): Don't use it.
27008 * config/rx/rx-protos.h: Update.
27009
27bf36f3
RH
27010 * config/rx/rx-modes.def (CC_F): New mode.
27011 * config/rx/rx.c (rx_select_cc_mode): New.
27012 * config/rx/rx.h (SELECT_CC_MODE): Use it.
27013 * config/rx/rx-protos.h: Update.
27014
d7fde127
RH
270152011-01-17 Richard Henderson <rth@redhat.com>
27016
27017 * except.c (dump_eh_tree): Fix stray ; after for statement.
27018
6ff38230
RG
270192011-01-17 Richard Guenther <rguenther@suse.de>
27020
27021 PR tree-optimization/47313
27022 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
27023 handling before copying the body. Properly deal with
27024 by-reference result in SSA form.
27025
114ce554
ILT
270262011-01-17 Ian Lance Taylor <iant@google.com>
27027
bf5cd92b 27028 PR target/47219
114ce554
ILT
27029 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
27030 (struct_value_alias_set): Don't define.
27031 (sparc_option_override): Don't set sparc_sr_alias_set and
27032 struct_value_alias_set.
27033 (save_or_restore_regs): Use gen_frame_mem rather than calling
27034 set_mem_alias_set.
27035 (sparc_struct_value_rtx): Likewise.
27036
98c6d93c
L
270372011-01-17 H.J. Lu <hongjiu.lu@intel.com>
27038
27039 PR target/47318
7a81008b 27040 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
27041 (_mm_maskstore_pd): Likewise.
27042 (_mm_maskload_ps): Likewise.
27043 (_mm_maskstore_ps): Likewise.
27044 (_mm256_maskload_pd): Change mask to __m256i.
27045 (_mm256_maskstore_pd): Likewise.
27046 (_mm256_maskload_ps): Likewise.
27047 (_mm256_maskstore_ps): Likewise.
27048
27049 * config/i386/i386-builtin-types.def: Updated.
27050 (ix86_expand_special_args_builtin): Likewise.
27051
27052 * config/i386/i386.c (bdesc_special_args): Update
27053 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
27054 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
27055 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
27056 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
27057
27058 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
27059 Use <avxpermvecmode> on mask register.
27060 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
27061
b9361af2 270622011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
27063 Michael Haubenwallner <michael.haubenwallner@salomon.at>
27064 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
27065
27066 PR target/46655
27067 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
27068 if <= USHRT_MAX in 32-bit mode.
27069
b7ae9eb5
RW
270702011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27071
27072 * doc/install.texi (Configuration, Specific): Wrap long
27073 lines in examples. Allow line wrapping in long options
27074 and URLs where beneficial for PDF output.
27075
4377fad9
RS
270762011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
27077
27078 * config/mips/mips.c (mips_classify_symbol): Don't return
27079 SYMBOL_PC_RELATIVE for nonlocal labels.
27080
55959ffa 270812011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 27082
55959ffa
EB
27083 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
27084
270852011-01-15 Jan Hubicka <jh@suse.cz>
27086
27087 PR tree-optimization/47276
be46831f
JH
27088 * ipa.c (function_and_variable_visibility): Do not try to mark alias
27089 declarations as needed.
27090
05842ff5
MJ
270912011-01-15 Martin Jambor <mjambor@suse.cz>
27092
27093 * common.opt (fdevirtualize): New flag.
27094 * doc/invoke.texi (Option Summary): Document it.
27095 * opts.c (default_options_table): Add devirtualize flag.
27096 * ipa-prop.c (detect_type_change): Return immediately if
27097 devirtualize flag is not set.
27098 (detect_type_change_ssa): Likewise.
27099 (compute_known_type_jump_func): Likewise.
27100 (ipa_analyze_virtual_call_uses): Likewise.
27101
f65cf2b7
MJ
271022011-01-14 Martin Jambor <mjambor@suse.cz>
27103
27104 PR tree-optimization/45934
27105 PR tree-optimization/46302
27106 * ipa-prop.c (type_change_info): New type.
27107 (stmt_may_be_vtbl_ptr_store): New function.
27108 (check_stmt_for_type_change): Likewise.
27109 (detect_type_change): Likewise.
27110 (detect_type_change_ssa): Likewise.
27111 (compute_complex_assign_jump_func): Check for dynamic type change.
27112 (compute_complex_ancestor_jump_func): Likewise.
27113 (compute_known_type_jump_func): Likewise.
27114 (compute_scalar_jump_functions): Likewise.
27115 (ipa_analyze_virtual_call_uses): Likewise.
27116 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
27117
eb5bb0fd
JM
271182011-01-14 Joseph Myers <joseph@codesourcery.com>
27119
27120 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
27121 * config/i386/i386.opt (msse5): New Alias.
27122
f2060fbe
JM
271232011-01-14 Joseph Myers <joseph@codesourcery.com>
27124
27125 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
27126 * config/sparc/linux64.h (CC1_SPEC): Likewise.
27127 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
27128 * config/sparc/sparc.h (CC1_SPEC): Likewise.
27129
3a7b4385
JM
271302011-01-14 Joseph Myers <joseph@codesourcery.com>
27131
27132 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
27133 -mcpu options.
27134 * config/sparc/linux64.h (CC1_SPEC): Likewise.
27135 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
27136 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
27137 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
27138 Likewise.
27139 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
27140
a7b778f8
JM
271412011-01-14 Joseph Myers <joseph@codesourcery.com>
27142
38be4072 27143 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 27144
a7edae0a
MS
271452011-01-14 Mike Stump <mikestump@comcast.net>
27146
27147 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
27148 * config/fr30/fr30.md: Likweise
27149 (movsi_push): Likewise.
27150 (movsi_pop): Likewise.
27151 (enter_func): Likewise.
27152 * config/moxie/moxie.md (movsi_push): Likewise.
27153 (movsi_pop): Likewise.
27154
cbabf03f
JM
271552011-01-14 Joseph Myers <joseph@codesourcery.com>
27156
27157 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
27158 %{no_archive} %{exact_version}.
27159 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
27160 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
27161 %{no_archive} %{exact_version}.
27162 * config/mips/openbsd.h (LINK_SPEC): Likewise.
27163 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
27164 * config/mips/vxworks.h: Likewise.
27165
438da41a
JM
271662011-01-14 Joseph Myers <joseph@codesourcery.com>
27167
38be4072 27168 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 27169
da290a42
JM
271702011-01-14 Joseph Myers <joseph@codesourcery.com>
27171
27172 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
27173 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
27174
8989d00e
JM
271752011-01-14 Joseph Myers <joseph@codesourcery.com>
27176
27177 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
27178 -nodefaultlib.
27179
a3010a69
JM
271802011-01-14 Joseph Myers <joseph@codesourcery.com>
27181
27182 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
27183 for mcpu not cpu.
27184 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
27185 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
27186 not cpu.
27187 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
27188 Don't handle -shlib.
27189
e7f2f537
JM
271902011-01-14 Joseph Myers <joseph@codesourcery.com>
27191
27192 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
27193 (CC1_SPEC): Don't handle -profile.
27194
34830bfd
JM
271952011-01-14 Joseph Myers <joseph@codesourcery.com>
27196
27197 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
27198 * config/mips/mips.h (CC1_SPEC): Likewise.
27199
b2d36e74
JM
272002011-01-14 Joseph Myers <joseph@codesourcery.com>
27201
27202 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
27203 * config/mips/mips.h (CC1_SPEC): Likewise.
27204
dabadc52
JM
272052011-01-14 Joseph Myers <joseph@codesourcery.com>
27206
27207 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
27208 * config/m32r/linux.h (LINK_SPEC): Likewise.
27209 * config/mips/linux.h (LINK_SPEC): Likewise.
27210 * config/mips/linux64.h (LINK_SPEC): Likewise.
27211 * config/sparc/linux.h (LINK_SPEC): Likewise.
27212 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
27213 LINK_SPEC): Likewise.
27214 * config/xtensa/linux.h (LINK_SPEC): Likewise.
27215
43ee6785
JM
272162011-01-14 Joseph Myers <joseph@codesourcery.com>
27217
27218 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
27219 %{version:-v}.
27220 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
27221
45e79dfd
JM
272222011-01-14 Joseph Myers <joseph@codesourcery.com>
27223
27224 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
27225 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27226
37e9e71d
JM
272272011-01-14 Joseph Myers <joseph@codesourcery.com>
27228
27229 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
27230
bb127cd8
RO
272312011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27232
27233 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
27234 supports -Bstatic/-Bdynamic.
27235 * configure: Regenerate.
27236
89a012ea 272372011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 27238 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
27239
27240 PR target/46037
27241 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
27242 when checking debug_info_level. Test write_symbols instead of
27243 debug_hooks->var_location when setting flag_var_tracking_uninit.
27244
7352c013
RG
272452011-01-14 Richard Guenther <rguenther@suse.de>
27246
27247 PR tree-optimization/47179
27248 * target.def (ref_may_alias_errno): New target hook.
27249 * targhooks.h (default_ref_may_alias_errno): Declare.
27250 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
27251 (default_ref_may_alias_errno): New function.
27252 * target.h (struct ao_ref_s): Declare.
27253 * tree-ssa-alias.c: Include target.h.
27254 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
27255 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
27256 (targhooks.o): Likewise.
27257 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
27258 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
27259
9a6c9288
RG
272602011-01-14 Richard Guenther <rguenther@suse.de>
27261
27262 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
27263
0fdb0d27
RG
272642011-01-14 Richard Guenther <rguenther@suse.de>
27265
27266 PR tree-optimization/47280
27267 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
27268 return CFG changes.
27269 (tree_ssa_forward_propagate_single_use_vars): Deal with
27270 CFG changes from associate_plusminus.
27271
8f66db3b
RG
272722011-01-14 Richard Guenther <rguenther@suse.de>
27273
27274 PR middle-end/47281
27275 Revert
27276 2011-01-11 Richard Guenther <rguenther@suse.de>
27277
280d9630
EB
27278 PR tree-optimization/46076
27279 * tree-ssa.c (useless_type_conversion_p): Conversions from
27280 unprototyped to empty argument list function types are useless.
8f66db3b 27281
6c0c92e6
RG
272822011-01-14 Richard Guenther <rguenther@suse.de>
27283
27284 PR tree-optimization/47286
280d9630 27285 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 27286
db09f943
MJ
272872011-01-14 Martin Jambor <mjambor@suse.cz>
27288
27289 PR middle-end/46823
27290 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
27291
dde8a3a4
AS
272922011-01-13 Anatoly Sokolov <aesok@post.ru>
27293
27294 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
27295 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27296 * config/xtensa/xtensa.c (xtensa_libcall_value,
27297 xtensa_function_value_regno_p): New functions.
27298 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
27299
a2b63a20
KT
273002011-01-13 Kai Tietz <kai.tietz@onevision.com>
27301
27302 PR c++/47213
27303 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
27304 PE specific hook.
27305 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
27306 New function prototype.
27307 * config/i386/winnt.c (i386_pe_assemble_visibility):
27308 Warn only if attribute was specified by user.
27309
b41f0b34
MM
273102011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
27311
27312 PR target/47251
27313 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
27314 floating point.
27315 (floatunsdidf2_fcfidu): Ditto.
27316
3f3c098d
AK
273172011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27318
27319 * config/s390/s390.c (print_operand_address): Replace 'error' with
27320 'output_operand_lossage'.
27321 (print_operand): Likewise.
27322
29fa95ed
JL
273232011-01-13 Jeff Law <law@redhat.com>
27324
280d9630 27325 PR rtl-optimization/39077
29fa95ed
JL
27326 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
27327 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
27328 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
27329 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
27330 * gcse.c (prune_insertions_deletions): New function.
27331 (compute_pre_data): Use it.
27332
71d12276
DS
273332011-01-13 Dodji Seketeli <dodji@redhat.com>
27334
27335 PR debug/PR46973
27336 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
27337 static function.
61052244 27338 (prune_unused_types_mark): Use it.
71d12276 27339
9b0f04e7
AB
273402011-01-13 Andrey Belevantsev <abel@ispras.ru>
27341
27342 PR rtl-optimization/45352
1c3ba85b 27343 * sel-sched.c: Update copyright years.
9b0f04e7 27344 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 27345 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 27346
d6a3e264
RH
273472011-01-12 Richard Henderson <rth@redhat.com>
27348
a49b692a
RH
27349 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
27350 (TARGET_MD_ASM_CLOBBERS): New.
27351
126b1483
RH
27352 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
27353 (TARGET_DELEGITIMIZE_ADDRESS): New.
27354
f3d9d2e0
RH
27355 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
27356 (clzsi2, *bsch): New patterns.
27357
d84760c9
RH
27358 * config/mn10300/mn10300.md (INT): New mode iterator.
27359 (*mov<INT>_clr): New pattern, and peep2 to generate it.
27360
ec815d65
RH
27361 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
27362 flag_split_wide_types.
27363
d6a3e264
RH
27364 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
27365 (mn10300_trampoline_init): Rewrite without a template, an immediate
27366 load and a direct branch.
27367 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
27368
0f8ab434
AS
273692011-01-12 Anatoly Sokolov <aesok@post.ru>
27370
27371 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27372 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
27373 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
27374 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27375
d8a24b65
KT
273762011-01-12 Kai Tietz <kai.tietz@onevision.com>
27377
27378 PR debug/47209
27379 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
27380 of type.
27381
56e22cab
JH
273822011-01-12 Jan Hubicka <jh@suse.cz>
27383
27384 PR driver/47244
27385 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
27386 (PLUGIN_COND_CLOSE): New macro.
27387 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
27388
4b18b3c2
RG
273892011-01-12 Richard Guenther <rguenther@suse.de>
27390
27391 PR lto/47259
27392 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
27393 register variables in a MEM_REF.
27394
8e38461c
JM
273952011-01-12 Joseph Myers <joseph@codesourcery.com>
27396
27397 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
27398 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
27399 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
27400 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
27401 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
27402 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
27403 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
27404 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
27405 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
27406 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
27407 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
27408 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
27409 * config/gnu-user.h: New. Copied from linux.h.
27410 (LINUX_TARGET_STARTFILE_SPEC): Rename to
27411 GNU_USER_TARGET_STARTFILE_SPEC.
27412 (LINUX_TARGET_ENDFILE_SPEC): Rename to
27413 GNU_USER_TARGET_ENDFILE_SPEC.
27414 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
27415 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
27416 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
27417 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
27418 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
27419 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
27420 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
27421 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
27422 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
27423 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
27424 * config/arm/linux-eabi.h (CC1_SPEC): Use
27425 GNU_USER_TARGET_CC1_SPEC.
27426 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
27427 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
27428 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
27429 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
27430 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
27431 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
27432 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
27433 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
27434
a570fc16
RG
274352011-01-12 Richard Guenther <rguenther@suse.de>
27436
27437 PR other/46946
27438 * doc/invoke.texi (ffast-math): Document it is turned on
27439 with -Ofast.
27440
b0223c3e
JH
274412011-01-12 Jan Hubicka <jh@suse.cz>
27442
27443 PR tree-optimization/47233
ca1e00b3
EB
27444 * opts.c (common_handle_option): Disable ipa-reference with profile
27445 feedback.
b0223c3e 27446
1c3ba85b 274472011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
27448
27449 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
27450 error message.
27451
d853ee42
NP
274522011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
27453
27454 * c-parser.c (c_lex_one_token): Updated and reindented some
27455 comments. No changes in code.
27456
4053a5a0
ILT
274572011-01-11 Ian Lance Taylor <iant@google.com>
27458
27459 * godump.c (go_output_var): Don't output the variable if there is
27460 already a type with the same name.
27461
fa3e04d2
ILT
274622011-01-11 Ian Lance Taylor <iant@google.com>
27463
27464 * godump.c (go_format_type): Don't generate float80.
27465
885fe07c
RH
274662011-01-11 Richard Henderson <rth@redhat.com>
27467
72d6e3c5
RH
27468 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
27469 declaration. Rewrite for both speed and size.
27470 (mn10300_address_cost_1): Remove.
27471 (mn10300_register_move_cost): New.
27472 (mn10300_memory_move_cost): New.
27473 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
27474 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
27475 extensions, shifts, BSWAP, CLZ.
27476 (mn10300_wide_const_load_uses_clr): Remove.
27477 (TARGET_REGISTER_MOVE_COST): New.
27478 (TARGET_MEMORY_MOVE_COST): New.
27479 * config/mn10300/mn10300-protos.h: Update.
27480 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
27481
df37c023
RH
27482 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
27483 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
27484 * config/mn10300/mn10300-protos.h: Update.
27485 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
27486 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
27487 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
27488 (*test_int_bitfield, *test_byte_bitfield): Remove.
27489 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 27490 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 27491
85a337b5
RH
27492 * config/mn10300/constraints.md ("c"): Rename from "A".
27493 ("A", "D"): New constraint letters.
27494 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
27495 (fmssf4, fnmasf4, fnmssf4): Likewise.
27496
a5c727e3
RH
27497 * config/mn10300/mn10300.md (isa): New attribute.
27498 (enabled): New attribute.
27499
0d9e23f4
RH
27500 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
27501 (abssf2, negsf2): Define only for hardware fp.
27502 (sqrtsf2): Reformat.
27503 (addsf3, subsf3, mulsf3): Merge expander and insn.
27504
c157b3f0
RH
27505 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
27506 (DEBUGGER_AUTO_OFFSET): Remove.
27507 (DEBUGGER_ARG_OFFSET): Remove.
27508
cc909bba
RH
27509 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
27510 Emit register stores with the same offsets as the hardware.
27511 (mn10300_store_multiple_operation): Don't check that the register
27512 save offsets are monotonic.
27513 * config/mn10300/mn10300-protos.h: Update.
27514
e3b5c2f3
RH
27515 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
27516
885fe07c
RH
27517 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
27518 in terms of the value on the stack, not the MDR register.
27519
6e701822
JH
275202011-01-11 Jan Hubicka <jh@suse.cz>
27521
27522 PR lto/45721
27523 PR lto/45375
27524 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
27525 (symbol_alias_set_destroy, symbol_alias_set_contains,
27526 propagate_aliases_backward): Declare.
27527 * lto-streamer-out.c (struct sets): New sturcture.
27528 (trivally_defined_alias): New function.
27529 (output_alias_pair_p): Rewrite.
27530 (output_unreferenced_globals): Fix output of alias pairs.
27531 (produce_symtab): Likewise.
27532 * ipa.c (function_and_variable_visibility): Set weak alias destination
27533 as needed in lto.
27534 * varasm.c (symbol_alias_set_t): Remove.
27535 (symbol_alias_set_destroy): Export.
27536 (propagate_aliases_forward, propagate_aliases_backward): New functions
27537 based on ...
27538 (compute_visible_aliases): ... this one; remove.
27539 (trivially_visible_alias): New
27540 (trivially_defined_alias): New.
27541 (remove_unreachable_alias_pairs): Rewrite.
27542 (finish_aliases_1): Reorganize code checking if alias is defined.
27543 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
27544 in LTO mode.
27545
1b248907
RG
275462011-01-11 Richard Guenther <rguenther@suse.de>
27547
27548 PR tree-optimization/46076
27549 * tree-ssa.c (useless_type_conversion_p): Conversions from
27550 unprototyped to empty argument list function types are useless.
27551
b1923f0a
RG
275522011-01-11 Richard Guenther <rguenther@suse.de>
27553
27554 PR middle-end/45235
27555 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
27556 volatile MEMs as MEM_READONLY_P.
27557
e98965af
RG
275582011-01-11 Richard Guenther <rguenther@suse.de>
27559
27560 PR tree-optimization/47239
27561 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
27562
9f9ca914
JL
275632011-01-11 Jeff Law <law@redhat.com>
27564
1ee3ea05 27565 PR tree-optimization/47086
9f9ca914
JL
27566 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
27567 IVs from statements that might throw.
27568
345fdcb7
JH
275692011-01-10 Jan Hubicka <jh@suse.cz>
27570
27571 PR lto/45375
27572 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
27573
c459c97b
JH
275742011-01-10 Jan Hubicka <jh@suse.cz>
27575
27576 PR lto/45375
27577 * profile.c (read_profile_edge_counts): Ignore profile inconistency
27578 when correcting profile.
27579
06c9eb51
JH
275802011-01-10 Jan Hubicka <jh@suse.cz>
27581
27582 PR lto/46083
27583 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
27584 DECL_FINI_PRIORITY.
27585 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
27586 Restore DECL_FINI_PRIORITY.
27587
ae9fd815
RW
275882011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27589
27590 * doc/gimple.texi: Fix quoting of multi-word return values in
27591 @deftypefn statements. Ensure presence of return value. Wrap
27592 overlong @deftypefn lines.
27593 (is_gimple_operand, is_gimple_min_invariant_address): Remove
27594 descriptions of removed functions.
27595 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
27596 of multi-word return value in @deftypefn statement.
27597
0ecb4a7c
RW
275982011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27599
27600 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
27601 (Conditional Expressions, Logical Operators)
27602 (Statement and operand traversals): Do not indent smallexample
27603 code. Fix duplicate function argument in example.
27604
2e5e346d
JL
276052011-01-10 Jeff Law <law@redhat.com>
27606
1ee3ea05 27607 PR tree-optimization/47141
2e5e346d
JL
27608 * ipa-split.c (split_function): Handle case where we are
27609 returning a value and the return block has a virtual operand phi.
27610
cf9712cc
JH
276112011-01-10 Jan Hubicka <jh@suse.cz>
27612
1c3ba85b 27613 PR tree-optimization/47234
cf9712cc
JH
27614 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
27615 (pass_feedback_split_functions): Declare.
27616 * passes.c (init_optimization_passes): Add ipa-split as subpass of
27617 tree-profile.
27618 * ipa-split.c (gate_split_functions): Update comments; disable
27619 split-functions for profile_arc_flag and branch_probabilities.
27620 (gate_feedback_split_functions): New function.
27621 (execute_feedback_split_functions): New function.
27622 (pass_feedback_split_functions): New global var.
27623
94cd932c
L
276242011-01-10 H.J. Lu <hongjiu.lu@intel.com>
27625
27626 PR lto/46760
27627 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
27628 calling gimple_call_set_cannot_inline.
27629
fbbfcaf1
IS
276302011-01-10 Iain Sandoe <iains@gcc.gnu.org>
27631
27632 * config/darwin-sections.def: Remove unused section.
27633
d06865bf
DK
276342011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
27635
27636 PR c++/47218
27637 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
27638
96bbfbac
NP
276392011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
27640
27641 PR objc/47232
27642 * c-parser.c (c_parser_declaration_or_fndef): Improved
27643 error message.
27644
1ba6516f
KT
276452011-01-09 Kai Tietz <kai.tietz@onevision.com>
27646
27647 * config/i386/winnt.c (i386_pe_start_function): Make sure
27648 to switch back to function's section.
27649
0c5d770e
IS
276502011-01-09 Iain Sandoe <iains@gcc.gnu.org>
27651
27652 PR gcc/46902
27653 PR testsuite/46912
27654 * plugin.c: Move include of dlfcn.h from here...
27655 * system.h: ... to here.
27656
276572011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
27658
27659 * doc/cpp.texi (C++ Named Operators): Fix markup for header
27660 file name.
27661 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
27662 two extra empty pages in PDF output.
27663
046608a3
NP
276642011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
27665
27666 PR objc/47078
27667 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
27668 for error recovery purposes behave as if it was not specified so
27669 that the default type is usd.
27670
8cb114b9
JH
276712011-01-07 Jan Hubicka <jh@suse.cz>
27672
27673 PR tree-optmization/46469
27674 * ipa.c (function_and_variable_visibility): Clear needed flags on
27675 nodes with external decls; handle weakrefs merging correctly.
27676
b294a75e
JM
276772011-01-07 Joseph Myers <joseph@codesourcery.com>
27678
27679 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
27680 not false.
27681
96bdf9b4
JH
276822011-01-07 Jan Hubicka <jh@suse.cz>
27683
f60c2554 27684 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
27685 and no longer claim that gold is required for linker plugin.
27686 * configure: Regenerate.
27687 * gcc.c (PLUGIN_COND): New macro.
27688 (LINK_COMMAND_SPEC): Use it.
27689 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
27690 * config.in (HAVE_LTO_PLUGIN): New.
27691 * configure.ac (--with-lto-plugin): New parameter; autodetect
27692 HAVE_LTO_PLUGIN.
27693
17afc0fe
JH
276942011-01-07 Jan Hubicka <jh@suse.cz>
27695
27696 PR tree-optimization/46367
27697 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
27698 when we can update original.
27699 (cgraph_mark_inline_edge): Sanity check.
27700 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
27701
d4c48c0f
UW
277022011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27703
27704 * config/spu/spu.h (ASM_COMMENT_START): Define.
27705
96f5b137
L
277062011-01-07 H.J. Lu <hongjiu.lu@intel.com>
27707
27708 PR driver/42445
27709 * gcc.c (%>S): New.
27710 (SWITCH_KEEP_FOR_GCC): Likewise.
27711 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
27712 (do_spec_1): Handle "%>".
27713
27714 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
27715
c6a8f6de
JJ
277162011-01-07 Jakub Jelinek <jakub@redhat.com>
27717
c21bbd7a
JJ
27718 PR target/47201
27719 * config/i386/i386.c (ix86_delegitimize_address): If
27720 simplify_gen_subreg fails, return orig_x.
27721
c6a8f6de
JJ
27722 PR bootstrap/47187
27723 * value-prof.c (gimple_stringop_fixed_value): Handle
27724 lhs of the call properly.
27725
fe95fbf9
JH
277262011-01-07 Jan Hubicka <jh@suse.cz>
27727
27728 PR lto/45375
27729 * lto-opt.c (lto_reissue_options): Set flag_shlib.
27730
14d11d40
IS
277312011-01-07 Iain Sandoe <iains@gcc.gnu.org>
27732
72e961c8
EB
27733 * target.def (function_switched_text_sections): New hook.
27734 * doc/tm.texi: Regenerated.
27735 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 27736 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
27737 (final_scan_insn): Call function_switched_text_sections when a
27738 mid-function section change occurs.
14d11d40 27739 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
27740 * config/darwin-protos.h (darwin_function_switched_text_sections):
27741 Likewise.
14d11d40 27742 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 27743 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 27744
0b764288
IS
277452011-01-07 Iain Sandoe <iains@gcc.gnu.org>
27746
27747 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
27748 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
27749 the secondary code fragment when outputting for DWARF == 2.
27750
2ac6bb04
AS
277512011-01-07 Anatoly Sokolov <aesok@post.ru>
27752
27753 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27754 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
27755 Remove.
27756 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
27757 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27758
9f82de11
EB
277592011-01-06 Eric Botcazou <ebotcazou@adacore.com>
27760
27761 PR debug/46704
280d9630
EB
27762 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
27763 when it is not empty.
9f82de11
EB
27764
277652011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 27766
1ed72abf 27767 Bobcat Enablement
14b52538 27768 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 27769 (case ${target}): Add btver1.
14b52538 27770 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 27771 -march=native recognize btver1 processors.
14b52538 27772 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 27773 btver1 def_and_undef
14b52538 27774 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
27775 btver1 cost table.
27776 (m_BTVER1): New definition.
27777 (m_AMD_MULTIPLE): Includes m_BTVER1.
27778 (initial_ix86_tune_features): Add btver1 tune.
27779 (processor_target_table): Add btver1 entry.
27780 (static const char *const cpu_names): Add btver1 entry.
27781 (software_prefetching_beneficial_p): Add btver1.
27782 (ix86_option_override_internal): Add btver1 instruction sets.
27783 (ix86_issue_rate): Add btver1.
27784 (ix86_adjust_cost): Add btver1.
14b52538 27785 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
27786 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
27787 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
27788 * config/i386/i386.md (define_attr "cpu"): Add btver1.
27789
e1a973d8
RO
277902011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27791
27792 PR target/43309
27793 * config/i386/i386.c (legitimize_tls_address)
27794 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
27795 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
27796 (tls_initial_exec_64_sun): New pattern.
27797
c73f67c5
GP
277982011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
27799
27800 * doc/invoke.texi (Overall Options): Improve wording and markup
27801 of the description of -wrapper.
27802
bc4c6f9c
JM
278032011-01-06 Joseph Myers <joseph@codesourcery.com>
27804
27805 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
27806 rdynamic, threads): New Driver options.
27807
adb75db0
RO
278082011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27809
27810 PR target/38118
27811 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
27812 if coming from .tdata.
27813 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27814
402c1cb4
JH
278152011-01-06 Jan Hubicka <jh@suse.cz>
27816
27817 PR lto/47188
27818 * collect2.c (main): Do not enable LTOmode when plugin is active.
27819
a4da6485
RO
278202011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27821
27822 PR other/45915
27823 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
27824 --version output if supported.
27825 * configure: Regenerate.
27826
028dbdf4
JM
278272011-01-06 Joseph Myers <joseph@codesourcery.com>
27828
27829 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
27830 Driver options.
27831
dfe776dd
JJ
278322011-01-06 Jakub Jelinek <jakub@redhat.com>
27833
27834 PR c/47150
27835 * c-convert.c (convert): When converting a complex expression
27836 other than COMPLEX_EXPR to a different complex type, ensure
27837 c_save_expr is called instead of save_expr, unless in_late_binary_op.
27838 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
27839 when converting COMPLEX_TYPE.
27840
210dedfe
IR
278412011-01-06 Ira Rosen <irar@il.ibm.com>
27842
27843 PR tree-optimization/47139
27844 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
27845 only the last reduction value is used outside the loop. Update
27846 documentation.
27847
cd33a412
JM
278482011-01-05 Joseph Myers <joseph@codesourcery.com>
27849
27850 * config/rtems.opt: New.
27851 * config.gcc (*-*-rtems*): Use rtems.opt.
27852
819edd94
CF
278532011-01-05 Changpeng Fang <changpeng.fang@amd.com>
27854
27855 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
27856 processors do not support 3DNow instructions.
27857
dc242c4a
UW
278582011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27859
27860 * config/spu/spu.c (spu_option_override): Set parameter
27861 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
27862
be286227
JH
278632011-01-05 Jan Hubicka <jh@suse.cz>
27864
27865 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
27866 at the command line.
27867
644e637f
MJ
278682011-01-05 Martin Jambor <mjambor@suse.cz>
27869
27870 PR lto/47162
27871 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
27872 deltas on streamed outgoing edges.
27873 (output_node_opt_summary): Output info for outgoing edges only when
27874 the node is in new parameter set.
27875 (output_cgraph_opt_summary): New parameter set, passed to the two
27876 aforementioned functions. Update its forward declaration and its
27877 callee too.
27878
7bd11157
TT
278792011-01-05 Tom Tromey <tromey@redhat.com>
27880
27881 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
27882 operator to c_finish_omp_atomic.
27883 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
27884 (build_unary_op): Update.
27885 (build_modify_expr): Update.
27886 (build_asm_expr): Update.
27887
f626b979
UW
278882011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27889
27890 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
27891 newly inserted insns.
27892 (pad_bb): Likewise.
27893 (spu_emit_branch_hint): Likewise.
27894 (insert_hbrp_for_ilb_runout): Likewise.
27895 (spu_machine_dependent_reorg): Call df_finish_pass after
27896 schedule_insns returns.
27897
4c825c02
UW
278982011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27899
27900 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
27901
5e9fba51
EB
279022011-01-05 Eric Botcazou <ebotcazou@adacore.com>
27903
27904 PR tree-optimization/47005
27905 * tree-sra.c (struct access): Add 'non_addressable' bit.
27906 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
27907 (decide_one_param_reduction): Return 0 if the parameter is passed by
27908 reference and one of the accesses in the group is non_addressable.
27909
3ebb5ca6
EB
279102011-01-04 Eric Botcazou <ebotcazou@adacore.com>
27911
27912 PR tree-optimization/47056
27913 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
27914 (mark_load): Likewise. Handle FUNCTION_DECL specially.
27915 (mark_store): Likewise. Pass STMT to ipa_record_reference.
27916
d5d4d14e
EB
279172011-01-04 Eric Botcazou <ebotcazou@adacore.com>
27918
27919 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
27920 initializer. Skip view conversions from aggregate types.
27921
d996ef70
KT
279222011-01-04 Kai Tietz <kai.tietz@onevision.com>
27923
27924 PR bootstrap/47055
27925 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
27926
509d65dd 279272011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
27928
27929 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
27930 obvious typo.
27931
55c623b5
UW
279322011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27933
27934 * function.c (thread_prologue_and_epilogue_insns): Do not crash
27935 on empty epilogue sequences.
27936
b98d6b35
JM
279372011-01-04 Joseph Myers <joseph@codesourcery.com>
27938
27939 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
27940 non-static): New Driver options.
27941
a0d43bac
JZ
279422011-01-04 Jie Zhang <jie@codesourcery.com>
27943
27944 PR driver/47137
27945 * gcc.c (default_compilers[]): Set combinable field to 0
27946 for all assembly languages.
27947
2b18eb32
MX
279482011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
27949
27950 * config/mips/loongson3a.md: New file.
27951 * config/mips/mips.md: Include loongson3a.md.
27952 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
27953 TUNE_LOONGSON_3A.
27954
42a48c4f
EB
279552011-01-03 Eric Botcazou <ebotcazou@adacore.com>
27956
27957 PR middle-end/47017
27958 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
27959 instead of convert_memory_address_addr_space on the base expression.
27960
9c1732c4
UW
279612011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27962
27963 * config/spu/spu.c (spu_option_override): Update error text
27964 for bad -march= / -mtune= values.
27965
aa474365
UW
279662011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
27967
27968 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
27969 if branch-hint optimization will be performed.
27970
9766135b
JJ
279712011-01-03 Jakub Jelinek <jakub@redhat.com>
27972
371556ee
JJ
27973 PR tree-optimization/47148
27974 * ipa-split.c (split_function): Convert arguments to
27975 DECL_ARG_TYPE if possible.
27976
1ac12fa2
JJ
27977 PR tree-optimization/47155
27978 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
27979 when computing uns.
27980
9766135b
JJ
27981 PR rtl-optimization/47157
27982 * combine.c (try_combine): If undobuf.other_insn becomes
27983 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
27984 and set *new_direct_jump_p too.
27985
f4a2e571
SP
279862011-01-03 Sebastian Pop <sebastian.pop@amd.com>
27987
27988 PR tree-optimization/47021
27989 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
27990
9f8e43c0
JJ
279912011-01-03 Jakub Jelinek <jakub@redhat.com>
27992
27993 * gcc.c (process_command): Update copyright notice dates.
27994 * gcov.c (print_version): Likewise.
27995 * gcov-dump.c (print_version): Likewise.
27996 * mips-tfile.c (main): Likewise.
27997 * mips-tdump.c (main): Likewise.
27998
1a2e38f3
MJ
279992011-01-03 Martin Jambor <mjambor@suse.cz>
28000
28001 PR tree-optimization/46801
28002 * tree-sra.c (type_internals_preclude_sra_p): Check whether
28003 aggregate fields start at byte boundary instead of the bit-field flag.
28004
56b721c5
L
280052011-01-03 H.J. Lu <hongjiu.lu@intel.com>
28006
28007 PR driver/47137
28008 * gcc.c (main): Revert revision 168407.
28009
839d549b
MJ
280102011-01-03 Martin Jambor <mjambor@suse.cz>
28011
28012 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
28013
4ce99a20 280142011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
28015
28016 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
28017 vector optab to expand vector/scalar shift, update gimple to vector.
28018
76df0ae6
MJ
280192011-01-03 Martin Jambor <mjambor@suse.cz>
28020
28021 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
28022 a thunk.
28023
ce47fda3
MJ
280242011-01-03 Martin Jambor <mjambor@suse.cz>
28025
28026 PR tree-optimization/46984
28027 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
28028 HOST_WIDE_INT.
28029 (cgraph_create_indirect_edge): Fixed line length.
28030 (cgraph_indirect_call_info): Declare.
28031 (cgraph_make_edge_direct) Update declaration.
28032 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
28033 (cgraph_create_indirect_edge): Use it.
28034 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
28035 callees.
28036 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
28037 the new thunk_delta representation.
28038 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
28039 HOST_WIDE_INT.
28040 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
28041 (ipa_read_indirect_edge_info): Likewise.
28042 * lto-cgraph.c (output_edge_opt_summary): New function.
28043 (output_node_opt_summary): Call it on all outgoing edges.
28044 (input_edge_opt_summary): New function.
28045 (input_node_opt_summary): Call it on all outgoing edges.
28046
1e67fa1f
L
280472011-01-02 H.J. Lu <hongjiu.lu@intel.com>
28048
28049 PR driver/47137
28050 * gcc.c (main): Don't check have_o when settting combine_inputs.
28051
6656b2ac
EB
280522011-01-02 Eric Botcazou <ebotcazou@adacore.com>
28053
28054 * regrename.c: Add general comment describing the pass.
28055 (struct du_head): Remove 'length' field.
28056 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
28057 (regrename_optimize): Do not sort chains. Rework comments, add others.
28058 Force renaming to the preferred class (if any) in the first pass and do
28059 not consider registers that belong to it in the second pass.
28060 (create_new_chain): Do not set 'length' field.
28061 (scan_rtx_reg): Likewise.
28062
bc470c24
JJ
280632011-01-02 Jakub Jelinek <jakub@redhat.com>
28064
4e996296
JJ
28065 PR tree-optimization/47140
28066 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
28067 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
28068 to bit_value_binop.
28069
bc470c24 28070 PR rtl-optimization/47028
6656b2ac
EB
28071 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
28072 parm_birth_insn instead of at the beginning of first bb.
bc470c24 28073
5af62fcd 280742011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
28075
28076 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
28077 Remove the word "see" before "@pxref".
28078 * doc/rtl.texi: Remove the word "see" before "@pxref".
28079
0e20c89f
JH
280802011-01-01 Jan Hubicka <jh@suse.cz>
28081
6656b2ac
EB
28082 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
28083 memory.
0e20c89f 28084
220e83ca
KT
280852011-01-01 Kai Tietz <kai.tietz@onevision.com>
28086
28087 PR target/38662
6656b2ac 28088 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 28089
ad41bd84 28090\f
797103eb 28091Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
28092
28093Copying and distribution of this file, with or without modification,
28094are permitted in any medium without royalty provided the copyright
28095notice and this notice are preserved.
This page took 5.906238 seconds and 5 git commands to generate.