1 2010-10-31 Jason Merrill <jason@redhat.com>
3 * tree.h (EXPR_LOC_OR_HERE): New macro.
4 * builtins.c (c_strlen): Use it.
5 * c-decl.c (build_enumerator): Likewise.
6 * gimplify.c (internal_get_tmp_var): Likewise.
7 (shortcut_cond_expr): Likewise.
8 (gimplify_one_sizepos): Likewise.
10 2010-10-31 Richard Henderson <rth@redhat.com>
12 * config/i386/cygming.h (TARGET_SEH): New.
13 (MAX_STACK_ALIGNMENT): New. Disable alignment for SEH.
14 (TARGET_ASM_UNWIND_EMIT, TARGET_ASM_UNWIND_EMIT_BEFORE_INSN,
15 TARGET_ASM_FUNCTION_END_PROLOGUE, SUBTARGET_ASM_UNWIND_INIT): New.
16 (TARGET_OS_CPP_BUILTINS): Define __SEH__ as needed.
17 (ASM_DECLARE_FUNCTION_NAME): Use i386_pe_start_function.
18 (ASM_DECLARE_FUNCTION_SIZE): New.
19 * config/i386/i386-protos.h: Update.
20 * config/i386/i386.c (ix86_option_override_internal): Enable
21 flag_unwind_tables with flag_asynchronous_unwind_tables immediately;
22 restrict -mpreferred-stack-boundary for SEH; enable flag_fentry.
23 (ix86_asm_output_function_label): Use SUBTARGET_ASM_UNWIND_INIT.
24 (ix86_compute_frame_layout): For SEH, disable
25 use_fast_prologue_epilogue, move frame pointer to the end of
26 the frame. Initialize hfp_save_offset.
27 (ix86_expand_prologue): Honor hfp_save_offset. Emit blockage
28 at end of prologue for SEH.
29 (ix86_expand_epilogue): For SEH, use pops, emit a nop if needed,
30 emit blockage at beginning of epilogue.
31 (ix86_expand_binary_operator): After reload, emit LEA if needed.
32 (ix86_output_call_insn): New.
33 * config/i386/i386.h (TARGET_SEH): New.
34 (struct machine_function): Add member seh.
35 * config/i386/i386.md (all call patterns): Use ix86_output_call_insn.
36 * config/i386/winnt.c (struct seh_frame_state): New.
37 (i386_pe_seh_init, i386_pe_seh_end_prologue, i386_pe_seh_fini,
38 seh_emit_push, seh_emit_save, seh_emit_stackalloc, seh_cfa_adjust_cfa,
39 seh_cfa_offset, seh_frame_related_expr, i386_pe_seh_unwind_emit,
40 i386_pe_start_function, i386_pe_end_function): New.
42 * dwarf2out.c (dwarf2out_frame_debug_expr): Accept CFA as well
43 as CFA_STORE in rules 12 and 13.
45 2010-10-31 Uros Bizjak <ubizjak@gmail.com>
47 PR tree-optimization/46142
48 * tree-vect-stmts.c (vectorizable_call): Enlarge dt array to
49 accommodate third function argument.
51 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
53 * tree-ssa-loop-im.c (rewrite_reciprocal): Use build_one_cst.
55 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
57 * fold-const.c (build_zero_vector): Use build_vector_from_val.
58 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
59 (get_initial_def_for_reduction): Likewise.
60 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
61 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise.
62 * tree.c (build_one_cst): Likewise.
63 (build_vector_from_val): Use types_compatible_p for assert.
65 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
67 * emit-rtl.c (mark_used_flags): New function.
68 (set_used_flags, reset_used_flags): Call it.
70 2010-10-30 Uros Bizjak <ubizjak@gmail.com>
73 * lower-suberg.c (simplify_subreg_concatn): For VOIDmode elements,
74 determine the mode of a subreg by GET_MODE_INNER of CONCATN RTX.
76 2010-10-30 H.J. Lu <hongjiu.lu@intel.com>
79 * config/i386/i386.c (contains_aligned_value_p): Renamed to ...
80 (ix86_compat_aligned_value_p): This.
81 (ix86_old_function_arg_boundary): Renamed to ...
82 (ix86_compat_function_arg_boundary): This. Updated.
83 (ix86_contains_aligned_value_p): New.
84 (ix86_function_arg_boundary): Align long double parameters on
85 stack to 4byte in 32bit.
87 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
89 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
90 * c-parser.c (c_parser_objc_at_property_declaration): Removed
91 parsing of RID_COPIES and RID_IVAR. Updated call to
92 objc_add_property_declaration.
93 * c-typecheck.c (build_component_ref): Call
94 objc_maybe_build_component_ref instead of objc_build_setter_call.
95 Use objc_is_property_ref to improve Objective-C checks.
96 (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
97 of objc_build_getter_call.
99 2010-10-29 Paul Koning <ni1d@arrl.net>
101 * doc/tm.texi.in (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
102 REGNO_MODE_OK_FOR_REG_BASE, REGNO_MODE_CODE_OK_FOR_BASE_P,
103 REGNO_OK_FOR_INDEX_P): Delete non-strict variant.
104 (REG_OK_STRICT): Move description.
106 2010-10-29 Paul Koning <ni1d@arrl.net>
108 * config/pdp11/pdp11.md (*and<mode>): Rename to *bic<mode>.
110 2010-10-29 Paul Koning <ni1d@arrl.net>
112 * config/pdp11/pdp11.md (divhi3, modhi3, divmodhi3): Fix ICE.
114 2010-10-29 Paul Koning <ni1d@arrl.net>
117 * config/pdp11/pdp11.md (andhi3, andqi3): Fix wrong code error.
119 2010-10-29 Richard Henderson <rth@redhat.com>
122 * stmt.c (expand_asm_operands): Call do_pending_stack_adjust
125 2010-10-29 Paul Koning <ni1d@arrl.net>
127 * config/pdp11/pdp11.c (output_move_quad): Fix ICE for CPU
128 register to register move.
130 2010-10-29 Paul Koning <ni1d@arrl.net>
132 * config/pdp11/pdp11.c (print_operand_address): Correct handling
133 of integer constant addresses, delete vax-only logic.
135 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
137 * config/picochip/picochip.c (picochip_is_short_branch): Simplify
138 a conditional expression.
140 2010-10-29 Paul Koning <ni1d@arrl.net>
142 * config/pdp11/pdp11.c (pdp11_trampoline_init): Correct
143 instruction encoding.
145 2010-10-29 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
146 Andrew Pinski <pinskia@gmail.com>
148 * tree.h (build_vector_from_val): Declare.
149 * tree.c (build_vector_from_val): New function.
150 * c-typeck.c (build_binary_op): Handle vector shifting.
151 * doc/extend.texi: Description of the vector shifting operation.
153 2010-10-29 Paul Koning <pkoning@equallogic.com>
155 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class,
156 pdp11_secondary_memory_needed): Declare.
157 * config/pdp11/predicates.md (float_operand): New predicate.
158 * config/pdp11/pdp11.md (RETVAL_REGNUM): New constant.
159 (cbranchdf4, movdf): Change predicate.
160 (movsf): Handle FPU register case.
161 (truncdfsf2, extendsfdf2): Add FPU register case.
162 * config/pdp11/pdp11.c (TARGET_SECONDARY_RELOAD,
163 TARGET_REGISTER_MOVE_COST, TARGET_PREFERRED_RELOAD_CLASS,
164 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
165 (pdp11_register_move_cost): Update cost matrix.
166 (pdp11_cannot_change_mode_class, pdp11_preferred_reload_class,
167 pdp11_preferred_output_reload_class, pdp11_secondary_reload,
168 pdp11_secondary_memory_needed): New function.
169 (pdp11_return_in_memory): Add other float types.
170 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Add other float types.
171 (SECONDARY_MEMORY_NEEDED, CANNOT_CHANGE_MODE_CLASS): Define.
172 (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS,
173 REGISTER_MOVE_COST): Delete.
174 (BASE_RETURN_VALUE_REG): Add other float types.
176 2010-10-29 Nick Clifton<nickc@redhat.com>
178 * doc/invoke.texi: Document -mam34 and -mtune options.
179 * config/mn10300/mn10300.c (mn10300_tune_string): New variable.
180 (mn10300_tune_cpu): New variable.
181 (mn10300_handle_option): Handle -mam34 and -mtune options.
182 (mn10300_option_override): Convert tune string into tune cpu variable.
183 (mn10300_legitimate_constant_p): Delete unused local variable.
184 (is_load_insn): New function.
185 (is_store_insn): New function.
186 (mn10300_adjust_schedule_cost): New function.
187 (TARGET_SCHED_ADJUST_COST): Define.
188 * config/mn10300/mn10300.opt (mam34): New option.
190 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add AM34 support.
191 (enum processor_type): Add AM34.
192 (TARGET_AM34): Define.
193 * config/mn10300/mn10300.md (attr cpu): Add am34.
194 Add pipeline description.
195 (movqi, movhi, movsi, movsf, movdf, movdi): Fix predicates.
196 Remove unneeded alternatives. Add timing attribute.
197 (pop_pic_reg, am33_addsi3, mn10300_addsi3, am33_subsi3,
198 mn10300_subsi3, mulsidi3, umulsidi3, am33_mulsi3,
199 mn10300_mulsi3, udivmodsi4_am33, divmodsi4, am33_andsi3,
200 mn10300_andsi3, am33_iorsi3, mn10300_iorsi3, am33_xorsi3,
201 mn10300_xorsi3, byte_clear, byte_set, bit_clear1, bit_clear2,
202 bit_set, am33_iorqi3, mn10300_iorqi3, test_byte_bitfield,
203 bit_test, subreg_bit_test, cmpsi, am33_cmpsf, am33_subsi3,
204 float_conditional_branch, jump, indirect_jump, tablejump,
205 call_internal, call_value_internal, zero_extendqisi2_am33,
206 zero_extendqisi2_mn10300, zero_extendhisi2_am33,
207 zero_extendhisi2_mn10300, extendqisi2_am33, extendqisi2_mn10300,
208 extendhisi2_am33, extendhisi2_mn10300, am33_ashlsi3,
209 mn10300_ashlsi3, am33_lshrsi3, mn10300_lshrsi3, am33_ashrisi3,
210 mn10300_ashrsi3, abssf2_am33_2, negsf2_am33_2, rsqrtsf2,
211 addsf3_internal, subsf3_internal, mulsf3_internal, divsf3,
212 fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4, return_internal,
213 return_internal_regs, store_movm, return, call_next_insn):
214 Add timing attribute.
215 (am33_subsi3): Add missing clobber of CC_REG.
216 (am33_andsi3, mn10300_andsi3): Fix compile time warnings.
217 (udivmodsi4, udivmodsi4_insn, divmodsi4, test_byte_bitfield,
218 subreg_bit_test, zero_extendqisi2, zero_extendhisi2,
219 extendqisi2): Fix predicates.
220 (call_internal, call_internal_value): Separate alternatives.
221 * config/mn10300/t-mn10300: Add AM34 multilib.
223 2010-10-29 Paolo Bonzini <bonzini@gnu.org>
225 * config/sh/sh.c (sh_promote_function_mode): Use
226 default_promote_function_mode if !sh_promote_prototypes.
228 2010-10-28 Paolo Bonzini <bonzini@gnu.org>
230 * recog.c (split_all_insns): Remove dead code.
232 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
234 * config/microblaze/microblaze-protos.h (function_arg): Delete.
235 (function_arg_advance): Delete.
236 * config/microblaze/microblaze.h (FUNCTION_ARG_ADVANCE): Delete.
237 (FUNCTION_ARG): Delete.
238 * config/microblaze/microblaze.c (function_arg_advance): Rename to...
239 (microblaze_function_arg_advance): ...this. Make static. Take a
240 const_tree and a bool.
241 (function-arg): Rename to...
242 (microblaze_function_arg): ...this. Make static. Take a const_tree
244 (microblaze_expand_prologue): Call targetm.calls.function_arg and
245 targetm.calls.function_arg_advance.
246 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
248 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
250 * score.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
252 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
254 * config/cris/cris.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
255 (FUNCTION_ARG_ADVANCE): Delete.
256 * config/cris/cris.c (cris_function_arg_1, cris_function_arg): New
258 (cris_function_incoming_arg, cris_function_arg_advance): New functions.
259 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
260 (TARGET_FUNCTION_ARG_ADVANCE): Define.
262 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
264 * config/lm32/lm32-protos.h (lm32_function_arg): Delete.
265 * config/lm32/lm32.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
266 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
267 Take a const_tree and a bool.
268 (mcore_function_arg_advance): New function.
269 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
271 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
273 * config/mcore/mcore-protos.h (mcore_function_arg): Delete.
274 * config/mcore/mcore.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
275 * config/mcore/mcore.c (mcore_function_arg): Declare. Make static.
276 Take a const_tree and a bool.
277 (mcore_function_arg_advance): New function.
278 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
280 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
282 * config/h8300/h8300-protos.h (function_arg): Delete.
283 * config/h8300/h8300.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
284 * config/h8300/h8300.c (function_arg): Rename to...
285 (h8300_function_arg): ...this. Make static. Take a const_tree and
287 (h8300_function_arg_advance): New function.
288 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
290 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
292 * config/arc/arc.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move code
294 * config/arc/arc.c (arc_function_arg): ...here and...
295 (arc_function_arg_advance): ...here. New functions.
296 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
298 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
300 * config/crx/crx-protos.h (crx_function_arg): Delete.
301 (crx_function_arg_advance): Delete.
302 * config/crx/crx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
303 * config/crx/crx.c (crx_function_arg): Make static. Take a
304 const_tree and a bool.
305 (crx_function_arg_advance): Make static. Take a const_tree and a bool.
306 (enough_regs_for_param): Take a const_tree.
307 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
309 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
311 * config/m68hc11/m68hc11-protos.h (m68hc11_function_arg): Delete.
312 (m68hc11_function_arg_advance): Delete.
313 * config/m68hc11/m68hc11.h (FUNCTION_ARG): Delete.
314 (FUNCTION_ARG_ADVANCE): Delete.
315 * config/m68hc11/m68hc11.c (m68hc11_function_arg): Make static.
316 Take a const_tree and a bool.
317 (m68hc11_function_arg_advance): Likewise.
318 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
320 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
322 * config/stormy16/stormy16-protos.h (xstormy16_function_arg): Delete.
323 (xstormy16_function_arg_advance): Delete.
324 * config/stormy16/stormy16.h (FUNCTION_ARG): Delete.
325 (FUNCTION_ARG_ADVANCE): Delete.
326 * config/stormy16/stormy16.c (xstormy16_function_arg): Make static.
327 Take a const_tree and a bool.
328 (xstormy16_function_arg_advance): Likewise. Return void, updating
329 the CUM parameter instead.
330 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
332 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
334 * config/moxie/moxie-protos.h (moxie_function_arg): Delete.
335 * config/moxie/moxie.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
336 (MOXIE_FUNCTION_ARG_SIZE): Move to...
337 * config/moxie/moxie.c (MOXIE_FUNCTION_ARG_SIZE): ...here.
338 (moxie_function_arg): Make static. Take a const_tree and a bool.
339 (moxie_function_arg_advance): New function.
340 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
342 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
344 * config/mn10300/mn10300-protos.h (function_arg): Delete.
345 * config/mn10300/mn10300.h (FUNCTION_ARG): Delete.
346 (FUNCTION_ARG_ADVANCE): Delete.
347 * config/mn10300/mn10300.c (function_arg): Rename to...
348 (mn10300_function_arg): ...this. Make static. Take a const_tree
350 (mn10300_function_arg_advance): New function.
351 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
353 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
355 * config/iq2000/iq2000-protos.h (function_arg): Delete.
356 (function_arg_advance): Delete.
357 * config/iq2000/iq2000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
358 * config/iq2000/iq2000.c (function_arg): Rename to...
359 (iq2000_function_arg): ...this. Make static. Take a const_tree and
361 (function_arg_advance): Rename to...
362 (iq2000_function_arg_advance): ...this. Make static. Take a
363 const_tree and a bool.
364 (iq2000_expand_prologue): Call iq2000_function_arg_advance and
366 (iq2000_pass_by_reference): Call iq2000_function_arg).
367 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
369 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
371 * config/fr30/fr30-protos.h (fr30_num_arg_regs): Delete.
372 * config/fr30/fr30.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
373 * config/fr30/fr30.c (fr30_num_arg_regs): Make static. Take a
375 (fr30_function_arg): New function.
376 (fr30_function_arg_advance): New function.
377 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
379 2010-10-28 Nathan Froyd <froydnj@codesourcery.com>
381 * config/frv/frv-protos.h (frv_function_arg): Delete.
382 (frv_function_arg_advance): Delete.
383 * config/frv/frv.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
384 * config/frv/frv.c (frv_function_arg): Rename to...
385 (frv_function_arg_1): Make static. Take const_tree and bool arguments.
386 (frv_function_arg, frv_function_incoming_arg): New functions.
387 (frv_function_arg_advance): Make static. Take a const_tree and a bool.
388 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
389 (TARGET_FUNCTION_ARG_ADVANCE): Define.
391 2010-10-28 Uros Bizjak <ubizjak@gmail.com>
394 * config/i386/sse.md (sse_movhlps_exp): Use destination
395 returned from ix86_fixup_binary_operands to expand insn.
396 (sse_movlhps_exp): Ditto.
397 (sse_loadhps_exp): Ditto.
398 (sse_loadlps_exp): Ditto.
399 (sse2_loadhpd_exp): Ditto.
400 (sse2_loadlpd_exp): Ditto.
402 2010-10-28 Andrew Stubbs <ams@codesourcery.com>
404 * config/arm/arm.c (const_ok_for_arm): Support 0xXY00XY00 pattern
407 2010-10-28 Eric Botcazou <ebotcazou@adacore.com>
409 * combine.c (set_nonzero_bits_and_sign_copies): Use unsigned
410 arithmetics in masking operations.
411 (contains_muldiv): Likewise.
412 (try_combine): Likewise.
413 (find_split_point): Likewise.
414 (combine_simplify_rtx): Likewise.
415 (simplify_if_then_else): Likewise.
416 (simplify_set): Likewise.
417 (expand_compound_operation): Likewise.
418 (expand_field_assignment): Likewise.
419 (make_extraction): Likewise.
420 (extract_left_shift): Likewise.
421 (make_compound_operation): Likewise.
422 (force_to_mode): Likewise.
423 (make_field_assignment): Likewise.
424 (reg_nonzero_bits_for_combine): Likewise.
425 (simplify_shift_const_1): Likewise.
426 (simplify_comparison): Likewise.
428 2010-10-27 Nathan Froyd <froydnj@codesourcery.com>
430 * config/ia64/ia64-protos.h (ia64_function_arg): Delete.
431 (ia64_function_arg_advance): Delete.
432 * config/ia64/ia64.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Delete.
433 (FUNCTION_ARG_ADVANCE): Delete.
434 * config/ia64/ia64.c (ia64_function_arg): Rename to...
435 (ia64_function_arg_1): ...this. Make static. Take const_tree and
437 (ia64_function_arg, ia64_function_incoming_arg): New functions.
438 (ia64_function_arg_advance): Make static. Take a const_tree and
440 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
441 (TARGET_FUNCTION_ARG_ADVANCE): Define.
443 2010-10-27 Steve Ellcey <sje@cup.hp.com>
445 * doc/tm.texi.in (TARGET_GET_RAW_RESULT_MODE): New.
446 (TARGET_GET_RAW_ARG_MODE): New.
447 * doc/tm.texi: Regenerate.
448 * target.def (get_raw_result_mode): New.
449 (get_raw_arg_mode): New.
450 * targhooks.c (default_get_reg_raw_mode): New.
451 * targhooks.h (default_get_reg_raw_mode): New.
452 * builtins.c (apply_args_size): Use targetm.calls.get_raw_arg_mode.
453 (apply_result_size): Ditto.
454 * config/ia64/ia64.c (ia64_get_reg_raw_mode): New.
455 (TARGET_GET_RAW_RESULT_MODE): Define.
456 (TARGET_GET_RAW_ARG_MODE): Ditto.
458 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
460 * config/sparc/sol2-unwind.h (sparc64_fallback_frame_state): Adjust
461 for newer Solaris 10 release.
462 (sparc_fallback_frame_state): Likewise.
464 2010-10-27 Jason Merrill <jason@redhat.com>
466 * gimplify.c (gimplify_decl_expr): Handle anonymous artificial
469 2010-10-27 Jie Zhang <jie@codesourcery.com>
470 Maxim Kuvyrkov <maxim@codesourcery.com>
472 * haifa-sched.c (ISSUE_POINTS): Remove.
473 (max_issue): Don't issue more than issue_rate instructions.
475 2010-10-27 Ian Lance Taylor <iant@google.com>
478 * config/i386/i386.md (UNSPECV_SPLIT_STACK_RETURN): New.
479 (split_stack_return): Replace UNSPEC_STACK_CHECK with
480 UNSPECV_SPLIT_STACK_RETURN.
482 2010-10-27 H.J. Lu <hongjiu.lu@intel.com>
484 * config/i386/i386-protos.h (init_cumulative_args): Add an int.
486 * config/i386/i386.c (block_info): New.
487 (BLOCK_INFO): Likewise.
488 (call_avx256_state): Likewise.
489 (check_avx256_stores): Likewise.
490 (move_or_delete_vzeroupper_2): Likewise.
491 (move_or_delete_vzeroupper_1): Likewise.
492 (move_or_delete_vzeroupper): Likewise.
493 (use_avx256_p): Likewise.
494 (function_pass_avx256_p): Likewise.
495 (flag_opts): Add -mvzeroupper.
496 (ix86_option_override_internal): Turn on MASK_VZEROUPPER by
497 default for TARGET_AVX. Turn off MASK_VZEROUPPER if TARGET_AVX
499 (ix86_function_ok_for_sibcall): Disable sibcall if we need to
501 (init_cumulative_args): Add an int to indicate caller. Set
502 use_avx256_p, callee_return_avx256_p and caller_use_avx256_p
503 based on return type.
504 (ix86_function_arg): Set use_avx256_p, callee_pass_avx256_p and
505 caller_pass_avx256_p based on argument type.
506 (ix86_expand_epilogue): Emit vzeroupper if 256bit AVX register
507 is used, but not returned by caller.
508 (ix86_expand_call): Emit vzeroupper if 256bit AVX register is used.
509 (ix86_local_alignment): Set use_avx256_p if 256bit AVX register
511 (ix86_minimum_alignment): Likewise.
512 (ix86_expand_special_args_builtin): Set target to
513 GEN_INT (vzeroupper_intrinsic) for CODE_FOR_avx_vzeroupper.
514 (ix86_reorg): Run the vzeroupper optimization if needed.
516 * config/i386/i386.h (ix86_args): Add caller.
517 (INIT_CUMULATIVE_ARGS): Updated.
518 (machine_function): Add use_vzeroupper_p, use_avx256_p,
519 caller_pass_avx256_p, caller_return_avx256_p,
520 callee_pass_avx256_p and callee_return_avx256_p.
522 * config/i386/i386.opt (-mvzeroupper): New.
524 * config/i386/predicates.md (vzeroupper_operation): Removed.
526 * config/i386/sse.md (avx_vzeroupper): Removed.
527 (*avx_vzeroupper): Removed.
528 (avx_vzeroupper): New.
530 * doc/invoke.texi: Document -mvzeroupper.
532 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
534 * config/i386/t-mingw32 (SHLIB_LC): Add -lmingwthrd.
535 * config/i386/t-mingw-w32 (SHLIB_LC): Likewise.
536 * config/i386/t-mingw-w64 (SHLIB_LC): Likewise.
538 2010-10-27 Eric Botcazou <ebotcazou@adacore.com>
539 Olivier Hainque <hainque@adacore.com>
541 * config/i386/w32-unwind.h (i386_w32_fallback_frame_state): Fix regnum
542 of EBP. Do not restore reg #9. Remove +1 adjustment to EIP and set
543 fs->signal_frame instead.
545 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
547 * c-parser.c (cp_parser_objc_at_property_declaration): Removed
548 parsing of RID_COPIES and RID_IVAR.
550 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
552 * c-parser.c (c_parser_objc_at_property_declaration): Recognize
553 RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
554 Do not use objc_set_property_attr, but use local variables
555 instead. Detect repeated usage of setter, getter and ivar
556 attributes. Improved error processing when a setter name does not
557 end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
558 that the token is a keyword. Updated call to
559 objc_add_property_declaration.
561 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
563 * c-parser.c (c_parser_objc_at_property): Renamed to
564 c_parser_objc_at_property_declaration. Updated calls to
565 objc_add_property_variable, now objc_add_property_declaration.
566 Code rewritten to be much more robust in recovering from syntax
567 errors. Added comments.
568 (c_parser_objc_property_attrlist): Removed.
569 (c_parser_external_declaration): Updated calls to
570 c_parser_objc_at_property, now
571 c_parser_objc_at_property_declaration.
572 (c_parser_objc_methodprotolist): Same change.
574 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
576 * config/i386/i386.md (split_stack_return): Put back unspec_volatile.
578 2010-10-26 Jan Hubicka <jh@suse.cz>
580 * ipa.c (process_references): Enqueue all referenced nodes;
581 mark as reachable only non-external nodes.
582 (cgraph_remove_unreachable_nodes): All referenced nodes should
583 be enqueued; remove bogues node->needed check.
585 2010-10-26 Jan Hubicka <jh@suse.cz>
587 * cgraphbuild.c (build_cgraph_edges): Use ipa-reference
590 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
592 * config/i386/i386.md (split_stack_return): Replace
593 unspec_volatile with unspec.
595 2010-10-26 Jonathan Wakely <jwakely.gcc@gmail.com>
597 * doc/install.texi: Fix typo in --with-sysroot description.
599 2010-10-26 Jan Hubicka <jh@suse.cz>
601 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
602 Use info provided by linker plugin.
604 2010-10-26 Jason Merrill <jason@redhat.com>
606 * varasm.c (constructor_static_from_elts_p): Don't require a
607 CONSTRUCTOR to have elements to be suitable for static
608 initialization. Allow ARRAY_TYPE as well.
610 2010-10-26 Jan Hubicka <jh@suse.cz>
613 * cgraph.c (cgraph_set_readonly_flag): Rename to...
614 (cgraph_set_const_flags) ... this one; get also looping argument;
615 clear constructor/destructor flags.
616 (cgraph_set_pure_flag): Likewise.
617 (cgraph_set_looping_const_or_pure_flag): Remove.
618 (cgraph_can_remove_if_no_direct_calls_and_refs): Do not try
619 to optimize away static ctors/dtors; it does not work on inline clones;
620 external functions can always be rmeoved.
621 (cgraph_will_be_removed_from_program_if_no_direct_calls): Assert on
622 inline clones; in LTO external functions always can go.
623 (cgraph_used_from_object_file_p): Handle EXTERNAL functions correctly.
624 (cgraph_mark_address_taken_node): Assert that we are not taking
625 address of inline clone.
626 (cgraph_can_remove_if_no_direct_calls_p): We always eventually remove
628 * ipa-cp.c (ipcp_cloning_candidate_p): Do not clone functions with
630 (ipcp_initialize_node_lattices): Only local functions can be
631 handled without cloning.
632 * cgraph.h (cgraph_set_readonly_flag,
633 cgraph_set_looping_const_or_pure_flag): Remove.
634 (cgraph_set_const_flag): Declare.
635 (cgraph_set_pure_flag): Update.
636 * ipa-pure-const (propagate_pure_const, local_pure_const): Update
638 * ipa.c (cgraph_remove_unreachable_nodes): Fix formating; do not
639 look at inline clones; fix handling of external definitions.
640 (cgraph_postorder): Do not look at inline clones in the first pass.
641 (function_and_variable_visibility): Drop constructors/destructor
642 flags at pure and const functions.
643 * tree-profile.c (tree_profiling): Update.
644 * ipa-inline.c (cgraph_clone_inlined_nodes): Always clone functions with
645 address taken; external functions do not account to whole program size.
646 (cgraph_decide_inlining): Likewise; do not try to inline
647 functions already inlined.
649 2010-10-26 Jie Zhang <jie@codesourcery.com>
651 * doc/invoke.texi: Improve documentation of
652 -fstrict-volatile-bitfields.
654 2010-10-26 Ira Rosen <irar@il.ibm.com>
656 PR tree-optimization/46167
657 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check that there
658 is basic block for the statement.
660 2010-10-26 Paul Koning <ni1d@arrl.net>
662 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Update to
663 current definition of struct_real_format.
665 2010-10-26 H.J. Lu <hongjiu.lu@intel.com>
668 * config/i386/i386.c (ix86_old_function_arg_boundary): New.
669 (ix86_function_arg_boundary): Always align parameters on stack
670 in 64bit and align parameters with alignment >= 16byte on stack
671 in 32bit. Warn alignment change.
673 2010-10-26 Ian Lance Taylor <iant@google.com>
676 * ipa-prop.c (ipa_modify_call_arguments): Correct type of MEM_REF
679 2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
681 Implement opaque-enum-specifiesr for C++0x
682 * tree.h (ENUM_IS_OPAQUE): New.
683 * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE.
685 2010-10-26 Jie Zhang <jie@codesourcery.com>
687 * stor-layout.c (layout_decl): Use the field's type to
688 determine the mode and keep DECL_BIT_FIELD for a volatile bit-field.
689 * config/arm/arm.c (arm_override_options): Default to
690 -fstrict-volatile-bitfields.
692 2010-10-25 Paul Koning <ni1d@arrl.net>
694 * config/pdp11/pdp11.md: Add define_constants for register
695 numbers, branch offset limits.
696 * config/pdp11/pdp11.c: Use named constants instead of numbers.
697 * config/pdp11.pdp11.h: Ditto.
699 2010-10-25 Eric Botcazou <ebotcazou@adacore.com>
701 * configure.ac: Use $cpu_type instead of $target to define the nop.
702 * configure: Regenerate.
704 2010-10-25 Jie Zhang <jie@codesourcery.com>
706 * combine.c (try_combine): If insns need to be kept around, check that
707 they can be copied in the merged instruction.
709 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
711 * reg-stack.c (convert_regs_1): Return boolean value, true if the CFG
713 (convert_regs_2): Likewise. Adjust calls to convert_regs_1.
714 (convert_regs): Adjust calls to convert_regs_2. Clean up the CFG if
715 it has been modified.
717 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
719 * config/sparc/sparc.c (sparc_type_code) <NULLPTR_TYPE>: New case.
721 2010-10-24 Paul Koning <ni1d@arrl.net>
723 * config/pdp11/pdp11.md: Change length attribute to be in bytes.
724 * config/pdp11/pdp11.c (output_jump): Ditto.
726 2010-10-24 Ian Lance Taylor <iant@google.com>
728 * config/i386/i386.c (ix86_va_start): Remove extraneous blank line.
730 2010-10-24 Eric Botcazou <ebotcazou@adacore.com>
732 * cfglayout.c (fixup_reorder_chain): When ensuring that there is at
733 least one insn with a locus corresponding to an edge's goto_locus,
734 disregard non-fallthru edges to the exit block and merge the blocks
735 created for the same goto_locus.
737 2010-10-23 Joseph Myers <joseph@codesourcery.com>
739 * gcc.c (n_switches_alloc_debug_check): New.
740 (set_option_handlers): New.
741 (process_command): Use set_option_handlers.
742 (do_self_spec): Pass spec-generated options through option handlers.
743 (main): Also save and restore n_switches_alloc when swapping
746 2010-10-23 Richard Henderson <rth@redhat.com>
749 * config/i386/sse.md (*avx_absneg<AVXMODEF2P>2): New.
750 (*sse_absneg<SSEMODEF2P>2): Rename from *absneg<VEC_FLOAT_MODE>2.
751 Honor matching operands when splitting to XOR.
753 2010-10-23 Ian Lance Taylor <iant@google.com>
755 * tree-vrp.c (extract_range_from_binary_expr): If
756 flag_non_call_exceptions don't eliminate division by zero.
757 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
759 2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
761 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
762 __BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__, __ORDER_BIG_ENDIAN__, and
763 __ORDER_PDP_ENDIAN__.
764 * libgcc2.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
765 (struct DWstruct): Define based on __BYTE_ORDER__.
766 * config/fixed-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
767 (struct INTstruct): Define based on __BYTE_ORDER__.
768 * config/dfp-bit.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
769 (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Test __BYTE_ORDER__.
770 * system.h (LIBGCC2_WORDS_BIG_ENDIAN): Poison identifier.
771 * config/arc/arc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
772 * config/arm/arm.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
773 * config/ia64/ia64.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
774 * config/iq2000/iq2000.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
775 * config/lm32/lm32.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
776 * config/m32r/m32r.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
777 * config/mcore/mcore.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
778 * config/mep/mep.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
779 * config/mips/mips.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
780 * config/rs6000/sysv4.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
781 * config/rx/rx.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
782 * config/score/score.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
783 * config/sh/sh.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
784 * config/sparc/sparc.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
785 * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
786 * doc/tm.texi.in (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
787 * doc/tm.texi: Regenerate.
788 * doc/cpp.texi (__BYTE_ORDER__, __ORDER_LITTLE_ENDIAN__): Document.
789 (__ORDER_BIG_ENDIAN__, __ORDER_PDP_ENDIAN__): Likewise.
791 2010-10-23 Jie Zhang <jie@codesourcery.com>
793 PR rtl-optimization/37360
794 * config/mips/mips.c (cached_can_issue_more): New local variable.
795 (mips_sched_reorder_1): New.
796 (mips_sched_reorder): Use mips_sched_reorder_1.
797 (mips_sched_reorder2): New.
798 (mips_variable_issue): Set cached_can_issue_more.
799 (TARGET_SCHED_REORDER2): Define to mips_sched_reorder2
800 instead of mips_sched_reorder.
803 2008-09-09 Andrey Belevantsev <abel@ispras.ru>
804 PR rtl-optimization/37360
805 * haifa-sched.c (max_issue): Do not assert that we never issue more
806 insns than issue_rate. Add comment.
808 2010-10-22 Eric Botcazou <ebotcazou@adacore.com>
810 * gimplify.c (gimplify_variable_sized_compare): Preserve the source
811 location info of the expression.
813 2010-10-22 DJ Delorie <dj@redhat.com>
815 * doc/extend.texi (Named Address Spaces): Document the M32C named
818 * config/m32c/m32c-pragma.c (m32c_register_pragmas): Register the
820 * config/m32c/m32c.h (ADDR_SPACE_FAR): New. Add support for
821 "__far" address space for R8C and M16C processor variants.
822 * config/m32c/m32c.c (m32c_addr_space_legitimate_address_p): New.
823 (far_addr_space_p): New.
824 (encode_pattern_1): Add sign and zero extend support.
825 (m32c_hard_regno_nregs_1): Large pointers in A16 mode are SImode.
826 (m32c_extra_constraint_p2): Add SF constraint.
827 (m32c_legitimate_address_p): Support __far addresses.
828 (m32c_addr_space_pointer_mode): New.
829 (m32c_addr_space_address_mode): New.
830 (m32c_addr_space_legitimate_address_p): New.
831 (m32c_addr_space_legitimize_address): New.
832 (m32c_addr_space_subset_p): New.
833 (m32c_addr_space_convert): New.
834 (conversions): Add __far operand patterns.
835 (m32c_prepare_move): Force constants into registers for __far moves.
836 (m32c_split_move): __far moves are always split.
837 * config/m32c/addsub.md (addsi3_1): Support SImode symbols.
838 * config/m32c/mov.md (mov<mode>_far_op1): New.
839 (mov<mode>_far_op2): New.
840 (movqi_op): Add __far (SF) support.
841 (movhi_op): Likewise.
842 (movsi_splittable): Split A1A0 also.
844 2010-10-22 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
845 Andrew Pinski <pinskia@gmail.com>
847 * c-typeck.c (build_array_ref): Handle subscripting of vectors.
848 * doc/extend.texi: New paragraph
850 2010-10-22 Paul Koning <ni1d@arrl.net>
852 * config.pdp11/pdp11.h (DBX_DEBUGGING_INFO): Define.
854 2010-10-22 DJ Delorie <dj@redhat.com>
856 * config/m32c/m32c-lib1.S (m32c_jsri16): Make reentrant.
858 2010-10-22 Paul Koning <ni1d@arrl.net>
860 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Define.
862 2010-10-22 Richard Henderson <rth@redhat.com>
864 * config/i386/i386.c (ix86_builtin_vectorized_function): Add
865 cases for __builtin_fma and __builtin_fmaf.
867 2010-10-22 Richard Henderson <rth@redhat.com>
869 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Produce
870 NEG+USE for vectors as well.
871 * config/i386/i386.md (*absneg<VEC_FLOAT_MODE>2): New pattern
874 2010-10-22 Joseph Myers <joseph@codesourcery.com>
876 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION,
877 SWITCH_CURTAILS_COMPILATION): Remove.
878 * doc/tm.texi.in (SWITCH_CURTAILS_COMPILATION): Remove documentation.
879 * doc/tm.texi: Regenerate.
880 * system.h (SWITCH_CURTAILS_COMPILATION): Poison.
882 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
884 * config/i386/bdver1.md: New file.
885 * config/i386/i386.md (include "bdver1.md"): Invoke the
886 pipeline description for bdver1.
887 (x86_sahf_1): Add "bdver1_decode" attribute.
888 (*cmpfp_i_mixed): Likewise.
889 (*cmpfp_i_sse): Likewise.
890 (*cmpfp_i_i387): Likewise.
891 (*cmpfp_iu_mixed): Likewise.
892 (*cmpfp_iu_sse): Likewise.
893 (*cmpfp_iu_387): Likewise.
894 (*swap<mode>,*swap<mode>_1): Likewise.
895 (fixuns_trunc<mode>hi2): Likewise.
896 (fix_trunc<mode>si_sse): Likewise.
897 (x86_fnstcw_1): Likewise.
898 (x86_fldcw_1): Likewise.
899 (*floatsi<mode>2_vector_mixed_with_temp): Likewise.
900 (*floatsi<mode>2_vector_mixed): Likewise.
901 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Likewise.
902 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Likewise.
903 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Likewise.
904 (*floatsi<mode>2_vector_sse_with_temp): Likewise.
905 (*floatsi<mode>2_vector_sse): Likewise.
906 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Likewise.
907 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Likewise.
908 (*float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Likewise.
909 (*mul<mode>3_1): Likewise.
910 (*mulsi3_1_zext): Likewise.
911 (*mulhi3_1): Likewise.
912 (*mulqi3_1): Likewise.
913 (*<u>mul<mode><dwi>3_1): Likewise.
914 (*<u>mulqihi3_1): Likewise.
915 (*<s>muldi3_highpart_1): Likewise.
916 (*<s>mulsi3_highpart_1): Likewise.
917 (*<s>mulsi3_highpart_zext): Likewise.
918 (x86_64_shld): Likewise.
919 (x86_shld): Likewise.
920 (x86_64_shrd): Likewise.
921 (x86_shrd): Likewise.
923 (sqrt_extend<mode>xf2_i387): Likewise.
924 (*sqrt<mode>2_sse): Likewise.
925 * config/i386/sse.md (sse_cvtsi2ss): Add "bdver1_decode" attribute.
926 (sse_cvtsi2ssq): Likewise.
927 (sse_cvtss2si): Likewise.
928 (sse_cvtss2si_2): Likewise.
929 (sse_cvtss2siq): Likewise.
930 (sse_cvtss2siq_2): Likewise.
931 (sse_cvttss2si): Likewise.
932 (sse_cvttss2siq): Likewise.
933 (sse2_cvtpi2pd): Likewise.
934 (sse2_cvttpd2pi): Likewise.
935 (sse2_cvtsi2sd): Likewise.
936 (sse2_cvtsi2sdq): Likewise.
937 (sse2_cvtsd2si): Likewise.
938 (sse2_cvtsd2si_2): Likewise.
939 (sse2_cvtsd2siq): Likewise.
940 (sse2_cvtsd2siq_2): Likewise.
941 (sse2_cvttsd2si): Likewise.
942 (sse2_cvttsd2siq): Likewise.
943 (*sse2_cvtpd2dq): Likewise.
944 (*sse2_cvttpd2dq): Likewise.
945 (sse2_cvtsd2ss): Likewise.
946 (sse2_cvtss2sd): Likewise.
947 (*sse2_cvtpd2ps): Likewise.
948 (sse2_cvtps2pd): Likewise.
950 2010-10-22 Richard Guenther <rguenther@suse.de>
953 * gimple-fold.c (gimplify_and_update_call_from_tree): Properly
954 remove the virtual operands if they are not needed.
956 2010-10-22 Changpeng Fang <changpeng.fang@amd.com>
958 * config/i386/i386.c (processor_costs bdver1_cost): Update
959 insn costs and architectural parameters for bdver1.
961 2010-10-22 Richard Guenther <rguenther@suse.de>
963 * gimple.h (gimple_register_canonical_type): Declare.
964 * gimple.c (gimple_canonical_types): New global hashtable.
965 (struct gimple_type_leader_entry_s): New type.
966 (gimple_type_leader): New global cache.
967 (gimple_lookup_type_leader): New function.
968 (gtc_visit): Query the proper cache.
969 (gimple_types_compatible_p): Likewise.
970 (gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
971 (gimple_canonical_type_eq): New function.
972 (gimple_register_canonical_type): Likewise.
973 (print_gimple_types_stats): Adjust for gimple_canonical_types.
974 (free_gimple_type_tables): Likewise. Free gimple_type_leader.
975 * tree-ssa.c (useless_type_conversion_p): Do not dispatch to
976 gimple_types_compatible_p for LTO.
978 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
981 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
982 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
983 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
984 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
985 (<sse>_movu<ssemodesuffix>): New expander.
986 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
987 (avx_movdqu<avxmodesuffix>): New expander.
988 (*sse2_movdqu): Rename from sse2_movdqu.
989 (sse2_movdqu): New expander.
991 2010-10-22 Richard Guenther <rguenther@suse.de>
993 PR tree-optimization/45720
994 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
995 Handle negative step.
996 (vect_enhance_data_refs_alignment): Likewise.
997 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Likewise.
998 (vect_create_cond_for_align_checks): Likewise.
999 (vect_create_cond_for_alias_checks): Likewise.
1001 2010-10-22 Ira Rosen <irar@il.ibm.com>
1003 PR tree-optimization/46126
1004 * tree-vect-stmts.c (vect_analyze_stmt): Pass NODE to
1005 vectorizable_shift in case of basic block vectorization.
1007 2010-10-22 Joseph Myers <joseph@codesourcery.com>
1009 * target.h (enum opt_levels, struct default_options): New.
1010 * target.def (handle_ofast): Remove hook.
1011 (target_option.optimization): Change to
1012 target_option.optimization_table.
1013 * doc/tm.texi.in (TARGET_OPTION_OPTIMIZATION): Change to
1014 TARGET_OPTION_OPTIMIZATION_TABLE.
1015 (CAN_DEBUG_WITHOUT_FP): Remove.
1016 * doc/tm.texi: Regenerate.
1017 * opts.c (maybe_default_option, maybe_default_options,
1018 default_options_table): New.
1019 (default_options_optimization): Take extra parameters. Don't
1020 assert that global_options and global_options_set are in use. Use
1021 maybe_default_options.
1022 (decode_options): Pass extra parameters to
1023 default_options_optimization.
1024 * common.opt (falign-loops): Use value 0 with Var.
1025 (frerun-cse-after-loop, ftree-ter): Remove Init.
1026 * system.h (CAN_DEBUG_WITHOUT_FP, TARGET_HANDLE_OFAST,
1027 TARGET_OPTION_OPTIMIZATION): Remove.
1028 * targhooks.c (empty_optimization_table): New.
1029 * targhooks.h (empty_optimization_table): Declare.
1030 * toplev.c (process_options): Don't set flag_rerun_cse_after_loop.
1031 * config/alpha/alpha.c (alpha_option_optimization_table,
1032 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1033 * config/alpha/alpha.h (CAN_DEBUG_WITHOUT_FP): Remove.
1034 * config/arm/arm.c (arm_option_optimization: Change to
1035 arm_option_optimization_table.
1036 (TARGET_OPTION_OPTIMIZATION): Change to
1037 TARGET_OPTION_OPTIMIZATION_TABLE.
1038 * config/arm/arm.h (CAN_DEBUG_WITHOUT_FP): Remove.
1039 * config/avr/avr.c (avr_option_optimization_table,
1040 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1041 * config/avr/avr.h (CAN_DEBUG_WITHOUT_FP): Remove.
1042 * config/cris/cris.c (cris_option_optimization): Change to
1043 cris_option_optimization_table.
1044 (TARGET_OPTION_OPTIMIZATION): Change to
1045 TARGET_OPTION_OPTIMIZATION_TABLE.
1046 * config/crx/crx.c (crx_option_optimization): Change to
1047 crx_option_optimization_table.
1048 (TARGET_OPTION_OPTIMIZATION): Change to
1049 TARGET_OPTION_OPTIMIZATION_TABLE.
1050 * config/crx/crx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1051 * config/fr30/fr30.c (fr30_option_optimization_table,
1052 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1053 * config/fr30/fr30.h (CAN_DEBUG_WITHOUT_FP): Remove.
1054 * config/frv/frv.c (frv_option_optimization_table,
1055 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1056 * config/frv/frv.h (CAN_DEBUG_WITHOUT_FP): Remove.
1057 * config/h8300/h8300.c (h8300_option_optimization): Change to
1058 h8300_option_optimization_table.
1059 (TARGET_OPTION_OPTIMIZATION): Change to
1060 TARGET_OPTION_OPTIMIZATION_TABLE.
1061 * config/h8300/h8300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1062 * config/i386/i386.c (ix86_option_optimization): Change to
1063 ix86_option_optimization_table.
1064 (TARGET_OPTION_OPTIMIZATION): Change to
1065 TARGET_OPTION_OPTIMIZATION_TABLE.
1066 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1068 * config/ia64/ia64.c (ia64_option_optimization): Change to
1069 ia64_option_optimization_table.
1070 (TARGET_OPTION_OPTIMIZATION): Change to
1071 TARGET_OPTION_OPTIMIZATION_TABLE.
1072 * config/ia64/ia64.h (CAN_DEBUG_WITHOUT_FP): Remove.
1073 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define as
1075 * config/iq2000/iq2000.c (iq2000_option_optimization_table,
1076 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1077 * config/iq2000/iq2000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1078 * config/lm32/lm32.c (lm32_option_optimization_table,
1079 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1080 * config/lm32/lm32.h (CAN_DEBUG_WITHOUT_FP): Remove.
1081 * config/m32r/m32r.c (m32r_option_optimization): Change to
1082 m32r_option_optimization_table.
1083 (TARGET_OPTION_OPTIMIZATION): Change to
1084 TARGET_OPTION_OPTIMIZATION_TABLE.
1085 * config/m32r/m32r.h (SUBTARGET_OPTIMIZATION_OPTIONS,
1086 CAN_DEBUG_WITHOUT_FP): Remove.
1087 * config/mcore/mcore.c (mcore_option_optimization): Change to
1088 mcore_option_optimization_table.
1089 (TARGET_OPTION_OPTIMIZATION): Change to
1090 TARGET_OPTION_OPTIMIZATION_TABLE.
1091 * config/mep/mep.c (mep_option_optimization): Change to
1092 mep_option_optimization_table.
1093 (TARGET_OPTION_OPTIMIZATION): Change to
1094 TARGET_OPTION_OPTIMIZATION_TABLE.
1095 * config/mep/mep.h (CAN_DEBUG_WITHOUT_FP): Remove.
1096 * config/microblaze/microblaze.c
1097 (microblaze_option_optimization_table,
1098 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1099 * config/microblaze/microblaze.h (CAN_DEBUG_WITHOUT_FP): Remove.
1100 * config/mips/mips.c (mips_option_optimization_table,
1101 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1102 * config/mips/mips.h (CAN_DEBUG_WITHOUT_FP): Remove.
1103 * config/mmix/mmix.c (mmix_option_optimization): Change to
1104 mmix_option_optimization_table.
1105 (TARGET_OPTION_OPTIMIZATION): Change to
1106 TARGET_OPTION_OPTIMIZATION_TABLE.
1107 * config/mmix/mmix.h (CAN_DEBUG_WITHOUT_FP): Remove.
1108 * config/mn10300/mn10300.c (mn10300_option_optimization_table,
1109 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1110 * config/mn10300/mn10300.h (CAN_DEBUG_WITHOUT_FP): Remove.
1111 * config/pa/pa.c (pa_option_optimization_table,
1112 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1113 * config/pa/pa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1114 * config/pdp11/pdp11.c (pdp11_option_optimization): Change to
1115 pdp11_option_optimization_table.
1116 (TARGET_OPTION_OPTIMIZATION): Change to
1117 TARGET_OPTION_OPTIMIZATION_TABLE.
1118 * config/picochip/picochip.c (picochip_option_optimization_table,
1119 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1120 * config/picochip/picochip.h (CAN_DEBUG_WITHOUT_FP): Remove.
1121 * config/rs6000/rs6000.c (rs6000_option_optimization_table,
1122 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1123 * config/rs6000/rs6000.h (CAN_DEBUG_WITHOUT_FP): Remove.
1124 * config/rx/rx.c (rx_option_optimization_table,
1125 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1126 * config/rx/rx.h (CAN_DEBUG_WITHOUT_FP): Remove.
1127 * config/s390/s390.c (s390_option_optimization): Change to
1128 s390_option_optimization_table.
1129 (s390_option_override): Update comment.
1130 (TARGET_OPTION_OPTIMIZATION): Change to
1131 TARGET_OPTION_OPTIMIZATION_TABLE.
1132 * config/s390/s390.h (CAN_DEBUG_WITHOUT_FP): Remove.
1133 * config/score/score.c (score_option_optimization_table,
1134 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1135 * config/score/score.h (CAN_DEBUG_WITHOUT_FP): Remove.
1136 * config/sh/sh.c (sh_option_optimization): Change to
1137 sh_option_optimization_table.
1138 (TARGET_OPTION_OPTIMIZATION): Change to
1139 TARGET_OPTION_OPTIMIZATION_TABLE.
1140 (sh_option_override): Set MASK_SAVE_ALL_TARGET_REGS here.
1141 (sh_option_override, expand_block_move, multcosts, find_barrier,
1142 barrier_align): Use optimize_size instead of TARGET_SMALLCODE.
1143 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Remove.
1144 (LOOP_ALIGN, TRAMPOLINE_ALIGNMENT, MOVE_BY_PIECES_P,
1145 STORE_BY_PIECES_P, SH_DYNAMIC_SHIFT_COST): Use optimize_size
1146 instead of TARGET_SMALLCODE.
1147 * config/sh/sh.opt (mspace): Make into an alias for -Os.
1148 * config/sparc/sparc.c (sparc_option_optimization_table,
1149 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1150 * config/sparc/sparc.h (CAN_DEBUG_WITHOUT_FP): Remove.
1151 * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
1152 TARGET_OPTION_OPTIMIZATION_TABLE): New.
1153 * config/stormy16/stormy16.h (CAN_DEBUG_WITHOUT_FP): Remove.
1154 * config/v850/v850.c (v850_option_optimization): Change to
1155 v850_option_optimization_table.
1156 (TARGET_OPTION_OPTIMIZATION): Change to
1157 TARGET_OPTION_OPTIMIZATION_TABLE.
1158 * config/v850/v850.h (CAN_DEBUG_WITHOUT_FP): Remove.
1159 * config/xtensa/xtensa.c (xtensa_option_optimization): Change to
1160 xtensa_option_optimization_table.
1161 (TARGET_OPTION_OPTIMIZATION): Change to
1162 TARGET_OPTION_OPTIMIZATION_TABLE.
1163 * config/xtensa/xtensa.h (CAN_DEBUG_WITHOUT_FP): Remove.
1165 2010-10-21 Iain Sandoe <iains@gcc.gnu.org>
1167 Based on the CFString implementation in FSF apple/trunk branch.
1169 * target.def (objc_construct_string): New Hook.
1170 * doc/tm.texi (objc_construct_string): Document.
1171 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING): New.
1172 * config/t-darwin: Amend build rules for darwin.o.
1173 * config/darwin.opt: Add cfstrings flags.
1174 * config/darwin-c.c: Define __CONSTANT_CFSTRINGS__.
1175 (darwin_objc_construct_string): New.
1176 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Define.
1177 * config/i386/i386.c (ix86_init_builtins): Add SUBTARGET_INIT_BUILTINS.
1178 * config/darwin-protos.h (darwin_init_cfstring_builtins): New prototype.
1179 (darwin_fold_builtin): Likewise.
1180 (darwin_build_constant_cfstring): Likewise.
1181 (darwin_objc_construct_string): Likewise.
1182 (darwin_cfstring_p): Likewise.
1183 (darwin_enter_string_into_cfstring_table): Likewise.
1184 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS) Update for CFString.
1185 * config/darwin.c (darwin_running_cxx): New var.
1186 (machopic_select_section): Return cfstring_constant_object_section.
1187 (darwin_override_options): Set darwin_running_cxx.
1188 (add_builtin_field_decl): New.
1189 (darwin_init_cfstring_builtins): New.
1190 (darwin_build_constant_cfstring): New.
1191 (darwin_fold_builtin): New.
1192 (cfstring_hash): New.
1194 (darwin_enter_string_into_cfstring_table): New.
1195 * config/darwin-sections.def (cfstring_constant_object_section): New.
1196 * config/darwin.h (TARGET_FOLD_BUILTIN): Define.
1197 (TARGET_OBJC_CONSTRUCT_STRING): Define.
1199 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1201 * config/alpha/alpha.c (alpha_build_builtin_va_list): Use
1202 TYPE_STUB_DECL instead of TREE_CHAIN.
1203 * config/i386/i386.c (ix86_build_builtin_va_list_abi): Likewise.
1204 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Likewise.
1205 * config/s390/s390.c (s390_build_builtin_va_list): Likewise.
1206 * config/sh/sh.c (sh_build_builtin_va_list): Likewise.
1207 * config/spu/spu.c (spu_build_builtin_va_list): Likewise.
1208 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list):
1210 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Likewise.
1212 2010-10-22 Jie Zhang <jie@codesourcery.com>
1214 * expr.c (emit_group_load_1): Update calls to extract_bit_field.
1215 (copy_blkmode_from_reg): Likewise.
1216 (read_complex_part): Likewise.
1217 (expand_expr_real_1): Calculate packedp and pass it to
1219 * expr.h (extract_bit_field): Update declaration.
1220 * calls.c (store_unaligned_arguments_into_pseudos): Update call
1221 to extract_bit_field.
1222 * expmed.c (extract_fixed_bit_field): Update calls to
1223 extract_fixed_bit_field.
1224 (store_split_bit_field): Likewise.
1225 (extract_bit_field_1): Add new argument packedp.
1226 (extract_bit_field): Add new argument packedp.
1227 (extract_fixed_bit_field): Add new argument packedp and let
1228 packed attribute override volatile.
1229 * stmt.c (expand_return): Update call to extract_bit_field.
1231 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1233 * config/spu/spu.c (spu_function_arg): Dereference CUM parameter.
1235 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1237 * ddg.c (add_cross_iteration_register_deps): Call gcc_assert instead
1238 of gcc_checking_assert.
1239 * sel-sched.c (code_motion_process_successors): Likewise.
1241 2010-10-21 Eric Botcazou <ebotcazou@adacore.com>
1243 * cfgcleanup.c (try_forward_edges): Do not throw away previous steps
1244 when stopping because of a different locus on edge or insn.
1245 (try_optimize_cfg): Add comment.
1246 * cfgrtl.c (rtl_merge_blocks): Tweak log message. If the destination
1247 block is a forwarder block, propagate locus on the edge.
1248 (cfg_layout_merge_blocks): Likewise.
1250 2010-10-21 Uros Bizjak <ubizjak@gmail.com>
1253 * config/i386/i386.md (*pushti2): New insn pattern.
1254 (pushti2 splitter): New insn splitter.
1255 (*push<mode>2): Macroize insn pattern from *push{di,ti}2 using
1258 2010-10-21 Paul Koning <ni1d@arrl.net>
1260 * config/pdp11/pdp11-protos.md (arith_operand,
1261 const_immediate_operand, expand_shift_operand,
1262 immediate15_operand): Delete
1263 * config/pdp11/pdp11.c: Ditto.
1264 * config/pdp11/pdp11.h (REG_CLASS_FROM_LETTER,
1265 CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
1266 EXTRA_CONSTRAINT): Delete.
1267 * config/pdp11/pdp11.md (various): Use standard constraints
1268 instead of removed ones.
1269 * config/pdp11/constraints.md: New file.
1270 * config/pdp11/predicates.md: New file.
1272 2010-10-21 Bingfeng Mei <bmei@broadcom.com>
1275 * alias.c (true_dependence_1): Remove obsolete check for QImode.
1276 (may_alias_p): Ditto.
1278 2010-10-21 Martin Jambor <mjambor@suse.cz>
1280 PR tree-optimization/45875
1281 * tree.c (get_binfo_at_offset): Remove initial zero offset test.
1283 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1285 * tree-into-ssa.c (rewrite_update_enter_block): Remove unused
1287 (create_new_def_for): Likewise.
1289 2010-10-21 Nick Clifton <nickc@redhat.com>
1291 * config/mn10300/mn10300.c: Fold code to 80-character width.
1292 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1293 MEM, CONST_INT and CONST_DOUBLE.
1294 (targetm): Move initialization to end of file.
1295 (print_operand): Rename to mn10300_print_operand.
1296 (print_operand_address): Rename to mn10300_print_operand_address.
1297 (can_use_return_insn): Rename to mn10300_can_use_return_insn.
1298 (expand_prologue): Rename to mn10300_expand_prologue.
1299 (expand_epilogue): Rename to mn10300_expand_epilogue.
1300 (initial_offset): Rename to mn10300_initial_offset.
1301 (function_arg): Rename to mn10300_function_arg.
1302 (mask_ok_for_mem_btst): Rename to mn10300_mask_ok_for_mem_btst.
1303 (symbolic_operand): Rename to mn10300_symbolic_operand.
1304 (legitimize_pic_address): Rename to mn10300_legitimize_pic_address.
1305 (legitimate_pic_operand_p): Rename to mn10300_legitimate_pic_operand_p.
1306 * config/mn10300/mn10300-protos.h: Update prototypes.
1307 * config/mn10300/mn10300.h: Fold code to 80-character width.
1308 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1309 MEM, CONST_INT and CONST_DOUBLE.
1310 (CPP_SPEC): Move to...
1311 (TARGET_CPU_CPP_BUILTINS): ... here.
1312 * config/mn10300/mn10300.md: Fold code to 80-character width.
1313 Replace GET_CODE (foo) == REG with REG_P (foo). Likewise for
1314 MEM, CONST_INT and CONST_DOUBLE.
1316 2010-10-21 Ira Rosen <irar@il.ibm.com>
1318 PR tree-optimization/46049
1319 PR tree-optimization/46052
1320 * tree-vectorizer.h (enum stmt_vec_info_type): Add new value for shift.
1321 (vect_get_slp_defs): Add arguments.
1322 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass scalar
1323 operands to vect_get_slp_defs.
1324 (vectorizable_reduction): Fix comment, pass scalar operands to
1326 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use operand's
1327 type to determine number of units in the created vector.
1328 (vect_get_vec_defs): Pass scalar operands to vect_get_slp_defs.
1329 (vectorizable_conversion): Fix comment.
1330 (vectorizable_shift): New function.
1331 (vectorizable_operation): Move code that handles shifts to
1333 (vectorizable_type_demotion): Fix comment, pass scalar operands to
1335 (vectorizable_type_promotion, vectorizable_store): Likewise.
1336 (vectorizable_condition): Fix comment.
1337 (vect_analyze_stmt): Call vectorizable_shift.
1338 (vect_transform_stmt): Likewise.
1339 * tree-vect-slp.c (vect_get_constant_vectors): Add new argument.
1340 Use it as the operand to create vectors for, except reduction
1341 initial definition and store. Use operands type.
1342 (vect_get_slp_defs): Add new arguments. Pass them to
1343 vect_get_constant_vectors.
1345 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1347 * basic-block.h (single_succ_edge): Use gcc_checking_assert.
1348 (single_pred_edge, ei_container, ei_next, ei_prev): Likewise.
1349 * cfghooks.c (fixup_reorder_chain): Likewise.
1350 * cfgrtl.c (cfg_layout_merge_blocks): Likewise.
1351 * cgraph.c (cgraph_add_thunk): Likewise.
1352 (cgraph_create_edge_1): Likewise.
1353 (cgraph_create_virtual_clone): Likewise.
1354 * ddg.c (add_cross_iteration_register_deps): Likewise.
1355 * dwarf2out.c (modified_type_die): Likewise.
1356 * emit-rtl.c (set_mem_alias_set): Likewise.
1357 * ggc-zone.c (zone_allocate_marks): Likewise.
1358 * gimple-iterator.c (gsi_move_to_bb_end): Likewise.
1359 * gimple.c (iterative_hash_gimple_type): Likewise.
1360 * graphite-scop-detection.c (create_single_entry_edge): Likewise.
1361 (create_single_exit_edge): Likewise.
1362 * haifa-sched.c (choose_ready): Likewise.
1363 * lto-streamer-in.c (input_gimple_stmt): Likewise.
1364 * passes.c (execute_todo): Likewise.
1365 * sched-ebb.c (begin_schedule_ready): Likewise.
1366 * sel-sched.c (code_motion_process_successors): Likewise.
1367 * tree-call-cdce.c (gen_conditions_for_pow): Likewise.
1368 * tree-cfg-cleanup.c (tree_forwarder_block_p): Likewise.
1369 * tree-flow-inline.h (link_imm_use, move_use_after_head): Likewise.
1370 (phi_arg_index_from_use, phi_ssa_name_p): Likewise.
1371 * tree-into-ssa.c (insert_updated_phi_nodes_for): Likewise.
1372 * tree-ssa-coalesce.c (ssa_conflicts_test_p): Likewise.
1373 (ssa_conflicts_add): Likewise.
1374 * tree-ssa-copy.c (replace_exp): Likewise.
1375 * tree-ssa-dom.c (eliminate_redundant_computations): Likewise.
1376 * tree-ssa-forwprop.c (simple_gimple_switch): Likewise.
1377 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1378 * tree-ssa-pre.c (bitmap_value_insert_into_set): Likewise.
1379 (compute_antic): Likewise.
1380 * tree-ssa-ter.c (add_to_partition_kill_list): Likewise.
1381 (add_dependence): Likewise.
1382 (process_replaceable, kill_expr, find_replaceable_exprs): Likewise.
1383 * tree-vrp.c (supports_overflow_infinity): Likewise.
1384 (make_overflow_infinity, negative_overflow_infinity): Likewise.
1385 (avoid_overflow_infinity, register_new_assert_for): Likewise.
1386 (process_assert_insertions_for): Likewise.
1387 * var-tracking.c (dv_is_value_p, dv_as_decl, dv_from_decl): Likewise.
1388 (dv_from_value, variable_union, find_loc_in_1pdv): Likewise.
1389 (intersect_loc_chains, variable_merge_over_cur): Likewise.
1391 2010-10-21 Nathan Froyd <froydnj@codesourcery.com>
1393 * cfgloop.c (flow_loops_find): Call bb_has_abnormal_pred.
1394 * reload1.c (has_nonexceptional_receiver): Likewise.
1395 * tree-into-ssa.c (rewrite_update_enter_block): Likewise.
1396 (create_new_def_for): Likewise.
1397 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
1398 (merge_phi_nodes): Likewise.
1399 (has_abnormal_incoming_edge_p): Delete.
1401 2010-10-21 H.J. Lu <hongjiu.lu@intel.com>
1403 * config/i386/sse.md (ssescalarmodesuffix): Add V8SI and V4DI.
1405 2010-10-21 Richard Guenther <rguenther@suse.de>
1406 Michael Matz <matz@suse.de>
1408 PR tree-optimization/45764
1409 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
1410 Adjust initial misalignment for negative DR_STEP.
1411 (vect_find_same_alignment_drs): Two DRs with different DR_STEP
1412 do not have the same alignment over the whole iteration domain.
1414 2010-10-21 Richard Guenther <rguenther@suse.de>
1416 PR tree-optimization/46111
1417 * tree-parloops.c (take_address_of): Re-organize for MEM_REF.
1419 2010-10-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1421 * config/s390/s390.md (*xordi3_cc): Mark xgrk as z196 only.
1423 2010-10-21 Tristan Gingold <gingold@adacore.com>
1425 * config/vms/vms-crtl.h (CRTL_NAMES): Add new translations.
1426 * config/vms/vms-crtl-64.h (CRTL_NAMES): Ditto.
1428 2010-10-21 Tristan Gingold <gingold@adacore.com>
1430 * config/alpha/vms-unwind.h (alpha_vms_fallback_frame_state): Set
1432 * config/alpha/alpha.c (alpha_function_arg): Adjust call.
1434 2010-10-21 Tristan Gingold <gingold@adacore.com>
1436 * config/ia64/vms64.h (TARGET_DEFAULT): Add MASK_FUSED_MADD.
1437 * config/ia64/vms.h (TARGET_DEFAULT): Ditto.
1439 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
1441 * basic-block.h (find_fallthru_edge): Define.
1442 * cfgcleanup.c (merge_blocks_move): Use it.
1443 (try_crossjump_bb): Likewise.
1444 * cfglayout.c (fixup_reorder_chains): Likewise.
1445 (fixup_fallthru_exit_predecessor): Likewise.
1446 * cfgrtl.c (rtl_split_edge): Likewise.
1447 (rtl_verify_flow_info): Likewise.
1448 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1449 * gimple-pretty-print.c (dump_implicit_edges): Likewise.
1450 * ifcvt.c (block_fallthru): Likewise.
1451 * reload1.c (fixup_abnormal_edges): Likewise.
1452 * sched-ebb.c (being_schedule_ready): Likewise.
1453 (schedule_ebb): Likwise.
1454 * sched-rgn.c (find_single_block_region): Likewise.
1455 * sel-sched-ir.c (bb_ends_ebb_p): Likewise.
1456 * tree-complex.c (expand_complex_move): Likewise.
1457 * sched-int.h (find_fallthru_edge): Rename to...
1458 (find_fallthru_edge_from): ...this.
1459 * haifa-sched.c (find_fallthru_edge): Rename to...
1460 (find_fallthru_edge_from): ...this. Use new find_fallthru_edge.
1461 (init_before_recovery): Call find_fallthru_edge_from.
1462 * sel-sched-ir.c (merge_fences): Likewise.
1463 * sel-sched.c (in_fallthru_bb_p): Likewise.
1464 (move_cond_jump): Likewise.
1466 2010-10-20 Paul Koning <ni1d@arrl.net>
1468 * config/pdp11/pdp11.md (various): Fix conditions on a number of
1469 insn to check for target 11/40 or higher.
1471 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1473 * parser.c (c_parser_objc_method_type): Mark inline. Return a
1474 bool instead of a tree.
1475 (c_parser_objc_method_decl): Added bool argument. Updated call to
1476 objc_build_method_signature.
1477 (c_parser_objc_method_definition): Do not call
1478 objc_set_method_type. Updated calls to c_parser_objc_method_type,
1479 c_parser_objc_method_decl and objc_start_method_definition.
1480 (c_parser_objc_methodproto): Do not call objc_set_method_type.
1481 Updated calls to c_parser_objc_method_type,
1482 c_parser_objc_method_decl and objc_add_method_declaration.
1484 2010-10-20 Jakub Jelinek <jakub@redhat.com>
1486 PR tree-optimization/45919
1487 * tree-ssa-ccp.c (fold_nonarray_ctor_reference): Handle flexible
1490 PR tree-optimization/46066
1491 * tree-parloops.c (create_parallel_loop): Use gsi_last_nondebug_bb
1492 instead of gsi_last_bb.
1494 2010-10-20 DJ Delorie <dj@redhat.com>
1496 * config/m32c/m32c.c (m32c_option_override): Always disable
1497 function-cse in 16-bit mode. Indirect calls are always worse than
1498 direct calls as there is no 16-bit indirect call opcode.
1499 (m32c_override_options_after_change): New, likewise.
1501 2010-10-20 Nathan Froyd <froydnj@codesourcery.com>
1503 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
1504 emitting the conditional move in the inner mode of the SUBREG.
1506 2010-10-20 Anatoly Sokolov <aesok@post.ru>
1508 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
1509 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
1510 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
1511 (ia64_preferred_reload_class): Make static. Change rclass argument
1512 and result types from enum reg_class to reg_class_t.
1514 2010-10-20 Pat Haugen <pthaugen@us.ibm.com>
1516 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
1517 call for single operand expression.
1519 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
1521 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
1522 if there is a call statement to pure or const function in the block.
1524 2010-10-20 Paul Koning <pkoning@equallogic.com>
1526 Fix several build errors for pdp11 target.
1527 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
1528 (cbranchdf4): Conditional on TARGET_FPU.
1529 (movdf): Ditto; correct alternatives check.
1530 (movmemhi): Fix predicate and constraint.
1531 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
1533 2010-10-20 Richard Guenther <rguenther@suse.de>
1536 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
1537 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
1538 (verify_gimple_assign_single): Disable ADDR_EXPR type check
1541 2010-10-20 Vladimir Makarov <vmakarov@redhat.com>
1544 * ira-emit.c (store_can_be_removed_p): Return false instead of
1547 2010-10-20 Dmitry Melnik <dm@ispras.ru>
1549 * fold-const.c (fold_binary_loc): New transformation.
1551 2010-10-20 H.J. Lu <hongjiu.lu@intel.com>
1554 * config/i386/sse.md (reduc_splus_v8sf): Updated.
1555 (reduc_splus_v4df): Likewise.
1557 2010-10-20 Richard Guenther <rguenther@suse.de>
1559 PR tree-optimization/45860
1560 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
1561 conditional store replacement for non-register type stores.
1563 2010-10-20 Eric Botcazou <ebotcazou@adacore.com>
1565 * stor-layout.c (skip_simple_constant_arithmetic): New function.
1566 (self_referential_size): Use it instead of skip_simple_arithmetic.
1568 2010-10-20 Olivier Hainque <hainque@adacore.com>
1570 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
1571 If the current function calls eh_return, claim live all registers
1572 that we need to check for liveness otherwise.
1574 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
1576 * c-decl.c (c_write_global_declarations): Call
1577 objc_write_global_declarations when compiling Objective-C.
1578 * c-lang.c (finish_file): Removed.
1580 2010-10-19 DJ Delorie <dj@redhat.com>
1582 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
1583 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
1584 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
1585 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
1586 * doc/tm.texi: Regenerate.
1587 * targhooks.h (default_label_align_after_barrier_max_skip,
1588 default_loop_align_max_skip, default_label_align_max_skip,
1589 default_jump_align_max_skip): Declare.
1590 * target.def (label_align_after_barrier_max_skip): New.
1591 (loop_align_max_skip): New.
1592 (label_align_max_skip): New.
1593 (jump_align_max_skip): New.
1594 * system.h (poison): Add those macros to the list.
1595 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
1596 (LOOP_ALIGN_MAX_SKIP): Remove.
1597 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
1598 (JUMP_ALIGN_MAX_SKIP): Remove.
1599 (default_label_align_after_barrier_max_skip): New.
1600 (default_loop_align_max_skip): New.
1601 (default_label_align_max_skip): New.
1602 (default_jump_align_max_skip): New.
1603 (compute_alignments): Use the new hooks.
1604 (shorten_branches): Likewise.
1606 2010-10-19 Richard Henderson <rth@redhat.com>
1608 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
1609 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
1610 (fma4i_fmadd_<mode>): New.
1611 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
1612 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
1613 standard fma patterns.
1614 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
1616 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1617 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
1618 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
1620 2010-10-19 Paul Koning <pkoning@equallogic.com>
1622 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
1623 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
1625 2010-10-19 Richard Henderson <rth@redhat.com>
1627 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
1628 (fmadf4, *fmsdf4, *nfmadf4): New.
1629 (fmaxf4, *fmsxf4, *nfmaxf4): New.
1631 2010-10-19 Michael Eager <eager@eagercon.com>
1633 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
1634 Use sjlj unwind info for exceptions.
1636 2010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
1639 * dwarf2out.c (add_calling_convention_attribute): Flag main
1640 Fortran subroutine with DW_AT_main_subprogram.
1642 2010-10-19 Nick Clifton <nickc@redhat.com>
1644 * config/rx/rx.c (rx_function_value): Small integer types are
1646 (rx_promote_function_mode): New function.
1647 (TARGET_PROMOTE_FUNCTION_MODE): Define.
1649 2010-10-19 Nick Clifton <nickc@redhat.com>
1651 * config/mep/mep.c (mep_print_operand): Use
1652 targetm.strip_name_encoding.
1653 (mep_output_aligned_common): Likewise.
1655 2010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
1657 * gengtype.c (new_structure): Remove ad-hoc "location_s" processing.
1659 2010-10-18 Richard Henderson <rth@redhat.com>
1661 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
1662 (fma (neg a) (neg b) c) and (fma a (neg b) c).
1664 2010-10-18 Richard Henderson <rth@redhat.com>
1666 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
1667 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
1668 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
1669 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
1670 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
1671 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
1672 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
1673 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
1674 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
1675 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
1676 (bdesc_multi_arg): Remove the corresponding builtins.
1677 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
1678 (UNSPEC_FMA4_FMSUBADD): Remove.
1679 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
1680 * config/i386/sse.md (FMA4MODEF4): Remove.
1682 (fma<mode>4): New expander.
1683 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
1684 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
1685 (*fma4i_fmsub_<mode>): Similarly.
1686 (*fma4i_fnmadd_<mode>): Similarly.
1687 (*fma4i_fnmsub_<mode>): Similarly.
1688 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
1689 with the first operand.
1690 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
1691 of explicit arithmetic. Macroize with AVXMODEF2P.
1692 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
1693 (xop_frcz<mode>2): Macroize with FMAMODE.
1694 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
1696 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
1698 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
1699 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
1700 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
1701 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
1702 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
1703 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
1704 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
1705 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
1707 2010-10-18 Bernd Schmidt <bernds@codesourcery.com>
1709 PR rtl-optimization/45966
1710 * combine.c (try_combine): If added_sets_2, deal with the case
1711 where i0 feeds i1 and i1 feeds i2.
1713 2010-10-18 Jan Hubicka <jh@suse.cz>
1715 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
1716 preserve flags before trying to guess on visibility.
1717 (varpool_externally_visible_p): New function.
1718 (function_and_variable_visibility): Use it.
1720 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1722 Implemented parsing @synthesize and @dynamic for Objective-C.
1723 * c-parser.c (c_parser_external_declaration): Recognize
1724 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
1725 (c_parser_objc_at_synthesize_declaration): New.
1726 (c_parser_objc_at_dynamic_declaration): New.
1728 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1730 * c-parser.c (c_parser_objc_class_declaration): After finding an
1731 error, parse the whole declaration then reset parser->error.
1733 2010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1736 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
1737 * builtins.c (mode_has_fma): Ditto.
1739 2010-10-18 Steve Ellcey <sje@cup.hp.com>
1743 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
1745 2010-10-18 Joseph Myers <joseph@codesourcery.com>
1747 * config/i386/i386.c (ix86_option_override_internal): Define and
1748 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
1750 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1751 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
1753 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1755 Merge from 'apple/trunk' branch on FSF servers.
1756 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
1757 following Objective-C change:
1759 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
1762 * c-parse.in (objc_quals): Build objc qualifier list same way
1765 2010-10-18 Jan Hubicka <jh@suse.cz>
1767 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
1768 function_and_variable_visibility): Revert accidental commit.
1770 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
1772 Merge from 'apple/trunk' branch on FSF servers.
1773 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
1774 the following Objective-C change:
1776 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
1779 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
1780 'volatilized' type used in a typeof operator.
1782 2010-10-18 Eric Botcazou <ebotcazou@adacore.com>
1784 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
1785 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
1786 rewrite modelled on gimple_purge_dead_eh_edges.
1787 (gimple_purge_all_dead_abnormal_call_edges): New function.
1788 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
1789 directly instead of through gimple_purge_dead_abnormal_call_edges.
1790 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
1791 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
1792 removed AB side-effects from one of its statements.
1793 (init_pre): Initialize need_ab_cleanup.
1794 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
1795 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
1797 2010-10-18 Jakub Jelinek <jakub@redhat.com>
1800 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
1801 on computed goto argument.
1803 2010-10-18 Richard Guenther <rguenther@suse.de>
1805 PR tree-optimization/45967
1806 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
1807 (could_have_pointers): Likewise.
1808 (handle_rhs_call, handle_const_call, handle_pure_call,
1809 find_func_aliases, intra_create_variable_infos): Remove calls to them.
1810 (struct fieldoff): Add must_have_pointers field.
1811 (type_must_have_pointers): New function.
1812 (field_must_have_pointers): Likewise.
1813 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
1814 Adjust field merging.
1815 (create_function_info_for): May-have-pointers of varinfo is
1817 (create_variable_info_for_1): Likewise.
1819 2010-10-18 Tejas Belagod <tejas.belagod@arm.com>
1821 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
1822 of operands to vec_concat.
1824 2010-10-18 Richard Guenther <rguenther@suse.de>
1827 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
1828 also clear references to entries of it.
1830 2010-10-18 Andi Kleen <ak@linux.intel.com>
1833 * gccbug.in: Remove.
1834 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
1835 (doc, distclean, install-common): Remove reference to gccbug.
1836 * configure: Regenerate.
1837 * configure.ac (all_outputs): Remove gccbug.
1838 * doc/configfiles.texi: Remove references to gccbug.
1839 * doc/sourcebuild.texi: Dito.
1841 2010-10-18 Jakub Jelinek <jakub@redhat.com>
1844 * fold-const.c (fold_binary_loc): If integer_pow2p has
1845 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
1847 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1848 Jeremie Salvucci <jeremie.salvucci@free.fr>
1850 * gengtype.c (verbosity_level): Add variable.
1851 (set_gc_used): Count variables for verbosity.
1852 (close_output_files): Backing up files, counting written ones
1854 (write_types): Count emitted functions for verbosity. Added
1856 (write_enum_defn): Count structures for verbosity. Added debug
1858 (gengtype_long_options): Add "verbose" & "backupdir".
1859 (print_usage): Ditto.
1860 (main): Verbose display of parsed files.
1862 * gengtype.h (verbosity_level): Add declaration.
1864 2010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
1866 * gengtype.c (parse_program_options): Add allocation of
1867 plugin_files, and correct test on nb_plugin_files.
1869 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1871 Merge from 'apple/trunk' branch on FSF servers.
1873 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1876 * c-decl.c (undeclared_variable): Issue diagnostic on
1877 private 'ivar' access.
1879 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
1882 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
1883 generated sequence to match *avx_vperm2f128<mode>_nozero.
1884 (vec_interleave_lowv4df): Ditto.
1885 (vec_interleave_highv8sf): Ditto.
1886 (vec_interleave_lowv8sf): Ditto.
1888 2010-10-17 Kai Tietz <kai.tietz@onevision.com>
1890 * libgcov.c (create_file_directory): Enable it for win32 case.
1891 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
1892 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
1893 (GCOV_PREFIX_SKIP): Likewise.
1895 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1897 * doc/objc.texi (GNU Objective-C runtime API): New section.
1898 (Modern GNU Objective-C runtime API): New section.
1899 (Traditional GNU Objective-C runtime API): New section.
1900 (Executing code before main): Mention that this section is
1901 specific to the GNU Objective-C runtime.
1902 (Garbage Collection): Same.
1904 2010-10-17 Uros Bizjak <ubizjak@gmail.com>
1906 * c-parser.c (c_parser_for_statement): Move initialization of
1907 cond and incr before if.
1909 2010-10-17 Anatoly Sokolov <aesok@post.ru>
1911 * target.def (preferred_output_reload_class): New hook.
1912 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
1913 * doc/tm.texi: Regenerate.
1914 * targhooks.c (default_preferred_output_reload_class): New function.
1915 * targhooks.h (default_preferred_output_reload_class): Declare.
1916 * reload.c (find_dummy_reload): Change rclass argument type from
1917 enum reg_class to reg_class_t. Change this_alternative array type
1918 from enum reg_class to reg_class_t.
1919 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1920 (push_reload): Change preferred_class variable type to reg_class_t.
1921 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
1922 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
1923 argument type from enum reg_class to reg_class_t. Use
1924 HARD_REGISTER_NUM_P predicate.
1925 * recog.h (reg_fits_class_p): Update prototype.
1927 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1928 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
1930 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
1931 static. Change regclass argument and result types from enum reg_class
1933 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1935 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1937 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
1938 visibility enum, and handle @package.
1940 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1942 * doc/objc.texi (What you can and what you cannot do in +load):
1943 Document that sending messages to constant string objects in +load
1944 is not guaranteed to work.
1946 2010-10-16 Jan Hubicka <jh@suse.cz>
1949 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
1950 existence of refrences before removing the function.
1952 2010-10-16 Jan Hubicka <jh@suse.cz>
1954 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
1955 only_called_at_startup and only_called_at_exit.
1956 (cgraph_propagate_frequency): Compute only_called_at_startup and
1957 only_called_at_exit.
1958 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
1959 only_called_at_exit.
1960 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
1962 * predict.c (compute_function_frequency): Initialize the new flags.
1964 2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
1966 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
1967 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
1968 on the bounds of its domain.
1969 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
1971 2010-10-16 Anatoly Sokolov <aesok@post.ru>
1973 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
1974 * config/avr/avr-protos.h (preferred_reload_class): Remove.
1975 * config/avr/avr.c (preferred_reload_class): Remove.
1976 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
1977 * config/pa/pa.c (emit_move_sequence): Update comment
1978 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
1979 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
1980 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
1981 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
1982 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
1983 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
1984 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
1985 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
1986 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
1987 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
1988 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
1989 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
1990 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
1992 2010-10-16 Joseph Myers <joseph@codesourcery.com>
1994 * opts.c (set_fast_math_flags,
1995 set_unsafe_math_optimizations_flags): Make static.
1996 * toplev.h (set_fast_math_flags,
1997 set_unsafe_math_optimizations_flags): Remove prototypes.
1999 2010-10-16 Joseph Myers <joseph@codesourcery.com>
2001 * config/arm/arm.c (arm_option_optimization): Set
2002 flag_section_anchors to 1 not 2.
2003 * config/i386/i386.c (ix86_option_override_internal): Check
2004 global_options_set.x_flag_zee and
2005 global_options_set.x_flag_omit_frame_pointer.
2006 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
2008 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2009 global_options_set.x_flag_omit_frame_pointer.
2010 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
2011 opts->x_flag_section_anchors to 1 not 2.
2012 * config/sh/sh.c (sh_option_optimization): Don't set
2013 flag_schedule_insns to 2.
2014 (sh_option_override): Check
2015 global_options_set.x_flag_schedule_insns.
2016 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
2018 2010-10-16 Kai Tietz <kai.tietz@onevision.com>
2020 * configure.ac: Make sure inhibit_libc remains false for mingw targets
2022 * configure: Regenerated.
2024 2010-10-15 Xinliang David Li <davidxl@google.com>
2026 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
2028 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
2029 into a recursive function.
2031 2010-10-15 Uros Bizjak <ubizjak@gmail.com>
2033 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
2034 (*movdfcc_1): ditto.
2036 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2038 * target.def (target_option.init_struct): New hook.
2039 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
2040 * doc/tm.texi: Regenerate.
2041 * hooks.c (hook_void_gcc_optionsp): New.
2042 * hooks.h (hook_void_gcc_optionsp): Declare.
2043 * langhooks-def.h (lhd_init_options_struct): Remove.
2044 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
2045 * langhooks.c (lhd_init_options_struct): Remove.
2046 * opts.c (init_options_struct): Also call
2047 targetm.target_option.init_struct.
2048 * config/i386/i386.c (ix86_option_init_struct,
2049 TARGET_OPTION_INIT_STRUCT): New.
2050 (ix86_option_optimization): Move some settings to
2051 ix86_option_init_struct.
2052 * config/pdp11/pdp11.c (pdp11_option_init_struct,
2053 TARGET_OPTION_INIT_STRUCT): New.
2054 (pdp11_option_optimization): Move some settings to
2055 pdp11_option_init_struct.
2056 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
2057 rs6000_option_init_struct. Use options structure pointer.
2058 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2059 * config/s390/s390.c (s390_option_init_struct,
2060 TARGET_OPTION_INIT_STRUCT): New.
2061 (s390_option_optimization): Don't set
2062 flag_asynchronous_unwind_tables here.
2063 * config/sh/sh.c (sh_option_init_struct,
2064 TARGET_OPTION_INIT_STRUCT): New.
2065 (sh_option_optimization): Don't set flag_finite_math_only here.
2066 * config/spu/spu.c (spu_option_optimization): Replace by
2067 spu_option_optimization. Use options structure pointer.
2068 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
2070 2010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
2072 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
2074 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
2075 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
2076 (Standard names): Document fma.
2078 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
2079 __FP_FAST_FMAF, __FP_FAST_FMAL.
2081 * builitns.c (expand_builtin_mathfn_ternary): New function for
2082 expanding ternary math functions, like fma.
2083 (expand_builtin): Call it for the fma builtins.
2085 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
2088 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
2089 vectorizable functions to support vectorizing fma.
2091 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
2092 Handle fma builtins.
2094 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
2095 (UNSPEC_VSX_MSUB): Ditto.
2096 (UNSPEC_VSX_NMADD): Ditto.
2097 (UNSPEC_VSX_NMSUB): Ditto.
2098 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
2099 of UNSPEC. Renumber combiner patterns.
2100 (vsx_fmsub<mode>4*): Ditto.
2101 (vsx_fnmadd<mode>4*): Ditto.
2102 (vsx_fnmsub<mode>4*): Ditto.
2104 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
2105 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
2106 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
2107 (altivec_vmaddfp_1): Ditto.
2108 (altivec_vmaddfp_2): Ditto.
2109 (atlivec_mulv4sf3): Ditto.
2110 (altivec_vnmsubfp): Ditto.
2111 (altivec_vnmsubfp_1): Ditto.
2112 (altivec_vnmsubfp_2): Ditto.
2113 (altivec_vnmsubfp_3): Delete.
2115 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
2116 (fmasf4_fpr): Ditto.
2117 (fmssf4_fpr): Ditto.
2118 (fnmasf4_fpr): Ditto.
2119 (fnmssf4_fpr): Ditto.
2121 (fmadf4_fpr): Ditto.
2122 (fmsdf4_fpr): Ditto.
2123 (fnmadf4_fpr): Ditto.
2124 (fnmsdf4_fpr): Ditto.
2126 * optabs.h (OTI_fma): Add fma optab.
2129 * genopinit.c (optabs): Set fma optab.
2131 * rtl.def (FMA): Add FMA rtl.
2133 * tree.h (mode_has_fma): New function to return if MODE supports a
2134 fast multiply and add instruction.
2135 * builtins.c (mode_has_fma): Ditto.
2137 2010-10-15 Jan Hubicka <jh@suse.cz>
2139 * lto-streamer-out.c (write_symbol): Use pointer set of seen
2140 objects instead of bitmap.
2141 (produce_symtab): Likewise; output defined symbols first.
2143 2010-10-15 Jie Zhang <jie@codesourcery.com>
2145 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
2146 Option Summary and Index.
2148 2010-10-15 Richard Guenther <rguenther@suse.de>
2150 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
2151 for automatic variables again.
2153 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2155 * doc/extend.texi (Variable Length): Don't refer to VLAs not
2158 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2160 * config/rx/rx.c (rx_option_optimization): Change to
2161 rx_override_options_after_change. Don't change
2162 flag_lto_compression_level. Don't check for changes to whether
2163 FPU instructions can be used. Check and set only
2164 flag_finite_math_only, not other fast-math flags.
2165 (rx_option_override): Call rx_override_options_after_change.
2166 (TARGET_OPTION_OPTIMIZATION): Remove.
2167 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2169 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2171 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
2172 disable section anchors for lang_hooks.name[4] != 'O'.
2174 2010-10-15 Joseph Myers <joseph@codesourcery.com>
2176 * config/frv/frv.c (frv_option_optimization,
2177 TARGET_OPTION_OPTIMIZATION): Remove.
2178 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
2180 2010-10-15 Michael Matz <matz@suse.de>
2182 * cgraphunit.c (clone_of_p): Define unconditionally.
2184 2010-10-15 Richard Guenther <rguenther@suse.de>
2187 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
2189 2010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
2191 * ifcvt.c (find_active_insn_before): New function.
2192 (find_active_insn_after): New function.
2193 (cond_exec_process_if_block): Use new functions to replace
2194 prev_active_insn() and next_active_insn().
2196 2010-10-14 Yao Qi <yao@codesourcery.com>
2199 * config/arm/arm.c (arm_build_builtin_va_list): Assign
2200 va_list_name to TYPE_STUB_DECL (va_list_type).
2202 2010-10-14 Jan Hubicka <jh@suse.cz>
2205 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
2206 redirected to clone, be happy.
2207 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
2208 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
2209 former_clone_of unconditionally.
2211 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2213 Merge from FSF apple 'trunk' branch.
2214 2006 Fariborz Jahanian <fjahanian@apple.com>
2216 Radars 4436866, 4505126, 4506903, 4517826
2217 * c-parser.c (c_parser, objc_property_attr_context) New flag.
2218 (c_lex_one_token): Handle property attributes.
2219 (c_parser_external_declaration): Handle @property.
2220 (c_parser_declaration_or_fndef): Warn on invalid attributes before
2221 @alias, @class, @end and @property objc keywords.
2222 (c_parser_objc_methodprotolist): Handle @property.
2223 (c_parser_objc_property_attrlist): New.
2224 (c_parser_objc_at_property): New.
2225 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
2226 (build_modify_expr): Likewise.
2228 2010-10-14 Jakub Jelinek <jakub@redhat.com>
2230 PR tree-optimization/46008
2231 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
2233 2010-10-14 Richard Guenther <rguenther@suse.de>
2235 PR tree-optimization/44913
2236 * tree-data-ref.c (disjoint_objects_p): Remove.
2237 (dr_may_alias_p): Simplify. Only hand the base object to
2239 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
2240 some more trees, bail out instead of asserting.
2241 (ptr_derefs_may_alias_p): Likewise. Export.
2242 (refs_may_alias_p_1): Handle STRING_CSTs.
2243 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
2245 2010-10-14 Joseph Myers <joseph@codesourcery.com>
2248 * c-typeck.c (build_binary_op): Don't try to compute a semantic
2249 type with excess precision for boolean operations.
2251 2010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
2252 Basile Starynkevitch <basile@starynkevitch.net>
2254 * gengtype.c: Include getopt.h and version.h.
2256 (lang_bitmap, struct outf, outf_p)
2257 (get_output_file_with_visibility, oprintf): Definitions moved to
2259 (output_files, header_file, srcdir, srcdir_len, this_file)
2260 (do_dump): No more static variables.
2262 (dbgprint_count_type_at): Added new function.
2263 (gengtype_long_options): New.
2264 (print_usage, print_version, parse_program_options): New.
2265 (main): Call parse_program_options, and removed old option
2266 handling code. Added some debug output.
2268 * gengtype.h: Updated copyright year.
2269 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
2270 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
2271 Moved from gengtype.c to here.
2272 (do_debug, read_state_filename, write_state_filename): New variables.
2273 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
2276 (REVISION): Always defined.
2277 (version.o): Removed ifdef REVISION_c.
2278 (s-gtype): Pass arguments to build/gengtype program.
2279 (build/version.o): Added building rule.
2280 (build/gengtype$(build_exeext)): Added build/version.o.
2282 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
2284 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
2285 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
2288 2010-10-14 Eric Botcazou <ebotcazou@adacore.com>
2290 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
2291 may_trap_or_fault_p instead of may_trap_p predicate.
2292 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
2293 (substitute_placeholder_in_expr): Likewise.
2294 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
2295 flag on MEM_REF nodes.
2296 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
2297 flags on INDIRECT_REF nodes.
2299 2010-10-14 Nathan Froyd <froydnj@codesourcery.com>
2301 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
2302 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
2303 (arm*-*-eabi*) <tm_file>: Likewise.
2304 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
2305 (frv-*-*linux*) <tm_file>: Likewise.
2306 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
2307 and associated helper macros.
2308 * config/frv/frv-abi.h: Delete.
2310 2010-10-14 Richard Guenther <rguenther@suse.de>
2313 * tree.def (NULLPTR_TYPE): New tree code.
2314 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
2315 * dwarf2out.c (is_base_type): Likewise.
2316 (gen_type_die_with_usage): Likewise.
2317 * sdbout.c (plain_type_1): Likewise.
2318 * tree.c (build_int_cst_wide): Likewise.
2319 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
2321 2010-10-14 Joseph Myers <joseph@codesourcery.com>
2323 * params.c (params_finished): New.
2324 (add_params): Assert !params_finished.
2325 (finish_params): New.
2326 (set_param_value_internal): Take params and params_set
2327 parameters. Assert params_finished.
2328 (set_param_value, maybe_set_param_value): Take params and
2329 params_set parameters. Update calls to set_param_value_internal.
2330 (set_default_param_value): Assert !params_finished. Don't use
2331 set_param_value_internal.
2332 (default_param_value, init_param_values): New.
2333 * params.h (struct param_info): Change value to default_value.
2335 (set_param_value, maybe_set_param_value): Add params and
2336 params_set parameters.
2337 (PARAM_VALUE): Get parameters from global_options.
2338 (PARAM_SET_P): Remove.
2339 (finish_params, default_param_value, init_param_values): New.
2340 * common.opt (param_values): New Variable.
2341 * config/arm/arm.c (arm_option_override): Pass extra arguments to
2342 maybe_set_param_value.
2343 * config/i386/i386.c (ix86_option_override_internal): Pass extra
2344 arguments to maybe_set_param_value.
2345 * config/picochip/picochip.c (picochip_option_override): Pass
2346 extra arguments to maybe_set_param_value.
2347 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
2348 extra arguments to maybe_set_param_value.
2349 * config/s390/s390.c (s390_option_override): Use
2350 maybe_set_param_value instead of set_param_value. Pass extra
2351 arguments to maybe_set_param_value.
2352 * config/sparc/sparc.c (sparc_option_override): Pass extra
2353 arguments to maybe_set_param_value.
2354 * config/spu/spu.c (spu_option_override): Pass extra arguments to
2355 maybe_set_param_value.
2356 * opts.c (handle_param): Take opts and opts_set parameters.
2357 Update call to set_param_value.
2358 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
2359 initial_loop_invariant_max_bbs_in_loop): Remove.
2360 (init_options_once): Don't set them.
2361 (init_options_struct): Initialize parameters structures.
2362 (default_options_optimization): Use default_param_value when
2363 restoring defaults. Update calls to maybe_set_param_value.
2364 (finish_options): Update calls to maybe_set_param_value.
2365 (common_handle_option): Update calls to handle_param and
2367 * toplev.c (DEFPARAM): Update definition for changes to param_info.
2368 (general_init): Call finish_params.
2370 2010-10-14 Nick Clifton <nickc@redhat.com>
2372 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
2373 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
2374 (FIRST_PSEUDO_REGISTER): Increase by one.
2375 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
2376 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
2377 (MODES_TIEABLE): Call mn10300_modes_tieable.
2378 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
2379 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
2380 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
2381 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
2382 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
2383 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
2384 (mn10300_cc_status_mdep): Delete.
2385 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
2386 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
2387 the combine-stack-adjust pass.
2388 (print_operand): Use the mode of the comparison operation to
2389 select the comparison suffix.
2390 (notice_update_cc): Delete.
2391 (mn10300_secondary_reload_class): Remove test for stack pointer
2393 (output_tst): Rename to mn10300_output_cmp.
2394 (impossible_plus_operand): Move into predicates.md.
2395 (mn10300_legitimize_address): Make static.
2396 (mn10300_legitimate_address_p): Make static. Only allow SI sized
2397 constant pic operands.
2398 (mn10300_legitimate_constant_p): New function.
2399 (mn10300_case_values_threshold): Make static.
2400 (mn10300_hard_regno_mode_ok): New function.
2401 (mn10300_modes_tieable): New function.
2402 (mn10300_select_cc_mode): New function.
2403 * config/mn10300/predicates.md (impossible_plus_operand): Define.
2404 * config/mn10300/mn10300-protos.h: Tidy.
2405 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
2406 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
2407 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
2408 with clobbers or sets of CC_REG.
2410 (mov*): Remove use of CLR instruction.
2411 (cbranch_si4_<code>): New pattern/split.
2412 (integer_conditional_branch): New pattern.
2413 (cbranch_sf4_<code>): New pattern/split.
2414 (float_conditional_branch): New pattern.
2415 (casesi): Use addsi3 pattern instead of movsi pattern to add and
2416 move a value at the same time.
2417 (cc0 peepholes): Remove.
2419 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
2421 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
2422 on RTX_FRAME_RELATED_P insns and the insn to which
2423 NOTE_INSN_EPILOGUE_BEG is attached.
2424 * sched-vis.c (print_value): Allow NULL value.
2426 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
2428 PR rtl-optimization/45570
2429 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
2430 assert that we are pipelining outer loops. Allow returning
2433 2010-10-14 Andrey Belevantsev <abel@ispras.ru>
2435 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
2436 (tidy_control_flow): Tidy vertical space.
2437 (sel_remove_bb): New variable idx. Use it to remember the basic
2438 block index before deleting the block.
2439 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
2440 (sel_merge_blocks): ... here.
2441 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
2443 2010-10-14 Jakub Jelinek <jakub@redhat.com>
2445 * cse.c (is_dead_reg): Change into inline function that is not
2446 called through for_each_rtx.
2447 (set_live_p): Adjust caller.
2448 (insn_live_p): Don't reset DEBUG_INSNs here.
2449 (struct dead_debug_insn_data): New data.
2450 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
2451 (delete_trivially_dead_insns): If there is just one setter for the
2452 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
2453 and add DEBUG_INSN for it right before the removed setter and
2454 use the DEBUG_EXPR instead of the dead pseudo.
2456 2010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
2458 * et-forest.c (et_nca): Return NULL immediately when
2459 the dominance forest has disjoint components.
2461 2010-10-13 Vladimir Makarov <vmakarov@redhat.com>
2463 * ira.c (setup_class_hard_regs): Fix typo in indexing
2464 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
2466 2010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
2468 * graph.c (inbb): New variable.
2469 (start_bb): Set inbb to 1 if output is inside of a building block.
2470 (end_bb): Check if output is inside of a building block.
2472 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
2474 PR rtl-optimization/45912
2475 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
2476 regno of registers instead of their index to compute the alignment.
2478 2010-10-13 H.J. Lu <hongjiu.lu@intel.com>
2480 * config/i386/i386.c (ix86_build_const_vector): Check vector
2481 mode instead of scalar mode.
2482 (ix86_build_signbit_mask): Likewise.
2483 (ix86_expand_fp_absneg_operator): Updated.
2484 (ix86_expand_copysign): Likewise.
2485 (ix86_expand_int_vcond): Likewise.
2486 (ix86_emit_swdivsf): Likewise.
2487 (ix86_sse_copysign_to_positive): Likewise.
2488 (ix86_expand_sse_fabs): Likewise.
2489 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
2490 * config/i386/sse.md (copysign<mode>3): Likewise.
2491 (sse2_cvtudq2ps): Likewise.
2492 (vec_unpacku_float_hi_v4si): Likewise.
2493 (vec_unpacku_float_lo_v4si): Likewise.
2495 * config/i386/i386.c (ix86_builtins): Add
2496 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
2497 (bdesc_args): Likewise.
2498 (ix86_builtin_vectorized_function): Support
2499 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
2500 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
2501 and IX86_BUILTIN_CVTPS2DQ256.
2502 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
2504 * config/i386/sse.md (STORENT_MODE): New.
2505 (VEC_FLOAT_MODE): Likewise.
2506 (VEC_EXTRACT_MODE): Likewise.
2507 (*avx_cvtdq2pd256_2): Likewise.
2508 (vec_pack_trunc_v4df): Likewise.
2509 (vec_interleave_highv8sf): Likewise.
2510 (vec_interleave_lowv8sf): Likewise.
2511 (storent<mode>): Macroized.
2512 (<code><mode>2: absneg): Likewise.
2513 (copysign<mode>3): Likewise.
2514 (vec_extract<mode>): Likewise.
2517 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
2520 2010-10-13 Richard Guenther <rguenther@suse.de>
2521 H.J. Lu <hongjiu.lu@intel.com>
2523 * config/i386/sse.md (reduc_splus_v8sf): Add.
2524 (reduc_splus_v4df): Likewise.
2525 (vec_unpacks_hi_v8sf): Likewise.
2526 (vec_unpacks_lo_v8sf): Likewise.
2527 (*avx_cvtps2pd256_2): Likewise.
2528 (vec_unpacks_float_hi_v8si): Likewise.
2529 (vec_unpacks_float_lo_v8si): Likewise.
2530 (vec_interleave_highv4df): Likewise.
2531 (vec_interleave_lowv4df): Likewise.
2533 2010-10-13 Richard Guenther <rguenther@suse.de>
2536 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
2537 alone if there are no virtual methods.
2539 2010-10-13 Richard Henderson <rth@redhat.com>
2541 * expr.c (build_personality_function): Take parameter LANG instead
2542 of parameter NAME. Build the name based on the lang prefix and the
2543 unwind method in use.
2544 * tree.c (lhd_gcc_personality): Update call to
2545 build_personality_function.
2547 2010-10-13 Richard Guenther <rguenther@suse.de>
2550 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
2552 2010-10-13 Eric Botcazou <ebotcazou@adacore.com>
2554 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
2555 Canonicalize input operands of ASM_OPERANDS insns.
2557 2010-10-13 Richard Guenther <rguenther@suse.de>
2559 PR tree-optimization/45788
2560 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
2561 EH update until fixup-cfg.
2563 2010-10-13 Julian Brown <julian@codesourcery.com>
2565 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
2566 from CORE_REGS and GENERAL_REGS classes.
2567 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
2568 final constraint for register preferencing.
2570 2010-10-13 Richard Guenther <rguenther@suse.de>
2572 PR tree-optimization/45970
2573 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
2574 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
2575 (stmt_kills_ref_p): Likewise.
2576 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
2578 2010-10-13 Richard Guenther <rguenther@suse.de>
2580 PR tree-optimization/45982
2581 * tree-ssa-structalias.c (make_constraints_to): New function.
2582 (make_constraint_to): Implement in terms of make_constraints_to.
2583 (find_func_aliases): Properly make return values of pure/const
2584 functions escape if they assign to sth that is not a pointer.
2586 2010-10-13 Richard Guenther <rguenther@suse.de>
2589 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
2590 Fixup the CFG when EH was fixed up.
2592 2010-10-13 Ira Rosen <irar@il.ibm.com>
2594 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
2595 Use operand's type for POINTER_PLUS_EXPR.
2597 2010-10-13 Alexandre Oliva <aoliva@redhat.com>
2599 * c-parser.c (c_parser_for_statement): Initialize incr.
2601 2010-10-12 Xinliang David Li <davidxl@google.com>
2603 PR tree-optimization/45972
2604 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
2605 with too many arguments.
2607 2010-10-12 Jakub Jelinek <jakub@redhat.com>
2610 * tree-ssa-forwprop.c: Include expr.h.
2611 (constant_pointer_difference, simplify_builtin_call): New functions.
2612 (tree_ssa_forward_propagate_single_use_vars): Call
2613 simplify_builtin_call on builtin calls.
2615 2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
2617 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
2618 (*adddi3_extend_sp32): Likewise.
2619 (*subdi3_insn_sp32): Likewise.
2620 (*subdi3_extend_sp32): Likewise.
2621 (*negdi2_sp32): Use negative test for consistency.
2623 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
2625 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
2626 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2627 * config/fixed-bit.h: Likewise.
2628 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2629 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
2630 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
2631 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
2632 (DF_SIZE): Likewise.
2633 * doc/tm.texi: Regenerate.
2635 2010-10-12 Nathan Froyd <froydnj@codesourcery.com>
2637 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
2638 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
2639 (*isel_reversed_unsigned_<mode>): New.
2640 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
2641 as valid comparisons and adjust operands and output appropriately.
2642 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
2644 2010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
2646 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
2647 DATA_ALIGNMENT and add COND parameter. Update comments above.
2648 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
2649 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
2651 2010-10-12 H.J. Lu <hongjiu.lu@intel.com>
2654 * exec-tool.in: Support '-plugin' as the second option to the linker.
2656 2010-10-12 Richard Henderson <rth@redhat.com>
2659 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
2660 (expand_stack_vars): Assert large base allocated when used.
2662 2010-10-12 Richard Guenther <rguenther@suse.de>
2664 * tree-ssa-structalias.c (get_constraint_for_1): Constants
2665 only point to nonlocal, not anything.
2667 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2669 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
2670 unwind info for exceptions.
2672 2010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2675 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
2676 Document optional target selector.
2678 2010-10-12 Joseph Myers <joseph@codesourcery.com>
2680 * flag-types.h: New.
2681 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
2682 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
2684 (OPTIONS_H): Define.
2685 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
2687 * configure.ac (tm_include_list): Include options.h not flags.h.
2688 * configure: Regenerate.
2689 * flags.h: Include flag-types.h. Include options.h at top of file
2691 (enum debug_info_type, enum debug_info_level, enum
2692 debug_info_usage, enum symbol_visibility, struct visibility_flags,
2693 enum ira_algorithm, enum ira_region, enum excess_precision, enum
2694 graph_dump_types, enum stack_check_type,
2695 enum warn_strict_overflow_code): Move to flag-types.h
2696 * opth-gen.awk: Include flag-types.h in options.h.
2698 2010-10-12 Jakub Jelinek <jakub@redhat.com>
2700 * expr.c (store_expr): Share code for STRING_CST and
2701 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
2702 check if target is a MEM.
2704 * rtl.h: Include hashtab.h.
2705 (iterative_hash_rtx): New prototype.
2706 * rtl.c (iterative_hash_rtx): New function.
2707 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
2708 (output_loc_list): Return immediately if emitted is set, set it.
2709 (hash_loc_operands, hash_locs, hash_loc_list,
2710 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
2711 optimize_location_lists_1, optimize_location_lists): New function.
2712 (dwarf2out_finish): Call optimize_location_lists.
2713 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
2715 2010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2719 * Makefile.in ($(lang_checks_parallel))
2720 ($(lang_checks_parallelized)): Use single quotes for
2721 $(RUNTESTFLAGS), to allow passing quoted content.
2723 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2725 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
2726 actual_oldval. Use __builtin_expect.
2727 (SUBWORD_VAL_CAS): Likewise.
2729 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2731 * recog.c (nonmemory_operand): Call immediate_operand for
2732 CONSTANT_P operands.
2734 2010-10-11 Uros Bizjak <ubizjak@gmail.com>
2736 * config/i386/i386.md (movmem<mode>): Macroize expander from
2737 movmem{si,di} using SWI48 mode iterator.
2738 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
2739 *strmovsi_rex_1 using P mode iterator.
2740 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
2741 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
2742 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
2743 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
2744 (setmem<mode>): Macroize expander from setmem{si,di} using
2745 SWI48 mode iterator.
2746 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
2747 *strsetsi_rex_1 using P mode iterator.
2748 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
2749 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
2750 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
2751 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
2752 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
2753 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
2754 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
2756 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
2757 *strlenqi_rex_1 using P mode iterator.
2759 2010-10-11 Bernd Schmidt <bernds@codesourcery.com>
2762 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
2764 (mark_ref_live, mark_ref_dead): Use them.
2765 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
2766 Save the original reg, and use the new functions.
2767 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
2769 (check_and_make_def_conflict): Save the original reg.
2771 2010-10-11 Martin Jambor <mjambor@suse.cz>
2774 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
2777 2010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2779 * Makefile.in ($(lang_checks_parallel))
2780 ($(lang_checks_parallelized)): Use single quotes for
2781 $(RUNTESTFLAGS), to allow passing quoted content.
2784 * opt-functions.awk (BEGIN): New section.
2785 (lower, upper, digit, alnum): New variables.
2786 (static_var, opt_sanitized_name): Use alnum instead of character
2787 classes, for non-C locale.
2788 * optc-gen.awk: Likewise.
2789 * opth-gen.awk: Likewise.
2791 2010-10-11 Anatoly Sokolov <aesok@post.ru>
2793 * target.def (preferred_reload_class): New hook.
2794 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
2795 * doc/tm.texi: Regenerate.
2796 * targhooks.c (default_preferred_reload_class): New function.
2797 * targhooks.h (default_preferred_reload_class): Declare.
2798 * reload.c (find_dummy_reload): Change preferred_class variable type
2799 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
2801 (find_reloads): Change goal_alternative array type from int to
2802 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
2803 (push_reload, find_reloads_address_part): Use
2804 TARGET_PREFERRED_RELOAD_CLASS target hook.
2805 * reload1.c (emit_input_reload_insns): Ditto.
2806 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
2807 hook. Change rclass argument and secondary_class variable types from
2808 'enum reg_class' to reg_class_t.
2810 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
2811 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
2812 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
2813 Change regclass argument and result types from enum reg_class to
2815 (TARGET_PREFERRED_RELOAD_CLASS): Define.
2817 2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
2819 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
2820 in masking operations.
2821 (simplify_const_unary_operation): Likewise.
2822 (simplify_binary_operation_1): Likewise.
2823 (simplify_const_binary_operation): Likewise.
2824 (simplify_const_relational_operation): Likewise.
2825 (simplify_ternary_operation): Likewise.
2826 (simplify_immed_subreg): Likewise.
2828 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2831 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
2832 (TARGET_SUPPORTS_WEAK): New.
2833 * doc/tm.texi: Regenerate.
2834 * defaults.h (SUPPORTS_WEAK): Update comment.
2835 (TARGET_SUPPORTS_WEAK): New.
2836 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
2837 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
2839 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
2840 make_decl_one_only): Likewise.
2841 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
2842 TARGET_SUPPORTS_WEAK.
2843 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
2844 instead of SUPPORTS_WEAK.
2846 2010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2848 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
2850 2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
2852 * vec.h (VEC_qsort): Define.
2853 * dbxout.c (output_used_types): Use it.
2854 * df-scan.c (df_sort_and_compress_refs): Likewise.
2855 (df_sort_and_compress_mws): Likewise.
2856 * genautomata.c (uniq_sort_alt_states): Likewise.
2857 (evaluate_equiv_classes): Likewise.
2858 (output_trans_table): Likewise.
2859 (output_state): Likewise.
2860 * gimplify.c (compare_case_labels): Likewise.
2861 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
2862 * ipa.c (build_cdtor_fns): Likewise.
2863 * lto.c (lto_wpa_write_files): Likewise.
2864 * sel-sched.c (fill_vec_av_set): Likewise.
2865 * tree-predcom.c (determine_roots_comp): Likewise.
2866 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
2867 (splice_param_accesses): Likewise.
2868 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
2869 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
2870 (reassociate_bb): Likewise.
2871 * tree-ssa-sccvn.c (sort_scc): Likewise.
2872 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
2874 2010-10-11 Ian Lance Taylor <iant@google.com>
2876 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
2877 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
2878 TREE_THIS_NOTRAP when appropriate.
2879 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
2880 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
2881 newly created MEM_REF.
2883 2010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
2885 Nathan Froyds patch to hooks FUNCTION_ARG etc.
2886 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
2887 (picochip_incoming_function_arg): Delete.
2888 (picochip_arg_advance): Delete.
2889 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
2890 (FUNCTION_INCOMING_ARG): Delete.
2891 (FUNCTION_ARG_ADVANCE): Delete.
2892 * config/picochip/picochip.c (picochip_function_arg): Take a
2893 const_tree and a bool.
2894 (picochip_incoming_function_arg): Likewise.
2895 (picochip_arg_advance): Likewise.
2896 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
2897 (TARGET_FUNCTION_ARG_ADVANCE): Define.
2899 2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2902 * ipa.c (build_cdtor): Delete endless loop.
2904 2010-10-07 Andi Kleen <ak@linux.intel.com>
2906 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
2908 (checksum-options): Add.
2909 (cc1-dummy): Remove.
2910 (cc1-checksum): Change to run checksum over object files
2912 * dummy-checksum.c: Remove.
2913 * genchecksum.c: Update copyright.
2914 (usage): Allow multiple arguments.
2916 (dosum): Change for incremental checksum. Remove C output.
2917 (main): Iterate over all argument files. Add C output.
2919 2010-10-11 Joseph Myers <joseph@codesourcery.com>
2921 * params.c (set_param_value_internal): New.
2922 (set_param_value): Use set_param_value_internal.
2923 (maybe_set_param_value, set_default_param_value): New.
2924 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
2925 (maybe_set_param_value, set_default_param_value): Declare.
2926 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
2927 * config/i386/i386.c (ix86_option_override_internal): Use
2928 maybe_set_param_value.
2929 * config/ia64/ia64.c (ia64_option_default_params,
2930 TARGET_OPTION_DEFAULT_PARAMS): New.
2931 (ia64_option_optimization): Move some code to
2932 ia64_option_default_params.
2933 * config/picochip/picochip.c (picochip_option_override): Use
2934 maybe_set_param_value.
2935 * config/rs6000/rs6000.c (rs6000_option_default_params,
2936 TARGET_OPTION_DEFAULT_PARAMS): New.
2937 (rs6000_option_override_internal): Use maybe_set_param_value.
2938 (rs6000_option_optimization): Move some code to
2939 rs6000_option_default_params.
2940 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
2941 * config/sh/sh.c (sh_option_default_params,
2942 TARGET_OPTION_DEFAULT_PARAMS): New.
2943 (sh_option_optimization): Move some code to sh_option_default_params.
2944 * config/sparc/sparc.c (sparc_option_override): Use
2945 maybe_set_param_value.
2946 * config/spu/spu.c (spu_option_default_params,
2947 TARGET_OPTION_DEFAULT_PARAMS): New.
2948 (spu_option_optimization): Move some code to spu_option_default_params.
2949 (spu_option_override): Use maybe_set_param_value.
2950 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
2951 * doc/tm.texi: Regenerate.
2952 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
2953 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
2955 (default_options_optimization): Use maybe_set_param_value.
2956 (finish_options): Use maybe_set_param_value.
2957 * target.def (target_option.default_params): New hook.
2958 * toplev.c (general_init): Call targetm.target_option.default_params.
2960 2010-10-11 Ira Rosen <irar@il.ibm.com>
2962 PR tree-optimization/45902
2963 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
2964 vector type for constants, unless it's a pointer.
2966 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2968 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
2970 2010-10-11 Jakub Jelinek <jakub@redhat.com>
2973 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
2974 (ix86_delegitimize_address): Use it.
2976 2010-10-10 Eric Botcazou <ebotcazou@adacore.com>
2978 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
2980 2010-10-10 Uros Bizjak <ubizjak@gmail.com>
2982 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
2983 to cum struct in the call to function_arg_advance.
2984 (alpha_function_arg_advance): Mark named as unused.
2986 2010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
2988 * config/mips/mips.c (mips_handle_option): Make "value" with
2991 2010-10-09 Richard Henderson <rth@redhat.com>
2994 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
2995 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
2996 required_align, tidy the code a bit. Emit split_stack code in the
2997 right place. Mark the return value with the alignment properly.
2998 * expr.h (allocate_dynamic_stack_space): Update decl.
2999 * builtins.c (expand_builtin_apply): Update call to
3000 allocate_dynamic_stack_space.
3001 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
3002 * calls.c (initialize_argument_information): Update call to
3003 allocate_dynamic_stack_space.
3004 (expand_call): Likewise.
3006 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
3007 Don't update_stack_alignment here.
3008 (alloc_stack_frame_space): Make ALIGN unsigned.
3009 (stack_var_cmp): Sort by alignment too.
3010 (partition_stack_vars): Don't merge large and small alignment vars.
3011 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
3012 Take care when BASE is not virtual_stack_vars_rtx.
3013 (expand_stack_vars): Allocate dynamic stack space for large
3014 alignment variables.
3015 (expand_one_stack_var): Update all to expand_one_stack_var_at.
3016 (defer_stack_allocation): True for large alignment vars.
3017 (update_stack_alignment): Merge into ...
3018 (expand_one_var): ... here.
3019 (gimple_expand_cfg): Place code from expand_stack_vars.
3021 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3023 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3024 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
3025 (pdp11_function_arg_advance): New function.
3026 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3028 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3030 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
3031 * libgcc2.c: Likewise.
3033 2010-10-09 Richard Guenther <rguenther@suse.de>
3036 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
3037 Properly check if a decl is an automatic var.
3039 2010-10-09 Richard Guenther <rguenther@suse.de>
3042 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
3044 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3046 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
3047 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3048 * config/mmix/mmix.c (mmix_function_arg): Rename to...
3049 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
3051 (mmix_function_arg): New function.
3052 (mmix_function_incoming_arg): New function.
3053 (mmix_function_arg_advance): New function.
3054 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
3055 (TARGET_FUNCTION_ARG_ADVANCE): Define.
3057 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3059 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3060 * config/vax/vax.c (vax_function_arg): New function.
3061 (vax_function_arg_advance): New function.
3062 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3064 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3066 * config/pa/pa-protos.h (function_arg): Delete.
3067 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3068 * config/pa/pa.c (function_arg): Rename to...
3069 (pa_function_arg): ...this. Make static. Take a const_tree and
3071 (pa_function_arg_advance): New function.
3072 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3074 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3076 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3077 * config/m68k/m68k.c (m68k_function_arg): New function.
3078 (m68k_function_arg_advance): New function.
3079 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3081 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3083 * config/avr/avr-protos.h (function_arg): Delete.
3084 (function_arg_advance): Delete.
3085 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3086 * config/avr/avr.c (function_arg): Rename to...
3087 (avr_function_arg): ...this. Make static. Take a const_tree and
3089 (function_arg_advance): Rename to...
3090 (avr_function_arg_advance): ...this. Make static. Take a
3091 const_tree and a bool.
3092 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3094 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3096 * config/alpha/alpha-protos.h (function_arg): Delete.
3097 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3098 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
3099 * config/alpha/alpha.c (function_arg): Rename to...
3100 (alpha_function_arg): ...this. Make static. Take a const_tree and
3101 a bool. Delete TARGET_ABI_UNICOSMK code.
3102 (alpha_function_arg_advance): New function.
3103 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3105 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3107 * config/mep/mep-protos.h (mep_function_arg): Delete.
3108 (mep_function_arg_advance): Delete.
3109 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3110 * config/mep/mep.c (mep_function_arg): Make static. Take a
3111 const_tree and a bool.
3112 (mep_function_arg_advance): Likewise.
3113 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3115 2010-10-09 Richard Guenther <rguenther@suse.de>
3117 PR tree-optimization/45945
3118 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
3120 2010-10-09 Eric Botcazou <ebotcazou@adacore.com>
3122 PR tree-optimization/45612
3123 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
3124 Test LABEL_DECLs as well. Fix formatting issues.
3125 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
3126 whose label is present in NON_SSA_VARS.
3127 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
3128 as well. Fix formatting issues.
3129 (visit_bb): Fix typos and formatting issue.
3131 2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
3133 PR tree-optimization/45950
3134 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
3135 before initializing vno->op.
3137 2010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
3139 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
3140 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
3142 2010-10-08 H.J. Lu <hongjiu.lu@intel.com>
3145 * config/i386/i386.c (ix86_binary_operator_ok): Support
3146 "andhi/andsi/anddi" as a zero-extending move.
3148 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3150 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
3151 into a temporary array.
3153 2010-10-08 Jakub Jelinek <jakub@redhat.com>
3155 PR tree-optimization/45903
3156 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
3157 of {A,L}SHIFTRT of MEM.
3159 2010-10-08 Richard Guenther <rguenther@suse.de>
3161 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
3162 Re-construct BLOCK_VARS.
3163 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
3164 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
3165 * tree.c (free_lang_data_in_block): Remove.
3166 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
3167 Do not touch the BLOCK tree.
3168 * expr.c (expand_expr_real_1): Allow externals.
3170 2010-10-08 Richard Guenther <rguenther@suse.de>
3172 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
3173 Do not output BLOCK_SUBBLOCKS.
3174 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
3175 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
3176 Re-construct BLOCK_SUBBLOCKS of parent block.
3177 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
3178 for BINFO_BASE_ACCESSES.
3180 2010-10-08 Joseph Myers <joseph@codesourcery.com>
3182 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
3183 (TREE_H): Include $(FLAGS_H) instead of options.h.
3184 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
3185 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3186 * common.opt (flag_complex_method, flag_evaluation_order,
3187 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
3188 Variable declarations.
3189 * configure.ac (tm_include_list): Include flags.h instead of options.h.
3190 * configure: Regenerate.
3191 * flags.h: Condition out contents for target libraries. Include
3192 options.h at end of file.
3193 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
3194 flag_evaluation_order, flag_warn_unused_result): Remove.
3195 * gcc.c (main): Intialize global_options with global_options_init.
3196 * langhooks-def.h (lhd_init_options_struct): Declare.
3197 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
3198 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
3199 * langhooks.c (lhd_init_options_struct): New.
3200 * langhooks.h (struct lang_hooks): Add init_options_struct.
3201 Update comment on init_options.
3202 * optc-gen.awk: Generate initializer for global_options_init, not
3204 * opth-gen.awk: Condition out structure declarations for target
3205 libraries. Declare global_options_init.
3206 * opts-common.c: Include flags.h instead of options.h.
3207 * opts.c (flag_warn_unused_result): Remove.
3208 (read_cmdline_options): Take gcc_options parameters. Pass them to
3209 read_cmdline_option.
3210 (initial_lang_mask, initial_min_crossjump_insns,
3211 initial_max_fields_for_field_sensitive,
3212 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
3213 (init_options_once): New. Split out of decode_options.
3214 (init_options_struct): New. Split out of decode_options.
3215 (decode_cmdline_options_to_array_default_mask): New.
3216 (default_options_optimization): New. Split out of decode_options.
3217 (decode_options): Move most code to other functions. Update call
3218 to read_cmdline_options.
3219 (finish_options): New. Split out of decode_options.
3220 * opts.h (decode_options): Add gcc_options parameters.
3221 (init_options_once, init_options_struct,
3222 decode_cmdline_options_to_array_default_mask): New.
3223 * toplev.c (flag_complex_method, flag_ira_algorithm,
3224 flag_ira_region, flag_evaluation_order): Remove.
3225 (general_init): Use global_options_init for initial flag values
3227 (toplev_main): Call init_options_once, init_options_struct,
3228 lang_hooks.init_options_struct,
3229 decode_cmdline_options_to_array_default_mask and
3230 lang_hooks.init_option before decode_options. Update arguments to
3232 * tree.h: Include flags.h instead of options.h.
3234 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3236 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3238 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3240 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
3242 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
3243 (FUNCTION_INCOMING_ARG): Delete.
3244 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
3245 (function_arg_slotno): Likewise. Take bool arguments.
3246 (sparc_arg_partial_bytes): Update call to it.
3247 (function_arg): Rename to...
3248 (sparc_function_arg_1): ...this. Take bool arguments.
3249 (sparc_function_arg, sparc_function_incoming_arg): New functions.
3250 (function_arg_advance): Rename to...
3251 (sparc_function_arg_advance): ...this. Take bool argument.
3252 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
3253 (TARGET_FUNCTION_INCOMING_ARG): Define.
3255 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3257 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
3259 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3260 * config/bfin/bfin.c (function_arg_advance): Rename to...
3261 (bfin_function_arg_advance): ...this. Make static. Take const_tree
3263 (function_arg): Rename to...
3264 (bfin_function_arg): ...this. Make static. Take const_tree and bool
3266 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3268 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3270 * config/score/score-protos.h (score_function_arg): Delete.
3271 (score_function_arg_advance): Delete.
3272 * config/score/score3.h (score3_function_arg_advance): Take a
3273 const_tree and a bool.
3274 (score3_function_arg): Likewise.
3275 * config/score/score7.h (score7_function_arg_advance): Likewise.
3276 (score7_function_arg): Likewise.
3277 * config/score/score3.c (score3_classify_arg): Likewise.
3278 (score3_function_arg_advance, score3_function_arg): Likewise.
3279 * config/score/score7.c (score7_classify_arg): Likewise.
3280 (score7_function_arg_advance, score7_function_arg): Likewise.
3281 * config/score/score.c (score_function_arg_advance): Likewise.
3282 (score_function_arg): Likewise. De-const-ify `cum' argument.
3283 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3285 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3287 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
3288 (s390_function_arg): Delete.
3289 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3290 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
3291 (s390_function_arg_integer): Likewise.
3292 (s390_function_arg_advance): Make static. Take a const_tree and
3294 (s390_function_arg): Likewise.
3295 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3297 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3299 * config/spu/spu-protos.h (spu_function_arg): Delete.
3300 * config/spu/spu.h (FUNCTION_ARG): Delete.
3301 (FUNCTION_ARG_ADVANCE): Move code to ...
3302 * config/spu/spu.c (spu_function_arg_advance): New function.
3303 (spu_function_arg): Make static. Take a const_tree and a bool.
3304 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
3305 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3307 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3309 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3311 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3313 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
3314 (init_vn_nary_op_from_op): New function.
3315 (init_vn_nary_op_from_stmt): New function.
3316 (vn_nary_op_lookup_1): New function.
3317 (sizeof_vn_nary_op): New function.
3318 (alloc_vn_nary_op_noinit): New function.
3319 (alloc_vn_nary_op): New function.
3320 (vn_nary_op_insert_into): New function.
3321 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
3322 (vn_nary_op_lookup): Likewise.
3323 (vn_nary_op_lookup_stmt): Likewise.
3324 (vn_nary_op_insert_pieces): Likewise.
3325 (vn_nary_op_insert): Likewise.
3326 (vn_nary_op_insert_stmt): Likewise.
3327 (copy_nary): Likewise.
3328 (set_value_id_for_result): New function.
3329 (set_hashtable_value_ids): Call it.
3331 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3333 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3334 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
3336 2010-10-08 Nathan Froyd <froydnj@codesourcery.com>
3338 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
3339 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3341 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
3344 * cse.c (cse_extended_basic_block): Preserve cc0 info across
3345 debug isnsn. Skip them when searching for cc0 setter.
3346 (set_live_p): Skip debug insns when searching for cc0 user.
3348 2010-10-08 Alexandre Oliva <aoliva@redhat.com>
3354 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
3355 type of MEM_REFs to INTEGER_CSTs.
3357 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
3359 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
3360 m68hc11_print_operand_address.
3362 2010-10-07 Nathan Froyd <froydnj@codesourcery.com>
3364 * builtins.c (rewrite_call_expr): Move code to...
3365 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
3366 (rewrite_call_expr_array): New function.
3367 (fold_builtin_sprintf_chk_1): New function.
3368 (fold_builtin_sprintf_chk): Call it.
3369 (gimple_fold_builtin_sprintf_chk): Likewise.
3370 (fold_builtin_snprintf_chk_1): New function.
3371 (fold_builtin_snprintf_chk): Call it.
3372 (gimple_fold_builtin_snprintf_chk): Likewise.
3373 (gimple_rewrite_call_expr): Delete.
3375 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3377 * config.host: Update copyright year.
3379 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3381 * config.host (host_lto_plugin_soname): New shell variable.
3382 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
3383 * config.in: Regenerate.
3384 * configure: Regenerate.
3385 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
3386 LTO plugin shared library.
3388 2010-10-07 Richard Henderson <rth@redhat.com>
3390 * target.h (enum unwind_info_type): Move ...
3391 * coretypes.h: ... here.
3393 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
3395 * doc/objc.texi (Fast enumeration protocol): Mention that
3396 'unsigned int' can also be used instead of 'unsigned long' in
3397 countByEnumeratingWithState:objects:count:.
3399 2010-10-07 Martin Jambor <mjambor@suse.cz>
3401 * tree-sra.c (struct access): New field grp_assignment_write.
3402 (dump_access): Dump grp_assignment_write.
3403 (build_accesses_from_assign): Set grp_assignment_write.
3404 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
3405 (mark_read_status): Renamed to mark_rw_status, individual values
3407 (analyze_access_subtree): Changed type of mark_write to
3408 mark_read_status. Fixed propagating of mark_read and
3409 mark_write. Changed benefit estimate. Updated comment.
3411 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
3414 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
3415 check for vectype_out returned by get_vectype_for_scalar_type().
3417 2010-10-07 Tejas Belagod <tejas.belagod@arm.com>
3420 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
3421 constraint, add register specifier in instruction template.
3422 (neon_vec_pack_trunc_<mode>): Likewise.
3423 (neon_vec_<US>mult_<mode>): Add register specifier to
3424 instruction template.
3426 2010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
3428 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
3430 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
3431 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
3432 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
3433 (cygwin2.o): Likewise.
3434 * config/i386/cygwin1.c: Delete file.
3435 * config/i386/cygwin2.c: Likewise.
3436 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
3437 make all {%!mno-cygwin} ones unconditional.
3438 (STARTFILE_SPEC): Likewise.
3439 (REAL_LIBGCC_SPEC): Likewise.
3440 (LIB_SPEC): Likewise.
3441 (CXX_WRAP_SPEC): Likewise.
3442 (LINK_SPEC): Likewise.
3443 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
3444 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
3445 (cygwin_gplusplus_include_dir): Delete now-unused array.
3446 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
3447 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
3448 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
3449 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
3450 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
3451 (cygwin_local_include_dir): Delete now-unused array.
3452 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
3453 (cygwin_cross_include_dir): Delete now-unused array.
3454 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
3455 (cygwin_tool_include_dir): Delete now-unused array.
3456 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
3457 (cygwin_standard_include_dir): Delete now-unused array.
3458 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
3459 (GEN_CVT_ARRAY): Delete now-unused macro definition.
3460 (cvt_to_mingw): Delete now-unused array.
3461 (mingw_scan): Remove prototype of deleted function.
3462 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
3463 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
3464 * doc/invoke.texi (-mcygwin): Don't document removed option.
3465 (-mno-cygwin): Likewise.
3467 2010-10-07 Richard Guenther <rguenther@suse.de>
3469 * machmode.h (mode_for_vector): Declare.
3470 * stor-layout.c (mode_for_vector): New function, split out from ...
3471 (layout_type): ... here.
3472 * tree-vectorizer.h (current_vector_size): Declare.
3473 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
3474 mask vector type is available.
3475 (get_vectype_for_scalar_type): Rename to ...
3476 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
3478 (get_vectype_for_scalar_type): New wrapper around
3479 get_vectype_for_scalar_type_and_size using current_vector_size.
3480 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
3481 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
3482 of vect_analyze_loop here.
3483 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
3484 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
3486 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
3487 V8SF to V8SI conversion builtin.
3489 2010-10-07 Richard Guenther <rguenther@suse.de>
3491 * target.def (autovectorize_vector_sizes): New target hook.
3492 * targhooks.c (default_autovectorize_vector_sizes): New function.
3493 * targhooks.h (default_autovectorize_vector_sizes): Declare.
3494 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
3496 * doc/tm.texi: Update.
3497 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
3498 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3500 2010-10-07 Richard Guenther <rguenther@suse.de>
3502 * target.def (units_per_simd_word): Rename to ...
3503 (preferred_simd_mode): ... this. Return mode instead of size.
3504 * targhooks.c (default_units_per_simd_word): Rename to ...
3505 (default_preferred_simd_mode): ... this. Return word_mode.
3506 * targhooks.h (default_preferred_simd_mode): Declare.
3507 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
3508 (arm_preferred_simd_mode): ... this. Re-implement.
3509 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
3510 (ix86_preferred_simd_mode): ... this. Re-implement.
3511 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
3512 (sparc_preferred_simd_mode): ... this. Re-implement.
3513 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
3514 (mips_preferred_simd_mode): ... this. Re-implement.
3515 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
3516 (rs6000_preferred_simd_mode): ... this. Re-implement.
3517 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
3518 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
3519 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
3520 * doc/tm.texi: Update.
3522 2010-10-07 Richard Guenther <rguenther@suse.de>
3525 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
3528 2010-10-07 Alan Modra <amodra@gmail.com>
3530 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
3531 rather than sign extension by hand.
3533 2010-10-07 Jan Hubicka <jh@suse.cz>
3536 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
3538 2010-10-07 Richard Guenther <rguenther@suse.de>
3541 * configure.ac: Fix typo.
3542 * configure: Regenerated.
3544 2010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3546 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
3547 define_builtin_std where it's unnecessary.
3548 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
3550 2010-10-06 Anatoly Sokolov <aesok@post.ru>
3552 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
3553 * doc/tm.texi.in: Regenerate.
3554 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
3555 * targhooks.c (default_class_likely_spilled_p): Don't use the
3556 CLASS_LIKELY_SPILLED_P macro.
3558 * config/arm/arm.md: Update comment.
3560 2010-10-06 Jan Hubicka <jh@suse.cz>
3562 * ipa.c (cgraph_remove_unreachable_nodes): External references can
3564 (cgraph_externally_visible_p): We can not bring local comdats that
3565 are known to linker; fix handling of internal visibility.
3566 (function_and_variable_visibility): Likewise.
3568 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
3570 PR rtl-optimization/45394
3571 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
3572 (struct rtx_subst_pair): Remove AFTER field.
3573 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
3574 (propagate_for_debug): Remove MOVE parameter and adjust.
3575 (try_combine): In the special case where I2 is a PARALLEL, combine only
3576 destinations of SETs and set I2SRC to the I2 source.
3577 Adjust calls to propagate_for_debug throughout.
3578 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
3581 2010-10-06 Olivier Hainque <hainque@adacore.com>
3583 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
3584 switch on insn codes as sequence of ifs.
3586 2010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
3588 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
3589 be UI_NONE for picochip.
3590 (picochip_option_override): Do not disable exception flags.
3591 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
3594 2010-10-06 Richard Guenther <rguenther@suse.de>
3596 * Makefile.in (regmove.o): Depend on $(TARGET_H).
3598 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
3600 Implemented fast enumeration for Objective-C.
3601 * c-parser.c (objc_could_be_foreach_context): New.
3602 (c_lex_one_token): Recognize RID_IN keyword in a potential
3603 Objective-C foreach context.
3604 (c_parser_declaration_or_fndef): Added parameter. Accept
3605 Objective-C RID_IN keyword as terminating a declaration; in that
3606 case, return the declaration in the new parameter.
3607 (c_parser_extenral_declaration): Updated calls to
3608 c_parser_declaration_or_fndef.
3609 (c_parser_declaration_or_fndef): Same change.
3610 (c_parser_compound_statement_nostart): Same change.
3611 (c_parser_label): Same change.
3612 (c_parser_objc_methodprotolist): Same change.
3613 (c_parser_omp_for_loop): Same change.
3614 (c_parser_for_statement): Detect and parse Objective-C foreach
3616 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
3617 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
3618 fast enumeration parsing code to turn off the c99 error but still
3619 perform checks on the loop declarations.
3620 * c-tree.h (check_for_loop_decls): Updated declaration.
3621 * doc/objc.texi: Document fast enumeration.
3623 2010-10-06 Nick Clifton <nickc@redhat.com>
3625 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
3626 (MDR_REGNUM): Define.
3627 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
3628 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
3629 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
3630 (REGISTER_NAMES): Add MDR.
3631 (DWARF2_DEBUGGING_INFO): Define to 1.
3632 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
3633 (F): New function. Sets RTX_FRAME_RELATED_P.
3634 (mn10300_gen_multiple_store): Use F.
3635 (expand_prologue): Use F. Use gen_movsf() to push floating
3637 (expand_epilogue): Use gen_movsf() to pop floating point registers.
3638 (mn10300_option_override): Disable combine stack adjust pass.
3640 2010-10-06 Thomas Schwinge <thomas@schwinge.name>
3643 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
3644 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
3646 2010-10-06 Jakub Jelinek <jakub@redhat.com>
3648 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
3649 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
3650 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
3651 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
3652 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
3653 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
3654 BUILT_IN_TOUPPER): Mark as leaf.
3657 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
3658 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
3659 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
3660 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
3661 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
3662 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
3663 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
3665 2010-10-05 Anatoly Sokolov <aesok@post.ru>
3667 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
3668 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3669 (m68hc11_class_likely_spilled_p): New function.
3671 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
3673 * c-parser.c (c_parser_objc_method_definition): Updated comment.
3675 2010-10-05 Jan Hubicka <jh@suse.cz>
3677 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
3679 * opts.c (decode_options): Handle lto partitions.
3680 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
3681 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
3683 2010-10-05 Jan Hubicka <jh@suse.cz>
3685 * cgraphunit.c (assemble_function): Output thunks and aliases before
3686 the function itself.
3688 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
3690 * config/picochip/picochip.c (picochip_option_override): Disable
3691 exception flags for picochip.
3693 2010-10-05 Joseph Myers <joseph@codesourcery.com>
3695 * opts-common.c (handle_option, handle_generated_option,
3696 read_cmdline_option, set_option): Add diagnostic_context
3697 parameter. Update calls among these functions.
3698 (set_option): Don't use global_dc.
3699 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
3700 (decode_options): Pass global_dc to enable_warning_as_error.
3701 (common_handle_option): Pass global_dc to enable_warning_as_error.
3702 (enable_warning_as_error): Add diagnostic_context parameter.
3703 Document parameters. Don't use global_dc. Pass
3704 diagnostic_context parameter to handle_generated_option.
3705 * opts.h (set_option, handle_option, handle_generated_option,
3706 read_cmdline_option, enable_warning_as_error): Add
3707 diagnostic_context parameter.
3708 * Makefile.in (lto-opts.o): Update dependencies.
3709 * coretypes.h (struct diagnostic_context, diagnostic_context):
3711 * diagnostic.h (diagnostic_context): Don't declare typedef here.
3712 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
3713 * langhooks-def.h (struct diagnostic_context): Don't declare here.
3714 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
3715 using diagnostic_context typedef.
3716 * langhooks.c (lhd_initialize_diagnostics): Declare using
3717 diagnostic_context typedef.
3718 * langhooks.h (struct diagnostic_context): Don't declare here.
3719 (initialize_diagnostics, print_error_function): Declare using
3720 diagnostic_context typedef.
3721 * lto-opts.c: Include diagnostic.h.
3722 (lto_reissue_options): Pass global_dc to set_option. Pass
3723 DK_UNSPECIFIED not 0.
3724 * plugin.c (plugins_internal_error_function): Declare using
3725 diagnostic_context typedef.
3726 * plugin.h (struct diagnostic_context): Don't declare here.
3727 (plugins_internal_error_function): Declare using
3728 diagnostic_context typedef.
3730 2010-10-05 Olivier Hainque <hainque@adacore.com>
3731 Nicolas Roche <roche@adacore.com>
3733 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
3734 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
3736 2010-10-05 Ira Rosen <irar@il.ibm.com>
3738 PR tree-optimization/45752
3739 * tree-vect-slp.c (vect_get_mask_element): Remove static
3740 variables, make them function arguments.
3741 (vect_transform_slp_perm_load): Pass new arguments to
3742 vect_get_mask_element.
3744 2010-10-05 Richard Guenther <rguenther@suse.de>
3746 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
3747 (gimple_mod_pow2): Likewise.
3748 (gimple_mod_subtract): Likewise.
3749 (gimple_ic): Likewise.
3750 (gimple_stringop_fixed_value): Likewise.
3751 * tree-profile.c (tree_init_edge_profiler): Mark profile
3752 functions nothrow and leaf.
3753 (add_abnormal_goto_call_edges): Remove.
3754 (tree_gen_edge_profiler): Work on SSA form.
3755 (tree_gen_ic_profiler): Likewise. Simplify.
3756 (do_tree_profiling): Update SSA form.
3757 (pass_tree_profile): Remove.
3758 (do_tree_profiling): Likewise.
3759 (gate_tree_profile_ipa): New function.
3760 (pass_ipa_tree_profile): New.
3761 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
3762 state of instrumented functions.
3763 * passes.c (init_optimization_passes): Remove early non-SSA
3764 inlining. Move profiling after early optimizations.
3765 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
3766 (pass_ipa_early_inline): Likewise.
3767 * tree-pass.h (pass_ipa_early_inline): Remove.
3768 (pass_tree_profile): Likewise.
3769 (pass_ipa_tree_profile): Declare.
3771 2010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3772 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
3774 * gcc/config/s390/s390.c (z196_cost): New.
3775 (s390_handle_arch_option): Add -march=z196.
3776 (s390_option_override): Use the new cost function and use the z10
3777 defaults also for z196.
3778 (legitimate_reload_constant_p): Adjust comment.
3779 (legitimate_reload_fp_constant_p): New function.
3780 (s390_preferred_reload_class): Distingiush between FP and Int constants.
3781 (preferred_la_operand_p): Avoid la with index on z196.
3782 (s390_adjust_priority): Trigger also for z196.
3783 (s390_issue_rate): Issue rate for z196 is 3.
3784 (s390_z10_fix_long_loop_prediction): Rename to ...
3785 (s390_fix_long_loop_prediction): ... this.
3786 (s390_reorg): Apply the z10 adjustments also for z196.
3787 (s390_loop_unroll_adjust): Do this also for z196.
3788 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
3789 (enum processor_flags): Add PF_Z196.
3790 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
3791 (TARGET_CPU_Z196, TARGET_Z196): New macros.
3792 * gcc/config.gcc: Enable z196 for --with-arch.
3793 * gcc/config/s390/2817.md: New file.
3794 * gcc/config/s390/2084.md: New type for multiply and add.
3795 * gcc/config/s390/2097.md: Likewise.
3796 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
3797 (UNSPECV_ATOMIC_OP): New constants.
3798 (fmadddf, fmaddsf): New values for type attribute.
3799 (z196prop): New insn attribute.
3800 (cpu, cpu_facility): Add z196.
3801 (ATOMIC_Z196): New code iterator.
3802 (noxa): New code attribute.
3803 (gk): New mode attribute.
3804 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
3805 Support load zero for fp constants.
3806 (fixuns_truncdddi2, fixuns_trunctddi2)
3807 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
3809 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
3810 (popcounthi2, popcountqi2): New expander.
3811 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
3812 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
3813 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
3815 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
3816 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
3817 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
3818 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
3819 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
3820 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
3821 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
3822 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
3823 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
3824 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
3825 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
3826 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
3827 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
3828 Support new z196 instructions.
3830 2010-10-05 Richard Guenther <rguenther@suse.de>
3833 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
3834 case where gimplification optimizes away the stmt.
3836 2010-10-04 Jakub Jelinek <jakub@redhat.com>
3839 * var-tracking.c (strip_pointer_flags): New function.
3840 (emit_note_insn_var_location): If rtx_equal_p check failed,
3841 retry on locations simplified with simplify_replace_fn_rtx
3842 and strip_pointer_flags as its callback.
3844 2010-10-04 Jan Hubicka <jh@suse.cz>
3846 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
3847 (can_refer_decl_in_current_unit_p): ... this one; reverse return
3848 value; handle comdats too.
3849 (canonicalize_constructor_val): Use it; handle function_decls
3851 (gimple_fold_obj_type_ref_known_binfo): Likewise.
3852 * gimple.c (get_base_address): Accept all kinds of decls.
3854 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3856 * flags.h (g_switch_value, g_switch_set): Remove.
3857 * opts.c (g_switch_value, g_switch_set): Remove.
3858 * config/g.opt (G): Add Var(g_switch_value).
3859 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
3860 (alpha_option_override): Check global_options_set.x_g_switch_value
3861 instead of g_switch_set.
3862 (alpha_in_small_data_p): Remove cast in comparison with
3864 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
3865 g_switch_value to unsigned HOST_WIDE_INT.
3866 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
3867 with g_switch_value.
3868 (frv_handle_option): Don't handle -G here.
3869 (frv_option_override): Check global_options_set.x_g_switch_value
3870 instead of g_switch_set. Don't modify g_switch_set.
3871 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
3872 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
3873 g_switch_value to unsigned HOST_WIDE_INT.
3874 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
3875 (ia64_option_override): Check global_options_set.x_g_switch_value
3876 instead of g_switch_set.
3877 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
3879 (lm32_in_small_data_p): Remove cast in comparison with
3881 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
3882 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
3884 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
3885 (m32r_init): Check global_options_set.x_g_switch_value instead of
3887 (m32r_in_small_data_p): Remove cast in comparison with
3889 (m32r_file_start): Format g_switch_value with %d.
3890 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
3891 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
3892 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
3894 (microblaze_option_override): Check
3895 global_options_set.x_g_switch_value instead of g_switch_set.
3896 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
3897 (mips_option_override): Check global_options_set.x_g_switch_value
3898 instead of g_switch_set.
3899 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
3900 (rs6000_file_start): Format g_switch_value with %d.
3901 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
3902 comparisons with g_switch_value.
3903 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
3904 global_options_set.x_g_switch_value instead of g_switch_set.
3905 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
3906 global_options_set.x_g_switch_value instead of g_switch_set.
3907 * config/score/score.c (score_handle_option): Don't handle -G here.
3908 * config/score/score3.c (score3_option_override): Check
3909 global_options_set.x_g_switch_value instead of g_switch_set.
3910 * config/score/score7.c (score7_option_override): Check
3911 global_options_set.x_g_switch_value instead of g_switch_set.
3913 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
3915 * common.opt (fira-coalesce): Remove.
3917 * doc/invoke.texi (flag_ira_coalesce): Remove.
3919 * ira-color.c (allocno_coalesced_p): Move before
3920 copy_freq_compare_func.
3921 processed_coalesced_allocno_bitmap): Ditto.
3922 (update_conflict_hard_regno_costs): Don't use
3923 ALLOCNO_FIRST_COALESCED_ALLOCNO.
3924 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
3925 (assign_hard_reg): Assume no coalesced allocnos.
3926 (get_coalesced_allocnos_attributes): Remove.
3927 (bucket_allocno_compare_func): Assume no coalesced allocnos.
3928 (push_allocno_to_stack): Ditto.
3929 (remove_allocno_from_bucket_and_push): Use
3930 ira_print_expanded_allocno instead of print_coalesced_allocno.
3931 (push_allocnos_to_stack): Assume uncoalesced allocnos.
3932 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
3933 all_conflicting_hard_regs.
3934 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
3935 (setup_allocno_left_conflicts_size): Ditto.
3936 (put_allocno_into_bucket): Ditto.
3937 (copy_freq_compare_func): Remove.
3938 (copy_freq_compare_func, merge_allocnos): Move before
3939 coalesced_pseudo_reg_freq_compare.
3940 coalesced_allocno_conflict_p): Ditto.
3941 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
3942 parameter. Assume it true.
3943 (color_allocnos): Assume uncoalesced allocnos. Use
3944 ira_print_expanded_allocno instead of print_coalesced_allocno.
3945 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
3948 * ira.c: Remove comment about coalescing.
3950 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3952 * config/mips/mips.h (target_flags_explicit): Declare for
3955 2010-10-04 Andi Kleen <ak@linux.intel.com>
3957 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
3958 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
3960 2010-10-04 Matthias Klose <doko@ubuntu.com>
3962 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
3963 multilib osdirname if it exists.
3964 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
3966 2010-10-04 Jakub Jelinek <jakub@redhat.com>
3969 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
3970 arg0's type or its unsigned counterpart as utype. Convert
3971 arg1 to utype unconditionally.
3973 2010-10-04 Julian Brown <julian@codesourcery.com>
3975 * expr.c (expand_assignment): Add assertion to prevent emitting
3976 null rtx for movmisalign pattern.
3977 (expand_expr_real_1): Likewise.
3978 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
3979 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
3980 (arm_vector_alignment_reachable): New.
3981 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
3982 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
3983 (arm_print_operand): Include alignment qualifier in %A.
3984 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
3985 (movmisalign<mode>): New expander.
3986 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
3989 2010-10-04 Joseph Myers <joseph@codesourcery.com>
3991 * optc-gen.awk: Define global_options_set. &n