1 2011-08-09 Anatoly Sokolov <aesok@post.ru>
3 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
5 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
7 PR tree-optimization/50014
8 * tree-vect-loop.c (vectorizable_reduction): Get def type before
9 calling vect_get_vec_def_for_stmt_copy ().
11 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
13 PR rtl-optimization/49990
14 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
15 ignore classes which can not change mode.
16 (find_costs_and_classes): Ditto.
18 2011-08-08 Richard Henderson <rth@redhat.com>
21 * config/i386/i386.c (ix86_expand_prologue): Call
22 for SEH target gen_prologue_use instead of gen_blockage
25 2011-08-08 Martin Jambor <mjambor@suse.cz>
28 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
31 2011-08-08 Diego Novillo <dnovillo@google.com>
33 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
34 (DATA_STREAMER_H): New.
35 (GIMPLE_STREAMER_H): New.
36 (TREE_STREAMER_H): New.
37 (STREAMER_HOOKS_H): New.
38 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
39 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
40 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
41 (data-streamer.o): New.
42 (data-streamer-in.o): New.
43 (data-streamer-out.o): New.
44 (gimple-streamer-in.o): New.
45 (gimple-streamer-out.o): New.
46 (streamer-hooks.o): New.
47 (tree-streamer.o): New.
48 (tree-streamer-in.o): New.
49 (tree-streamer-out.o): New.
50 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and
52 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
53 GIMPLE_STREAMER_H and TREE_STREAMER_H.
54 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
55 GIMPLE_STREAMER_H and TREE_STREAMER_H.
56 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
57 (ipa-prop.o): Add dependency on DATA_STREAMER_H and
59 (ipa-inline-analysis.o): Likewise.
60 (ipa-pure-const.o): Likewise.
61 * data-streamer-in.c: New.
62 * data-streamer-out.c: New.
63 * data-streamer.c: New.
64 * data-streamer.h: New.
65 * gimple-streamer-in.c: New.
66 * gimple-streamer-out.c: New.
67 * gimple-streamer.h: New.
68 * ipa-inline-analysis.c: Include data-streamer.h.
69 * ipa-prop.c: Include data-streamer.h.
70 * ipa-pure-const.c: Include data-streamer.h.
71 * lto-cgraph.c: Include data-streamer.h.
72 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
73 (lto_input_widest_uint_uleb128): Likewise.
74 (lto_input_sleb128): Likewise.
75 (bp_unpack_var_len_unsigned): Likewise.
76 (bp_unpack_var_len_int): Likewise.
77 * lto-section-out.c (lto_output_uleb128_stream): Move to
79 (lto_output_widest_uint_uleb128_stream): Likewise.
80 (lto_output_sleb128_stream): Likewise.
81 (bp_pack_var_len_unsigned): Likewise.
82 (bp_pack_var_len_int): Likewise.
83 * lto-streamer-in.c: Include data-streamer.h and
85 (struct string_slot): Remove. Update all users.
86 (lto_tag_check_set): Make extern.
87 (lto_tag_check_range): Move to lto-streamer.h.
88 (lto_tag_check): Likewise.
89 (hash_string_slot_node): Remove. Update all users.
90 (eq_string_slot_node): Remove. Update all users.
91 (string_for_index): Move to data-streamer-in.c
92 (input_string_internal): Likewise.
93 (input_string_cst): Move to tree-streamer-in.c.
94 (input_identifier): Likewise.
95 (lto_input_string): Move to data-streamer-in.c
96 (input_record_start): Move to data-streamer.h
97 (canon_file_name): Use new definition of struct string_slot
100 (lto_input_location): Make extern.
101 (lto_input_chain): Move to tree-streamer-in.c.
102 (lto_init_eh): Make extern.
103 (input_phi): Move to gimple-streamer-in.c.
104 (input_gimple_stmt): Likewise.
105 (input_bb): Likewise.
106 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
107 (unpack_ts_real_cst_value_fields): Likewise.
108 (unpack_ts_fixed_cst_value_fields): Likewise.
109 (unpack_ts_decl_common_value_fields): Likewise.
110 (unpack_ts_decl_wrtl_value_fields): Likewise.
111 (unpack_ts_decl_with_vis_value_fields): Likewise.
112 (unpack_ts_function_decl_value_fields): Likewise.
113 (unpack_ts_type_common_value_fields): Likewise.
114 (unpack_ts_block_value_fields): Likewise.
115 (unpack_ts_translation_unit_decl_value_fields): Likewise.
116 (unpack_value_fields): Likewise.
117 (lto_materialize_tree): Likewise.
118 (lto_input_ts_common_tree_pointers): Likewise.
119 (lto_input_ts_vector_tree_pointers): Likewise.
120 (lto_input_ts_complex_tree_pointers): Likewise.
121 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
122 (lto_input_ts_decl_common_tree_pointers): Likewise.
123 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
124 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
125 (lto_input_ts_field_decl_tree_pointers): Likewise.
126 (lto_input_ts_function_decl_tree_pointers): Likewise.
127 (lto_input_ts_type_common_tree_pointers): Likewise.
128 (lto_input_ts_type_non_common_tree_pointers): Likewise.
129 (lto_input_ts_list_tree_pointers): Likewise.
130 (lto_input_ts_vec_tree_pointers): Likewise.
131 (lto_input_ts_exp_tree_pointers): Likewise.
132 (lto_input_ts_block_tree_pointers): Likewise.
133 (lto_input_ts_binfo_tree_pointers): Likewise.
134 (lto_input_ts_constructor_tree_pointers): Likewise.
135 (lto_input_ts_target_option): Likewise.
136 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
137 (lto_input_tree_pointers): Likewise.
138 (lto_get_pickled_tree): Likewise.
139 (lto_get_builtin_tree): Likewise.
140 (lto_read_tree): Likewise.
141 (lto_input_integer_cst): Likewise.
142 (lto_input_tree): Likewise.
143 * lto-streamer-out.c: Include data-streamer.h,
144 gimple-streamer.h and streamer-hooks.h.
145 (struct string_slot): Move to data-streamer.h.
146 (hash_string_slot_node): Likewise.
147 (eq_string_slot_node): Likewise.
148 (lto_string_index): Move to data-streamer-out.c.
149 (lto_output_string_with_length): Likewise.
150 (lto_output_string): Likewise.
151 (output_string_cst): Move to tree-streamer-out.c.
152 (output_identifier): Likewise.
153 (output_zero): Move to data-streamer-out.c
154 (output_uleb128): Likewise.
155 (output_sleb128): Likewise.
156 (output_record_start): Move to data-streamer.h
157 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
158 (pack_ts_real_cst_value_fields): Likewise.
159 (pack_ts_fixed_cst_value_fields): Likewise.
160 (pack_ts_decl_common_value_fields): Likewise.
161 (pack_ts_decl_wrtl_value_fields): Likewise.
162 (pack_ts_decl_with_vis_value_fields): Likewise.
163 (pack_ts_function_decl_value_fields): Likewise.
164 (pack_ts_type_common_value_fields): Likewise.
165 (pack_ts_block_value_fields): Likewise.
166 (pack_ts_translation_unit_decl_value_fields): Likewise.
167 (pack_value_fields): Likewise.
168 (lto_output_chain): Likewise.
169 (lto_output_ts_common_tree_pointers): Likewise.
170 (lto_output_ts_vector_tree_pointers): Likewise.
171 (lto_output_ts_complex_tree_pointers): Likewise.
172 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
173 (lto_output_ts_decl_common_tree_pointers): Likewise.
174 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
175 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
176 (lto_output_ts_field_decl_tree_pointers): Likewise.
177 (lto_output_ts_function_decl_tree_pointers): Likewise.
178 (lto_output_ts_type_common_tree_pointers): Likewise.
179 (lto_output_ts_type_non_common_tree_pointers): Likewise.
180 (lto_output_ts_list_tree_pointers): Likewise.
181 (lto_output_ts_vec_tree_pointers): Likewise.
182 (lto_output_ts_exp_tree_pointers): Likewise.
183 (lto_output_ts_block_tree_pointers): Likewise.
184 (lto_output_ts_binfo_tree_pointers): Likewise.
185 (lto_output_ts_constructor_tree_pointers): Likewise.
186 (lto_output_ts_target_option): Likewise.
187 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
188 (lto_output_tree_pointers): Likewise.
189 (lto_output_tree_header): Likewise.
190 (lto_output_builtin_tree): Likewise.
191 (lto_write_tree): Likewise.
192 (lto_output_integer_cst): Likewise.
193 (lto_output_tree): Likewise.
194 (output_phi): Move to gimple-streamer-out.c.
195 (output_gimple_stmt): Likewise.
196 (output_bb): Likewise.
197 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
198 (streamer_hooks): Move to streamer-hooks.c.
199 (check_handled_ts_structures): Move to tree-streamer.c
200 (lto_streamer_cache_add_to_node_array): Likewise.
201 (lto_streamer_cache_insert_1): Likewise.
202 (lto_streamer_cache_insert): Likewise.
203 (lto_streamer_cache_insert_at): Likewise.
204 (lto_streamer_cache_append): Likewise.
205 (lto_streamer_cache_lookup): Likewise.
206 (lto_streamer_cache_get): Likewise.
207 (lto_record_common_node): Likewise.
208 (lto_preload_common_nodes): Likewise.
209 (lto_streamer_cache_create): Likewise.
210 (lto_streamer_cache_delete): Likewise.
211 (streamer_hooks_init): Move to streamer-hooks.c.
212 * lto-streamer.h: Include diagnostic.h
213 (struct output_block, struct lto_input_block,
214 struct data_in, struct bitpack_d): Remove forward
216 (struct bitpack_d): Move to data-streamer.h.
217 (struct lto_streamer_cache_d): Move to tree-streamer.h.
218 (struct streamer_hooks): Move to streamer-hooks.h.
219 (bp_pack_var_len_unsigned): Move to data-streamer.h.
220 (bp_pack_var_len_int): Likewise.
221 (bp_unpack_var_len_unsigned): Likewise.
222 (bp_unpack_var_len_int): Likewise.
223 (lto_input_location): Declare.
224 (lto_tag_check_set): Declare.
225 (lto_init_eh): Declare.
226 (lto_output_tree_ref): Declare.
227 (lto_output_location): Declare.
228 (bitpack_create): Move to data-streamer.h.
229 (bp_pack_value): Likewise.
230 (lto_output_bitpack): Likewise.
231 (lto_input_bitpack): Likewise.
232 (bp_unpack_value): Likewise.
233 (lto_output_1_stream): Likewise.
234 (lto_input_1_unsigned): Likewise.
235 (lto_output_int_in_range): Likewise.
236 (lto_input_int_in_range): Likewise.
237 (bp_pack_int_in_range): Likewise.
238 (bp_unpack_int_in_range): Likewise.
239 (lto_output_enum): Likewise.
240 (lto_input_enum): Likewise.
241 (bp_pack_enum): Likewise.
242 (bp_unpack_enum): Likewise.
243 * streamer-hooks.c: New.
244 * streamer-hooks.h: New.
245 * tree-streamer-in.c: New.
246 * tree-streamer-out.c: New.
247 * tree-streamer.c: New.
248 * tree-streamer.h: New.
250 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
252 * gthr-posix95.h: Remove.
253 * gthr.h [_PTHREADS95]: Remove.
254 * configure.ac (enable_threads): Remove posix95.
255 * configure: Regenerate.
256 * doc/install.texi (Configuration, --enable-threads): Remove
259 2011-08-07 Uros Bizjak <ubizjak@gmail.com>
262 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
264 (ix86_print_operand_address): Handle zero-extended addresses.
265 (memory_address_length): Add length of addr32 prefix for
266 zero-extended addresses.
267 (ix86_secondary_reload): Handle moves to/from double-word general
268 registers from/to zero-extended addresses.
269 * config/i386/predicates.md (lea_address_operand): Reject
270 zero-extended operands.
272 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
275 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
277 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
278 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
280 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
281 (_Unwind_Context_Reg_Val): Likewise.
282 (_Unwind_Get_Unwind_Word): Likewise.
283 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
284 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
285 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
286 for EXTENDED_CONTEXT_BIT.
287 (__frame_state_for): Likewise.
288 (uw_init_context_1): Likewise.
289 (_Unwind_GetGR): Updated.
290 (_Unwind_SetGR): Likewise.
291 (_Unwind_GetGRPtr): Likewise.
292 (_Unwind_SetGRPtr): Likewise.
293 (_Unwind_SetGRValue): Likewise.
294 (_Unwind_GRByValue): Likewise.
295 (uw_install_context_1): Likewise.
297 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
298 ASSUME_EXTENDED_UNWIND_CONTEXT.
299 * doc/tm.texi: Regenerated.
301 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
303 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
305 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
307 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
309 (DEC Alpha Options, -mtune): Likewise.
310 (MIPS Options, -march): native is supported on IRIX.
312 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
314 * config/sparc/driver-sparc.c: New file.
315 * config/sparc/x-sparc: New file.
316 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
317 * config/sparc/sparc.opt (native): New value for enum processor_type.
318 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
319 * config/sparc/sparc.c (sparc_option_override): Abort if
320 PROCESSOR_NATIVE gets here.
321 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
322 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
323 DRIVER_SELF_SPECS): Define.
324 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
325 (SPARC Options, -mtune): Likewise.
326 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
328 * configure: Regenerate.
329 * Makefile.in (EXTRA_GCC_LIBS): Set.
330 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
331 (cpp$(exeext)): Likewise.
333 2011-08-08 Richard Guenther <rguenther@suse.de>
335 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
337 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
340 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
342 PR tree-optimization/50005
343 * ipa-inline-analysis (remap_predicate): Add cast to
344 silence signed/unsigned comparison warning.
346 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
348 * modulo-sched.c (get_sched_window): Use a table for the debug output.
349 Print the current ii.
350 (sms_schedule_by_order): Reduce whitespace in dump line.
352 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
354 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
355 and one loop for successors. Fix upper bound of memory range.
357 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
360 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
361 (TARGET_INSTANTIATE_DECLS): New define.
363 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
364 Mikael Morin <mikael.morin@sfr.fr>
366 * Makefile.in (INCLUDES_FOR_TARGET): New.
367 (LIBGCC2_CFLAGS): Use it.
368 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
370 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
372 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
373 frame->save_regs_using_mov calculation.
375 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
377 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
378 * config/i386/sse.md (castmode): New mode attribute.
379 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
380 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
382 2011-08-05 Jan Hubicka <jh@suse.cz>
385 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
387 2011-08-05 Jan Hubicka <jh@suse.cz>
390 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
392 (create_emultls_var):New function.
393 (ipa_lower_emutls): Handle aliases correctly.
395 2011-08-05 Jan Hubicka <jh@suse.cz>
398 * ipa-inline.c (recursive_inlining): Look through aliases.
400 2011-08-05 Jason Merrill <jason@redhat.com>
402 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
403 declarations to beginning of function.
405 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
407 PR rtl-optimization/49900
408 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
409 ensure basic blocks stay in the same order.
411 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
413 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
415 (s390_expand_atomic): Same.
417 2011-08-05 Richard Henderson <rth@redhat.com>
420 * dwarf2cfi.c (scan_insn_after): Split out of ...
421 (scan_trace): ... here. Correctly place notes wrt sequences.
423 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
424 Richard Henderson <rth@redhat.com>
427 * expr.c (fixup_args_size_notes): Look through no-op moves.
429 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
431 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
432 of "m" for operand 0. Add type and mode attribute.
433 (*pushxf_nointeger"): Use "<" constraint for operand 0.
434 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
435 constraint instead of "o" for opreand 1.
436 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
437 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
438 operand 0, alternative 4.
439 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
441 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
443 * config/i386/predicates.md (lea_address_operand): Rename from
444 no_seg_address_operand.
445 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
446 (*lea_1_zext): Ditto.
448 (*lea_2_zext): Ditto.
450 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
452 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
453 parts.base and parts.index.
454 * config/i386/predicates.md (aligned_operand): Ditto.
455 (cmpxchg8b_pic_memory_operand): Ditto.
457 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
459 * config/soft-fp: Move to ../libgcc.
460 * Makefile.in (SFP_MACHINE): Remove.
461 (libgcc-support): Remove $(SFP_MACHINE) dependency.
462 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
463 * config/arm/t-arm-softfp: Move to
464 ../libgcc/config/arm/t-softfp.
465 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
466 * config/c6x/t-c6x-softfp: Remove.
467 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
468 * config/i386/t-fprules-softfp: Move to
469 ../libgcc/config/t-softfp-tf.
470 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
471 * config/ia64/t-fprules-softfp: Remove.
472 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
473 * config/lm32/t-fprules-softfp: Remove.
474 * config/moxie/sfp-machine.h: Remove.
475 * config/moxie/t-moxie-softfp: Remove.
476 * config/rs6000/darwin-ldouble-format: Move to
477 ../libgcc/config/rs6000/ibm-ldouble-format.
478 * config/rs6000/darwin-ldouble.c: Move to
479 ../libgcc/config/rs6000/ibm-ldouble.c
480 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
481 * config/rs6000/libgcc-ppc64.ver: Likewise.
482 * config/rs6000/sfp-machine.h: Likewise.
483 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
484 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
485 (LIB2FUNCS_EXTRA): Remove.
486 (TARGET_LIBGCC2_CFLAGS): Remove.
487 * config/rs6000/t-aix52: Likewise
488 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
489 $(srcdir)/config/rs6000/darwin-ldouble.c.
490 (SHLIB_MAPFILES): Remove.
491 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
492 $(srcdir)/config/rs6000/darwin-ldouble.c.
493 * config/rs6000/t-fprules-softfp: Move to
494 ../libgcc/config/t-softfp-sfdf.
495 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
496 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
497 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
498 $(srcdir)/config/rs6000/darwin-ldouble.c.
499 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
500 * config/score/t-score-softfp: Remove.
501 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
502 soft-fp/t-softfp from tmake_file.
503 (arm*-*-uclinux*): Likewise.
504 (arm*-*-ecos-elf): Likewise.
505 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
506 (arm*-*-rtems*): Likewise.
507 (arm*-*-elf): Likewise.
508 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
510 (moxie-*-uclinux*): Likewise.
511 (moxie-*-rtems*): Likewise.
512 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
514 (lm32-*-rtems*): Likewise.
515 (lm32-*-uclinux*): Likewise.
516 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
517 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
518 (powerpc-*-linux*, powerpc64-*-linux*): Remove
519 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
520 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
522 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
524 (tic6x-*-uclinux): Likewise.
525 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
526 soft-fp/t-softfp from tmake_file.
527 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
528 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
529 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
530 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
531 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
533 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
535 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
536 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
537 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
539 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
540 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
542 * config/arm/t-vxworks: Likewise.
543 * config/arm/t-wince-pe: Likewise.
544 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
545 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
546 * config/bfin/t-bfin-elf: Likewise.
547 * config/bfin/t-bfin-linux: Likewise.
548 * config/bfin/t-bfin-uclinux: Likewise.
549 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
551 * config/fr30/t-fr30: Likewise.
552 * config/frv/t-frv: Likewise.
553 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
554 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
555 * config/m32c/t-m32c: Likewise.
556 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
557 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
558 * config/mcore/t-mcore: Likewise.
559 * config/mep/t-mep: Likewise.
560 * config/microblaze/t-microblaze: Likewise.
561 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
562 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
563 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
564 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
565 * config/mn10300/t-linux: Remove.
566 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
567 * config/pdp11/t-pdp11: Likewise.
568 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
569 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
570 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
571 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
572 * config/rs6000/t-aix52: Likewise.
573 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
574 $(srcdir)/config/rs6000/ppc64-fp.c.
575 * config/rs6000/t-fprules-fpbit: Remove.
576 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
577 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
578 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
579 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
580 * config/sparc/t-elf: Likewise.
581 * config/sparc/t-leon: Likewise.
582 * config/sparc/t-leon3: Likewise.
583 * config/spu/t-spu-elf: Likewise.
584 (DPBIT_FUNCS): Remove.
585 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
586 * config/v850/t-v850: Likewise.
587 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
589 (h8300-*-rtems*): Set libgcc_tm_file.
590 (h8300-*-elf*): Likewise.
591 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
593 (powerpc-*-eabisim*): Likewise.
594 (powerpc-*-elf*): Likewise.
595 (powerpc-*-eabialtivec*): Likewise.
596 (powerpc-xilinx-eabi*): Likewise.
597 (powerpc-*-eabi*): Likewise.
598 (powerpc-*-rtems*): Likewise.
599 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
600 (powerpcle-*-elf*): Likewise.
601 (powerpcle-*-eabisim*): Likewise.
602 (powerpcle-*-eabi*): Likewise.
603 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
604 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
605 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
608 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
610 * Makefile.in (UNWIND_H): Remove.
611 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
612 ../libgcc/Makefile.in.
613 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
614 (LIBUNWINDDEP): Remove.
615 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
616 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
617 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
618 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
619 Don't copy $(UNWIND_H).
620 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
621 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
622 * aclocal.m4: Regenerate.
623 * configure: Regenerate.
624 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
625 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
626 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
627 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
628 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
629 * config/arm/libunwind.S, config/arm/pr-support.c,
630 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
631 ../libgcc/config/arm.
632 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
633 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
634 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
635 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
636 ($(T)frvend$(objext)): Likewise.
637 * config/ia64/t-glibc (LIB2ADDEH): Remove.
638 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
639 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
640 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
641 ../libgcc/config/ia64.
642 * config/ia64/t-hpux (LIB2ADDEH): Remove.
643 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
644 * config/ia64/t-vms (LIB2ADDEH): Remove.
645 * config/ia64/vms.h (UNW_IVMS_MODE,
646 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
647 * config/picochip/t-picochip (LIB2ADDEH): Remove.
648 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
649 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
650 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
651 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
652 $(srcdir)/../libgcc to refer to unwinder sources.
653 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
654 * config/t-darwin (LIB2ADDEH): Remove.
655 * config/t-freebsd (LIB2ADDEH): Remove.
656 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
657 * config/t-libunwind-elf: Move to ../libgcc/config.
658 * config/t-linux (LIB2ADDEH): Remove.
659 * config/t-sol2 (LIB2ADDEH): Remove.
660 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
661 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
663 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
665 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
667 * doc/invoke.texi: Document core-avx-i.
669 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
671 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
673 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
675 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
676 result of multiple results reduction when extracting the final
677 value using scalar code.
679 2011-08-05 Richard Guenther <rguenther@suse.de>
681 PR tree-optimization/49984
682 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
684 2011-08-05 Richard Guenther <rguenther@suse.de>
686 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
687 return true for constant integer ranges.
688 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
689 BIT_IOR_EXPR handling.
691 2011-08-04 Kai Tietz <ktietz@redhat.com>
693 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
694 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
696 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
698 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
699 pattern def statement, and its access macro.
700 (NUM_PATTERNS): Set to 5.
701 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
702 pattern def statement.
703 (vect_transform_loop): Likewise.
704 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
705 function vect_recog_over_widening_pattern ().
706 (vect_operation_fits_smaller_type): New function.
707 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
709 (vect_pattern_recog_1): Move the code that marks pattern
710 statements to vect_mark_pattern_stmts (), and call it. Update
712 * tree-vect-stmts.c (vect_supportable_shift): New function.
713 (vect_analyze_stmt): Handle pattern def statement.
714 (new_stmt_vec_info): Initialize pattern def statement.
716 2011-08-04 Richard Henderson <rth@redhat.com>
719 * config/i386/i386.c (ix86_expand_call): Don't create nested
720 PARALLELs for TARGET_VZEROUPPER.
721 (ix86_split_call_vzeroupper): Fix extraction of the original call.
722 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
723 recognize nested PARALLELs.
724 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
725 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
726 *sibcall_value_pop_vzeroupper): Likewise.
728 2011-08-04 Richard Henderson <rth@redhat.com>
731 * calls.c (expand_call): Use fixup_args_size_notes for
733 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
734 in non-standard modes.
736 2011-08-04 Jakub Jelinek <jakub@redhat.com>
738 * gcc.c (self_spec): New variable.
739 (static_specs): Add self_spec.
740 (main): Call do_self_spec on "self_spec" specs after reading
741 user specs files. Move compare_debug handling right after that.
743 2011-08-04 Richard Guenther <rguenther@suse.de>
745 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
746 (value_range_nonnegative_p): New function.
747 (ssa_name_nonnegative_p): Use it.
748 (value_range_constant_singleton): New function.
749 (op_with_constant_singleton_value_range): Use it.
750 (extract_range_from_binary_expr_1): New function, split out from ...
751 (extract_range_from_binary_expr): ... this. Remove fallback
752 constant folding done here.
754 2011-08-04 Richard Guenther <rguenther@suse.de>
756 PR tree-optimization/49806
757 * tree-vrp.c (op_with_boolean_value_range_p): New function.
758 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
759 a new statement for a final conversion to bool.
761 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
763 * gengtype-state.c: Include "bconfig.h" if
764 GENERATOR_FILE is defined, "config.h" otherwise.
765 * gengtype.c: Likewise.
766 * gengtype-lex.l: Likewise.
767 * gengtype-parse.c: Likewise.
768 * Makefile.in (gengtype-lex.o-warn): New variable.
769 (plugin_resourcesdir): Likewise.
770 (plugin_bindir): Likewise.
771 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
772 (MOSTLYCLEANFILES): Add gengtype$(exeext).
773 (native): Depend on gengtype$(exeext) is $enable_plugin
775 (gtype.state): Depend on s-gtype. Use temporary file.
776 (gengtype-lex.o): New rule.
777 (gengtype-parse.o): Likewise.
778 (gengtype-state.o): Likewise.
779 (gengtype$(exeext)): Likewise.
780 (install-gengtype): Likewise.
781 (gengtype.o): Likewise.
782 (build/gengtype.o): Depend on version.h.
783 (build/gengtype-state): Depend on double-int.h, version.h,
784 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
785 (install-plugin): Depend on install-gengtype.
787 2011-08-04 Jakub Jelinek <jakub@redhat.com>
790 * tree.h (init_attributes): New prototype.
791 * attribs.c (init_attributes): No longer static.
793 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
795 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
798 2011-08-03 David Li <davidxl@google.com>
800 * tree-optimize.c (execute_fixup_cfg): Fix up entry
801 outgoing edge counts after inlining.
803 2011-08-03 David Li <davidxl@google.com>
805 * profile.c (compute_branch_probabilities): Compute
806 function frequency after profile annotation.
808 2011-08-04 Alan Modra <amodra@gmail.com>
810 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
811 use_backchain_to_restore_sp initialisation.
812 (rs6000_legitimate_offset_address_p): Simplify offset test.
814 2011-08-03 Richard Henderson <rth@redhat.com>
816 * config/spu/spu.md: Use define_c_enum instead of define_constants.
817 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
820 2011-08-03 Richard Henderson <rth@redhat.com>
823 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
825 2011-08-03 Jakub Jelinek <jakub@redhat.com>
827 PR tree-optimization/49948
828 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
830 2011-08-03 Anatoly Sokolov <aesok@post.ru>
832 * config/m32c/m32c.c (class_sizes): Remove.
833 (reduce_class): Change arguments and return type to reg_class_t.
834 Change type cc var to HARD_REG_SET. Change type best var to
835 reg_class_t. Change type best_size var to unsigned int. Remove
836 initialization class_sizes var. Use reg_class_size array instead
837 of class_sizes. Use reg_class_contents array instead
840 2011-08-03 Richard Guenther <rguenther@suse.de>
843 * fold-const.c (fold_binary_loc): Only associate
844 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
847 2011-08-03 Alan Modra <amodra@gmail.com>
849 PR rtl-optimization/49941
850 * jump.c (mark_jump_label): Comment.
851 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
852 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
853 (mark_used_flags): Don't mark RETURN.
855 2011-08-03 Richard Guenther <rguenther@suse.de>
857 PR tree-optimization/49938
858 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
859 deal with a POLYNOMIAL_CHREC.
861 2011-08-03 Revital Eres <revital.eres@linaro.org>
863 * modulo-sched.c (calculate_stage_count,
864 calculate_must_precede_follow, get_sched_window,
865 try_scheduling_node_in_cycle, remove_node_from_ps): Add
867 (update_node_sched_params, set_must_precede_follow, optimize_sc):
869 (reset_sched_times): Call update_node_sched_params.
870 (sms_schedule): Call optimize_sc.
871 (get_sched_window): Change function arguments.
872 (sms_schedule_by_order): Update call to get_sched_window.
873 Call set_must_precede_follow.
874 (calculate_stage_count): Add function argument.
876 2011-08-02 Richard Henderson <rth@redhat.com>
880 * reg-notes.def (REG_ARGS_SIZE): New.
881 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
882 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
883 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
884 different stack levels.
885 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
886 (maybe_move_args_size_note): New.
887 (combine_stack_adjustments_for_block): Use it.
888 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
889 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
890 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
891 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
893 (queued_args_size): Remove.
894 (add_cfi_args_size): Assert size is non-negative.
895 (stack_adjust_offset, dwarf2out_args_size): Remove.
896 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
897 (notice_args_size, notice_eh_throw): New.
898 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
899 (dwarf2out_frame_debug_adjust_cfa): Likewise.
900 (dwarf2out_frame_debug_cfa_offset): Likewise.
901 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
902 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
903 (change_cfi_row): Don't emit args_size.
904 (maybe_record_trace_start_abnormal): Split out from ...
905 (maybe_record_trace_start): Here. Set args_size_undefined.
906 (create_trace_edges): Update to match.
907 (scan_trace): Handle REG_ARGS_SIZE.
908 (connect_traces): Connect args_size between EH insns.
909 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
910 * explow.c (suppress_reg_args_size): New.
911 (adjust_stack_1): Split out from ...
912 (adjust_stack): ... here.
913 (anti_adjust_stack): Use it.
914 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
915 * expr.c (mem_autoinc_base): New.
916 (fixup_args_size_notes): New.
917 (emit_single_push_insn_1): Rename from emit_single_push_insn.
918 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
919 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
920 * reload1.c (reload_as_needed): Likewise.
921 * rtl.h (fixup_args_size_notes): Declare.
923 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
926 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
928 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
929 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
931 2011-08-02 Richard Henderson <rth@redhat.com>
933 * config/h8300/h8300.c (push, pop): Return the insn.
934 (h8300_swap_into_er6): Generate correct unwind info.
935 (h8300_swap_out_of_er6): Likewise.
936 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
937 complex cfa expression.
938 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
940 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
942 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
944 2011-08-02 Richard Henderson <rth@redhat.com>
947 * config/h8300/h8300.c (h8300_move_ok): New.
948 * config/h8300/h8300-protos.h: Declare it.
949 * config/h8300/h8300.md (P): New mode iterator.
950 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
951 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
952 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
953 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
954 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
955 and pushqi1_h8300hs_normal; use PRE_MODIFY and
956 register_no_sp_elim_operand.
957 (*pushhi1_h8300hs_<P>): Similarly.
958 (pushqi1, pushhi1, pushhi1_h8300): Remove.
959 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
961 2011-08-02 Richard Henderson <rth@redhat.com>
964 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
966 2011-08-02 Jakub Jelinek <jakub@redhat.com>
968 * c-parser.c (enum c_parser_prec): New enum, moved from within
969 c_parser_binary_expression.
970 (c_parser_binary_expression): Add PREC argument. Stop parsing
971 if operator has lower or equal precedence than PREC.
972 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
974 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
975 Adjust c_finish_omp_atomic caller.
976 (c_parser_omp_taskyield): New function.
977 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
978 (c_parser_omp_clause_name): Handle final and mergeable clauses.
979 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
981 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
982 and PRAGMA_OMP_CLAUSE_MERGEABLE.
983 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
984 (c_parser_omp_clause_reduction): Handle min and max.
985 * c-typeck.c (c_finish_omp_clauses): Don't complain about
986 const qualified predetermined vars in firstprivate clause.
987 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
988 Handle MIN_EXPR and MAX_EXPR.
989 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
990 and OMP_CLAUSE_MERGEABLE.
991 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
992 and OMP_ATOMIC_CAPTURE_NEW.
993 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
994 OMP_CLAUSE_MERGEABLE.
995 (omp_clause_code_name): Likewise.
996 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
997 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
998 and OMP_CLAUSE_MERGEABLE.
999 (OMP_CLAUSE_FINAL_EXPR): Define.
1000 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1001 OMP_CLAUSE_MERGEABLE.
1002 (expand_task_call): Likewise.
1003 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1004 (expand_omp_atomic_fetch_op): Handle cases where old or new
1005 value is needed afterwards.
1006 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1007 expand_omp_atomic_store.
1008 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1009 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1010 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1011 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1012 * tree-nested.c (convert_nonlocal_omp_clauses,
1013 convert_local_omp_clauses): Likewise.
1014 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1015 OMP_ATOMIC_CAPTURE_NEW): New.
1016 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1017 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1019 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1020 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1021 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1023 2011-08-02 Kai Tietz <ktietz@redhat.com>
1025 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1027 (ssa_forward_propagate_and_combine): Interprete result of
1028 forward_propagate_comparison.
1029 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1030 boolean-typed operands for comparisons.
1032 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
1034 * config/avr/libgcc.S: Gather related function in the
1036 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1037 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1039 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1040 __udivmodsi4, __divmodsi4, __prologue_saves__,
1041 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1042 __do_copy_data, __do_clear_bss, __do_global_ctors,
1043 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1045 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
1048 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1049 (stack_protect_test): The pattern compares ptr_mode value.
1051 2011-08-02 Alan Modra <amodra@gmail.com>
1053 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1054 note for save_LR_around_toc_setup sequence.
1056 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1058 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1060 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1061 Joseph Myers <joseph@codesourcery.com>
1063 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1064 * hwint.c: Include diagnostic-core.h.
1066 (gcd): Moved here...
1069 (least_common_multiple): Moved here...
1070 * hwint.h (gcd): ... from here.
1071 (least_common_multiple): ... from here.
1072 (HOST_WIDE_INT_MIN): New.
1073 (HOST_WIDE_INT_MAX): New.
1074 (abs_hwi): Declared.
1076 (pos_mul_hwi): Declared.
1077 (mul_hwi): Declared.
1078 (least_common_multiple): Declared.
1079 * omega.c (check_pos_mul): Removed.
1080 (check_mul): Removed.
1081 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1082 mul_hwi instead of check_mul.
1084 2011-08-01 Richard Henderson <rth@redhat.com>
1087 * config/avr/avr.h (PUSH_ROUNDING): New.
1088 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1089 (*pushhi, *pushsi, *pushsf): Remove.
1090 (MPUSH): New mode iterator.
1091 (push<MPUSH>1): New expander.
1093 2011-08-01 Anatoly Sokolov <aesok@post.ru>
1095 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1096 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1097 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1098 mmix_preferred_output_reload_class): Remove.
1099 * config/mmix/mmix.c (mmix_preferred_reload_class,
1100 mmix_preferred_output_reload_class): Make static. Change rclass
1101 argument and return type to reg_class_t.
1102 (TARGET_PREFERRED_RELOAD_CLASS,
1103 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1105 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1107 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1110 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1113 * config/i386/i386.md (PTR): New.
1114 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1115 (stack_protect_test): Likewise.
1116 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1117 (stack_tls_protect_set_<mode>): Likewise.
1118 (stack_tls_protect_test_<mode>): Likewise.
1120 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
1123 * config/i386/i386.c (ix86_address_subreg_operand): New.
1124 (ix86_decompose_address): Use ix86_address_subreg_operand.
1125 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1126 register_no_elim_operand in DImode.
1128 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
1130 PR tree-optimization/49926
1131 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1132 in a chain doesn't have uses both inside and outside the loop.
1134 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1136 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1137 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1138 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1139 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1140 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1141 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1142 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1143 to detect if XJMP must not be skipped.
1145 2011-08-02 Alan Modra <amodra@gmail.com>
1147 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1149 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1150 (rs6000_emit_prologue): Don't prematurely return when
1151 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1152 save_toc_in_prologue case.
1153 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1156 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1158 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1159 * config/avr/predicates.md: Ditto.
1160 * config/avr/driver-avr.c: Ditto.
1161 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1163 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1165 * calls.c (emit_library_call_value_1): Declare size only if
1166 BLOCK_REG_PADDING is defined.
1168 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1171 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1172 (x86_64-*-*): Likewise.
1173 * config/i386/i386.opt (mlzcnt): New.
1174 * config/i386/abmintrin.h: File removed.
1175 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1176 * config/i386/lzcntintrin.h: ... here. New file.
1177 (__lzcnt): Rename to ...
1178 (__lzcnt32): ... this.
1179 * config/i386/bmiintrin.h (head): Update copyright year.
1180 (__lzcnt_u16): Removed.
1181 (__lzcnt_u32): Likewise.
1182 (__lzcnt_u64): Likewise.
1183 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1184 is defined, remove abmintrin.h.
1185 * config/i386/cpuid.h (bit_LZCNT): New.
1186 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1188 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1189 __LZCNT__ if needed.
1190 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1191 (ix86_option_override_internal): Handle LZCNT option.
1192 (ix86_valid_target_attribute_inner_p): Likewise.
1193 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1194 * config/i386/i386.h (TARGET_LZCNT): New.
1195 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1196 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1197 (clz<mode>2_lzcnt): Likewise.
1198 * doc/invoke.texi: Mention -mlzcnt option.
1199 * doc/extend.texi: Likewise.
1201 2011-08-01 Julian Brown <julian@codesourcery.com>
1203 * configure.ac (fixed-point): Add ARM support.
1204 * configure: Regenerate.
1205 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1206 (arm_set_fixed_optab_libfunc): New.
1207 (arm_set_fixed_conv_libfunc): New.
1208 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1210 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1211 return values in SImode.
1212 (arm_return_in_msb): Return fixed-point types in the msb.
1213 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1215 (arm_scalar_mode_supported_p): Support fixed-point modes.
1216 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1217 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1218 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1219 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1220 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1221 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1223 (qaddsub_suf): New mode attribute.
1224 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1226 * config/arm/predicates.md (sat_shift_operator): New predicate.
1227 * config/arm/arm-fixed.md: New.
1228 * config/arm/arm.md: Include arm-fixed.md.
1229 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1231 2011-08-01 Julian Brown <julian@codesourcery.com>
1233 * calls.c (emit_library_call_value_1): Support padding for libcall
1234 arguments and return values.
1235 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1236 downwards in big-endian mode.
1238 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1241 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1242 * config/sol2-protos.h: Likewise.
1243 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1245 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1246 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1248 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1250 2011-08-01 Julian Brown <julian@codesourcery.com>
1252 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1254 2011-08-01 Julian Brown <julian@codesourcery.com>
1256 * final.c (output_addr_const): Print fixed-point constants as
1259 2011-08-01 Richard Guenther <rguenther@suse.de>
1261 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1262 bitsiztype TYPE_MAX_VALUE.
1264 2011-08-01 Julian Brown <julian@codesourcery.com>
1266 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1269 2011-07-31 Richard Henderson <rth@redhat.com>
1271 * config/h8300/crti.asm: Add flags to .section directive.
1272 * config/h8300/crtn.asm: Likewise.
1274 2011-07-31 Richard Henderson <rth@redhat.com>
1276 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1277 * tree.c (build_common_tree_nodes): Likewise.
1279 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1282 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1283 (divsi3_i1): Likewise.
1285 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1287 PR tree-optimization/49749
1288 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1289 (PHI_LOOP_BIAS): New macro.
1290 (phi_rank): New function.
1291 (loop_carried_phi): Likewise.
1292 (propagate_rank): Likewise.
1293 (get_rank): Add calls to phi_rank and propagate_rank.
1295 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1297 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1299 (PTRDIFF_TYPE): Likewise.
1301 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
1304 * config/i386/i386.md (strset): Do not expand strset_singleop
1305 when %eax or $edi are fixed.
1306 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1307 (*strsetsi_1): Ditto.
1308 (*strsethi_1): Ditto.
1309 (*strsetqi_1): Ditto.
1310 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1311 (*rep_stossi): Ditto.
1312 (*rep_stosqi): Ditto.
1313 (*strlenqi_1): Ditto.
1314 (cmpstrnsi): Also fail when %ecx is fixed.
1315 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1316 (*cmpstrnqi_1): Ditto.
1317 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1318 (*strmovsi_1): Ditto.
1319 (*strmovhi_1): Ditto.
1320 (*strmovqi_1): Ditto.
1321 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1322 (*rep_movsi): Ditto.
1323 (*rep_movqi): Ditto.
1325 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1328 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1329 Disable instruction scheduling for non-ColdFire targets.
1330 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1332 2011-07-31 Revital Eres <revital.eres@linaro.org>
1334 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1335 of anti-dep edge from a branch.
1336 (add_cross_iteration_register_deps): Create anti-dep edge from
1339 2011-07-31 Revital Eres <revital.eres@linaro.org>
1341 * modulo-sched.c: Change comment.
1342 (reset_sched_times): Fix print message.
1343 (print_partial_schedule): Add print info.
1345 2011-07-31 Tom de Vries <tom@codesourcery.com>
1348 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1349 get_object_alignment and TYPE_ALIGN.
1351 2011-07-30 Tom de Vries <tom@codesourcery.com>
1354 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1355 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1357 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1359 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1361 (cpu_types): New array.
1362 (cputype): New function.
1363 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1364 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1365 * config.host: Also use driver-native.o, mips/x-native on
1367 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1368 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1369 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1371 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1375 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1376 in nested parallel and outer is a gimple_reg, mark it as addressable
1377 and set its bit in task_shared_vars bitmap too.
1379 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1381 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1383 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1385 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1386 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1387 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1388 AMASK_LOCKPFTCHOK): Define.
1389 (host_detect_local_cpu): Remove buf, f, cpu_names.
1390 Define cpu_types, implver, amask.
1391 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1393 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1395 * config/alpha/osf5.h [__alpha__ || __alpha]
1396 (host_detect_local_cpu): Declare.
1397 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1398 (DRIVER_SELF_SPECS): Define.
1400 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1403 * config/i386/i386.md (*load_tp_x32): New.
1404 (*load_tp_x32_zext): Ditto.
1405 (*add_tp_x32): Ditto.
1406 (*add_tp_x32_zext): Ditto.
1407 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1408 (*add_tp_<mode>): Ditto.
1409 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1410 ptr_mode and convert to Pmode if needed.
1412 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1415 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1416 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1417 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1418 Add X to register footprint: Clobber r26/r27.
1420 2011-07-29 Richard Guenther <rguenther@suse.de>
1422 * builtins.c (fold_builtin_signbit): Build the comparison
1425 2011-07-29 Richard Guenther <rguenther@suse.de>
1427 PR tree-optimization/49893
1428 * tree-predcom.c (suitable_reference_p): Volatile references
1431 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1434 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1435 (__ctzsi2): Result for 0 may be undefined.
1436 (__ctzhi2): Result for 0 may be undefined.
1437 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1438 (__popcountsi2): Ditto. And don't clobber r26.
1439 (__popcountdi2): Ditto. And don't clobber r27.
1440 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1441 (parityhi2): New expand.
1442 (paritysi2): New expand.
1443 (popcounthi2): New expand.
1444 (popcountsi2): New expand.
1445 (clzhi2): New expand.
1446 (clzsi2): New expand.
1447 (ctzhi2): New expand.
1448 (ctzsi2): New expand.
1449 (ffshi2): New expand.
1450 (ffssi2): New expand.
1451 (copysignsf3): New insn.
1452 (bswapsi2): New expand.
1453 (*parityhi2.libgcc): New insn.
1454 (*parityqihi2.libgcc): New insn.
1455 (*paritysihi2.libgcc): New insn.
1456 (*popcounthi2.libgcc): New insn.
1457 (*popcountsi2.libgcc): New insn.
1458 (*popcountqi2.libgcc): New insn.
1459 (*popcountqihi2.libgcc): New insn-and-split.
1460 (*clzhi2.libgcc): New insn.
1461 (*clzsihi2.libgcc): New insn.
1462 (*ctzhi2.libgcc): New insn.
1463 (*ctzsihi2.libgcc): New insn.
1464 (*ffshi2.libgcc): New insn.
1465 (*ffssihi2.libgcc): New insn.
1466 (*bswapsi2.libgcc): New insn.
1468 2011-07-29 Richard Guenther <rguenther@suse.de>
1470 * tree-vrp.c (get_value_range): Only set parameter default
1471 definitions to varying, leave others at undefined.
1472 (extract_range_from_binary_expr): Fix undefined handling.
1473 (vrp_visit_phi_node): Handle merged undefined state.
1475 2011-07-29 Wei Guozhi <carrot@google.com>
1477 PR rtl-optimization/49799
1478 * combine.c (make_compound_operation): Check if the bit field is valid
1479 before change it to bit field extraction.
1481 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1483 PR rtl-optimization/49891
1484 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1485 newly created returnjumps.
1487 2011-07-28 DJ Delorie <dj@redhat.com>
1489 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1490 local frame in a naked function, and produce a suitable error for
1493 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1494 registers to be reloaded in HI classes when the target is HI.
1496 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1498 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1499 bound_one, bound_two.
1501 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1504 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1506 (translate_clast): Same.
1507 (translate_clast_assignment): New.
1509 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1511 PR tree-optimization/49876
1512 * sese.c (rename_uses): Do not return false on gloog_error: set
1513 the new_expr to integer_zero_node and continue code generation.
1514 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1516 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1519 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1520 arguments also check if they aren't initialized with a MODE_INT
1521 mode of the same size.
1523 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
1525 * expr.c (get_bit_range): Handle *MEM_REF's.
1527 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
1529 * rtlanal.c (tablejump_p): False for returns.
1530 * reorg.c (first_active_target_insn): New static function.
1531 (find_end_label): Set JUMP_LABEL for a new returnjump.
1532 (optimize_skip, get_jump_flags, rare_destination,
1533 mostly_true_jump, get_branch_condition,
1534 steal_delay_list_from_target, own_thread_p,
1535 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1536 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1537 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1538 * jump.c (delete_related_insns): Likewise.
1539 (jump_to_label_p): New function.
1540 (redirect_target): New static function.
1541 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
1542 (redirect_jump_1): Assert that the new label is nonnull.
1543 (redirect_jump): Likewise.
1544 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1545 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1547 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
1548 changed. Ensure that the right label is passed to redirect_jump.
1549 * function.c (emit_return_into_block,
1550 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1551 ret_rtx in their JUMP_LABEL.
1552 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1553 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1554 pass ret_rtx as label.
1555 * cfglayout.c (fixup_reorder_chain): Use
1556 force_nonfallthru_and_redirect rather than force_nonfallthru.
1557 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1558 * rtl.h (ANY_RETURN_P): New macro.
1559 (jump_to_label_p): Declare.
1560 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1562 (mark_target_live_regs): Likewise.
1563 * basic-block.h (force_nonfallthru_and_redirect): Declare.
1564 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1565 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1566 alpha_tablejump_best_label): Remove functions.
1567 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1568 alpha_tablejump_best_label): Remove declarations.
1569 * config/sh/sh.c (barrier_align, split_branches): Adjust for
1570 ret_rtx in JUMP_LABELs.
1571 * config/arm/arm.c (is_jump_table): Likewise.
1573 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1575 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1576 special predicate. Remove explicit mode checks.
1578 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1580 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1581 DW_AT_data_member_location containing just DW_OP_plus_uconst.
1584 * dwarf2out.c (size_of_die, value_format, output_die): Use
1585 DW_FORM_udata instead of DW_FORM_data[48] for
1586 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1588 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1590 * config/i386/i386.md (*tls_global_dynamic_64): Update
1593 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1596 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1597 tls_symbolic_operand check. Update code sequence for TARGET_X32.
1598 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1599 (tls_dynamic_gnu2_64): Ditto.
1600 (*tls_dynamic_gnu2_lea_64): Ditto.
1601 (*tls_dynamic_gnu2_call_64): Ditto.
1602 (*tls_dynamic_gnu2_combine_64): Ditto.
1604 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1606 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1608 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1611 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1613 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1615 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1616 before the core constraints. Adjust attributes.
1617 ("*thumb2_movdf_vfp"): Likewise.
1619 2011-07-28 Kai Tietz <ktietz@redhat.com>
1621 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1622 (simplify_truth_ops_using_ranges): Likewise.
1623 (build_assert_expr_for): Likewise.
1624 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1625 and handle BIT_NOT_EXPR for truth-operation.
1627 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1630 Undo r176835 from trunk
1631 2011-07-27 Georg-Johann Lay
1633 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1636 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1637 Add _muluhisi3, _mulshisi3, _usmulhisi3.
1638 * config/avr/libgcc.S (__mulsi3): Rewrite.
1639 (__mulhisi3): Rewrite.
1640 (__umulhisi3): Rewrite.
1641 (__usmulhisi3): New.
1645 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
1647 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
1648 (pseudo_register_or_const_int_operand): New.
1649 (combine_pseudo_register_operand): New.
1653 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
1654 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
1655 (any_extend, any_extend2): New code iterators.
1656 (extend_prefix): New code attribute.
1657 (mulsi3): Rewrite. Turn insn to expander.
1660 (usmulhisi3): New expander.
1661 (*mulsi3): New insn-and-split.
1662 (mulu<mode>si3): New insn-and-split.
1663 (muls<mode>si3): New insn-and-split.
1664 (mulohisi3): New insn-and-split.
1665 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
1666 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
1667 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
1668 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
1670 (*mulsi3_call): Rewrite.
1671 (*mulhisi3_call): Rewrite.
1672 (*umulhisi3_call): Rewrite.
1673 (*usmulhisi3_call): New insn.
1674 (*muluhisi3_call): New insn.
1675 (*mulshisi3_call): New insn.
1676 (*mulohisi3_call): New insn.
1677 (extendqihi2): Use combine_pseudo_register_operand as predicate
1679 (extendqisi2): Ditto.
1680 (zero_extendqihi2): Ditto.
1681 (zero_extendqisi2): Ditto.
1682 (zero_extendhisi2): Ditto.
1683 (extendhisi2): Ditto. Don't early-clobber operand 0.
1685 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1687 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
1689 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1691 PR tree-optimization/49471
1692 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
1693 iv only when the largest type is unsigned. Do not call
1694 lang_hooks.types.type_for_size.
1696 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1699 * graphite-poly.c (apply_poly_transforms): Disable legality check
1700 after an openscop read.
1702 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1705 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
1706 copy_bb_and_scalar_dependences.
1707 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
1708 (graphite_copy_stmts_from_block): Update call to rename_uses.
1709 (copy_bb_and_scalar_dependences): Update call to
1710 graphite_copy_stmts_from_block.
1711 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
1713 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
1716 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1717 (__ctzsi2): Result for 0 may be undefined.
1718 (__ctzhi2): Result for 0 may be undefined.
1719 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1720 (__popcountsi2): Ditto. And don't clobber r26.
1721 (__popcountdi2): Ditto. And don't clobber r27.
1722 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1723 (parityhi2): New expand.
1724 (paritysi2): New expand.
1725 (popcounthi2): New expand.
1726 (popcountsi2): New expand.
1727 (clzhi2): New expand.
1728 (clzsi2): New expand.
1729 (ctzhi2): New expand.
1730 (ctzsi2): New expand.
1731 (ffshi2): New expand.
1732 (ffssi2): New expand.
1733 (copysignsf3): New insn.
1734 (bswapsi2): New expand.
1735 (*parityhi2.libgcc): New insn.
1736 (*parityqihi2.libgcc): New insn.
1737 (*paritysihi2.libgcc): New insn.
1738 (*popcounthi2.libgcc): New insn.
1739 (*popcountsi2.libgcc): New insn.
1740 (*popcountqi2.libgcc): New insn.
1741 (*popcountqihi2.libgcc): New insn-and-split.
1742 (*clzhi2.libgcc): New insn.
1743 (*clzsihi2.libgcc): New insn.
1744 (*ctzhi2.libgcc): New insn.
1745 (*ctzsihi2.libgcc): New insn.
1746 (*ffshi2.libgcc): New insn.
1747 (*ffssihi2.libgcc): New insn.
1748 (*bswapsi2.libgcc): New insn.
1750 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
1752 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
1753 the mode of symbolic_opreand RTXes.
1755 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
1757 * config/i386/predicates.md (x86_64_movabs_operand): Return false
1758 for pic_32bit_operand RTXes.
1759 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
1762 2011-07-27 Kai Tietz <ktietz@redhat.com>
1764 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
1766 (ix86_handle_abi_attribute): Allow function attributes
1767 ms_abi/sysv_abi in 32-bit mode, too.
1768 * doc/extend.texi: Adjust attribute documentation.
1770 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
1771 expression handling.
1772 (and_var_with_comparison_1): Likewise.
1774 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
1776 * params.h (ALLOW_STORE_DATA_RACES): New.
1777 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
1778 * Makefile.in (expr.o): Depend on PARAMS_H.
1779 * machmode.h (get_best_mode): Add argument.
1780 * fold-const.c (optimize_bit_field_compare): Add argument to
1782 (fold_truthop): Same.
1783 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
1784 * expr.c (emit_group_store): Same.
1785 (copy_blkmode_from_reg): Same.
1786 (write_complex_part): Same.
1787 (optimize_bitfield_assignment_op): Add argument.
1788 Add argument to get_best_mode.
1789 (get_bit_range): New.
1790 (expand_assignment): Calculate maxbits and pass it down accordingly.
1791 (store_field): New argument.
1792 (expand_expr_real_2): New argument to store_field. Include params.h.
1793 * expr.h (store_bit_field): New argument.
1794 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
1795 into account maxbits.
1796 * calls.c (store_unaligned_arguments_into_pseudos): New argument
1798 * expmed.c (store_bit_field_1): New argument. Use it.
1799 (store_bit_field): Same.
1800 (store_fixed_bit_field): Same.
1801 (store_split_bit_field): Same.
1802 (extract_bit_field_1): Pass new argument to get_best_mode.
1803 (extract_bit_field): Same.
1804 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
1805 * doc/invoke.texi: Document parameter allow-store-data-races.
1807 2011-07-27 Jakub Jelinek <jakub@redhat.com>
1809 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
1811 2011-07-27 Kai Tietz <ktietz@redhat.com>
1813 * tree-vrp.c (extract_range_from_binary_expr): Remove
1814 TRUTH-binary cases and add new bitwise-cases.
1815 (extract_range_from_assignment): Likewise.
1816 (register_edge_assert_for_1): Likeiwise.
1817 (register_edge_assert_for): Likewise.
1818 (simplify_truth_ops_using_ranges): Likewise.
1819 (simplify_stmt_using_ranges): Likewise.
1821 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
1824 * config/i386/i386.c (ix86_delegitimize_address): Call
1825 simplify_gen_subreg for PIC with mode of x only if modes of
1826 x and orig_x are different.
1828 2011-07-26 Jakub Jelinek <jakub@redhat.com>
1830 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
1831 to GC allocated copy of the string.
1832 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
1833 before .debug_line, not after it.
1835 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1838 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
1839 evolution_function_is_affine_p on CHREC_RIGHT.
1841 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1843 * tree-data-ref.c (max_stmt_executions_tree): Do not call
1844 lang_hooks.types.type_for_size.
1846 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1849 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
1850 loops using wrapping semantics.
1852 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1855 * tree-scalar-evolution.c (instantiate_scev_r): Return
1856 chrec_dont_know for ADDR_EXPR.
1858 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1859 H.J. Lu <hongjiu.lu@intel.com>
1863 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
1864 if legitimize_tls_address returned operand in wrong mode. Allow
1865 SImode and DImode symbolic operand for PIC. Call convert_to_mode
1866 if legitimize_pic_address returned operand in wrong mode.
1868 2011-07-26 Martin Jambor <mjambor@suse.cz>
1870 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
1871 return false for invariants.
1873 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1875 * config/i386/i386.md (add->lea splitter): Implement using SWI
1876 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
1877 (add->lea zext splitter): Change operand 2 predicate to
1878 x86_64_nonmemory_operand.
1880 2011-07-26 Richard Guenther <rguenther@suse.de>
1882 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
1883 frequency makes everything hot.
1885 2011-07-26 Richard Guenther <rguenther@suse.de>
1887 PR tree-optimization/49840
1888 * tree-vrp.c (range_fits_type_p): Properly handle full
1889 double-int precision.
1891 2011-07-26 Martin Jambor <mjambor@suse.cz>
1894 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
1896 (update_specialized_profile): Likewise.
1898 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1899 H.J. Lu <hongjiu.lu@intel.com>
1904 * config/i386/i386.md (i): Change SImode attribute to "e".
1905 (g): Change SImode attribute to "rme".
1906 (di): Change SImode attribute to "nF".
1907 (general_operand): Change SImode attribute to x86_64_general_operand.
1908 (general_szext_operand): Change SImode attribute to
1909 x86_64_szext_general_operand.
1910 (immediate_operand): Change SImode attribute to
1911 x86_64_immediate_operand.
1912 (nonmemory_operand): Change SImode attribute to
1913 x86_64_nonmemory_operand.
1914 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
1915 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
1916 (*lea_1): Use SWI48 mode iterator.
1917 (*lea_1_zext): New insn pattern.
1918 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
1920 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
1921 Update operand constraints.
1922 (addsi_1_zext): Ditto.
1923 (*add<mode>2): Ditto.
1924 (*addsi_3_zext): Ditto.
1925 (*subsi_1_zext): Ditto.
1926 (*subsi_2_zext): Ditto.
1927 (*subsi_3_zext): Ditto.
1928 (*addsi3_carry_zext): Ditto.
1929 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
1930 (*mulsi3_1_zext): Ditto.
1932 (*andsi_1_zext): Ditto.
1933 (*andsi_2_zext): Ditto.
1934 (*<any_or:code>si_1_zext): Ditto.
1935 (*<any_or:code>si_2_zext): Ditto.
1936 (*test<mode>_1): Use <general_operand> predicate for operand 1.
1937 (*and<mode>_2): Ditto.
1938 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
1939 (add->lea splitter): Check operand modes in insn constraint. Extend
1940 operands less than SImode wide to SImode.
1941 (add->lea zext splitter): Do not extend input operands to DImode.
1942 (*lea_general_1): Handle only QImode and HImode operands.
1943 (*lea_general_2): Ditto.
1944 (*lea_general_3): Ditto.
1945 (*lea_general_1_zext): Remove.
1946 (*lea_general_2_zext): Ditto.
1947 (*lea_general_3_zext): Ditto.
1948 (*lea_general_4): Check operand modes in insn constraint. Extend
1949 operands less than SImode wide to SImode.
1950 (ashift->lea splitter): Ditto.
1951 * config/i386/i386.c (ix86_print_operand_address): Print address
1952 registers with 'q' modifier on 64bit targets.
1953 * config/i386/predicates.md (pic_32bit_opreand): Define as special
1954 predicate. Reject non-SI and non-DI modes.
1956 2011-07-25 Andrew Pinski <apinski@cavium.com>
1959 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1960 TREE_THIS_NOTRAP into the inner most MEM_REF.
1961 Always copy TREE_THIS_VOLATILE.
1962 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1963 arguments are not volatile references.
1965 2011-07-25 Richard Henderson <rth@redhat.com>
1967 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1968 * final.c (final_scan_insn): Don't test for it.
1969 (rest_of_clean_state): Likewise.
1971 2011-07-25 Richard Henderson <rth@redhat.com>
1974 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1975 (emit_frame_save): Likewise.
1976 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1977 insn onto a dummy blockage insn after the join label.
1979 2011-07-25 Richard Henderson <rth@redhat.com>
1981 * dwarf2cfi.c (dw_trace_info): Add ID member.
1982 (get_trace_index): Remove. Change users to use ID member.
1983 (before_next_cfi_note): New.
1984 (connect_traces): Remove unreachable traces before the main loop.
1985 Look across one trace and generate remember/restore_state if needed.
1987 2011-07-25 Richard Henderson <rth@redhat.com>
1989 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1991 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
1993 * genattr.c (write_upcase, gen_attr <enum definition writing>):
1995 * genattr-common.c ... here.
1996 (main): Call gen_attr.
1997 * optc-gen.awk: Make generated program include insn-attr-common.h .
1998 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2000 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2002 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2003 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2004 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2005 m32c_print_operand, m32c_print_operand_address): Remove.
2006 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2007 Change return type to bool. Change argument type to bool.
2008 (m32c_print_operand, m32c_print_operand_address): Make static.
2009 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2010 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2012 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2014 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2015 attributes): Document mmap.
2017 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2019 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2020 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2021 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2022 mmix_print_operand, mmix_print_operand_address): Remove.
2023 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2024 Change return type to bool. Change argument type to bool.
2025 (mmix_print_operand, mmix_print_operand_address): Make static.
2026 (mmix_intval, mmix_output_condition): Change 'x' argument type
2028 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2029 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2031 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
2034 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2035 shift counter for x << x and x >> x shifts.
2037 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2040 * config.gcc: Reject *-*-solaris2 configuration.
2042 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2044 PR tree-optimization/49809
2045 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2046 gimple_get_lhs instead of gimple_assign_lhs.
2048 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2050 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2052 2011-07-25 Richard Guenther <rguenther@suse.de>
2054 PR tree-optimization/49822
2055 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2056 more. Make sure to preserve stmts with side-effects. Properly
2057 handle virtual defs, follow a longer def chain.
2059 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
2064 * Makefile.in: Do not flatten c-family directory when installing
2067 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2069 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2070 original nodes if we are dealing with virtual clones.
2072 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2074 * common/config/c6x/c6x-common.c: New file.
2076 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2078 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2080 2011-07-25 Richard Guenther <rguenther@suse.de>
2082 PR tree-optimization/49715
2083 * tree-vrp.c: Include expr.h and optabs.h.
2084 (range_fits_type_): New function.
2085 (simplify_float_conversion_using_ranges): Likewise.
2086 (simplify_stmt_using_ranges): Call it.
2087 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2088 * optabs.c (can_float_p): Export.
2089 * optabs.h (can_float_p): Declare.
2091 2011-07-25 Richard Guenther <rguenther@suse.de>
2093 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2094 (get_value_range): For out-of-range SSA names or names created
2095 after propagation return a read-only varying range.
2096 (dump_all_value_ranges): Adjust.
2097 (vrp_initialize): Likewise.
2098 (vrp_finalize): Likewise.
2100 2011-07-24 Richard Henderson <rth@redhat.com>
2103 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2106 2011-07-24 Richard Henderson <rth@redhat.com>
2109 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2110 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2112 2011-07-24 Richard Henderson <rth@redhat.com>
2115 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2117 2011-07-24 Richard Henderson <rth@redhat.com>
2119 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2120 Zero args_size for abnormal edges. Adjust all callers.
2122 2011-07-24 Richard Henderson <rth@redhat.com>
2125 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2127 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2130 * collect2.c (demangle_flag): Removed.
2132 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2134 * configure.ac (demangler_in_ld): Default to yes.
2135 * configure: Regenerated.
2136 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2137 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2138 --no-demangle options straight through to ld. When
2139 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2140 way that has the intended effect on Windows.
2142 2011-07-23 Richard Henderson <rth@redhat.com>
2144 * dwarf2cfi.c: Include basic-block.h.
2145 (dw_label_info): Remove.
2146 (trace_work_list, trace_index): New.
2147 (remember_row, emit_cfa_remember): Remove.
2148 (dw_trace_info_hash, dw_trace_info_eq): New.
2149 (get_trace_index, get_trace_info): New.
2150 (save_point_p): New.
2151 (free_cfi_row): Remove.
2152 (add_cfi): Do not emit DW_CFA_remember_state.
2153 (cfa_row_equal_p): New.
2154 (barrier_args_size): Remove.
2155 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2156 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2157 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2158 (dwarf2out_cfi_begin_epilogue): Remove.
2159 (dwarf2out_frame_debug_restore_state): Remove.
2160 (connect_traces, create_pseudo_cfg): New.
2161 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2162 * Makefile.in (dwarf2cfi.o): Update.
2164 2011-07-23 Richard Henderson <rth@redhat.com>
2166 * dwarf2cfi.c (dw_trace_info): New.
2167 (dw_label_info): New.
2168 (cie_return_save): New.
2170 (queued_args_size): Rename from args_size. Update all users.
2171 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2172 (def_cfa_1): Use cur_trace instead of cfa_*.
2173 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2174 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2175 (dwarf2out_frame_debug_expr): Likewise.
2176 (create_cie_data): Split out from ...
2177 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2179 2011-07-23 Richard Henderson <rth@redhat.com>
2181 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2182 Update all users to match.
2183 (execute_dwarf2_frame): Free reg_saved_in_data.
2185 2011-07-23 Richard Henderson <rth@redhat.com>
2187 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2188 (queued_reg_saves): Don't GTY. Change to a VEC.
2189 (queue_reg_save): Update to match.
2190 (dwarf2out_flush_queued_reg_saves): Likewise.
2191 (clobbers_queued_reg_save): Likewise.
2192 (reg_saved_in): Likewise.
2193 (execute_dwarf2_frame): Free queued_reg_saves.
2195 2011-07-23 Richard Henderson <rth@redhat.com>
2197 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2199 2011-07-23 Richard Henderson <rth@redhat.com>
2201 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2202 (dwarf2out_args_size): ... here.
2203 (add_cfi_restore): Split out from ...
2204 (dwarf2out_frame_debug_cfa_restore): ... here.
2205 (def_cfa_0): Split out from ...
2206 (def_cfa_1): ... here.
2207 (cfi_oprnd_equal_p, cfi_equal_p): New.
2208 (change_cfi_row): New.
2209 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2210 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2211 (output_cfis): Remove.
2212 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2213 (dwarf2out_switch_text_section): Don't call output_cfis.
2214 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2215 * dwarf2out.h: Update decls.
2216 (enum dw_val_class): Add dw_val_class_none.
2218 2011-07-23 Richard Henderson <rth@redhat.com>
2220 * dwarf2cfi.c (update_row_reg_save): New.
2221 (dwarf2out_frame_debug_cfa_expression): Use it.
2222 (dwarf2out_frame_debug_cfa_restore): Likewise.
2223 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2225 2011-07-23 Richard Henderson <rth@redhat.com>
2227 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2229 2011-07-23 Richard Henderson <rth@redhat.com>
2231 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2233 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2234 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2235 (cur_row, remember_row): New.
2236 (def_cfa_1): Use cur_row instead of the old_* variables.
2237 (dwarf2out_frame_debug_restore_state): Similarly.
2238 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2239 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2240 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2241 (dwarf2out_frame_debug_cfa_offset): Likewise.
2242 (dwarf2out_frame_debug_expr): Likewise.
2243 (execute_dwarf2_frame): Set up cur_row.
2244 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2246 2011-07-23 Richard Henderson <rth@redhat.com>
2248 * basic-block.h (EDGE_PRESERVE): New.
2249 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2250 * bb-reorder.c: Include except.h.
2251 (fix_up_crossing_landing_pad): New.
2252 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2253 landing pads in the right partition. Duplicate as necessary.
2254 (partition_hot_cold_basic_blocks): Fix up DF info after
2255 duplicating landing pads.
2256 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2257 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2258 is set properly. Validate that EH edges are not CROSSING.
2259 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2260 (dw2_build_landing_pads): ... here.
2261 (convert_to_eh_region_ranges): Remove code to fixup crossing
2263 * except.h (expand_dw2_landing_pad_for_region): Declare.
2264 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2266 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
2269 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2271 2011-07-22 Jason Merrill <jason@redhat.com>
2273 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2275 2011-07-22 Richard Henderson <rth@redhat.com>
2277 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2279 2011-07-22 Richard Henderson <rth@redhat.com>
2281 * jump.c (maybe_propagate_label_ref): Split out of...
2282 (mark_all_labels): ... here. Do not attempt label_ref
2283 propagation while in cfglayout mode.
2285 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2287 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2288 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2289 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2290 (dwarf2out_define): If the vector is empty and
2291 lineno is 0, emit a dummy entry first.
2292 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2293 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2294 optimize_macinfo_range): New functions.
2295 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2296 mergeable, optimize longer strings using
2297 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2298 optimize longer sequences of define/undef ops from headers
2299 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2300 emit a section headers.
2301 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2302 and macinfo_section_label to DEBUG_MACRO_SECTION
2303 resp. DEBUG_MACRO_SECTION_LABEL.
2304 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2305 instead of DW_AT_macro_info.
2308 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2310 * dwarf2out.c: Include opts.h.
2311 (dchar_p): New typedef. Define heap VEC for it.
2312 (producer_string): New variable.
2313 (gen_producer_string): New function.
2314 (gen_compile_unit_die): Use it.
2315 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2316 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2317 * doc/invoke.texi: Document -grecord-gcc-switches and
2318 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2319 to -frecord-gcc-switches description.
2321 2011-07-22 Jason Merrill <jason@redhat.com>
2324 * c-decl.c (c_linkage_bindings): Define.
2326 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2329 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2331 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2333 * config/i386/i386.c (ix86_option_override_internal): Disallow
2335 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2336 only for TARGET_LP64.
2337 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2339 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2341 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2342 avoid warnings when GCC is built with a C++ compiler.
2344 2011-07-22 Martin Jambor <mjambor@suse.cz>
2347 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2348 if decl node is in another partition, call cgraph_get_node only once.
2350 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
2352 * config.gcc (x86_64-*-linux*): Set
2353 default_gnu_indirect_function to yes.
2355 2011-07-22 Richard Guenther <rguenther@suse.de>
2357 PR tree-optimization/45819
2358 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2359 preserve volatile and notrap flags.
2361 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2362 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2365 * configure.ac: Test AM_ICONV with CXX.
2366 * configure: Regenerate.
2367 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2369 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2372 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2373 (set_cloog_options): Use it.
2375 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2378 * gcc.c (main): Call stack_limit_increase (64MB).
2379 * toplev.c (toplev_main): Likewise.
2381 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2383 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2384 instead of force_reg.
2386 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2388 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2389 needed and use force_reg after convert.
2390 (ix86_expand_call): Likewise.
2391 (ix86_expand_special_args_builtin): Likewise.
2392 (ix86_expand_builtin): Likewise.
2394 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2398 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2399 in parameter. Initialize v1 and v2 based on the values returned
2400 by clast_name_to_lb_ub.
2401 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2403 (type_for_clast_bin): Same.
2404 (type_for_clast_expr): Same.
2405 (type_for_clast_eq): Update calls to type_for_clast_expr.
2406 (type_for_clast_for): Same.
2407 (build_iv_mapping): Same.
2408 * graphite-ppl.h (value_min): New.
2410 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2412 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2413 types whenever possible.
2415 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2417 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2419 (new_clast_name_index): Add lb and ub parameters.
2420 (free_clast_name_index): New.
2421 (clast_name_to_lb_ub): New.
2422 (save_clast_name_index): Add lb and ub parameters.
2423 (compute_bounds_for_param): New.
2424 (type_for_level): Removed.
2425 (type_for_clast_for): Removed level parameter. Do not call
2427 (graphite_create_new_loop): Store the lb and ub for the clast_name
2428 of the iterator of the loop that has been generated.
2429 (graphite_create_new_loop_guard): Remove parameter level.
2430 (create_params_index): Store the lb and ub of each parameter.
2431 (gloog): Use free_clast_name_index. Pass to create_params_index
2434 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2436 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2437 (max_precision_type): Inline max_signed_precision_type.
2438 (type_for_clast_red): Use max_precision_type.
2439 (type_for_clast_bin): Same.
2440 (type_for_clast_for): Same.
2442 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2444 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2446 (gcc_type_for_value): Renamed type_for_value.
2447 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2448 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2449 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2450 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2451 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2452 (graphite_translate_clast_equation): Update calls.
2453 (compute_type_for_level): Renamed type_for_level.
2454 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2455 (build_iv_mapping): Update calls.
2456 (graphite_create_new_loop_guard): Same.
2458 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2460 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2463 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2465 * graphite-clast-to-gimple.c (struct ivs_params): New.
2466 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2467 (clast_to_gcc_expression): Same.
2468 (clast_to_gcc_expression_red): Same.
2469 (gcc_type_for_clast_term): Same.
2470 (gcc_type_for_clast_expr): Same.
2471 (gcc_type_for_clast_red): Same.
2472 (gcc_type_for_clast_bin): Same.
2473 (gcc_type_for_clast_eq): Same.
2474 (graphite_translate_clast_equation): Same.
2475 (graphite_create_guard_cond_expr): Same.
2476 (graphite_create_new_guard): Same.
2477 (graphite_create_new_loop): Same.
2478 (build_iv_mapping): Same.
2479 (translate_clast_user): Same.
2480 (graphite_create_new_loop_guard): Same.
2481 (translate_clast): Same.
2482 (translate_clast_for_loop): Same.
2483 (translate_clast_for): Same.
2484 (translate_clast_guard): Same.
2485 (initialize_cloog_names): Fix typo.
2486 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2488 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2490 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2491 (new_clast_name_index): Add level parameter.
2492 (clast_name_to_level): New.
2493 (save_clast_name_index): Add level parameter.
2494 (newivs_to_depth_to_newiv): Removed.
2495 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2496 (graphite_create_new_loop): Add level parameter. Pass level to
2497 save_clast_name_index.
2498 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2499 (create_params_index): Pass level to save_clast_name_index.
2501 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2503 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2504 recompute type, lb, and ub. Get them from...
2505 (graphite_create_new_loop_guard): ...here. Pass in parameter
2506 pointers to type, lb, and ub.
2507 (translate_clast_for_loop): Update function calls.
2508 (translate_clast_for): Same.
2510 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2512 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2514 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2515 (gcc_type_for_iv_of_clast_loop): Update use of level.
2516 (gloog): Start counting nesting level from 0.
2517 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2518 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2519 psct_dynamic_dim on level.
2521 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2523 * config/i386/i386.c (ix86_legitimize_address): Convert to
2526 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2528 * config/i386/i386.c (function_value_64): Always return pointers
2530 (ix86_promote_function_mode): New.
2531 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2533 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2535 PR tree-optimization/49749
2536 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2537 remove no-longer-used maxrank variable.
2539 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2541 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2543 2011-07-21 Jason Merrill <jason@redhat.com>
2545 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2546 * recog.h (struct insn_data_d): Check it instead of
2547 HAVE_DESIGNATED_INITIALIZERS.
2548 * genoutput.c (output_insn_data): Likewise.
2550 2011-07-21 Richard Guenther <rguenther@suse.de>
2552 PR tree-optimization/49770
2553 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2554 valueized any operand. Renamed from ...
2555 (valueize_refs): ... this. New wrapper around valueize_refs_1.
2556 (valueize_shared_reference_ops_from_ref): Return whether we
2557 valueized any operand.
2558 (vn_reference_lookup): Only when we valueized any operand
2559 use the valueized reference for alias analysis. Do not preserve
2560 the original reference tree in this case.
2562 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
2564 * config/i386/i386.c (ix86_decompose_address): Reject all but
2565 register operands and subregs of DImode hard registers in index.
2567 2011-07-21 Kai Tietz <ktietz@redhat.com>
2569 * fold-const.c (fold_unary_loc): Preserve indirect
2570 comparison cast to none-boolean type.
2571 * tree-ssa.c (useless_type_conversion_p): Preserve cast
2572 from/to boolean-type.
2573 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2574 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2575 * tree-cfg.c (verify_gimple_comparison): Check result
2576 type of comparison expression.
2577 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2578 of condition result and disallow type-cast sinking into comparison.
2580 2011-07-21 Richard Guenther <rguenther@suse.de>
2582 * tree-ssa-forwprop.c (combine_conversions): Return whether
2583 we have to run cfg-cleanup. Properly remove dead stmts.
2584 (ssa_forward_propagate_and_combine): Adjust.
2586 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
2588 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2590 2011-07-21 Kai Tietz <ktietz@redhat.com>
2592 * tree-ssa-propagate.c (substitute_and_fold): Use
2593 do_dce flag to deside, if BB's statements are scanned
2594 in last to first, or first to last order.
2596 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2598 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2600 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
2601 Uros Bizjak <ubizjak@gmail.com>
2602 Richard Henderson <rth@redhat.com>
2604 * config/i386/constraints.md (w): New.
2606 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2607 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2609 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2610 instead of TARGET_64BIT.
2612 * config/i386/i386.md (indirect_jump): Replace
2613 nonimmediate_operand with indirect_branch_operand.
2614 (*indirect_jump): Likewise. Replace constraint "m" with "w".
2615 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2616 Convert operand 0 to Pmode for x32 if not PIC.
2617 (*tablejump_1): Replace nonimmediate_operand with
2618 indirect_branch_operand. Replace constraint "m" with "w".
2619 (*call_vzeroupper): Replace constraint "m" with "w".
2621 (*call_rex64_ms_sysv_vzeroupper): Likewise.
2622 (*call_rex64_ms_sysv): Likewise.
2623 (*call_value_vzeroupper): Likewise.
2624 (*call_value): Likewise.
2625 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2626 (*call_value_rex64_ms_sysv): Likewise.
2627 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2629 * config/i386/predicates.md (indirect_branch_operand): New.
2630 (call_insn_operand): Support x32.
2632 2011-07-20 Michael Eager <eager@eagercon.com>
2634 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2636 2011-07-20 Richard Henderson <rth@redhat.com>
2638 * cfg.c (dump_bb_info): Dump basic_block->flags.
2639 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
2641 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
2643 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2644 of DImode hard registers in index.
2645 (ix86_legitimate_address_p): Allow subregs of base and index to span
2646 more than a word. Assert that subregs of base and index satisfy
2647 register_no_elim_operand predicates. Reject addresses where
2648 base and index have different modes.
2650 2011-07-20 Robert Millan <rmh@gnu.org>
2652 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
2654 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2656 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
2657 removing now-unnecessary assignment.
2659 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2661 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
2662 memory address space to the type's address space.
2664 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
2668 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
2669 and expand appropriately if there is a CONST_INT in operand2.
2670 (usmulqihi3): New insn.
2671 (*sumulqihi3): New insn.
2672 (*osmulqihi3): New insn.
2673 (*oumulqihi3): New insn.
2674 (*muluqihi3.uconst): New insn_and_split.
2675 (*muluqihi3.sconst): New insn_and_split.
2676 (*mulsqihi3.sconst): New insn_and_split.
2677 (*mulsqihi3.uconst): New insn_and_split.
2678 (*mulsqihi3.oconst): New insn_and_split.
2679 (*ashifthi3.signx.const): New insn_and_split.
2680 (*ashifthi3.signx.const7): New insn_and_split.
2681 (*ashifthi3.zerox.const): New insn_and_split.
2682 (mulsqihi3): New insn.
2683 (muluqihi3): New insn.
2684 (muloqihi3): New insn.
2685 * config/avr/predicates.md (const_2_to_7_operand): New.
2686 (const_2_to_6_operand): New.
2691 (register_or_s9_operand): New.
2693 2011-07-20 Kai Tietz <ktietz@redhat.com>
2695 * builtins.c (fold_builtin_expect): See through the cast
2696 from truthvalue_type_node to long.
2698 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2700 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
2701 where we can use them from the standard and altivec instruction
2702 sets, instead of always using the 3 operand VSX forms that require
2703 the destination to overlap one of the inputs.
2708 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
2710 (fmsdf4_fpr): Ditto.
2711 (nfmadf4_fpr): Ditto.
2712 (nfmsdf4_fpr): Ditto.
2714 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
2716 * genrecog.c (make_insn_sequence): Correct position numbering
2717 when filtering out match_scratch and match_dup.
2719 2011-07-20 Richard Guenther <rguenther@suse.de>
2721 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2722 against already removed statements.
2723 (forward_propagate_into_comparison): Remove dead defining stmts.
2724 (forward_propagate_into_gimple_cond): Likewise.
2725 (forward_propagate_into_cond): Simplify.
2726 (ssa_forward_propagate_and_combine): Handle changed cfg from
2727 forward_propagate_into_comparison.
2728 * tree-ssa-phiopt.c (conditional_replacement): Use proper
2729 locations for newly built statements.
2731 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
2733 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
2735 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2737 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
2738 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
2740 2011-07-20 Richard Guenther <rguenther@suse.de>
2743 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
2744 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
2745 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
2747 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
2749 * config/frv/frv.c (frv_register_move_cost): Define explicitly
2750 costs for subclasses of GR_REGS.
2752 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
2755 * config/i386/predicates.md (no_seg_addres_operand): No more special.
2756 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2757 of DImode hard registers in base.
2758 (ix86_legitimate_address_p): Allow SImode and DImode base and index
2761 2011-07-20 Richard Guenther <rguenther@suse.de>
2763 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
2764 (unify_nodes): Deal with that.
2765 (solve_graph): Likewise.
2767 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
2769 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
2770 canonicalize left operand from ZERO_EXTEND to AND.
2772 2011-07-20 Anatoly Sokolov <aesok@post.ru>
2774 * target.def (class_max_nregs): New hook.
2775 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
2776 * doc/tm.texi: Regenerate.
2777 * targhooks.c (default_class_max_nregs): New function.
2778 * targhooks.h (default_class_max_nregs): Declare.
2779 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
2780 x_ira_reg_class_min_nregs arrays to unsigned char.
2781 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
2782 hook instead of CLASS_MAX_NREGS macro.
2783 * reginfo.c (restore_register_info): Ditto.
2784 * ira-conflicts.c (process_regs_for_copy): Use
2785 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2786 Change type rclass and aclass vars to reg_class_t.
2787 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
2788 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
2790 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
2791 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2793 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
2794 * config/i386/i386.c (ix86_class_max_nregs): New function.
2795 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
2796 instead of CLASS_MAX_NREGS macro.
2797 (TARGET_CLASS_MAX_NREGS): Define.
2798 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
2799 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
2800 * config/avr/avr.c (class_max_nregs): Remove function.
2801 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
2802 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
2803 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
2804 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
2805 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
2806 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
2807 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
2808 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
2809 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
2810 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
2811 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
2812 * config/score/score.h (CLASS_MAX_NREGS): Remove.
2813 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
2814 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
2815 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
2817 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
2819 * cif-code.def (OVERWRITABLE): Fix typo and move around.
2820 (TARGET_OPTIMIZATION_MISMATCH): Delete.
2821 (EH_PERSONALITY): Fix typo.
2822 (NON_CALL_EXCEPTIONS): Fix message.
2823 (OPTIMIZATION_MISMATCH): Adjust message.
2824 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
2826 2011-07-19 Ian Lance Taylor <iant@google.com>
2828 * doc/install.texi (Configuration): Document
2829 --enable-build-poststage1-with-cxx.
2831 2011-07-19 Robert Millan <rmh@gnu.org>
2833 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
2834 (GLIBC_DYNAMIC_LINKER): Remove.
2836 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
2837 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2838 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2839 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
2840 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
2841 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
2843 * config/mips/linux.h: Remove everything except for ...
2844 (GLIBC_DYNAMIC_LINKER): ... this macro.
2846 * config/mips/linux64.h: Remove everything except for ...
2847 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2848 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2849 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
2850 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
2851 (GNU_USER_LINK_EMULATIONN32): New macros.
2853 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
2854 Use the new headers.
2856 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2858 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
2859 Add offset_known_p and size_known_p fields.
2860 (MEM_OFFSET_KNOWN_P): Update accordingly.
2861 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
2862 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
2863 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
2864 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
2865 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
2866 (init_emit_regs): Likewise.
2868 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2870 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
2871 (MEM_OFFSET): Change from returning an rtx to returning a
2873 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
2874 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
2875 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2876 (clear_mem_offset): Declare.
2877 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
2878 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
2879 MEM_OFFSET to get a HOST_WIDE_INT offset.
2880 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
2881 (adjust_offset_for_component_ref): Take a bool "known_p"
2882 parameter and a HOST_WIDE_INT "offset" parameter.
2883 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
2884 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
2885 than an rtx. Use clear_mem_offset to clear the offset.
2886 * cfgcleanup.c (merge_memattrs): Likewise.
2887 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
2888 * function.c (assign_parm_find_stack_rtl): Likewise.
2889 (assign_parm_setup_stack): Likewise.
2890 * print-rtl.c (print_rtx): Likewise.
2891 * reload.c (find_reloads_subreg_address): Likewise.
2892 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2893 * var-tracking.c (INT_MEM_OFFSET): Likewise.
2894 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2895 (get_mem_align_offset): Likewise.
2896 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2897 (clear_mem_offset): New function.
2898 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
2899 offset rather than an rtx. Assume both the expressio and offset
2901 (r10k_needs_protection_p_1): Update accordingly, checking the
2902 expression and offset availability here instead.
2904 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2906 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
2907 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
2908 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
2909 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
2910 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2911 (clear_mem_size): Declare.
2912 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2913 (clear_mem_size): New function.
2914 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
2915 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
2916 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
2917 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
2919 (nonoverlapping_memrefs_p): Likewise.
2920 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
2921 (expand_builtin_init_trampoline): Likewise.
2922 * calls.c (compute_argument_addresses): Likewise.
2923 * cfgcleanup.c (merge_memattrs): Likewise.
2924 * dce.c (find_call_stack_args): Likewise.
2925 * dse.c (record_store, scan_insn): Likewise.
2926 * dwarf2out.c (dw_sra_loc_expr): Likewise.
2927 * expr.c (emit_block_move_hints): Likewise.
2928 * function.c (assign_parm_find_stack_rtl): Likewise.
2929 * print-rtl.c (print_rtx): Likewise.
2930 * reload.c (find_reloads_subreg_address): Likewise.
2931 * rtlanal.c (may_trap_p_1): Likewise.
2932 * var-tracking.c (track_expr_p): Likewise.
2933 * varasm.c (assemble_trampoline_template): Likewise.
2934 * config/arm/arm.c (arm_print_operand): Likewise.
2935 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
2936 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
2937 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
2938 (expand_constant_setmem_prologue): Likewise.
2939 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
2940 * config/rs6000/rs6000.c (expand_block_move): Likewise.
2941 (adjacent_mem_locations): Likewise.
2942 * config/s390/s390.c (s390_expand_setmem): Likewise.
2943 (s390_expand_insv): Likewise.
2944 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
2945 (*extendqi<mode>2_short_displ): Likewise.
2946 * config/sh/sh.c (expand_block_move): Likewise.
2947 * config/sh/sh.md (extv, extzv): Likewise.
2949 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2951 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
2952 (mem_attrs_htab_eq): ...here.
2953 (find_mem_attrs): Replace with...
2954 (set_mem_attrs): ...this function. Take a mem_attrs structure
2955 rather than individual fields.
2956 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2957 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2958 (set_mem_size, change_address, adjust_address_1, offset_address)
2959 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2962 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2964 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2965 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2966 Provide a dummy definition of MEM_ADDR_SPACE for generators.
2967 (target_rtl): Add x_mode_mem_attrs.
2968 (mode_mem_attrs): New macro.
2969 (get_mem_attrs): New function.
2970 * emit-rtl.c (get_mem_attrs): Rename to...
2971 (find_mem_attrs): ...this.
2972 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2973 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2974 (set_mem_size, change_address, adjust_address_1, offset_address)
2975 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2977 (init_emit_regs): Initialize mode_mem_attrs.
2979 2011-07-19 Richard Guenther <rguenther@suse.de>
2981 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2982 TRUTH_*_EXPR handling.
2983 * tree-ssa-operands.c (get_expr_operands): Likewise.
2984 * tree-ssa-pre.c (fully_constant_expression): Likewise.
2985 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2987 (is_and_or_or): Likewise.
2988 (is_norm_cond_subset_of): Likewise.
2990 2011-07-19 Richard Guenther <rguenther@suse.de>
2992 * tree.h (fold_build_pointer_plus_loc): New helper function.
2993 (fold_build_pointer_plus_hwi_loc): Likewise.
2994 (fold_build_pointer_plus): Define.
2995 (fold_build_pointer_plus_hwi): Likewise.
2996 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
2997 (fold_builtin_memory_op): Likewise.
2998 (fold_builtin_stpcpy): Likewise.
2999 (fold_builtin_memchr): Likewise.
3000 (fold_builtin_strstr): Likewise.
3001 (fold_builtin_strchr): Likewise.
3002 (fold_builtin_strrchr): Likewise.
3003 (fold_builtin_strpbrk): Likewise.
3004 (fold_builtin_strcat): Likewise.
3005 (expand_builtin_memory_chk): Likewise.
3006 (fold_builtin_memory_chk): Likewise.
3007 * c-typeck.c (build_unary_op): Likewise.
3008 * cgraphunit.c (thunk_adjust): Likewise.
3009 * fold-const.c (build_range_check): Likewise.
3010 (fold_binary_loc): Likewise.
3011 * omp-low.c (extract_omp_for_data): Likewise.
3012 (expand_omp_for_generic): Likewise.
3013 (expand_omp_for_static_nochunk): Likewise.
3014 (expand_omp_for_static_chunk): Likewise.
3015 * tree-affine.c (add_elt_to_tree): Likewise.
3016 * tree-data-ref.c (split_constant_offset_1): Likewise.
3017 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3018 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3019 * tree-predcom.c (ref_at_iteration): Likewise.
3020 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3021 (add_to_parts): Likewise.
3022 (create_mem_ref): Likewise.
3023 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3024 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3025 (number_of_iterations_le): Likewise.
3026 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3027 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3028 (vect_create_addr_base_for_vector_ref): Likewise.
3029 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3030 (vect_create_cond_for_alias_checks): Likewise.
3031 * tree-vrp.c (extract_range_from_assert): Likewise.
3032 * config/alpha/alpha.c (alpha_va_start): Likewise.
3033 (alpha_gimplify_va_arg_1): Likewise.
3034 * config/i386/i386.c (ix86_va_start): Likewise.
3035 (ix86_gimplify_va_arg): Likewise.
3036 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3037 * config/mep/mep.c (mep_expand_va_start): Likewise.
3038 (mep_gimplify_va_arg_expr): Likewise.
3039 * config/mips/mips.c (mips_va_start): Likewise.
3040 (mips_gimplify_va_arg_expr): Likewise.
3041 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3042 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3043 (rs6000_gimplify_va_arg): Likewise.
3044 * config/s390/s390.c (s390_va_start): Likewise.
3045 (s390_gimplify_va_arg): Likewise.
3046 * config/sh/sh.c (sh_va_start): Likewise.
3047 (sh_gimplify_va_arg_expr): Likewise.
3048 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3049 * config/spu/spu.c (spu_va_start): Likewise.
3050 (spu_gimplify_va_arg_expr): Likewise.
3051 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3053 (xstormy16_gimplify_va_arg_expr): Likewise.
3054 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3055 (xtensa_gimplify_va_arg_expr): Likewise.
3057 2011-07-19 Richard Guenther <rguenther@suse.de>
3059 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3060 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3064 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3065 result of BIT_*_EXPR to bitfield precision.
3067 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3069 PR tree-optimization/49742
3070 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3071 as a potential write.
3073 2011-07-19 Richard Guenther <rguenther@suse.de>
3075 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3076 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3077 (forward_propagate_comparison): Simplify, remove obsolete code.
3079 2011-07-19 Richard Guenther <rguenther@suse.de>
3081 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3082 BIT_XOR_EXPR, same as the RTL expander does.
3083 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3084 (verify_gimple_assign_unary): Likewise.
3085 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3086 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3087 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3089 2011-07-19 Jakub Jelinek <jakub@redhat.com>
3091 PR tree-optimization/49768
3092 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3093 if offset is smaller than bitoffset, but offset+size is bigger
3096 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
3098 PR tree-optimization/49771
3099 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3100 zero step, set segment length to the size of the data-ref's type.
3102 2011-07-18 Martin Jambor <mjambor@suse.cz>
3104 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3106 (ipcp_values_pool): Declare.
3107 (ipcp_sources_pool): Likewise.
3108 (ipcp_lattice): Changed to forward declaration.
3109 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3110 cannot_devirtualize.
3111 (ipa_node_params): New fields descriptors, lattices, known_vals,
3112 clone_for_all_contexts and node dead, removed fields params and
3114 (ipa_set_param_count): Removed.
3115 (ipa_get_param_count): Made to work with descriptors vector.
3116 (ipa_get_param): Updated.
3117 (ipa_param_cannot_devirtualize_p): Removed.
3118 (ipa_param_types_vec_empty): Likewise.
3119 (ipa_set_param_used): New function.
3120 (ipa_get_param_used): Updated to use descriptors vector.
3121 (ipa_func_list): Removed.
3122 (ipa_init_func_list): Removed declaration.
3123 (ipa_push_func_to_list_1): Likewise.
3124 (ipa_pop_func_from_list): Likewise.
3125 (ipa_push_func_to_list): Removed.
3126 (ipa_lattice_from_jfunc): Remove declaration.
3127 (ipa_get_jf_pass_through_result): Declare.
3128 (ipa_get_jf_ancestor_result): Likewise.
3129 (ipa_value_from_jfunc): Likewise.
3130 (ipa_get_lattice): Update.
3131 (ipa_lat_is_single_const): New function.
3132 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3133 (ipa_init_func_list): Likewise.
3134 (ipa_pop_func_from_list): Likewise.
3135 (ipa_get_param_decl_index): Fix coding style.
3136 (count_formal_params): Removed.
3137 (count_formal_params_1): Renamed to count_formal_params.
3138 (ipa_populate_param_decls): Update to use descriptors vector.
3139 (ipa_initialize_node_params): Likewise.
3140 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3141 (ipa_analyze_params_uses): Likewise.
3142 (ipa_free_node_params_substructures): Likewise and free also lattices
3144 (duplicate_array): Removed.
3145 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3147 (ipa_node_duplication_hook): Update to use new lattices.
3148 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3149 (ipa_free_all_structures_after_iinln): Likewise.
3150 (ipa_write_node_info): Update to use new lattices.
3151 (ipa_read_node_info): Likewise.
3152 (ipa_get_jf_pass_through_result): New function.
3153 (ipa_get_jf_ancestor_result): Likewise.
3154 (ipa_value_from_jfunc): Likewise.
3155 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3156 * ipa-cp.c: Reimplemented.
3157 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3158 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3159 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3160 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3161 * doc/invoke.texi (devirt-type-list-size): Removed description.
3162 (ipa-cp-value-list-size): Added description.
3164 2011-07-18 Richard Henderson <rth@redhat.com>
3166 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3167 before calling create_basic_block.
3169 2011-07-18 Jakub Jelinek <jakub@redhat.com>
3172 * tree.c (build_common_builtin_nodes): Register
3173 __builtin_return_address, __cyg_profile_func_enter
3174 and __cyg_profile_func_exit.
3176 2011-07-18 Richard Henderson <rth@redhat.com>
3178 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3179 (add_labels_and_missing_jumps): ... here.
3180 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3182 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
3185 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3186 of DImode hard registers in PLUS address chains.
3188 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3191 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3192 (alpha*-*-freebsd*): Likewise.
3193 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3194 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3195 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3196 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3197 (ia64*-*-elf*): Remove extra_parts.
3198 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3199 (sparc64-*-linux*): Likewise.
3200 (sparc64-*-freebsd*): Likewise.
3203 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3204 (ia64*-*-linux*): Likewise.
3205 (mips64*-*-linux*): Likewise.
3206 (mips*-*-linux*): Likewise.
3208 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
3210 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3212 2011-07-18 Richard Guenther <rguenther@suse.de>
3214 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3215 when building new trees.
3217 2011-07-18 Richard Guenther <rguenther@suse.de>
3219 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3220 expansion result to bitfield precision if required.
3222 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3224 * config.gcc (i[3456x]86-*-netware*): Remove.
3226 * gthr-nks.h: Remove.
3227 * configure.ac (enable_threads): Remove nks.
3228 * configure: Regenerate.
3230 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3232 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3233 <netware.h> reference.
3235 * config/i386/netware-libgcc.c,
3236 gcc/config/i386/netware-libgcc.def,
3237 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3238 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3239 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3240 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3242 * doc/extend.texi (Function Attributes,
3243 callee_pop_aggregate_return): Remove i?86-netware reference.
3244 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3246 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3250 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3252 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3255 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3258 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3260 2011-07-16 Matthias Klose <doko@ubuntu.com>
3262 * doc/install.texi: Document --enable-static-libjava.
3264 2011-07-15 Richard Henderson <rth@redhat.com>
3266 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3267 Replace all three arguments by returning a VEC of edges.
3268 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3269 pointers and counts.
3270 (fix_edges_for_rarely_executed_code): Merge ...
3271 (rest_of_handle_partition_blocks): ... into...
3272 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3273 any work was performed.
3274 (pass_partition_blocks): Clear todo_flags_finish.
3276 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3277 Jakub Jelinek <jakub@redhat.com>
3278 Jonathan Wakely <jwakely.gcc@gmail.com>
3281 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3282 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3284 2011-07-15 Jason Merrill <jason@redhat.com>
3287 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3288 rather than --tool_opts.
3290 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3292 * doc/plugins.texi (Building GCC plugins): gengtype needs its
3293 corresponding gtype.state.
3295 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3298 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3300 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3303 * doc/md.texi (Standard Names): Document window_save.
3304 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3305 expand_debug_expr and expand_debug_source_expr. If the target has
3306 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3307 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3308 SSA_NAME_VAR is a parameter.
3309 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3310 * var-tracking.c (parm_reg_t): New type and associated vector type.
3311 (windowed_parm_regs): New variable.
3312 (adjust_insn): If the target has a window_save instruction and this
3313 is the instruction, make its effect on parameter registers explicit.
3314 (next_non_note_insn_var_location): New function.
3315 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3316 (vt_add_function_parameter): If the target has a window_save insn,
3317 adjust the incoming RTL and record that in windowed_parm_regs.
3318 (vt_finalize): Free windowed_parm_regs.
3320 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3322 * doc/invoke.texi (C6X Options): New section.
3323 * doc/md.texi (TI C6X family): New section.
3324 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3326 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3327 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3328 Provide C6X definitions.
3329 * config/c6x/c6x.md: New file.
3330 * config/c6x/constraints.md: New file.
3331 * config/c6x/predicates.md: New file.
3332 * config/c6x/c6x-sched.md.in: New file.
3333 * config/c6x/c6x-sched.md: New file.
3334 * config/c6x/gensched.sh: New file.
3335 * config/c6x/c6x-mult.md.in: New file.
3336 * config/c6x/genmult.sh: New file.
3337 * config/c6x/c6x-mult.md: New file.
3338 * config/c6x/sync.md: New file.
3339 * config/c6x/c6x-protos.h: New file.
3340 * config/c6x/sfp-machine.h: New file.
3341 * config/c6x/c6x.c: New file.
3342 * config/c6x/c6x.h: New file.
3343 * config/c6x/crti.s: New file.
3344 * config/c6x/crtn.s: New file.
3345 * config/c6x/lib1funcs.asm: New file.
3346 * config/c6x/c6x-modes.def: New file.
3347 * config/c6x/genopt.sh: New file.
3348 * config/c6x/c6x.opt: New file.
3349 * config/c6x/c6x-tables.opt: New file.
3350 * config/c6x/c6x-opts.h: New file.
3351 * config/c6x/c6x-isas.def: New file.
3352 * config/c6x/elf.h: New file.
3353 * config/c6x/elf-common.h: New file.
3354 * config/c6x/uclinux-elf.h: New file.
3355 * config/c6x/t-c6x: New file.
3356 * config/c6x/t-c6x-elf: New file.
3357 * config/c6x/t-c6x-uclinux: New file.
3358 * config/c6x/t-c6x-softfp: New file.
3359 * config/c6x/gtd.c: New file.
3360 * config/c6x/gtf.c: New file.
3361 * config/c6x/ltd.c: New file.
3362 * config/c6x/ltf.c: New file.
3363 * config/c6x/ged.c: New file.
3364 * config/c6x/gef.c: New file.
3365 * config/c6x/led.c: New file.
3366 * config/c6x/lef.c: New file.
3367 * config/c6x/eqd.c: New file.
3368 * config/c6x/eqf.c: New file.
3369 * config/c6x/libgcc-c6xeabi.ver: New file.
3372 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3373 PR rtl-optimization/11320
3374 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3375 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3376 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3377 current_sched_info->compute_jump_reg_dependencies. Record which
3378 registers are used and which registers are set by the jump.
3379 Clear deps->reg_conditional_sets after a barrier.
3380 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3381 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3382 (init_deps): Initialize reg_conditional_sets.
3383 (free_deps): Clear reg_conditional_sets.
3384 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3385 Mark registers live on entry of the fallthrough block and conditionally
3386 set as set by the jump. Mark registers live on entry of non-fallthrough
3387 blocks as used by the jump.
3388 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3389 Mark new parameters as unused.
3391 2011-07-14 Andrew Pinski <pinskia@gmail.com>
3394 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3395 Use fold_build2_loc instead of build2.
3396 Use the correct type for the new tree.
3398 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3400 PR rtl-optimization/11320
3401 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3402 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3404 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3407 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3409 (*rotw<mode>): Use const_int_operand for operand2.
3410 Use match_scatch for operand3.
3411 (*rotb<mode>): Ditto
3412 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3414 2011-07-14 Richard Guenther <rguenther@suse.de>
3416 PR tree-optimization/49651
3417 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3418 handle dereferences with subvariables.
3420 2011-07-14 Richard Guenther <rguenther@suse.de>
3422 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3423 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3425 2011-07-14 Richard Guenther <rguenther@suse.de>
3427 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3428 not bool_var when folding bool_var != 1 or bool_var == 0.
3430 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3432 * haifa-sched.c (schedule_insns): Remove outdated comment.
3433 (schedule_block): When computing a known value for TODO_SPEC,
3434 just set it rather than using logical operations.
3435 (try_ready): Likewise. Use a local variable rather than a
3436 pointer to TODO_SPEC. Reorder an if statement to move the
3437 easy case to the then block.
3438 * sched-deps.c (dep_spec_p): New static function.
3439 (update_dep): Use it to decide whether to call
3440 change_spec_dep_to_hard.
3441 (get_back_and_forw_lists): Use it.
3442 (sd_resolve_dep): Likewise.
3443 (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
3444 (haifa_note_mem_dep): Likewise.
3445 (check_dep): Likewise.
3446 (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
3447 (sched_free_deps): Free in two passes.
3449 2011-07-14 Richard Sandiford <richard.sandiford@linaro.org>
3452 * expr.c (all_zeros_p): Undo bogus part of last change.
3454 2011-07-14 Matthias Klose <doko@ubuntu.com>
3456 * doc/extend.texi (optimize attribute): Fix typo.
3458 2011-07-14 Richard Guenther <rguenther@suse.de>
3460 * gimplify.c (gimplify_expr): Only do required conversions.
3462 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3465 * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
3466 i.e. use default_elf_select_section.
3467 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
3468 (READONLY_DATA_SECTION_ASM_OP): Remove.
3469 (TARGET_ASM_NAMED_SECTION): Move from here...
3470 * config/avr/avr.c: ...to here.
3471 (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
3472 (avr_asm_named_section): Make static.
3474 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3477 * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
3478 and crtfastmath.o for Linux/x86.
3480 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3482 * haifa-sched.c: Include "hashtab.h"
3483 (sched_no_dce): New global variable.
3484 (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
3485 SHADOW_P): New macros.
3486 (last_clock_var, cycle_issued_insns): Move declarations.
3487 (must_backtrack): New static variable.
3488 (struct delay_pair): New structure.
3489 (delay_htab, delay_htab_i2): New static variables.
3490 (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
3491 record_delay_slot_pair, pair_delay, add_delay_dependencies): New
3493 (dep_cost_1): If delay pairs exist, try to look up the insns and
3494 use the correct pair delay if we find them.
3495 (rank-for_schedule): Tweak priority for insns that must be scheduled
3496 soon to avoid backtracking.
3497 (queue_insn): Detect conditions which force backtracking.
3498 (ready_add): Likewise.
3499 (struct sched_block_state): Add member shadows_only_p.
3500 (struct haifa_save_data): New structure.
3501 (backtrack_queue): New static variable.
3502 (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
3503 unschedule_insns_until, restore_last_backtrack_point,
3504 free_topmost_backtrack_point, free_backtrack_queue,
3505 estimate_insn_tick, estimate_shadow_tick): New functions.
3506 (prune_ready_list): New arg shadows_only_p. All callers changed.
3507 If true, remove everything that isn't SHADOW_P. Look up delay
3508 pairs and estimate ticks to avoid scheduling the first insn too early.
3509 (verify_shadows): New function.
3510 (schedule_block): Add machinery to enable backtracking.
3511 (sched_init): Take sched_no_dce into account when setting
3513 (free_delay_pairs): New function.
3514 (init_h_i_d): Initialize INSN_EXACT_TICK.
3515 * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
3516 * sched-deps.c (sd_unresolve_dep): New function.
3517 * sched-int. (struct haifa_sched_info): New fields save_state
3519 (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
3520 feeds_backtrack_insn and shadow_p.
3521 (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
3522 (sched_no_dce): Declare variable.
3523 (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
3524 sd_unresolve_dep): Declare functions.
3525 * modulo-sched.c (sms_sched_info): Clear the two new fields.
3526 * sched-rgn.c (rgn_const_sched_info): Likewise.
3527 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
3528 * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
3529 (ebb_sched_info): Add them for the two new fields.
3530 (add_deps_for_risky_insns): Call add_delay_dependencies.
3532 2011-07-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3534 * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
3536 * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
3537 (rs6000_call_indirect_aix): Ditto.
3538 * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
3539 (call_indirect_aix<ptrsize>_internal): Ditto.
3540 (call_indirect_aix<ptrsize>_nor11): Ditto.
3541 (call_indirect_aix<ptrsize>_internal2): Ditto.
3542 (call_value_indirect_aix<ptrsize>): Ditto.
3543 (call_value_indirect_aix<ptrsize>_internal): Ditto.
3544 (call_value_indirect_aix<ptrsize>_nor11): Ditto.
3545 (call_value_indirect_aix<ptrsize>_internal2): Ditto.
3546 * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
3548 2011-07-13 Jason Merrill <jason@redhat.com>
3550 * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
3552 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3554 * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
3555 * config/spu/spu.md ("clrsb<mode>2"): New expander.
3557 2011-07-13 Thomas Schwinge <thomas@schwinge.name>
3559 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
3560 * configure: Regenerate.
3562 2011-07-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3564 * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
3565 (asm_file_start): Remove.
3566 (spu_machine_dependent_reorg): Call compute_bb_for_insn and
3567 free_bb_for_insn around code that modifies insns before
3568 restarting df analysis.
3570 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3573 * config/sol2.h (LIB_SPEC): Simplify. Move LIB_THREAD_LDFLAGS_SPEC ...
3574 (LINK_SPEC): ... here.
3576 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3578 * haifa-sched.c (struct sched_block_state): New.
3579 (schedule_block): Move some local variables into such a structure.
3581 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3583 * config/i386/crtprec.c: Move to ../libgcc/config/i386.
3584 * config/i386/t-crtpc: Remove.
3585 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3586 * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
3588 (x86_64-*-darwin*): Likewise.
3589 (i[34567]86-*-linux*): Likewise.
3590 (x86_64-*-linux*): Likewise.
3592 * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
3593 Handle -mpc32, -mpc64, -mpc80.
3595 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3597 * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
3598 * config/alpha/t-crtfm: Remove.
3599 * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
3600 * config/i386/t-crtfm: Remove.
3601 * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
3602 * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
3603 * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
3604 * config/sparc/t-crtfm: Remove.
3606 * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
3607 (alpha*-*-freebsd*): Likewise.
3608 (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
3609 (x86_64-*-darwin*): Likewise.
3610 (i[34567]86-*-linux*): Likewise.
3611 (x86_64-*-linux*): Likewise.
3612 (x86_64-*-mingw*): Likewise.
3613 (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
3614 (ia64*-*-freebsd*): Likewise.
3615 (ia64*-*-linux*): Likewise.
3616 (mips64*-*-linux*): Likewise.
3617 (mips*-*-linux*): Likewise.
3618 (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
3619 (sparc64-*-linux*): Likewise.
3620 (sparc64-*-freebsd*): Likewise.
3622 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3624 * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
3625 * config/darwin-crt3.c: Move to ../libgcc/config.
3626 * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
3627 ($(T)crt3$(objext)): Remove.
3628 * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
3629 ($(T)crt2$(objext)): Remove.
3630 * config.gcc (powerpc-*-darwin*): Remove extra_parts.
3631 (powerpc64-*-darwin*): Likewise.
3633 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
3635 * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
3637 * config/i386/i386.md (*addsi_1_zext): Renamed to ...
3638 (addsi_1_zext): This.
3640 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3642 * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
3643 * doc/tm.texi: Regenerate.
3644 * target.def (mergeable_rodata_prefix): New defhookpod.
3645 * varasm.c (mergeable_string_section, mergeable_constant_section):
3646 Use it. Allocate name with alloca.
3648 2011-07-13 H.J. Lu <hongjiu.lu@intel.com>
3650 * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
3652 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
3654 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
3657 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
3659 * tree.h (categorize_ctor_elements): Remove comment. Fix long line.
3660 (count_type_elements): Delete.
3661 (complete_ctor_at_level_p): Declare.
3662 * expr.c (flexible_array_member_p): New function, split out from...
3663 (count_type_elements): ...here. Make static. Replace allow_flexarr
3664 parameter with for_ctor_p. When for_ctor_p is true, return the
3665 number of elements that should appear in the top-level constructor,
3666 otherwise return an estimate of the number of scalars.
3667 (categorize_ctor_elements): Replace p_must_clear with p_complete.
3668 (categorize_ctor_elements_1): Likewise. Use complete_ctor_at_level_p.
3669 (complete_ctor_at_level_p): New function, borrowing union logic
3670 from old categorize_ctor_elements_1.
3671 (mostly_zeros_p): Return true if the constructor is not complete.
3672 (all_zeros_p): Update call to categorize_ctor_elements.
3673 * gimplify.c (gimplify_init_constructor): Update call to
3674 categorize_ctor_elements. Don't call count_type_elements.
3675 Unconditionally prevent clearing for variable-sized types,
3676 otherwise rely on categorize_ctor_elements to detect
3677 incomplete initializers.
3679 2011-07-13 Richard Guenther <rguenther@suse.de>
3681 * tree-vrp.c (simplify_conversion_using_ranges): Make sure
3682 the final type is integral.
3684 2011-07-13 Bernd Schmidt <bernds@codesourcery.com>
3686 * sched-int.h (struct _dep): Add member cost.
3687 (DEP_COST, UNKNOWN_DEP_COST): New macros.
3688 * sched-deps.c (init_dep_1): Initialize DEP_COST.
3689 * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
3690 (sched_change_pattern): Reset it for dependent insns.
3692 2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3694 * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
3695 ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
3696 * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
3697 * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
3698 (CRT0_S, MCRT0_S): Remove.
3699 ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
3702 * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
3704 2011-07-12 Eric Botcazou <ebotcazou@adacore.com>
3706 * cse.c (insert_with_costs): Put semi-colon after empty loop body
3708 * emit-rtl.c (push_to_sequence): Likewise.
3709 * haifa-sched.c (max_issue): Likewise.
3710 * matrix-reorg.c (add_allocation_site): Likewise.
3711 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
3712 * reload.c (alternative_allows_const_pool_ref): Likewise.
3713 * sched-rgn.c (rgn_add_block): Likewise.
3714 (rgn_fix_recovery_cfg): Likewise.
3715 * tree.c (attribute_list_contained): Likewise.
3717 2011-07-12 Uros Bizjak <ubizjak@gmail.com>
3719 * config/i386/i386.c: Tidy processor feature bitmasks.
3722 2011-07-12 Andrew Pinski <pinskia@gmail.com>
3725 * cprop.c (find_implicit_sets): Correct the condition.
3727 2011-07-12 Richard Henderson <rth@redhat.com>
3730 * dwarf2out.h (dwarf_frame_regnum): Remove.
3731 * dwarf2out.c (based_loc_descr): Revert last change. Initialize regno
3732 earlier from DWARF_FRAME_REGNUM. Never use dbx_reg_number.
3733 * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
3734 (execute_dwarf2_frame): Initialize them.
3735 (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
3736 users of the macros with the variables.
3737 (expand_builtin_dwarf_sp_column): Revert last change.
3738 (expand_builtin_init_dwarf_reg_sizes): Likewise. Compute the
3739 result of DWARF_FRAME_REGNUM into a local variable.
3741 2011-07-12 Richard Henderson <rth@redhat.com>
3744 * config/i386/i386.c (x86_output_mi_thunk): Use
3745 machopic_indirect_call_target instead of machopic_indirection_name
3748 2011-07-12 Laurent GUERBY <laurent@guerby.net>
3749 Eric Botcazou <ebotcazou@adacore.com>
3751 * prefix.h: Wrap up in extern "C" block.
3753 2011-07-12 Harsha Jagasia <harsha.jagasia@amd.com>
3755 AMD bdver2 Enablement
3756 * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
3757 (case ${target}): Add bdver2.
3758 * config/i386/driver-i386.c (host_detect_local_cpu): Let
3759 -march=native recognize bdver2 processors.
3760 * config/i386/i386-c.c (ix86_target_macros_internal): Add
3761 bdver2 def_and_undef
3762 * config/i386/i386.c (struct processor_costs bdver2_cost): New
3764 (m_BDVER2): New definition.
3765 (m_AMD_MULTIPLE): Includes m_BDVER2.
3766 (initial_ix86_tune_features): Add bdver2 tuning.
3767 (processor_target_table): Add bdver2 entry.
3768 (static const char *const cpu_names): Add bdver2 entry.
3769 (ix86_option_override_internal): Add bdver2 instruction sets.
3770 (ix86_issue_rate): Add bdver2.
3771 (ix86_adjust_cost): Add bdver2.
3772 (has_dispatch): Add bdver2.
3773 * config/i386/i386.h (TARGET_BDVER2): New definition.
3774 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
3775 (enum processor_type): Add PROCESSOR_BDVER2.
3776 * config/i386/i386.md (define_attr "cpu"): Add bdver2.
3777 * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
3780 2011-07-12 Richard Henderson <rth@redhat.com>
3783 * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
3784 destination address in memory on some paths.
3786 2011-07-12 Bernd Schmidt <bernds@codesourcery.com>
3788 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
3789 TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
3790 (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
3791 * function.c (locate_and_pad_parm): Take it into account.
3792 * target.def (function_arg_round_boundary): New hook.
3793 * targhooks.c (default_function_arg_round_boundary): New function.
3794 * targhooks.h (default_function_arg_round_boundary): Declare.
3795 * doc/tm.texi: Regenerate.
3797 2011-07-12 Richard Guenther <rguenther@suse.de>
3799 * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
3800 Do not perform no-op changes.
3802 2011-07-12 Richard Sandiford <richard.sandiford@linaro.org>
3804 * config/arm/predicates.md (neon_struct_operand): Make a normal
3806 (neon_struct_or_register_operand): New predicate.
3807 * config/arm/neon.md (movmisalign<mode>): Replace predicates
3808 with neon_struct_or_register_operand.
3809 (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
3810 neon_struct_operand instead of memory_operand.
3812 2011-07-12 Martin Jambor <mjambor@suse.cz>
3814 * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
3815 * cgraph.c (cgraph_get_node_or_alias): Removed.
3816 (change_decl_assembler_name): Changed all calls to
3817 cgraph_get_node_or_alias to a call to cgraph_get_node.
3818 (cgraph_make_decl_local): Likewise.
3819 * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
3820 * varasm.c (default_binds_local_p_1): Likewise.
3821 (decl_binds_to_current_def_p): Likewise.
3823 2011-07-12 Jakub Jelinek <jakub@redhat.com>
3825 PR tree-optimization/49712
3826 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
3828 2011-07-11 Bernd Schmidt <bernds@codesourcery.com>
3830 * genautomata.c (add_arc): Return void. All callers changed.
3831 (make_automaton): Remove dead code.
3833 2011-07-11 Richard Henderson <rth@redhat.com>
3835 * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
3836 (DW_FRAME_POINTER_REGNUM): New.
3837 (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
3838 (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
3840 (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
3841 dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
3842 dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
3844 * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
3845 * dwarf2out.h (dwarf_frame_regnum): New.
3846 (struct cfa_loc): Document the domain of the reg member.
3848 2011-07-11 Uros Bizjak <ubizjak@gmail.com>
3850 * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
3851 Use offset everywhere. Always assert that offset <= TRAMPOLINE_SIZE.
3853 2011-07-11 Jakub Jelinek <jakub@redhat.com>
3856 * dwarf2out.c (int_shift_loc_descriptor): New function.
3857 (int_loc_descriptor): If shorter, emit i as
3858 (i >> shift), shift, DW_OP_shl for suitable shift value.
3859 Similarly, try to optimize large negative values using
3860 DW_OP_neg of a positive value if shorter.
3861 (size_of_int_shift_loc_descriptor): New function.
3862 (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
3864 (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
3865 that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
3866 DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
3868 (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
3869 addend as added DW_OP_plus if it is shorter.
3871 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3873 * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
3874 (DTORS_SECTION_ASM_OP): Define.
3876 2011-07-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3878 * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
3879 * config/t-dfprules: Move to ../libgcc/config.
3880 * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3881 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3882 i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
3883 (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
3885 (i[34567]86-*-cygwin*): Likewise.
3886 (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3887 (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
3888 * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
3889 (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
3890 D64PBIT_FUNCS, D128PBIT_FUNCS.
3892 2011-07-11 Richard Guenther <rguenther@suse.de>
3894 * tree-vrp.c (simplify_conversion_using_ranges): Manually
3895 translate the source value-range through the conversion chain.
3897 2011-07-11 Richard Sandiford <richard.sandiford@linaro.org>
3899 * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
3901 2011-07-11 Arthur Loiret <aloiret@debian.org>
3903 * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
3904 a bi-arch compiler defaulting to 31-bit. In this case:
3905 (tmake_file): Add s390/t-linux64.
3906 * doc/install.texi: Add s390-linux to the list of targets supporting
3907 --enable-targets=all.
3909 2011-07-11 Arthur Loiret <aloiret@debian.org>
3910 Matthias Klose <doko@debian.org>
3912 * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
3913 a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
3914 (tm_file): Add mips/linux64.h.
3915 (tmake_file): Add mips/t-linux64.
3916 (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
3917 * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
3918 instead of hardcoded mabi=n32.
3919 * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
3920 tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
3923 2011-07-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3925 * passes.c (init_optimization_passes): Add invariant motion pass
3926 after induction variable optimization.
3928 2011-07-11 Georg-Johann Lay <avr@gjlay.de>
3931 * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
3932 offsets 1..5 set cc0 in a usable way.
3934 2011-07-11 Romain Geissler <romain.geissler@gmail.com>
3936 * tree.h (call_expr_arg): Remove.
3937 (call_expr_argp): Likewise.
3939 2011-07-11 Eric Botcazou <ebotcazou@adacore.com>
3941 * config/sparc/sparc.md (save_register_window_1): Rename to...
3942 (window_save): ...this.
3943 * config/sparc/sparc.c (emit_save_register_window): Rename to...
3944 (emit_window_save): ...this.
3945 (sparc_expand_prologue): Adjust to above renaming.
3947 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
3949 * config/i386/i386.c (ix86_trampoline_init): Use movl instead
3952 2011-07-10 Richard Henderson <rth@redhat.com>
3954 * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
3955 run final, instead of emitting text directly.
3957 2011-07-10 H.J. Lu <hongjiu.lu@intel.com>
3959 * config/i386/i386.c (ix86_option_override_internal): Turn on
3960 OPTION_MASK_ISA_64BIT for TARGET_X32. Only allow small and
3961 small PIC models for TARGET_X32.
3963 2011-07-10 Hans-Peter Nilsson <hp@axis.com>
3966 * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
3970 * config/cris/cris.c (cris_asm_output_case_end): Robustify against
3971 stray notes and debug insns by using prev_nonnote_nondebug_insn
3972 instead of PREV_INSN.
3974 2011-07-09 Richard Henderson <rth@redhat.com>
3976 * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
3977 DWARF_TYPE_SIGNATURE_SIZE): Move from ...
3978 * dwarf2out.c: ... here.
3979 (output_all_cfis): Remove.
3980 (dwarf2out_switch_text_section): Use output_cfis directly.
3981 (size_of_locs): Export.
3982 (output_loc_sequence, output_loc_sequence_raw): Export.
3983 (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
3984 output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
3985 output_cfa_loc_raw): Move to ...
3986 * dwarfcfi.c: ... here.
3987 * dwarf2out.h: Update decls.
3989 2011-07-09 Richard Henderson <rth@redhat.com>
3991 * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
3992 DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
3993 * dwarf2cfi.c: ... here.
3994 (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
3995 (DWARF_ROUND, DWARF_CIE_ID): Remove.
3996 * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
3997 (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
3998 (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4000 2011-07-09 Richard Henderson <rth@redhat.com>
4002 * dwarf2cfi.c (cie_return_save): New.
4003 (queue_reg_save): Use compare_reg_or_pc.
4004 (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4005 (dwarf2out_frame_debug_expr): Likewise.
4006 (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4007 (initial_return_save): Likewise.
4008 (execute_dwarf2_frame): Save and restore initial return save from
4010 * config/mips/mips.c (mips_frame_set): Remove special case for
4011 DWARF_FRAME_RETURN_COLUMN.
4013 2011-07-09 Richard Henderson <rth@redhat.com>
4015 * dwarf2cfi.c (lookup_cfa): Remove.
4016 (execute_dwarf2_frame): Assert queues are empty on entry.
4017 Setup initial cfa directly, not via lookup_cfa.
4018 Don't clear args_size state here.
4020 2011-07-09 Richard Henderson <rth@redhat.com>
4022 * dwarf2cfi.c (add_cfi_vec): New.
4023 (add_cfi): Rename from add_fde_cfi. Add the element to add_cfi_vec.<