1 2011-08-09 Uros Bizjak <ubizjak@gmail.com>
4 * config/i386/i386.md (reload_noff_load): New.
5 (reload_noff_store): Ditto.
6 * config/i386/i386.c (ix86_secondary_reload): Use
7 CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
8 double-word moves from/to non-offsetable addresses instead of
9 generating XMM temporary.
11 2011-08-09 Anatoly Sokolov <aesok@post.ru>
13 * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
15 2011-08-09 Ira Rosen <ira.rosen@linaro.org>
17 PR tree-optimization/50014
18 * tree-vect-loop.c (vectorizable_reduction): Get def type before
19 calling vect_get_vec_def_for_stmt_copy ().
21 2011-08-08 Vladimir Makarov <vmakarov@redhat.com>
23 PR rtl-optimization/49990
24 * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
25 ignore classes which can not change mode.
26 (find_costs_and_classes): Ditto.
28 2011-08-08 Richard Henderson <rth@redhat.com>
31 * config/i386/i386.c (ix86_expand_prologue): Call
32 for SEH target gen_prologue_use instead of gen_blockage
35 2011-08-08 Martin Jambor <mjambor@suse.cz>
38 * tree-sra.c (access_precludes_ipa_sra_p): Also check access
41 2011-08-08 Diego Novillo <dnovillo@google.com>
43 * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
44 (DATA_STREAMER_H): New.
45 (GIMPLE_STREAMER_H): New.
46 (TREE_STREAMER_H): New.
47 (STREAMER_HOOKS_H): New.
48 (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
49 gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
50 tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
51 (data-streamer.o): New.
52 (data-streamer-in.o): New.
53 (data-streamer-out.o): New.
54 (gimple-streamer-in.o): New.
55 (gimple-streamer-out.o): New.
56 (streamer-hooks.o): New.
57 (tree-streamer.o): New.
58 (tree-streamer-in.o): New.
59 (tree-streamer-out.o): New.
60 (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
61 (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
62 GIMPLE_STREAMER_H and TREE_STREAMER_H.
63 (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
64 GIMPLE_STREAMER_H and TREE_STREAMER_H.
65 (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
66 (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
67 (ipa-inline-analysis.o): Likewise.
68 (ipa-pure-const.o): Likewise.
69 * data-streamer-in.c: New.
70 * data-streamer-out.c: New.
71 * data-streamer.c: New.
72 * data-streamer.h: New.
73 * gimple-streamer-in.c: New.
74 * gimple-streamer-out.c: New.
75 * gimple-streamer.h: New.
76 * ipa-inline-analysis.c: Include data-streamer.h.
77 * ipa-prop.c: Include data-streamer.h.
78 * ipa-pure-const.c: Include data-streamer.h.
79 * lto-cgraph.c: Include data-streamer.h.
80 * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
81 (lto_input_widest_uint_uleb128): Likewise.
82 (lto_input_sleb128): Likewise.
83 (bp_unpack_var_len_unsigned): Likewise.
84 (bp_unpack_var_len_int): Likewise.
85 * lto-section-out.c (lto_output_uleb128_stream): Move to
87 (lto_output_widest_uint_uleb128_stream): Likewise.
88 (lto_output_sleb128_stream): Likewise.
89 (bp_pack_var_len_unsigned): Likewise.
90 (bp_pack_var_len_int): Likewise.
91 * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
92 (struct string_slot): Remove. Update all users.
93 (lto_tag_check_set): Make extern.
94 (lto_tag_check_range): Move to lto-streamer.h.
95 (lto_tag_check): Likewise.
96 (hash_string_slot_node): Remove. Update all users.
97 (eq_string_slot_node): Remove. Update all users.
98 (string_for_index): Move to data-streamer-in.c
99 (input_string_internal): Likewise.
100 (input_string_cst): Move to tree-streamer-in.c.
101 (input_identifier): Likewise.
102 (lto_input_string): Move to data-streamer-in.c
103 (input_record_start): Move to data-streamer.h
104 (canon_file_name): Use new definition of struct string_slot
105 from data-streamer.h. Set S_SLOT.LEN.
106 (lto_input_location): Make extern.
107 (lto_input_chain): Move to tree-streamer-in.c.
108 (lto_init_eh): Make extern.
109 (input_phi): Move to gimple-streamer-in.c.
110 (input_gimple_stmt): Likewise.
111 (input_bb): Likewise.
112 (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
113 (unpack_ts_real_cst_value_fields): Likewise.
114 (unpack_ts_fixed_cst_value_fields): Likewise.
115 (unpack_ts_decl_common_value_fields): Likewise.
116 (unpack_ts_decl_wrtl_value_fields): Likewise.
117 (unpack_ts_decl_with_vis_value_fields): Likewise.
118 (unpack_ts_function_decl_value_fields): Likewise.
119 (unpack_ts_type_common_value_fields): Likewise.
120 (unpack_ts_block_value_fields): Likewise.
121 (unpack_ts_translation_unit_decl_value_fields): Likewise.
122 (unpack_value_fields): Likewise.
123 (lto_materialize_tree): Likewise.
124 (lto_input_ts_common_tree_pointers): Likewise.
125 (lto_input_ts_vector_tree_pointers): Likewise.
126 (lto_input_ts_complex_tree_pointers): Likewise.
127 (lto_input_ts_decl_minimal_tree_pointers): Likewise.
128 (lto_input_ts_decl_common_tree_pointers): Likewise.
129 (lto_input_ts_decl_non_common_tree_pointers): Likewise.
130 (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
131 (lto_input_ts_field_decl_tree_pointers): Likewise.
132 (lto_input_ts_function_decl_tree_pointers): Likewise.
133 (lto_input_ts_type_common_tree_pointers): Likewise.
134 (lto_input_ts_type_non_common_tree_pointers): Likewise.
135 (lto_input_ts_list_tree_pointers): Likewise.
136 (lto_input_ts_vec_tree_pointers): Likewise.
137 (lto_input_ts_exp_tree_pointers): Likewise.
138 (lto_input_ts_block_tree_pointers): Likewise.
139 (lto_input_ts_binfo_tree_pointers): Likewise.
140 (lto_input_ts_constructor_tree_pointers): Likewise.
141 (lto_input_ts_target_option): Likewise.
142 (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
143 (lto_input_tree_pointers): Likewise.
144 (lto_get_pickled_tree): Likewise.
145 (lto_get_builtin_tree): Likewise.
146 (lto_read_tree): Likewise.
147 (lto_input_integer_cst): Likewise.
148 (lto_input_tree): Likewise.
149 * lto-streamer-out.c: Include data-streamer.h,
150 gimple-streamer.h and streamer-hooks.h.
151 (struct string_slot): Move to data-streamer.h.
152 (hash_string_slot_node): Likewise.
153 (eq_string_slot_node): Likewise.
154 (lto_string_index): Move to data-streamer-out.c.
155 (lto_output_string_with_length): Likewise.
156 (lto_output_string): Likewise.
157 (output_string_cst): Move to tree-streamer-out.c.
158 (output_identifier): Likewise.
159 (output_zero): Move to data-streamer-out.c
160 (output_uleb128): Likewise.
161 (output_sleb128): Likewise.
162 (output_record_start): Move to data-streamer.h
163 (pack_ts_base_value_fields): Move to tree-streamer-out.c.
164 (pack_ts_real_cst_value_fields): Likewise.
165 (pack_ts_fixed_cst_value_fields): Likewise.
166 (pack_ts_decl_common_value_fields): Likewise.
167 (pack_ts_decl_wrtl_value_fields): Likewise.
168 (pack_ts_decl_with_vis_value_fields): Likewise.
169 (pack_ts_function_decl_value_fields): Likewise.
170 (pack_ts_type_common_value_fields): Likewise.
171 (pack_ts_block_value_fields): Likewise.
172 (pack_ts_translation_unit_decl_value_fields): Likewise.
173 (pack_value_fields): Likewise.
174 (lto_output_chain): Likewise.
175 (lto_output_ts_common_tree_pointers): Likewise.
176 (lto_output_ts_vector_tree_pointers): Likewise.
177 (lto_output_ts_complex_tree_pointers): Likewise.
178 (lto_output_ts_decl_minimal_tree_pointers): Likewise.
179 (lto_output_ts_decl_common_tree_pointers): Likewise.
180 (lto_output_ts_decl_non_common_tree_pointers): Likewise.
181 (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
182 (lto_output_ts_field_decl_tree_pointers): Likewise.
183 (lto_output_ts_function_decl_tree_pointers): Likewise.
184 (lto_output_ts_type_common_tree_pointers): Likewise.
185 (lto_output_ts_type_non_common_tree_pointers): Likewise.
186 (lto_output_ts_list_tree_pointers): Likewise.
187 (lto_output_ts_vec_tree_pointers): Likewise.
188 (lto_output_ts_exp_tree_pointers): Likewise.
189 (lto_output_ts_block_tree_pointers): Likewise.
190 (lto_output_ts_binfo_tree_pointers): Likewise.
191 (lto_output_ts_constructor_tree_pointers): Likewise.
192 (lto_output_ts_target_option): Likewise.
193 (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
194 (lto_output_tree_pointers): Likewise.
195 (lto_output_tree_header): Likewise.
196 (lto_output_builtin_tree): Likewise.
197 (lto_write_tree): Likewise.
198 (lto_output_integer_cst): Likewise.
199 (lto_output_tree): Likewise.
200 (output_phi): Move to gimple-streamer-out.c.
201 (output_gimple_stmt): Likewise.
202 (output_bb): Likewise.
203 * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
204 (streamer_hooks): Move to streamer-hooks.c.
205 (check_handled_ts_structures): Move to tree-streamer.c
206 (lto_streamer_cache_add_to_node_array): Likewise.
207 (lto_streamer_cache_insert_1): Likewise.
208 (lto_streamer_cache_insert): Likewise.
209 (lto_streamer_cache_insert_at): Likewise.
210 (lto_streamer_cache_append): Likewise.
211 (lto_streamer_cache_lookup): Likewise.
212 (lto_streamer_cache_get): Likewise.
213 (lto_record_common_node): Likewise.
214 (lto_preload_common_nodes): Likewise.
215 (lto_streamer_cache_create): Likewise.
216 (lto_streamer_cache_delete): Likewise.
217 (streamer_hooks_init): Move to streamer-hooks.c.
218 * lto-streamer.h: Include diagnostic.h
219 (struct output_block, struct lto_input_block,
220 struct data_in, struct bitpack_d): Remove forward declarations.
221 (struct bitpack_d): Move to data-streamer.h.
222 (struct lto_streamer_cache_d): Move to tree-streamer.h.
223 (struct streamer_hooks): Move to streamer-hooks.h.
224 (bp_pack_var_len_unsigned): Move to data-streamer.h.
225 (bp_pack_var_len_int): Likewise.
226 (bp_unpack_var_len_unsigned): Likewise.
227 (bp_unpack_var_len_int): Likewise.
228 (lto_input_location): Declare.
229 (lto_tag_check_set): Declare.
230 (lto_init_eh): Declare.
231 (lto_output_tree_ref): Declare.
232 (lto_output_location): Declare.
233 (bitpack_create): Move to data-streamer.h.
234 (bp_pack_value): Likewise.
235 (lto_output_bitpack): Likewise.
236 (lto_input_bitpack): Likewise.
237 (bp_unpack_value): Likewise.
238 (lto_output_1_stream): Likewise.
239 (lto_input_1_unsigned): Likewise.
240 (lto_output_int_in_range): Likewise.
241 (lto_input_int_in_range): Likewise.
242 (bp_pack_int_in_range): Likewise.
243 (bp_unpack_int_in_range): Likewise.
244 (lto_output_enum): Likewise.
245 (lto_input_enum): Likewise.
246 (bp_pack_enum): Likewise.
247 (bp_unpack_enum): Likewise.
248 * streamer-hooks.c: New.
249 * streamer-hooks.h: New.
250 * tree-streamer-in.c: New.
251 * tree-streamer-out.c: New.
252 * tree-streamer.c: New.
253 * tree-streamer.h: New.
255 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
257 * gthr-posix95.h: Remove.
258 * gthr.h [_PTHREADS95]: Remove.
259 * configure.ac (enable_threads): Remove posix95.
260 * configure: Regenerate.
261 * doc/install.texi (Configuration, --enable-threads): Remove posix95.
263 2011-08-08 Uros Bizjak <ubizjak@gmail.com>
266 * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
268 (ix86_print_operand_address): Handle zero-extended addresses.
269 (memory_address_length): Add length of addr32 prefix for
270 zero-extended addresses.
271 (ix86_secondary_reload): Handle moves to/from double-word general
272 registers from/to zero-extended addresses.
273 * config/i386/predicates.md (lea_address_operand): Reject
274 zero-extended operands.
276 2011-08-08 H.J. Lu <hongjiu.lu@intel.com>
279 * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
281 * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
282 (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
284 * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
285 (_Unwind_Context_Reg_Val): Likewise.
286 (_Unwind_Get_Unwind_Word): Likewise.
287 (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
288 (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
289 (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
290 for EXTENDED_CONTEXT_BIT.
291 (__frame_state_for): Likewise.
292 (uw_init_context_1): Likewise.
293 (_Unwind_GetGR): Updated.
294 (_Unwind_SetGR): Likewise.
295 (_Unwind_GetGRPtr): Likewise.
296 (_Unwind_SetGRPtr): Likewise.
297 (_Unwind_SetGRValue): Likewise.
298 (_Unwind_GRByValue): Likewise.
299 (uw_install_context_1): Likewise.
301 * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
302 ASSUME_EXTENDED_UNWIND_CONTEXT.
303 * doc/tm.texi: Regenerated.
305 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
307 * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
309 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
311 * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
313 (DEC Alpha Options, -mtune): Likewise.
314 (MIPS Options, -march): native is supported on IRIX.
316 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
318 * config/sparc/driver-sparc.c: New file.
319 * config/sparc/x-sparc: New file.
320 * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
321 * config/sparc/sparc.opt (native): New value for enum processor_type.
322 * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
323 * config/sparc/sparc.c (sparc_option_override): Abort if
324 PROCESSOR_NATIVE gets here.
325 * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
326 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
327 DRIVER_SELF_SPECS): Define.
328 * doc/invoke.texi (SPARC Options, -mcpu): Document native.
329 (SPARC Options, -mtune): Likewise.
330 * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
332 * configure: Regenerate.
333 * Makefile.in (EXTRA_GCC_LIBS): Set.
334 (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
335 (cpp$(exeext)): Likewise.
337 2011-08-08 Richard Guenther <rguenther@suse.de>
339 * tree-vrp.c (extract_range_from_unary_expr_1): New function,
341 (extract_range_from_unary_expr): ... here. Handle BIT_NOT_EXPR
344 2011-08-08 Mikael Pettersson <mikpe@it.uu.se>
346 PR tree-optimization/50005
347 * ipa-inline-analysis (remap_predicate): Add cast to
348 silence signed/unsigned comparison warning.
350 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
352 * modulo-sched.c (get_sched_window): Use a table for the debug output.
353 Print the current ii.
354 (sms_schedule_by_order): Reduce whitespace in dump line.
356 2011-08-08 Richard Sandiford <richard.sandiford@linaro.org>
358 * modulo-sched.c (get_sched_window): Use just one loop for predecessors
359 and one loop for successors. Fix upper bound of memory range.
361 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
364 * config/alpha/alpha.c (alpha_instantiate_decls): New function.
365 (TARGET_INSTANTIATE_DECLS): New define.
367 2011-08-06 Paolo Bonzini <bonzini@gnu.org>
368 Mikael Morin <mikael.morin@sfr.fr>
370 * Makefile.in (INCLUDES_FOR_TARGET): New.
371 (LIBGCC2_CFLAGS): Use it.
372 (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
374 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
376 * config/i386/i386.c (ix86_compute_frame_layout): Simplify
377 frame->save_regs_using_mov calculation.
379 2011-08-06 Uros Bizjak <ubizjak@gmail.com>
381 * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
382 * config/i386/sse.md (castmode): New mode attribute.
383 (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
384 avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
386 2011-08-05 Jan Hubicka <jh@suse.cz>
389 * ipa-inline-analysis.c (remap_predicate): Add bounds check.
391 2011-08-05 Jan Hubicka <jh@suse.cz>
394 * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
396 (create_emultls_var):New function.
397 (ipa_lower_emutls): Handle aliases correctly.
399 2011-08-05 Jan Hubicka <jh@suse.cz>
402 * ipa-inline.c (recursive_inlining): Look through aliases.
404 2011-08-05 Jason Merrill <jason@redhat.com>
406 * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
407 declarations to beginning of function.
409 2011-08-05 Bernd Schmidt <bernds@codesourcery.com>
411 PR rtl-optimization/49900
412 * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
413 ensure basic blocks stay in the same order.
415 2011-08-05 Aldy Hernandez <aldyh@redhat.com>
417 * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
419 (s390_expand_atomic): Same.
421 2011-08-05 Richard Henderson <rth@redhat.com>
424 * dwarf2cfi.c (scan_insn_after): Split out of ...
425 (scan_trace): ... here. Correctly place notes wrt sequences.
427 2011-08-05 Kaz Kojima <kkojima@gcc.gnu.org>
428 Richard Henderson <rth@redhat.com>
431 * expr.c (fixup_args_size_notes): Look through no-op moves.
433 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
435 * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
436 of "m" for operand 0. Add type and mode attribute.
437 (*pushxf_nointeger"): Use "<" constraint for operand 0.
438 (*pushdf_rex64): New pattern, split out of *pushdf. Use "m"
439 constraint instead of "o" for opreand 1.
440 (*pushdf): Disable for TARGET_64BIT. Correct mode attribute.
441 (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
442 operand 0, alternative 4.
443 (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
445 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
447 * config/i386/predicates.md (lea_address_operand): Rename from
448 no_seg_address_operand.
449 * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
450 (*lea_1_zext): Ditto.
452 (*lea_2_zext): Ditto.
454 2011-08-05 Uros Bizjak <ubizjak@gmail.com>
456 * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
457 parts.base and parts.index.
458 * config/i386/predicates.md (aligned_operand): Ditto.
459 (cmpxchg8b_pic_memory_operand): Ditto.
461 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
463 * config/soft-fp: Move to ../libgcc.
464 * Makefile.in (SFP_MACHINE): Remove.
465 (libgcc-support): Remove $(SFP_MACHINE) dependency.
466 * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
467 * config/arm/t-arm-softfp: Move to
468 ../libgcc/config/arm/t-softfp.
469 * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
470 * config/c6x/t-c6x-softfp: Remove.
471 * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
472 * config/i386/t-fprules-softfp: Move to
473 ../libgcc/config/t-softfp-tf.
474 * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
475 * config/ia64/t-fprules-softfp: Remove.
476 * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
477 * config/lm32/t-fprules-softfp: Remove.
478 * config/moxie/sfp-machine.h: Remove.
479 * config/moxie/t-moxie-softfp: Remove.
480 * config/rs6000/darwin-ldouble-format: Move to
481 ../libgcc/config/rs6000/ibm-ldouble-format.
482 * config/rs6000/darwin-ldouble.c: Move to
483 ../libgcc/config/rs6000/ibm-ldouble.c
484 * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
485 * config/rs6000/libgcc-ppc64.ver: Likewise.
486 * config/rs6000/sfp-machine.h: Likewise.
487 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
488 $(srcdir)/config/rs6000/libgcc-ppc64.ver.
489 (LIB2FUNCS_EXTRA): Remove.
490 (TARGET_LIBGCC2_CFLAGS): Remove.
491 * config/rs6000/t-aix52: Likewise
492 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
493 $(srcdir)/config/rs6000/darwin-ldouble.c.
494 (SHLIB_MAPFILES): Remove.
495 * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
496 $(srcdir)/config/rs6000/darwin-ldouble.c.
497 * config/rs6000/t-fprules-softfp: Move to
498 ../libgcc/config/t-softfp-sfdf.
499 * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
500 * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
501 * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
502 $(srcdir)/config/rs6000/darwin-ldouble.c.
503 * config/score/sfp-machine.h: Move to ../libgcc/config/score.
504 * config/score/t-score-softfp: Remove.
505 * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
506 soft-fp/t-softfp from tmake_file.
507 (arm*-*-uclinux*): Likewise.
508 (arm*-*-ecos-elf): Likewise.
509 (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
510 (arm*-*-rtems*): Likewise.
511 (arm*-*-elf): Likewise.
512 (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
514 (moxie-*-uclinux*): Likewise.
515 (moxie-*-rtems*): Likewise.
516 (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
518 (lm32-*-rtems*): Likewise.
519 (lm32-*-uclinux*): Likewise.
520 (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
521 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
522 (powerpc-*-linux*, powerpc64-*-linux*): Remove
523 rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
524 (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
526 (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
528 (tic6x-*-uclinux): Likewise.
529 (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
530 soft-fp/t-softfp from tmake_file.
531 (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
532 (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
533 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
534 (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
535 (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
537 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
539 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
540 (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
541 (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
543 * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
544 * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
546 * config/arm/t-vxworks: Likewise.
547 * config/arm/t-wince-pe: Likewise.
548 * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
549 * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
550 * config/bfin/t-bfin-elf: Likewise.
551 * config/bfin/t-bfin-linux: Likewise.
552 * config/bfin/t-bfin-uclinux: Likewise.
553 * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
555 * config/fr30/t-fr30: Likewise.
556 * config/frv/t-frv: Likewise.
557 * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
558 * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
559 * config/m32c/t-m32c: Likewise.
560 * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
561 * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
562 * config/mcore/t-mcore: Likewise.
563 * config/mep/t-mep: Likewise.
564 * config/microblaze/t-microblaze: Likewise.
565 * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
566 * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
567 * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
568 * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
569 * config/mn10300/t-linux: Remove.
570 * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
571 * config/pdp11/t-pdp11: Likewise.
572 * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
573 * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
574 * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
575 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
576 * config/rs6000/t-aix52: Likewise.
577 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
578 $(srcdir)/config/rs6000/ppc64-fp.c.
579 * config/rs6000/t-fprules-fpbit: Remove.
580 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
581 * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
582 * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
583 * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
584 * config/sparc/t-elf: Likewise.
585 * config/sparc/t-leon: Likewise.
586 * config/sparc/t-leon3: Likewise.
587 * config/spu/t-spu-elf: Likewise.
588 (DPBIT_FUNCS): Remove.
589 * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
590 * config/v850/t-v850: Likewise.
591 * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
593 (h8300-*-rtems*): Set libgcc_tm_file.
594 (h8300-*-elf*): Likewise.
595 (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
597 (powerpc-*-eabisim*): Likewise.
598 (powerpc-*-elf*): Likewise.
599 (powerpc-*-eabialtivec*): Likewise.
600 (powerpc-xilinx-eabi*): Likewise.
601 (powerpc-*-eabi*): Likewise.
602 (powerpc-*-rtems*): Likewise.
603 (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
604 (powerpcle-*-elf*): Likewise.
605 (powerpcle-*-eabisim*): Likewise.
606 (powerpcle-*-eabi*): Likewise.
607 (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
608 (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
609 * doc/fragments.texi (Target Fragment, Floating Point Emulation):
612 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
614 * Makefile.in (UNWIND_H): Remove.
615 (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
616 ../libgcc/Makefile.in.
617 (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
618 (LIBUNWINDDEP): Remove.
619 (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
620 (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
621 LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
622 (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
623 Don't copy $(UNWIND_H).
624 * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
625 * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
626 * aclocal.m4: Regenerate.
627 * configure: Regenerate.
628 * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
629 unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
630 unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
631 unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
632 * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
633 * config/arm/libunwind.S, config/arm/pr-support.c,
634 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
635 ../libgcc/config/arm.
636 * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
637 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
638 * config/frv/t-frv ($(T)frvbegin$(objext)): Use
639 $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
640 ($(T)frvend$(objext)): Likewise.
641 * config/ia64/t-glibc (LIB2ADDEH): Remove.
642 * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
643 * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
644 config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
645 ../libgcc/config/ia64.
646 * config/ia64/t-hpux (LIB2ADDEH): Remove.
647 * config/ia64/t-ia64 (LIB2ADDEH): Remove.
648 * config/ia64/t-vms (LIB2ADDEH): Remove.
649 * config/ia64/vms.h (UNW_IVMS_MODE,
650 MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
651 * config/picochip/t-picochip (LIB2ADDEH): Remove.
652 * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
653 * config/rs6000/t-darwin (LIB2ADDEH): Remove.
654 * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
655 * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
656 $(srcdir)/../libgcc to refer to unwinder sources.
657 * config/spu/t-spu-elf (LIB2ADDEH): Remove.
658 * config/t-darwin (LIB2ADDEH): Remove.
659 * config/t-freebsd (LIB2ADDEH): Remove.
660 * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
661 * config/t-libunwind-elf: Move to ../libgcc/config.
662 * config/t-linux (LIB2ADDEH): Remove.
663 * config/t-sol2 (LIB2ADDEH): Remove.
664 * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
665 * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
667 2011-08-05 H.J. Lu <hongjiu.lu@intel.com>
669 * config/i386/i386.c (processor_alias_table): Add core-avx-i.
671 * doc/invoke.texi: Document core-avx-i.
673 2011-08-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
675 * tsystem.h (CONST_CAST2, CONST_CAST): Define.
677 2011-08-05 Ira Rosen <ira.rosen@linaro.org>
679 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
680 result of multiple results reduction when extracting the final
681 value using scalar code.
683 2011-08-05 Richard Guenther <rguenther@suse.de>
685 PR tree-optimization/49984
686 * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
688 2011-08-05 Richard Guenther <rguenther@suse.de>
690 * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
691 return true for constant integer ranges.
692 (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
693 BIT_IOR_EXPR handling.
695 2011-08-04 Kai Tietz <ktietz@redhat.com>
697 * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
698 ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
700 2011-08-04 Ira Rosen <ira.rosen@linaro.org>
702 * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
703 pattern def statement, and its access macro.
704 (NUM_PATTERNS): Set to 5.
705 * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
706 pattern def statement.
707 (vect_transform_loop): Likewise.
708 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
709 function vect_recog_over_widening_pattern ().
710 (vect_operation_fits_smaller_type): New function.
711 (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
713 (vect_pattern_recog_1): Move the code that marks pattern
714 statements to vect_mark_pattern_stmts (), and call it. Update
716 * tree-vect-stmts.c (vect_supportable_shift): New function.
717 (vect_analyze_stmt): Handle pattern def statement.
718 (new_stmt_vec_info): Initialize pattern def statement.
720 2011-08-04 Richard Henderson <rth@redhat.com>
723 * config/i386/i386.c (ix86_expand_call): Don't create nested
724 PARALLELs for TARGET_VZEROUPPER.
725 (ix86_split_call_vzeroupper): Fix extraction of the original call.
726 * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
727 recognize nested PARALLELs.
728 (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
729 *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
730 *sibcall_value_pop_vzeroupper): Likewise.
732 2011-08-04 Richard Henderson <rth@redhat.com>
735 * calls.c (expand_call): Use fixup_args_size_notes for
737 * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
738 in non-standard modes.
740 2011-08-04 Jakub Jelinek <jakub@redhat.com>
742 * gcc.c (self_spec): New variable.
743 (static_specs): Add self_spec.
744 (main): Call do_self_spec on "self_spec" specs after reading
745 user specs files. Move compare_debug handling right after that.
747 2011-08-04 Richard Guenther <rguenther@suse.de>
749 * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
750 (value_range_nonnegative_p): New function.
751 (ssa_name_nonnegative_p): Use it.
752 (value_range_constant_singleton): New function.
753 (op_with_constant_singleton_value_range): Use it.
754 (extract_range_from_binary_expr_1): New function, split out from ...
755 (extract_range_from_binary_expr): ... this. Remove fallback
756 constant folding done here.
758 2011-08-04 Richard Guenther <rguenther@suse.de>
760 PR tree-optimization/49806
761 * tree-vrp.c (op_with_boolean_value_range_p): New function.
762 (simplify_truth_ops_using_ranges): Simplify. Allow inserting
763 a new statement for a final conversion to bool.
765 2011-08-04 Romain Geissler <romain.geissler@gmail.com>
767 * gengtype-state.c: Include "bconfig.h" if
768 GENERATOR_FILE is defined, "config.h" otherwise.
769 * gengtype.c: Likewise.
770 * gengtype-lex.l: Likewise.
771 * gengtype-parse.c: Likewise.
772 * Makefile.in (gengtype-lex.o-warn): New variable.
773 (plugin_resourcesdir): Likewise.
774 (plugin_bindir): Likewise.
775 (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
776 (MOSTLYCLEANFILES): Add gengtype$(exeext).
777 (native): Depend on gengtype$(exeext) is $enable_plugin
779 (gtype.state): Depend on s-gtype. Use temporary file.
780 (gengtype-lex.o): New rule.
781 (gengtype-parse.o): Likewise.
782 (gengtype-state.o): Likewise.
783 (gengtype$(exeext)): Likewise.
784 (install-gengtype): Likewise.
785 (gengtype.o): Likewise.
786 (build/gengtype.o): Depend on version.h.
787 (build/gengtype-state): Depend on double-int.h, version.h,
788 $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
789 (install-plugin): Depend on install-gengtype.
791 2011-08-04 Jakub Jelinek <jakub@redhat.com>
794 * tree.h (init_attributes): New prototype.
795 * attribs.c (init_attributes): No longer static.
797 2011-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
799 * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
802 2011-08-03 David Li <davidxl@google.com>
804 * tree-optimize.c (execute_fixup_cfg): Fix up entry
805 outgoing edge counts after inlining.
807 2011-08-03 David Li <davidxl@google.com>
809 * profile.c (compute_branch_probabilities): Compute
810 function frequency after profile annotation.
812 2011-08-04 Alan Modra <amodra@gmail.com>
814 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
815 use_backchain_to_restore_sp initialisation.
816 (rs6000_legitimate_offset_address_p): Simplify offset test.
818 2011-08-03 Richard Henderson <rth@redhat.com>
820 * config/spu/spu.md: Use define_c_enum instead of define_constants.
821 (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
824 2011-08-03 Richard Henderson <rth@redhat.com>
827 * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
829 2011-08-03 Jakub Jelinek <jakub@redhat.com>
831 PR tree-optimization/49948
832 * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
834 2011-08-03 Anatoly Sokolov <aesok@post.ru>
836 * config/m32c/m32c.c (class_sizes): Remove.
837 (reduce_class): Change arguments and return type to reg_class_t.
838 Change type cc var to HARD_REG_SET. Change type best var to
839 reg_class_t. Change type best_size var to unsigned int. Remove
840 initialization class_sizes var. Use reg_class_size array instead
841 of class_sizes. Use reg_class_contents array instead
844 2011-08-03 Richard Guenther <rguenther@suse.de>
847 * fold-const.c (fold_binary_loc): Only associate
848 (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
851 2011-08-03 Alan Modra <amodra@gmail.com>
853 PR rtl-optimization/49941
854 * jump.c (mark_jump_label): Comment.
855 (mark_jump_label_1): Set JUMP_LABEL for return jumps.
856 * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
857 (mark_used_flags): Don't mark RETURN.
859 2011-08-03 Richard Guenther <rguenther@suse.de>
861 PR tree-optimization/49938
862 * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
863 deal with a POLYNOMIAL_CHREC.
865 2011-08-03 Revital Eres <revital.eres@linaro.org>
867 * modulo-sched.c (calculate_stage_count,
868 calculate_must_precede_follow, get_sched_window,
869 try_scheduling_node_in_cycle, remove_node_from_ps): Add
871 (update_node_sched_params, set_must_precede_follow, optimize_sc):
873 (reset_sched_times): Call update_node_sched_params.
874 (sms_schedule): Call optimize_sc.
875 (get_sched_window): Change function arguments.
876 (sms_schedule_by_order): Update call to get_sched_window.
877 Call set_must_precede_follow.
878 (calculate_stage_count): Add function argument.
880 2011-08-02 Richard Henderson <rth@redhat.com>
884 * reg-notes.def (REG_ARGS_SIZE): New.
885 * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
886 (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
887 * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
888 different stack levels.
889 * combine-stack-adj.c (adjust_frame_related_expr): Remove.
890 (maybe_move_args_size_note): New.
891 (combine_stack_adjustments_for_block): Use it.
892 * combine.c (distribute_notes): Place REG_ARGS_SIZE.
893 * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
894 (dw_trace_info): Add beg_true_args_size, end_true_args_size,
895 beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
897 (queued_args_size): Remove.
898 (add_cfi_args_size): Assert size is non-negative.
899 (stack_adjust_offset, dwarf2out_args_size): Remove.
900 (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
901 (notice_args_size, notice_eh_throw): New.
902 (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
903 (dwarf2out_frame_debug_adjust_cfa): Likewise.
904 (dwarf2out_frame_debug_cfa_offset): Likewise.
905 (dwarf2out_frame_debug_expr): Likewise. Don't stack_adjust_offset.
906 (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
907 (change_cfi_row): Don't emit args_size.
908 (maybe_record_trace_start_abnormal): Split out from ...
909 (maybe_record_trace_start): Here. Set args_size_undefined.
910 (create_trace_edges): Update to match.
911 (scan_trace): Handle REG_ARGS_SIZE.
912 (connect_traces): Connect args_size between EH insns.
913 * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
914 * explow.c (suppress_reg_args_size): New.
915 (adjust_stack_1): Split out from ...
916 (adjust_stack): ... here.
917 (anti_adjust_stack): Use it.
918 (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
919 * expr.c (mem_autoinc_base): New.
920 (fixup_args_size_notes): New.
921 (emit_single_push_insn_1): Rename from emit_single_push_insn.
922 (emit_single_push_insn): New. Generate REG_ARGS_SIZE.
923 * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
924 * reload1.c (reload_as_needed): Likewise.
925 * rtl.h (fixup_args_size_notes): Declare.
927 2011-08-02 Paolo Carlini <paolo.carlini@oracle.com>
930 * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
932 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
933 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
935 2011-08-02 Richard Henderson <rth@redhat.com>
937 * config/h8300/h8300.c (push, pop): Return the insn.
938 (h8300_swap_into_er6): Generate correct unwind info.
939 (h8300_swap_out_of_er6): Likewise.
940 * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
941 complex cfa expression.
942 (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
944 2011-08-02 H.J. Lu <hongjiu.lu@intel.com>
946 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
948 2011-08-02 Richard Henderson <rth@redhat.com>
951 * config/h8300/h8300.c (h8300_move_ok): New.
952 * config/h8300/h8300-protos.h: Declare it.
953 * config/h8300/h8300.md (P): New mode iterator.
954 (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
955 (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
956 (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
957 (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
958 (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
959 and pushqi1_h8300hs_normal; use PRE_MODIFY and
960 register_no_sp_elim_operand.
961 (*pushhi1_h8300hs_<P>): Similarly.
962 (pushqi1, pushhi1, pushhi1_h8300): Remove.
963 * config/h8300/predicates.md (register_no_sp_elim_operand): New.
965 2011-08-02 Richard Henderson <rth@redhat.com>
968 * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
970 2011-08-02 Jakub Jelinek <jakub@redhat.com>
972 * c-parser.c (enum c_parser_prec): New enum, moved from within
973 c_parser_binary_expression.
974 (c_parser_binary_expression): Add PREC argument. Stop parsing
975 if operator has lower or equal precedence than PREC.
976 (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
978 (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
979 Adjust c_finish_omp_atomic caller.
980 (c_parser_omp_taskyield): New function.
981 (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
982 (c_parser_omp_clause_name): Handle final and mergeable clauses.
983 (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
985 (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
986 and PRAGMA_OMP_CLAUSE_MERGEABLE.
987 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
988 (c_parser_omp_clause_reduction): Handle min and max.
989 * c-typeck.c (c_finish_omp_clauses): Don't complain about
990 const qualified predetermined vars in firstprivate clause.
991 andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
992 Handle MIN_EXPR and MAX_EXPR.
993 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
994 and OMP_CLAUSE_MERGEABLE.
995 (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
996 and OMP_ATOMIC_CAPTURE_NEW.
997 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
998 OMP_CLAUSE_MERGEABLE.
999 (omp_clause_code_name): Likewise.
1000 (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1001 * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1002 and OMP_CLAUSE_MERGEABLE.
1003 (OMP_CLAUSE_FINAL_EXPR): Define.
1004 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1005 OMP_CLAUSE_MERGEABLE.
1006 (expand_task_call): Likewise.
1007 (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1008 (expand_omp_atomic_fetch_op): Handle cases where old or new
1009 value is needed afterwards.
1010 (expand_omp_atomic): Call expand_omp_atomic_load resp.
1011 expand_omp_atomic_store.
1012 * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1013 OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1014 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1015 OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1016 * tree-nested.c (convert_nonlocal_omp_clauses,
1017 convert_local_omp_clauses): Likewise.
1018 * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1019 OMP_ATOMIC_CAPTURE_NEW): New.
1020 * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1021 (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1023 * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1024 * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1025 OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1027 2011-08-02 Kai Tietz <ktietz@redhat.com>
1029 * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1031 (ssa_forward_propagate_and_combine): Interprete result of
1032 forward_propagate_comparison.
1033 * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1034 boolean-typed operands for comparisons.
1036 2011-08-02 Georg-Johann Lay <avr@gjlay.de>
1038 * config/avr/libgcc.S: Gather related function in the
1040 (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1041 __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1043 (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1044 __udivmodsi4, __divmodsi4, __prologue_saves__,
1045 __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1046 __do_copy_data, __do_clear_bss, __do_global_ctors,
1047 __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1049 2011-08-02 Uros Bizjak <ubizjak@gmail.com>
1052 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1053 (stack_protect_test): The pattern compares ptr_mode value.
1055 2011-08-02 Alan Modra <amodra@gmail.com>
1057 * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1058 note for save_LR_around_toc_setup sequence.
1060 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1062 * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1064 2011-08-01 Sebastian Pop <sebastian.pop@amd.com>
1065 Joseph Myers <joseph@codesourcery.com>
1067 * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1068 * hwint.c: Include diagnostic-core.h.
1070 (gcd): Moved here...
1073 (least_common_multiple): Moved here...
1074 * hwint.h (gcd): ... from here.
1075 (least_common_multiple): ... from here.
1076 (HOST_WIDE_INT_MIN): New.
1077 (HOST_WIDE_INT_MAX): New.
1078 (abs_hwi): Declared.
1080 (pos_mul_hwi): Declared.
1081 (mul_hwi): Declared.
1082 (least_common_multiple): Declared.
1083 * omega.c (check_pos_mul): Removed.
1084 (check_mul): Removed.
1085 (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1086 mul_hwi instead of check_mul.
1088 2011-08-01 Richard Henderson <rth@redhat.com>
1091 * config/avr/avr.h (PUSH_ROUNDING): New.
1092 * config/avr/avr.md (pushqi1): Rename from *pushqi.
1093 (*pushhi, *pushsi, *pushsf): Remove.
1094 (MPUSH): New mode iterator.
1095 (push<MPUSH>1): New expander.
1097 2011-08-01 Anatoly Sokolov <aesok@post.ru>
1099 * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1100 PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1101 * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1102 mmix_preferred_output_reload_class): Remove.
1103 * config/mmix/mmix.c (mmix_preferred_reload_class,
1104 mmix_preferred_output_reload_class): Make static. Change rclass
1105 argument and return type to reg_class_t.
1106 (TARGET_PREFERRED_RELOAD_CLASS,
1107 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1109 2011-08-01 Joern Rennecke <joern.rennecke@embecosm.com>
1111 * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1114 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1117 * config/i386/i386.md (PTR): New.
1118 (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1119 (stack_protect_test): Likewise.
1120 (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1121 (stack_tls_protect_set_<mode>): Likewise.
1122 (stack_tls_protect_test_<mode>): Likewise.
1124 2011-08-01 Uros Bizjak <ubizjak@gmail.com>
1127 * config/i386/i386.c (ix86_address_subreg_operand): New.
1128 (ix86_decompose_address): Use ix86_address_subreg_operand.
1129 (ix86_legitimate_address_p): Do not assert that subregs satisfy
1130 register_no_elim_operand in DImode.
1132 2011-08-01 Ira Rosen <ira.rosen@linaro.org>
1134 PR tree-optimization/49926
1135 * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1136 in a chain doesn't have uses both inside and outside the loop.
1138 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1140 * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1141 * config/avr/avr-devices.c (avr_mcu_types): Use it.
1142 * config/avr/avr-mcus.def (AVR_MCU): Use it.
1143 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1144 define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1145 * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1146 Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1147 to detect if XJMP must not be skipped.
1149 2011-08-02 Alan Modra <amodra@gmail.com>
1151 * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1153 * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1154 (rs6000_emit_prologue): Don't prematurely return when
1155 TARGET_SINGLE_PIC_BASE. Don't emit eh_frame info in
1156 save_toc_in_prologue case.
1157 (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1160 2011-08-01 Georg-Johann Lay <avr@gjlay.de>
1162 * config/avr/avr-devices.c: Delete SVN property svn:executable.
1163 * config/avr/predicates.md: Ditto.
1164 * config/avr/driver-avr.c: Ditto.
1165 * config/avr/genopt.sh: Set SVN property svn:executable to *.
1167 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
1169 * calls.c (emit_library_call_value_1): Declare size only if
1170 BLOCK_REG_PADDING is defined.
1172 2011-08-01 Kirill Yukhin <kirill.yukhin@intel.com>
1175 * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1176 (x86_64-*-*): Likewise.
1177 * config/i386/i386.opt (mlzcnt): New.
1178 * config/i386/abmintrin.h: File removed.
1179 (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1180 * config/i386/lzcntintrin.h: ... here. New file.
1181 (__lzcnt): Rename to ...
1182 (__lzcnt32): ... this.
1183 * config/i386/bmiintrin.h (head): Update copyright year.
1184 (__lzcnt_u16): Removed.
1185 (__lzcnt_u32): Likewise.
1186 (__lzcnt_u64): Likewise.
1187 * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1188 is defined, remove abmintrin.h.
1189 * config/i386/cpuid.h (bit_LZCNT): New.
1190 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1192 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1193 __LZCNT__ if needed.
1194 * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1195 (ix86_option_override_internal): Handle LZCNT option.
1196 (ix86_valid_target_attribute_inner_p): Likewise.
1197 (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1198 * config/i386/i386.h (TARGET_LZCNT): New.
1199 (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1200 * config/i386/i386.md (clz<mode>2): Update insn constraint.
1201 (clz<mode>2_lzcnt): Likewise.
1202 * doc/invoke.texi: Mention -mlzcnt option.
1203 * doc/extend.texi: Likewise.
1205 2011-08-01 Julian Brown <julian@codesourcery.com>
1207 * configure.ac (fixed-point): Add ARM support.
1208 * configure: Regenerate.
1209 * config/arm/arm.c (arm_fixed_mode_set): New struct.
1210 (arm_set_fixed_optab_libfunc): New.
1211 (arm_set_fixed_conv_libfunc): New.
1212 (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1214 (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1215 return values in SImode.
1216 (arm_return_in_msb): Return fixed-point types in the msb.
1217 (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1219 (arm_scalar_mode_supported_p): Support fixed-point modes.
1220 (arm_vector_mode_supported_p): Support vector fixed-point modes.
1221 * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1222 (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1223 (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1224 (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1225 * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1227 (qaddsub_suf): New mode attribute.
1228 * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1230 * config/arm/predicates.md (sat_shift_operator): New predicate.
1231 * config/arm/arm-fixed.md: New.
1232 * config/arm/arm.md: Include arm-fixed.md.
1233 * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1235 2011-08-01 Julian Brown <julian@codesourcery.com>
1237 * calls.c (emit_library_call_value_1): Support padding for libcall
1238 arguments and return values.
1239 * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1240 downwards in big-endian mode.
1242 2011-08-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1245 * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1246 * config/sol2-protos.h: Likewise.
1247 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1249 * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1250 * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1252 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1254 2011-08-01 Julian Brown <julian@codesourcery.com>
1256 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1258 2011-08-01 Julian Brown <julian@codesourcery.com>
1260 * final.c (output_addr_const): Print fixed-point constants as
1263 2011-08-01 Richard Guenther <rguenther@suse.de>
1265 * stor-layout.c (initialize_sizetypes): Properly sign-extend
1266 bitsiztype TYPE_MAX_VALUE.
1268 2011-08-01 Julian Brown <julian@codesourcery.com>
1270 * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1273 2011-07-31 Richard Henderson <rth@redhat.com>
1275 * config/h8300/crti.asm: Add flags to .section directive.
1276 * config/h8300/crtn.asm: Likewise.
1278 2011-07-31 Richard Henderson <rth@redhat.com>
1280 * stor-layout.c (initialize_sizetypes): Handle unsigned short.
1281 * tree.c (build_common_tree_nodes): Likewise.
1283 2011-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
1286 * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
1287 (divsi3_i1): Likewise.
1289 2011-07-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1291 PR tree-optimization/49749
1292 * tree-ssa-reassoc.c (get_rank): New forward declaration.
1293 (PHI_LOOP_BIAS): New macro.
1294 (phi_rank): New function.
1295 (loop_carried_phi): Likewise.
1296 (propagate_rank): Likewise.
1297 (get_rank): Add calls to phi_rank and propagate_rank.
1299 2011-07-31 H.J. Lu <hongjiu.lu@intel.com>
1301 * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
1303 (PTRDIFF_TYPE): Likewise.
1305 2011-07-31 Uros Bizjak <ubizjak@gmail.com>
1308 * config/i386/i386.md (strset): Do not expand strset_singleop
1309 when %eax or $edi are fixed.
1310 (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
1311 (*strsetsi_1): Ditto.
1312 (*strsethi_1): Ditto.
1313 (*strsetqi_1): Ditto.
1314 (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
1315 (*rep_stossi): Ditto.
1316 (*rep_stosqi): Ditto.
1317 (*strlenqi_1): Ditto.
1318 (cmpstrnsi): Also fail when %ecx is fixed.
1319 (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
1320 (*cmpstrnqi_1): Ditto.
1321 (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
1322 (*strmovsi_1): Ditto.
1323 (*strmovhi_1): Ditto.
1324 (*strmovqi_1): Ditto.
1325 (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
1326 (*rep_movsi): Ditto.
1327 (*rep_movqi): Ditto.
1329 2011-07-31 Mikael Pettersson <mikpe@it.uu.se>
1332 * config/m68k/m68k.c (m68k_override_options_after_change): New function.
1333 Disable instruction scheduling for non-ColdFire targets.
1334 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
1336 2011-07-31 Revital Eres <revital.eres@linaro.org>
1338 * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
1339 of anti-dep edge from a branch.
1340 (add_cross_iteration_register_deps): Create anti-dep edge from
1343 2011-07-31 Revital Eres <revital.eres@linaro.org>
1345 * modulo-sched.c: Change comment.
1346 (reset_sched_times): Fix print message.
1347 (print_partial_schedule): Add print info.
1349 2011-07-31 Tom de Vries <tom@codesourcery.com>
1352 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
1353 get_object_alignment and TYPE_ALIGN.
1355 2011-07-30 Tom de Vries <tom@codesourcery.com>
1358 * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
1359 (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
1361 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1363 * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
1365 (cpu_types): New array.
1366 (cputype): New function.
1367 (host_detect_local_cpu): Only define buf, f if !__sgi__.
1368 Use scaninvent instead of /proc/cpuinfo if __sgi__.
1369 * config.host: Also use driver-native.o, mips/x-native on
1371 * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
1372 (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
1373 (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
1375 2011-07-29 Jakub Jelinek <jakub@redhat.com>
1379 * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
1380 in nested parallel and outer is a gimple_reg, mark it as addressable
1381 and set its bit in task_shared_vars bitmap too.
1383 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1385 * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
1387 2011-07-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1389 * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
1390 IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
1391 (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
1392 AMASK_LOCKPFTCHOK): Define.
1393 (host_detect_local_cpu): Remove buf, f, cpu_names.
1394 Define cpu_types, implver, amask.
1395 Use __builtin_alpha_implver, __builtin_alpha_amask to determine
1397 * config.host: Also use driver-alpha.o, alpha/x-alpha on
1399 * config/alpha/osf5.h [__alpha__ || __alpha]
1400 (host_detect_local_cpu): Declare.
1401 (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
1402 (DRIVER_SELF_SPECS): Define.
1404 2011-07-29 Uros Bizjak <ubizjak@gmail.com>
1407 * config/i386/i386.md (*load_tp_x32): New.
1408 (*load_tp_x32_zext): Ditto.
1409 (*add_tp_x32): Ditto.
1410 (*add_tp_x32_zext): Ditto.
1411 (*load_tp_<mode>): Disable for TARGET_X32 targets.
1412 (*add_tp_<mode>): Ditto.
1413 * config/i386/i386.c (get_thread_pointer): Load thread pointer in
1414 ptr_mode and convert to Pmode if needed.
1416 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1419 * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
1420 muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
1421 *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
1422 Add X to register footprint: Clobber r26/r27.
1424 2011-07-29 Richard Guenther <rguenther@suse.de>
1426 * builtins.c (fold_builtin_signbit): Build the comparison
1429 2011-07-29 Richard Guenther <rguenther@suse.de>
1431 PR tree-optimization/49893
1432 * tree-predcom.c (suitable_reference_p): Volatile references
1435 2011-07-29 Georg-Johann Lay <avr@gjlay.de>
1438 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1439 (__ctzsi2): Result for 0 may be undefined.
1440 (__ctzhi2): Result for 0 may be undefined.
1441 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1442 (__popcountsi2): Ditto. And don't clobber r26.
1443 (__popcountdi2): Ditto. And don't clobber r27.
1444 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1445 (parityhi2): New expand.
1446 (paritysi2): New expand.
1447 (popcounthi2): New expand.
1448 (popcountsi2): New expand.
1449 (clzhi2): New expand.
1450 (clzsi2): New expand.
1451 (ctzhi2): New expand.
1452 (ctzsi2): New expand.
1453 (ffshi2): New expand.
1454 (ffssi2): New expand.
1455 (copysignsf3): New insn.
1456 (bswapsi2): New expand.
1457 (*parityhi2.libgcc): New insn.
1458 (*parityqihi2.libgcc): New insn.
1459 (*paritysihi2.libgcc): New insn.
1460 (*popcounthi2.libgcc): New insn.
1461 (*popcountsi2.libgcc): New insn.
1462 (*popcountqi2.libgcc): New insn.
1463 (*popcountqihi2.libgcc): New insn-and-split.
1464 (*clzhi2.libgcc): New insn.
1465 (*clzsihi2.libgcc): New insn.
1466 (*ctzhi2.libgcc): New insn.
1467 (*ctzsihi2.libgcc): New insn.
1468 (*ffshi2.libgcc): New insn.
1469 (*ffssihi2.libgcc): New insn.
1470 (*bswapsi2.libgcc): New insn.
1472 2011-07-29 Richard Guenther <rguenther@suse.de>
1474 * tree-vrp.c (get_value_range): Only set parameter default
1475 definitions to varying, leave others at undefined.
1476 (extract_range_from_binary_expr): Fix undefined handling.
1477 (vrp_visit_phi_node): Handle merged undefined state.
1479 2011-07-29 Wei Guozhi <carrot@google.com>
1481 PR rtl-optimization/49799
1482 * combine.c (make_compound_operation): Check if the bit field is valid
1483 before change it to bit field extraction.
1485 2011-07-29 Bernd Schmidt <bernds@codesourcery.com>
1487 PR rtl-optimization/49891
1488 * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
1489 newly created returnjumps.
1491 2011-07-28 DJ Delorie <dj@redhat.com>
1493 * expr.c (expand_expr_addr_expr_1): Detect a user request for a
1494 local frame in a naked function, and produce a suitable error for
1497 * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
1498 registers to be reloaded in HI classes when the target is HI.
1500 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1502 * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
1503 bound_one, bound_two.
1505 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1508 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
1510 (translate_clast): Same.
1511 (translate_clast_assignment): New.
1513 2011-07-28 Sebastian Pop <sebastian.pop@amd.com>
1515 PR tree-optimization/49876
1516 * sese.c (rename_uses): Do not return false on gloog_error: set
1517 the new_expr to integer_zero_node and continue code generation.
1518 (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
1520 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1523 * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
1524 arguments also check if they aren't initialized with a MODE_INT
1525 mode of the same size.
1527 2011-07-28 Aldy Hernandez <aldyh@redhat.com>
1529 * expr.c (get_bit_range): Handle *MEM_REF's.
1531 2011-07-28 Bernd Schmidt <bernds@codesourcery.com>
1533 * rtlanal.c (tablejump_p): False for returns.
1534 * reorg.c (first_active_target_insn): New static function.
1535 (find_end_label): Set JUMP_LABEL for a new returnjump.
1536 (optimize_skip, get_jump_flags, rare_destination,
1537 mostly_true_jump, get_branch_condition,
1538 steal_delay_list_from_target, own_thread_p,
1539 fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
1540 fill_eager_delay_slots, relax_delay_slots, make_return_insns,
1541 dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
1542 * jump.c (delete_related_insns): Likewise.
1543 (jump_to_label_p): New function.
1544 (redirect_target): New static function.
1545 (redirect_exp_1): Use it. Adjust to handle ret_rtx in JUMP_LABELS.
1546 (redirect_jump_1): Assert that the new label is nonnull.
1547 (redirect_jump): Likewise.
1548 (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
1549 * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
1551 (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE. All callers
1552 changed. Ensure that the right label is passed to redirect_jump.
1553 * function.c (emit_return_into_block,
1554 thread_prologue_and_epilogue_insns): Ensure new returnjumps have
1555 ret_rtx in their JUMP_LABEL.
1556 * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
1557 * emit-rtl.c (skip_consecutive_labels): Allow the caller to
1558 pass ret_rtx as label.
1559 * cfglayout.c (fixup_reorder_chain): Use
1560 force_nonfallthru_and_redirect rather than force_nonfallthru.
1561 (duplicate_insn_chain): Copy JUMP_LABELs for returns.
1562 * rtl.h (ANY_RETURN_P): New macro.
1563 (jump_to_label_p): Declare.
1564 * resource.c (find_dead_or_set_registers): Handle ret_rtx in
1566 (mark_target_live_regs): Likewise.
1567 * basic-block.h (force_nonfallthru_and_redirect): Declare.
1568 * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
1569 * config/alpha/alpha.c (alpha_tablejump_addr_vec,
1570 alpha_tablejump_best_label): Remove functions.
1571 * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
1572 alpha_tablejump_best_label): Remove declarations.
1573 * config/sh/sh.c (barrier_align, split_branches): Adjust for
1574 ret_rtx in JUMP_LABELs.
1575 * config/arm/arm.c (is_jump_table): Likewise.
1577 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1579 * config/i386/predicates.md (pic_32bit_opreand): Do not define as
1580 special predicate. Remove explicit mode checks.
1582 2011-07-28 Jakub Jelinek <jakub@redhat.com>
1584 * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
1585 DW_AT_data_member_location containing just DW_OP_plus_uconst.
1588 * dwarf2out.c (size_of_die, value_format, output_die): Use
1589 DW_FORM_udata instead of DW_FORM_data[48] for
1590 dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
1592 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1594 * config/i386/i386.md (*tls_global_dynamic_64): Update
1597 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1600 * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
1601 tls_symbolic_operand check. Update code sequence for TARGET_X32.
1602 (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
1603 (tls_dynamic_gnu2_64): Ditto.
1604 (*tls_dynamic_gnu2_lea_64): Ditto.
1605 (*tls_dynamic_gnu2_call_64): Ditto.
1606 (*tls_dynamic_gnu2_combine_64): Ditto.
1608 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1610 * config.gcc: Set need_64bit_hwint to yes for x86 targets.
1612 2011-07-28 H.J. Lu <hongjiu.lu@intel.com>
1615 * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
1617 2011-07-28 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1619 * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
1620 before the core constraints. Adjust attributes.
1621 ("*thumb2_movdf_vfp"): Likewise.
1623 2011-07-28 Kai Tietz <ktietz@redhat.com>
1625 * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
1626 (simplify_truth_ops_using_ranges): Likewise.
1627 (build_assert_expr_for): Likewise.
1628 (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
1629 and handle BIT_NOT_EXPR for truth-operation.
1631 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1634 Undo r176835 from trunk
1635 2011-07-27 Georg-Johann Lay
1637 2011-07-28 Georg-Johann Lay <avr@gjlay.de>
1640 * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
1641 Add _muluhisi3, _mulshisi3, _usmulhisi3.
1642 * config/avr/libgcc.S (__mulsi3): Rewrite.
1643 (__mulhisi3): Rewrite.
1644 (__umulhisi3): Rewrite.
1645 (__usmulhisi3): New.
1649 (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
1651 * config/avr/predicates.md (pseudo_register_operand): Rewrite.
1652 (pseudo_register_or_const_int_operand): New.
1653 (combine_pseudo_register_operand): New.
1657 * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
1658 * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
1659 (any_extend, any_extend2): New code iterators.
1660 (extend_prefix): New code attribute.
1661 (mulsi3): Rewrite. Turn insn to expander.
1664 (usmulhisi3): New expander.
1665 (*mulsi3): New insn-and-split.
1666 (mulu<mode>si3): New insn-and-split.
1667 (muls<mode>si3): New insn-and-split.
1668 (mulohisi3): New insn-and-split.
1669 (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
1670 *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
1671 *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
1672 *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
1674 (*mulsi3_call): Rewrite.
1675 (*mulhisi3_call): Rewrite.
1676 (*umulhisi3_call): Rewrite.
1677 (*usmulhisi3_call): New insn.
1678 (*muluhisi3_call): New insn.
1679 (*mulshisi3_call): New insn.
1680 (*mulohisi3_call): New insn.
1681 (extendqihi2): Use combine_pseudo_register_operand as predicate
1683 (extendqisi2): Ditto.
1684 (zero_extendqihi2): Ditto.
1685 (zero_extendqisi2): Ditto.
1686 (zero_extendhisi2): Ditto.
1687 (extendhisi2): Ditto. Don't early-clobber operand 0.
1689 2011-07-28 Uros Bizjak <ubizjak@gmail.com>
1691 * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
1693 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1695 PR tree-optimization/49471
1696 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
1697 iv only when the largest type is unsigned. Do not call
1698 lang_hooks.types.type_for_size.
1700 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1703 * graphite-poly.c (apply_poly_transforms): Disable legality check
1704 after an openscop read.
1706 2011-07-27 Sebastian Pop <sebastian.pop@amd.com>
1709 * graphite-clast-to-gimple.c (translate_clast_user): Update use of
1710 copy_bb_and_scalar_dependences.
1711 * sese.c (rename_uses): Do not call gcc_assert. Set gloog_error.
1712 (graphite_copy_stmts_from_block): Update call to rename_uses.
1713 (copy_bb_and_scalar_dependences): Update call to
1714 graphite_copy_stmts_from_block.
1715 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
1717 2011-07-27 Georg-Johann Lay <avr@gjlay.de>
1720 * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
1721 (__ctzsi2): Result for 0 may be undefined.
1722 (__ctzhi2): Result for 0 may be undefined.
1723 (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
1724 (__popcountsi2): Ditto. And don't clobber r26.
1725 (__popcountdi2): Ditto. And don't clobber r27.
1726 * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
1727 (parityhi2): New expand.
1728 (paritysi2): New expand.
1729 (popcounthi2): New expand.
1730 (popcountsi2): New expand.
1731 (clzhi2): New expand.
1732 (clzsi2): New expand.
1733 (ctzhi2): New expand.
1734 (ctzsi2): New expand.
1735 (ffshi2): New expand.
1736 (ffssi2): New expand.
1737 (copysignsf3): New insn.
1738 (bswapsi2): New expand.
1739 (*parityhi2.libgcc): New insn.
1740 (*parityqihi2.libgcc): New insn.
1741 (*paritysihi2.libgcc): New insn.
1742 (*popcounthi2.libgcc): New insn.
1743 (*popcountsi2.libgcc): New insn.
1744 (*popcountqi2.libgcc): New insn.
1745 (*popcountqihi2.libgcc): New insn-and-split.
1746 (*clzhi2.libgcc): New insn.
1747 (*clzsihi2.libgcc): New insn.
1748 (*ctzhi2.libgcc): New insn.
1749 (*ctzsihi2.libgcc): New insn.
1750 (*ffshi2.libgcc): New insn.
1751 (*ffssihi2.libgcc): New insn.
1752 (*bswapsi2.libgcc): New insn.
1754 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
1756 * config/i386/i386.c (ix86_expand_move): Do not explicitly check
1757 the mode of symbolic_opreand RTXes.
1759 2011-07-27 Uros Bizjak <ubizjak@gmail.com>
1761 * config/i386/predicates.md (x86_64_movabs_operand): Return false
1762 for pic_32bit_operand RTXes.
1763 * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
1766 2011-07-27 Kai Tietz <ktietz@redhat.com>
1768 * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
1770 (ix86_handle_abi_attribute): Allow function attributes
1771 ms_abi/sysv_abi in 32-bit mode, too.
1772 * doc/extend.texi: Adjust attribute documentation.
1774 * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
1775 expression handling.
1776 (and_var_with_comparison_1): Likewise.
1778 2011-07-27 Aldy Hernandez <aldyh@redhat.com>
1780 * params.h (ALLOW_STORE_DATA_RACES): New.
1781 * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
1782 * Makefile.in (expr.o): Depend on PARAMS_H.
1783 * machmode.h (get_best_mode): Add argument.
1784 * fold-const.c (optimize_bit_field_compare): Add argument to
1786 (fold_truthop): Same.
1787 * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
1788 * expr.c (emit_group_store): Same.
1789 (copy_blkmode_from_reg): Same.
1790 (write_complex_part): Same.
1791 (optimize_bitfield_assignment_op): Add argument.
1792 Add argument to get_best_mode.
1793 (get_bit_range): New.
1794 (expand_assignment): Calculate maxbits and pass it down accordingly.
1795 (store_field): New argument.
1796 (expand_expr_real_2): New argument to store_field. Include params.h.
1797 * expr.h (store_bit_field): New argument.
1798 * stor-layout.c (get_best_mode): Restrict mode expansion by taking
1799 into account maxbits.
1800 * calls.c (store_unaligned_arguments_into_pseudos): New argument
1802 * expmed.c (store_bit_field_1): New argument. Use it.
1803 (store_bit_field): Same.
1804 (store_fixed_bit_field): Same.
1805 (store_split_bit_field): Same.
1806 (extract_bit_field_1): Pass new argument to get_best_mode.
1807 (extract_bit_field): Same.
1808 * stmt.c (store_bit_field): Pass new argument to store_bit_field.
1809 * doc/invoke.texi: Document parameter allow-store-data-races.
1811 2011-07-27 Jakub Jelinek <jakub@redhat.com>
1813 * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
1815 2011-07-27 Kai Tietz <ktietz@redhat.com>
1817 * tree-vrp.c (extract_range_from_binary_expr): Remove
1818 TRUTH-binary cases and add new bitwise-cases.
1819 (extract_range_from_assignment): Likewise.
1820 (register_edge_assert_for_1): Likeiwise.
1821 (register_edge_assert_for): Likewise.
1822 (simplify_truth_ops_using_ranges): Likewise.
1823 (simplify_stmt_using_ranges): Likewise.
1825 2011-07-26 H.J. Lu <hongjiu.lu@intel.com>
1828 * config/i386/i386.c (ix86_delegitimize_address): Call
1829 simplify_gen_subreg for PIC with mode of x only if modes of
1830 x and orig_x are different.
1832 2011-07-26 Jakub Jelinek <jakub@redhat.com>
1834 * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
1835 to GC allocated copy of the string.
1836 (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
1837 before .debug_line, not after it.
1839 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1842 * tree-chrec.h (evolution_function_is_affine_p): Recursively call
1843 evolution_function_is_affine_p on CHREC_RIGHT.
1845 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1847 * tree-data-ref.c (max_stmt_executions_tree): Do not call
1848 lang_hooks.types.type_for_size.
1850 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1853 * graphite-scop-detection.c (graphite_can_represent_loop): Discard
1854 loops using wrapping semantics.
1856 2011-07-26 Sebastian Pop <sebastian.pop@amd.com>
1859 * tree-scalar-evolution.c (instantiate_scev_r): Return
1860 chrec_dont_know for ADDR_EXPR.
1862 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1863 H.J. Lu <hongjiu.lu@intel.com>
1867 * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
1868 if legitimize_tls_address returned operand in wrong mode. Allow
1869 SImode and DImode symbolic operand for PIC. Call convert_to_mode
1870 if legitimize_pic_address returned operand in wrong mode.
1872 2011-07-26 Martin Jambor <mjambor@suse.cz>
1874 * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
1875 return false for invariants.
1877 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1879 * config/i386/i386.md (add->lea splitter): Implement using SWI
1880 mode iterator. Change operand 2 predicate to <nonmemory_operand>.
1881 (add->lea zext splitter): Change operand 2 predicate to
1882 x86_64_nonmemory_operand.
1884 2011-07-26 Richard Guenther <rguenther@suse.de>
1886 * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
1887 frequency makes everything hot.
1889 2011-07-26 Richard Guenther <rguenther@suse.de>
1891 PR tree-optimization/49840
1892 * tree-vrp.c (range_fits_type_p): Properly handle full
1893 double-int precision.
1895 2011-07-26 Martin Jambor <mjambor@suse.cz>
1898 * ipa-cp.c (update_profiling_info): Avoid overflow when updating
1900 (update_specialized_profile): Likewise.
1902 2011-07-26 Uros Bizjak <ubizjak@gmail.com>
1903 H.J. Lu <hongjiu.lu@intel.com>
1908 * config/i386/i386.md (i): Change SImode attribute to "e".
1909 (g): Change SImode attribute to "rme".
1910 (di): Change SImode attribute to "nF".
1911 (general_operand): Change SImode attribute to x86_64_general_operand.
1912 (general_szext_operand): Change SImode attribute to
1913 x86_64_szext_general_operand.
1914 (immediate_operand): Change SImode attribute to
1915 x86_64_immediate_operand.
1916 (nonmemory_operand): Change SImode attribute to
1917 x86_64_nonmemory_operand.
1918 (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
1919 (*movsi_internal): Ditto. Use "e" constraint in alternative 2.
1920 (*lea_1): Use SWI48 mode iterator.
1921 (*lea_1_zext): New insn pattern.
1922 (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
1924 (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
1925 Update operand constraints.
1926 (addsi_1_zext): Ditto.
1927 (*add<mode>2): Ditto.
1928 (*addsi_3_zext): Ditto.
1929 (*subsi_1_zext): Ditto.
1930 (*subsi_2_zext): Ditto.
1931 (*subsi_3_zext): Ditto.
1932 (*addsi3_carry_zext): Ditto.
1933 (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
1934 (*mulsi3_1_zext): Ditto.
1936 (*andsi_1_zext): Ditto.
1937 (*andsi_2_zext): Ditto.
1938 (*<any_or:code>si_1_zext): Ditto.
1939 (*<any_or:code>si_2_zext): Ditto.
1940 (*test<mode>_1): Use <general_operand> predicate for operand 1.
1941 (*and<mode>_2): Ditto.
1942 (mov<mode>cc): Use <general_operand> predicate for operands 1 and 2.
1943 (add->lea splitter): Check operand modes in insn constraint. Extend
1944 operands less than SImode wide to SImode.
1945 (add->lea zext splitter): Do not extend input operands to DImode.
1946 (*lea_general_1): Handle only QImode and HImode operands.
1947 (*lea_general_2): Ditto.
1948 (*lea_general_3): Ditto.
1949 (*lea_general_1_zext): Remove.
1950 (*lea_general_2_zext): Ditto.
1951 (*lea_general_3_zext): Ditto.
1952 (*lea_general_4): Check operand modes in insn constraint. Extend
1953 operands less than SImode wide to SImode.
1954 (ashift->lea splitter): Ditto.
1955 * config/i386/i386.c (ix86_print_operand_address): Print address
1956 registers with 'q' modifier on 64bit targets.
1957 * config/i386/predicates.md (pic_32bit_opreand): Define as special
1958 predicate. Reject non-SI and non-DI modes.
1960 2011-07-25 Andrew Pinski <apinski@cavium.com>
1963 * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
1964 TREE_THIS_NOTRAP into the inner most MEM_REF.
1965 Always copy TREE_THIS_VOLATILE.
1966 * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
1967 arguments are not volatile references.
1969 2011-07-25 Richard Henderson <rth@redhat.com>
1971 * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
1972 * final.c (final_scan_insn): Don't test for it.
1973 (rest_of_clean_state): Likewise.
1975 2011-07-25 Richard Henderson <rth@redhat.com>
1978 * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
1979 (emit_frame_save): Likewise.
1980 (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
1981 insn onto a dummy blockage insn after the join label.
1983 2011-07-25 Richard Henderson <rth@redhat.com>
1985 * dwarf2cfi.c (dw_trace_info): Add ID member.
1986 (get_trace_index): Remove. Change users to use ID member.
1987 (before_next_cfi_note): New.
1988 (connect_traces): Remove unreachable traces before the main loop.
1989 Look across one trace and generate remember/restore_state if needed.
1991 2011-07-25 Richard Henderson <rth@redhat.com>
1993 * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
1995 2011-07-25 Joern Rennecke <joern.rennecke@embecosm.com>
1997 * genattr.c (write_upcase, gen_attr <enum definition writing>):
1999 * genattr-common.c ... here.
2000 (main): Call gen_attr.
2001 * optc-gen.awk: Make generated program include insn-attr-common.h .
2002 * Makefile.in (oprions.o): Depend on insn-attr-common.h
2004 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2006 * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2007 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2008 * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2009 m32c_print_operand, m32c_print_operand_address): Remove.
2010 * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2011 Change return type to bool. Change argument type to bool.
2012 (m32c_print_operand, m32c_print_operand_address): Make static.
2013 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2014 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2016 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2018 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2019 attributes): Document mmap.
2021 2011-07-25 Anatoly Sokolov <aesok@post.ru>
2023 * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2024 PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2025 * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2026 mmix_print_operand, mmix_print_operand_address): Remove.
2027 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2028 Change return type to bool. Change argument type to bool.
2029 (mmix_print_operand, mmix_print_operand_address): Make static.
2030 (mmix_intval, mmix_output_condition): Change 'x' argument type
2032 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2033 TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2035 2011-07-25 Georg-Johann Lay <avr@gjlay.de>
2038 * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2039 shift counter for x << x and x >> x shifts.
2041 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2044 * config.gcc: Reject *-*-solaris2 configuration.
2046 2011-07-25 Richard Sandiford <richard.sandiford@linaro.org>
2048 PR tree-optimization/49809
2049 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2050 gimple_get_lhs instead of gimple_assign_lhs.
2052 2011-07-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2054 * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2056 2011-07-25 Richard Guenther <rguenther@suse.de>
2058 PR tree-optimization/49822
2059 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2060 more. Make sure to preserve stmts with side-effects. Properly
2061 handle virtual defs, follow a longer def chain.
2063 2011-07-22 Romain Geissler <romain.geissler@gmail.com>
2068 * Makefile.in: Do not flatten c-family directory when installing
2071 2011-07-25 Eric Botcazou <ebotcazou@adacore.com>
2073 * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2074 original nodes if we are dealing with virtual clones.
2076 2011-07-25 Bernd Schmidt <bernds@codesourcery.com>
2078 * common/config/c6x/c6x-common.c: New file.
2080 2011-07-25 Roman Zhuykov <zhroma@ispras.ru>
2082 * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2084 2011-07-25 Richard Guenther <rguenther@suse.de>
2086 PR tree-optimization/49715
2087 * tree-vrp.c: Include expr.h and optabs.h.
2088 (range_fits_type_): New function.
2089 (simplify_float_conversion_using_ranges): Likewise.
2090 (simplify_stmt_using_ranges): Call it.
2091 * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2092 * optabs.c (can_float_p): Export.
2093 * optabs.h (can_float_p): Declare.
2095 2011-07-25 Richard Guenther <rguenther@suse.de>
2097 * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2098 (get_value_range): For out-of-range SSA names or names created
2099 after propagation return a read-only varying range.
2100 (dump_all_value_ranges): Adjust.
2101 (vrp_initialize): Likewise.
2102 (vrp_finalize): Likewise.
2104 2011-07-24 Richard Henderson <rth@redhat.com>
2107 * dwarf2cfi.c (connect_traces): Allow unvisited traces. Skip
2110 2011-07-24 Richard Henderson <rth@redhat.com>
2113 * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2114 (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2116 2011-07-24 Richard Henderson <rth@redhat.com>
2119 * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2121 2011-07-24 Richard Henderson <rth@redhat.com>
2123 * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2124 Zero args_size for abnormal edges. Adjust all callers.
2126 2011-07-24 Richard Henderson <rth@redhat.com>
2129 * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2131 2011-07-24 H.J. Lu <hongjiu.lu@intel.com>
2134 * collect2.c (demangle_flag): Removed.
2136 2011-07-24 Sandra Loosemore <sandra@codesourcery.com>
2138 * configure.ac (demangler_in_ld): Default to yes.
2139 * configure: Regenerated.
2140 * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2141 mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2142 --no-demangle options straight through to ld. When
2143 HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2144 way that has the intended effect on Windows.
2146 2011-07-23 Richard Henderson <rth@redhat.com>
2148 * dwarf2cfi.c: Include basic-block.h.
2149 (dw_label_info): Remove.
2150 (trace_work_list, trace_index): New.
2151 (remember_row, emit_cfa_remember): Remove.
2152 (dw_trace_info_hash, dw_trace_info_eq): New.
2153 (get_trace_index, get_trace_info): New.
2154 (save_point_p): New.
2155 (free_cfi_row): Remove.
2156 (add_cfi): Do not emit DW_CFA_remember_state.
2157 (cfa_row_equal_p): New.
2158 (barrier_args_size): Remove.
2159 (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2160 (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2161 (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2162 (dwarf2out_cfi_begin_epilogue): Remove.
2163 (dwarf2out_frame_debug_restore_state): Remove.
2164 (connect_traces, create_pseudo_cfg): New.
2165 (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2166 * Makefile.in (dwarf2cfi.o): Update.
2168 2011-07-23 Richard Henderson <rth@redhat.com>
2170 * dwarf2cfi.c (dw_trace_info): New.
2171 (dw_label_info): New.
2172 (cie_return_save): New.
2174 (queued_args_size): Rename from args_size. Update all users.
2175 (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2176 (def_cfa_1): Use cur_trace instead of cfa_*.
2177 (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2178 (clobbers_queued_reg_save, reg_saved_in): Likewise.
2179 (dwarf2out_frame_debug_expr): Likewise.
2180 (create_cie_data): Split out from ...
2181 (execute_dwarf2_frame): ... here. Initialize cur_trace.
2183 2011-07-23 Richard Henderson <rth@redhat.com>
2185 * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2186 Update all users to match.
2187 (execute_dwarf2_frame): Free reg_saved_in_data.
2189 2011-07-23 Richard Henderson <rth@redhat.com>
2191 * dwarf2cfi.c (queued_reg_save): Reorder for packing. Don't GTY.
2192 (queued_reg_saves): Don't GTY. Change to a VEC.
2193 (queue_reg_save): Update to match.
2194 (dwarf2out_flush_queued_reg_saves): Likewise.
2195 (clobbers_queued_reg_save): Likewise.
2196 (reg_saved_in): Likewise.
2197 (execute_dwarf2_frame): Free queued_reg_saves.
2199 2011-07-23 Richard Henderson <rth@redhat.com>
2201 * dwarf2cfi.c (dw_cfi_row_ref): Remove. Update all users.
2203 2011-07-23 Richard Henderson <rth@redhat.com>
2205 * dwarf2cfi.c (add_cfi_args_size): Split out from...
2206 (dwarf2out_args_size): ... here.
2207 (add_cfi_restore): Split out from ...
2208 (dwarf2out_frame_debug_cfa_restore): ... here.
2209 (def_cfa_0): Split out from ...
2210 (def_cfa_1): ... here.
2211 (cfi_oprnd_equal_p, cfi_equal_p): New.
2212 (change_cfi_row): New.
2213 (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2214 (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2215 (output_cfis): Remove.
2216 * dwarf2out.c (output_fde): Simplify output_cfi loop.
2217 (dwarf2out_switch_text_section): Don't call output_cfis.
2218 (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2219 * dwarf2out.h: Update decls.
2220 (enum dw_val_class): Add dw_val_class_none.
2222 2011-07-23 Richard Henderson <rth@redhat.com>
2224 * dwarf2cfi.c (update_row_reg_save): New.
2225 (dwarf2out_frame_debug_cfa_expression): Use it.
2226 (dwarf2out_frame_debug_cfa_restore): Likewise.
2227 (reg_save): Likewise. Do not emit DW_CFA_same_value.
2229 2011-07-23 Richard Henderson <rth@redhat.com>
2231 * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn. Update all users.
2233 2011-07-23 Richard Henderson <rth@redhat.com>
2235 * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2237 (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2238 (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2239 (cur_row, remember_row): New.
2240 (def_cfa_1): Use cur_row instead of the old_* variables.
2241 (dwarf2out_frame_debug_restore_state): Similarly.
2242 (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2243 (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2244 (dwarf2out_frame_debug_adjust_cfa): Likewise.
2245 (dwarf2out_frame_debug_cfa_offset): Likewise.
2246 (dwarf2out_frame_debug_expr): Likewise.
2247 (execute_dwarf2_frame): Set up cur_row.
2248 * dwarf2out.h (struct cfa_loc): Mark for GTY.
2250 2011-07-23 Richard Henderson <rth@redhat.com>
2252 * basic-block.h (EDGE_PRESERVE): New.
2253 (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2254 * bb-reorder.c: Include except.h.
2255 (fix_up_crossing_landing_pad): New.
2256 (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2257 landing pads in the right partition. Duplicate as necessary.
2258 (partition_hot_cold_basic_blocks): Fix up DF info after
2259 duplicating landing pads.
2260 * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2261 * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2262 is set properly. Validate that EH edges are not CROSSING.
2263 * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2264 (dw2_build_landing_pads): ... here.
2265 (convert_to_eh_region_ranges): Remove code to fixup crossing
2267 * except.h (expand_dw2_landing_pad_for_region): Declare.
2268 * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2270 2011-07-23 Richard Earnshaw <rearnsha@arm.com>
2273 * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2275 2011-07-22 Jason Merrill <jason@redhat.com>
2277 * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2279 2011-07-22 Richard Henderson <rth@redhat.com>
2281 * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
2283 2011-07-22 Richard Henderson <rth@redhat.com>
2285 * jump.c (maybe_propagate_label_ref): Split out of...
2286 (mark_all_labels): ... here. Do not attempt label_ref
2287 propagation while in cfglayout mode.
2289 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2291 * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
2292 (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
2293 (dwarf_attr_name): Handle DW_AT_GNU_macros.
2294 (dwarf2out_define): If the vector is empty and
2295 lineno is 0, emit a dummy entry first.
2296 (dwarf2out_undef): Likewise. Remove redundant semicolon.
2297 (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
2298 optimize_macinfo_range): New functions.
2299 (output_macinfo): Use them. If !dwarf_strict and .debug_str is
2300 mergeable, optimize longer strings using
2301 DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
2302 optimize longer sequences of define/undef ops from headers
2303 using DW_MACRO_GNU_transparent_include. For !dwarf_strict
2304 emit a section headers.
2305 (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
2306 and macinfo_section_label to DEBUG_MACRO_SECTION
2307 resp. DEBUG_MACRO_SECTION_LABEL.
2308 (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
2309 instead of DW_AT_macro_info.
2312 * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
2314 * dwarf2out.c: Include opts.h.
2315 (dchar_p): New typedef. Define heap VEC for it.
2316 (producer_string): New variable.
2317 (gen_producer_string): New function.
2318 (gen_compile_unit_die): Use it.
2319 (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
2320 * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
2321 * doc/invoke.texi: Document -grecord-gcc-switches and
2322 -gno-record-gcc-switches, add a -grecord-gcc-switches reference
2323 to -frecord-gcc-switches description.
2325 2011-07-22 Jason Merrill <jason@redhat.com>
2328 * c-decl.c (c_linkage_bindings): Define.
2330 2011-07-22 Eric Botcazou <ebotcazou@adacore.com>
2333 * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
2335 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
2337 * config/i386/i386.c (ix86_option_override_internal): Disallow
2339 (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
2340 only for TARGET_LP64.
2341 (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
2343 2011-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
2345 * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
2346 avoid warnings when GCC is built with a C++ compiler.
2348 2011-07-22 Martin Jambor <mjambor@suse.cz>
2351 * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
2352 if decl node is in another partition, call cgraph_get_node only once.
2354 2011-07-22 Uros Bizjak <ubizjak@gmail.com>
2356 * config.gcc (x86_64-*-linux*): Set
2357 default_gnu_indirect_function to yes.
2359 2011-07-22 Richard Guenther <rguenther@suse.de>
2361 PR tree-optimization/45819
2362 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2363 preserve volatile and notrap flags.
2365 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2366 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2369 * configure.ac: Test AM_ICONV with CXX.
2370 * configure: Regenerate.
2371 * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
2373 2011-07-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2376 * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
2377 (set_cloog_options): Use it.
2379 2011-07-22 Jakub Jelinek <jakub@redhat.com>
2382 * gcc.c (main): Call stack_limit_increase (64MB).
2383 * toplev.c (toplev_main): Likewise.
2385 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2387 * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
2388 instead of force_reg.
2390 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2392 * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
2393 needed and use force_reg after convert.
2394 (ix86_expand_call): Likewise.
2395 (ix86_expand_special_args_builtin): Likewise.
2396 (ix86_expand_builtin): Likewise.
2398 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2402 * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
2403 in parameter. Initialize v1 and v2 based on the values returned
2404 by clast_name_to_lb_ub.
2405 (type_for_clast_red): Pass v1 and v2 in parameter, and set their
2407 (type_for_clast_bin): Same.
2408 (type_for_clast_expr): Same.
2409 (type_for_clast_eq): Update calls to type_for_clast_expr.
2410 (type_for_clast_for): Same.
2411 (build_iv_mapping): Same.
2412 * graphite-ppl.h (value_min): New.
2414 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2416 * graphite-clast-to-gimple.c (type_for_interval): Generate signed
2417 types whenever possible.
2419 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2421 * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
2423 (new_clast_name_index): Add lb and ub parameters.
2424 (free_clast_name_index): New.
2425 (clast_name_to_lb_ub): New.
2426 (save_clast_name_index): Add lb and ub parameters.
2427 (compute_bounds_for_param): New.
2428 (type_for_level): Removed.
2429 (type_for_clast_for): Removed level parameter. Do not call
2431 (graphite_create_new_loop): Store the lb and ub for the clast_name
2432 of the iterator of the loop that has been generated.
2433 (graphite_create_new_loop_guard): Remove parameter level.
2434 (create_params_index): Store the lb and ub of each parameter.
2435 (gloog): Use free_clast_name_index. Pass to create_params_index
2438 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2440 * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
2441 (max_precision_type): Inline max_signed_precision_type.
2442 (type_for_clast_red): Use max_precision_type.
2443 (type_for_clast_bin): Same.
2444 (type_for_clast_for): Same.
2446 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2448 * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
2450 (gcc_type_for_value): Renamed type_for_value.
2451 (gcc_type_for_clast_term): Renamed type_for_clast_term.
2452 (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
2453 (gcc_type_for_clast_red): Renamed type_for_clast_red.
2454 (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
2455 (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
2456 (graphite_translate_clast_equation): Update calls.
2457 (compute_type_for_level): Renamed type_for_level.
2458 (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
2459 (build_iv_mapping): Update calls.
2460 (graphite_create_new_loop_guard): Same.
2462 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2464 * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
2467 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2469 * graphite-clast-to-gimple.c (struct ivs_params): New.
2470 (clast_name_to_gcc): Use ivs_params to pass around parameters.
2471 (clast_to_gcc_expression): Same.
2472 (clast_to_gcc_expression_red): Same.
2473 (gcc_type_for_clast_term): Same.
2474 (gcc_type_for_clast_expr): Same.
2475 (gcc_type_for_clast_red): Same.
2476 (gcc_type_for_clast_bin): Same.
2477 (gcc_type_for_clast_eq): Same.
2478 (graphite_translate_clast_equation): Same.
2479 (graphite_create_guard_cond_expr): Same.
2480 (graphite_create_new_guard): Same.
2481 (graphite_create_new_loop): Same.
2482 (build_iv_mapping): Same.
2483 (translate_clast_user): Same.
2484 (graphite_create_new_loop_guard): Same.
2485 (translate_clast): Same.
2486 (translate_clast_for_loop): Same.
2487 (translate_clast_for): Same.
2488 (translate_clast_guard): Same.
2489 (initialize_cloog_names): Fix typo.
2490 (gloog): Initialize an ivs_params struct, pass it to translate_clast.
2492 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2494 * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
2495 (new_clast_name_index): Add level parameter.
2496 (clast_name_to_level): New.
2497 (save_clast_name_index): Add level parameter.
2498 (newivs_to_depth_to_newiv): Removed.
2499 (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
2500 (graphite_create_new_loop): Add level parameter. Pass level to
2501 save_clast_name_index.
2502 (translate_clast_for_loop): Pass level to graphite_create_new_loop.
2503 (create_params_index): Pass level to save_clast_name_index.
2505 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2507 * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
2508 recompute type, lb, and ub. Get them from...
2509 (graphite_create_new_loop_guard): ...here. Pass in parameter
2510 pointers to type, lb, and ub.
2511 (translate_clast_for_loop): Update function calls.
2512 (translate_clast_for): Same.
2514 2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
2516 * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
2518 (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
2519 (gcc_type_for_iv_of_clast_loop): Update use of level.
2520 (gloog): Start counting nesting level from 0.
2521 * graphite-clast-to-gimple.h (get_scattering_level): Removed.
2522 * graphite-dependences.c (graphite_carried_dependence_level_k): Call
2523 psct_dynamic_dim on level.
2525 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2527 * config/i386/i386.c (ix86_legitimize_address): Convert to
2530 2011-07-21 H.J. Lu <hongjiu.lu@intel.com>
2532 * config/i386/i386.c (function_value_64): Always return pointers
2534 (ix86_promote_function_mode): New.
2535 (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
2537 2011-07-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2539 PR tree-optimization/49749
2540 * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
2541 remove no-longer-used maxrank variable.
2543 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2545 * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
2547 2011-07-21 Jason Merrill <jason@redhat.com>
2549 * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
2550 * recog.h (struct insn_data_d): Check it instead of
2551 HAVE_DESIGNATED_INITIALIZERS.
2552 * genoutput.c (output_insn_data): Likewise.
2554 2011-07-21 Richard Guenther <rguenther@suse.de>
2556 PR tree-optimization/49770
2557 * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
2558 valueized any operand. Renamed from ...
2559 (valueize_refs): ... this. New wrapper around valueize_refs_1.
2560 (valueize_shared_reference_ops_from_ref): Return whether we
2561 valueized any operand.
2562 (vn_reference_lookup): Only when we valueized any operand
2563 use the valueized reference for alias analysis. Do not preserve
2564 the original reference tree in this case.
2566 2011-07-21 Uros Bizjak <ubizjak@gmail.com>
2568 * config/i386/i386.c (ix86_decompose_address): Reject all but
2569 register operands and subregs of DImode hard registers in index.
2571 2011-07-21 Kai Tietz <ktietz@redhat.com>
2573 * fold-const.c (fold_unary_loc): Preserve indirect
2574 comparison cast to none-boolean type.
2575 * tree-ssa.c (useless_type_conversion_p): Preserve cast
2576 from/to boolean-type.
2577 * gimplify.c (gimple_boolify): Handle boolification of comparisons.
2578 (gimplify_expr): Boolifiy non aggregate-typed comparisons.
2579 * tree-cfg.c (verify_gimple_comparison): Check result
2580 type of comparison expression.
2581 * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
2582 of condition result and disallow type-cast sinking into comparison.
2584 2011-07-21 Richard Guenther <rguenther@suse.de>
2586 * tree-ssa-forwprop.c (combine_conversions): Return whether
2587 we have to run cfg-cleanup. Properly remove dead stmts.
2588 (ssa_forward_propagate_and_combine): Adjust.
2590 2011-07-21 Richard Sandiford <richard.sandiford@linaro.org>
2592 * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
2594 2011-07-21 Kai Tietz <ktietz@redhat.com>
2596 * tree-ssa-propagate.c (substitute_and_fold): Use
2597 do_dce flag to deside, if BB's statements are scanned
2598 in last to first, or first to last order.
2600 2011-07-21 Georg-Johann Lay <avr@gjlay.de>
2602 * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
2604 2011-07-20 H.J. Lu <hongjiu.lu@intel.com>
2605 Uros Bizjak <ubizjak@gmail.com>
2606 Richard Henderson <rth@redhat.com>
2608 * config/i386/constraints.md (w): New.
2610 * config/i386/i386.c (ix86_output_addr_vec_elt): Check
2611 TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
2613 * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
2614 instead of TARGET_64BIT.
2616 * config/i386/i386.md (indirect_jump): Replace
2617 nonimmediate_operand with indirect_branch_operand.
2618 (*indirect_jump): Likewise. Replace constraint "m" with "w".
2619 (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
2620 Convert operand 0 to Pmode for x32 if not PIC.
2621 (*tablejump_1): Replace nonimmediate_operand with
2622 indirect_branch_operand. Replace constraint "m" with "w".
2623 (*call_vzeroupper): Replace constraint "m" with "w".
2625 (*call_rex64_ms_sysv_vzeroupper): Likewise.
2626 (*call_rex64_ms_sysv): Likewise.
2627 (*call_value_vzeroupper): Likewise.
2628 (*call_value): Likewise.
2629 (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
2630 (*call_value_rex64_ms_sysv): Likewise.
2631 (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
2633 * config/i386/predicates.md (indirect_branch_operand): New.
2634 (call_insn_operand): Support x32.
2636 2011-07-20 Michael Eager <eager@eagercon.com>
2638 * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
2640 2011-07-20 Richard Henderson <rth@redhat.com>
2642 * cfg.c (dump_bb_info): Dump basic_block->flags.
2643 * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
2645 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
2647 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2648 of DImode hard registers in index.
2649 (ix86_legitimate_address_p): Allow subregs of base and index to span
2650 more than a word. Assert that subregs of base and index satisfy
2651 register_no_elim_operand predicates. Reject addresses where
2652 base and index have different modes.
2654 2011-07-20 Robert Millan <rmh@gnu.org>
2656 * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
2658 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2660 * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
2661 removing now-unnecessary assignment.
2663 2011-07-20 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2665 * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
2666 memory address space to the type's address space.
2668 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
2672 * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
2673 and expand appropriately if there is a CONST_INT in operand2.
2674 (usmulqihi3): New insn.
2675 (*sumulqihi3): New insn.
2676 (*osmulqihi3): New insn.
2677 (*oumulqihi3): New insn.
2678 (*muluqihi3.uconst): New insn_and_split.
2679 (*muluqihi3.sconst): New insn_and_split.
2680 (*mulsqihi3.sconst): New insn_and_split.
2681 (*mulsqihi3.uconst): New insn_and_split.
2682 (*mulsqihi3.oconst): New insn_and_split.
2683 (*ashifthi3.signx.const): New insn_and_split.
2684 (*ashifthi3.signx.const7): New insn_and_split.
2685 (*ashifthi3.zerox.const): New insn_and_split.
2686 (mulsqihi3): New insn.
2687 (muluqihi3): New insn.
2688 (muloqihi3): New insn.
2689 * config/avr/predicates.md (const_2_to_7_operand): New.
2690 (const_2_to_6_operand): New.
2695 (register_or_s9_operand): New.
2697 2011-07-20 Kai Tietz <ktietz@redhat.com>
2699 * builtins.c (fold_builtin_expect): See through the cast
2700 from truthvalue_type_node to long.
2702 2011-07-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2704 * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
2705 where we can use them from the standard and altivec instruction
2706 sets, instead of always using the 3 operand VSX forms that require
2707 the destination to overlap one of the inputs.
2712 * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
2714 (fmsdf4_fpr): Ditto.
2715 (nfmadf4_fpr): Ditto.
2716 (nfmsdf4_fpr): Ditto.
2718 2011-07-20 Sandra Loosemore <sandra@codesourcery.com>
2720 * genrecog.c (make_insn_sequence): Correct position numbering
2721 when filtering out match_scratch and match_dup.
2723 2011-07-20 Richard Guenther <rguenther@suse.de>
2725 * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2726 against already removed statements.
2727 (forward_propagate_into_comparison): Remove dead defining stmts.
2728 (forward_propagate_into_gimple_cond): Likewise.
2729 (forward_propagate_into_cond): Simplify.
2730 (ssa_forward_propagate_and_combine): Handle changed cfg from
2731 forward_propagate_into_comparison.
2732 * tree-ssa-phiopt.c (conditional_replacement): Use proper
2733 locations for newly built statements.
2735 2011-07-20 Georg-Johann Lay <avr@gjlay.de>
2737 * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
2739 2011-07-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2741 * config/s390/s390.c (s390_class_max_nregs): Fix return type.
2742 * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
2744 2011-07-20 Richard Guenther <rguenther@suse.de>
2747 * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
2748 * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
2749 ADDR_EXPR folding. Canonicalize X ^ ~0 as ~X.
2751 2011-07-20 Vladimir Makarov <vmakarov@redhat.com>
2753 * config/frv/frv.c (frv_register_move_cost): Define explicitly
2754 costs for subclasses of GR_REGS.
2756 2011-07-20 Uros Bizjak <ubizjak@gmail.com>
2759 * config/i386/predicates.md (no_seg_addres_operand): No more special.
2760 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
2761 of DImode hard registers in base.
2762 (ix86_legitimate_address_p): Allow SImode and DImode base and index
2765 2011-07-20 Richard Guenther <rguenther@suse.de>
2767 * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
2768 (unify_nodes): Deal with that.
2769 (solve_graph): Likewise.
2771 2011-07-20 Chung-Lin Tang <cltang@codesourcery.com>
2773 * config/arm/arm.c (arm_canonicalize_comparison): Add case to
2774 canonicalize left operand from ZERO_EXTEND to AND.
2776 2011-07-20 Anatoly Sokolov <aesok@post.ru>
2778 * target.def (class_max_nregs): New hook.
2779 * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
2780 * doc/tm.texi: Regenerate.
2781 * targhooks.c (default_class_max_nregs): New function.
2782 * targhooks.h (default_class_max_nregs): Declare.
2783 * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
2784 x_ira_reg_class_min_nregs arrays to unsigned char.
2785 * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
2786 hook instead of CLASS_MAX_NREGS macro.
2787 * reginfo.c (restore_register_info): Ditto.
2788 * ira-conflicts.c (process_regs_for_copy): Use
2789 ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2790 Change type rclass and aclass vars to reg_class_t.
2791 * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
2792 array instead of CLASS_MAX_NREGS macro. Change type rclass var to
2794 * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
2795 Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
2797 * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
2798 * config/i386/i386.c (ix86_class_max_nregs): New function.
2799 (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
2800 instead of CLASS_MAX_NREGS macro.
2801 (TARGET_CLASS_MAX_NREGS): Define.
2802 * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
2803 * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
2804 * config/avr/avr.c (class_max_nregs): Remove function.
2805 * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
2806 * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
2807 * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
2808 * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
2809 * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
2810 * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
2811 * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
2812 * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
2813 * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
2814 * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
2815 * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
2816 * config/score/score.h (CLASS_MAX_NREGS): Remove.
2817 * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
2818 * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
2819 * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
2821 2011-07-19 Eric Botcazou <ebotcazou@adacore.com>
2823 * cif-code.def (OVERWRITABLE): Fix typo and move around.
2824 (TARGET_OPTIMIZATION_MISMATCH): Delete.
2825 (EH_PERSONALITY): Fix typo.
2826 (NON_CALL_EXCEPTIONS): Fix message.
2827 (OPTIMIZATION_MISMATCH): Adjust message.
2828 * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
2830 2011-07-19 Ian Lance Taylor <iant@google.com>
2832 * doc/install.texi (Configuration): Document
2833 --enable-build-poststage1-with-cxx.
2835 2011-07-19 Robert Millan <rmh@gnu.org>
2837 * config/mips/gnu-user.h: Copy from linux.h. Update comments.
2838 (GLIBC_DYNAMIC_LINKER): Remove.
2840 * config/mips/gnu-user64.h: Copy from linux64.h. Update comments.
2841 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2842 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2843 (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
2844 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
2845 GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
2847 * config/mips/linux.h: Remove everything except for ...
2848 (GLIBC_DYNAMIC_LINKER): ... this macro.
2850 * config/mips/linux64.h: Remove everything except for ...
2851 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
2852 (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
2853 (BIONIC_DYNAMIC_LINKERN32): ... these macros.
2854 (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
2855 (GNU_USER_LINK_EMULATIONN32): New macros.
2857 * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
2858 Use the new headers.
2860 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2862 * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
2863 Add offset_known_p and size_known_p fields.
2864 (MEM_OFFSET_KNOWN_P): Update accordingly.
2865 (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
2866 * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
2867 (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
2868 (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
2869 (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
2870 (init_emit_regs): Likewise.
2872 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2874 * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
2875 (MEM_OFFSET): Change from returning an rtx to returning a
2877 * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
2878 (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
2879 * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2880 (clear_mem_offset): Declare.
2881 * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
2882 MEM_OFFSET_KNOWN_P to test whether the offset is known, and
2883 MEM_OFFSET to get a HOST_WIDE_INT offset.
2884 (nonoverlapping_memrefs_p): Likewise. Adjust calls to...
2885 (adjust_offset_for_component_ref): Take a bool "known_p"
2886 parameter and a HOST_WIDE_INT "offset" parameter.
2887 * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
2888 Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
2889 than an rtx. Use clear_mem_offset to clear the offset.
2890 * cfgcleanup.c (merge_memattrs): Likewise.
2891 * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
2892 * function.c (assign_parm_find_stack_rtl): Likewise.
2893 (assign_parm_setup_stack): Likewise.
2894 * print-rtl.c (print_rtx): Likewise.
2895 * reload.c (find_reloads_subreg_address): Likewise.
2896 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
2897 * var-tracking.c (INT_MEM_OFFSET): Likewise.
2898 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
2899 (get_mem_align_offset): Likewise.
2900 (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
2901 (clear_mem_offset): New function.
2902 * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
2903 offset rather than an rtx. Assume both the expressio and offset
2905 (r10k_needs_protection_p_1): Update accordingly, checking the
2906 expression and offset availability here instead.
2908 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2910 * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
2911 (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
2912 * rtl.h (MEM_SIZE_KNOWN_P): New macro.
2913 (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
2914 * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2915 (clear_mem_size): Declare.
2916 * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
2917 (clear_mem_size): New function.
2918 * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
2919 MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
2920 to get a HOST_WIDE_INT size. Adjust calls to set_mem_size,
2921 passing a HOST_WIDE_INT rather than an rtx. Use clear_mem_size
2923 (nonoverlapping_memrefs_p): Likewise.
2924 * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
2925 (expand_builtin_init_trampoline): Likewise.
2926 * calls.c (compute_argument_addresses): Likewise.
2927 * cfgcleanup.c (merge_memattrs): Likewise.
2928 * dce.c (find_call_stack_args): Likewise.
2929 * dse.c (record_store, scan_insn): Likewise.
2930 * dwarf2out.c (dw_sra_loc_expr): Likewise.
2931 * expr.c (emit_block_move_hints): Likewise.
2932 * function.c (assign_parm_find_stack_rtl): Likewise.
2933 * print-rtl.c (print_rtx): Likewise.
2934 * reload.c (find_reloads_subreg_address): Likewise.
2935 * rtlanal.c (may_trap_p_1): Likewise.
2936 * var-tracking.c (track_expr_p): Likewise.
2937 * varasm.c (assemble_trampoline_template): Likewise.
2938 * config/arm/arm.c (arm_print_operand): Likewise.
2939 * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
2940 * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
2941 (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
2942 (expand_constant_setmem_prologue): Likewise.
2943 * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
2944 * config/rs6000/rs6000.c (expand_block_move): Likewise.
2945 (adjacent_mem_locations): Likewise.
2946 * config/s390/s390.c (s390_expand_setmem): Likewise.
2947 (s390_expand_insv): Likewise.
2948 * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
2949 (*extendqi<mode>2_short_displ): Likewise.
2950 * config/sh/sh.c (expand_block_move): Likewise.
2951 * config/sh/sh.md (extv, extzv): Likewise.
2953 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2955 * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
2956 (mem_attrs_htab_eq): ...here.
2957 (find_mem_attrs): Replace with...
2958 (set_mem_attrs): ...this function. Take a mem_attrs structure
2959 rather than individual fields.
2960 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2961 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2962 (set_mem_size, change_address, adjust_address_1, offset_address)
2963 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2966 2011-07-19 Richard Sandiford <rdsandiford@googlemail.com>
2968 * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
2969 (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
2970 Provide a dummy definition of MEM_ADDR_SPACE for generators.
2971 (target_rtl): Add x_mode_mem_attrs.
2972 (mode_mem_attrs): New macro.
2973 (get_mem_attrs): New function.
2974 * emit-rtl.c (get_mem_attrs): Rename to...
2975 (find_mem_attrs): ...this.
2976 (set_mem_attributes_minus_bitpos, set_mem_alias_set)
2977 (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
2978 (set_mem_size, change_address, adjust_address_1, offset_address)
2979 (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
2981 (init_emit_regs): Initialize mode_mem_attrs.
2983 2011-07-19 Richard Guenther <rguenther@suse.de>
2985 * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
2986 TRUTH_*_EXPR handling.
2987 * tree-ssa-operands.c (get_expr_operands): Likewise.
2988 * tree-ssa-pre.c (fully_constant_expression): Likewise.
2989 * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
2991 (is_and_or_or): Likewise.
2992 (is_norm_cond_subset_of): Likewise.
2994 2011-07-19 Richard Guenther <rguenther@suse.de>
2996 * tree.h (fold_build_pointer_plus_loc): New helper function.
2997 (fold_build_pointer_plus_hwi_loc): Likewise.
2998 (fold_build_pointer_plus): Define.
2999 (fold_build_pointer_plus_hwi): Likewise.
3000 * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3001 (fold_builtin_memory_op): Likewise.
3002 (fold_builtin_stpcpy): Likewise.
3003 (fold_builtin_memchr): Likewise.
3004 (fold_builtin_strstr): Likewise.
3005 (fold_builtin_strchr): Likewise.
3006 (fold_builtin_strrchr): Likewise.
3007 (fold_builtin_strpbrk): Likewise.
3008 (fold_builtin_strcat): Likewise.
3009 (expand_builtin_memory_chk): Likewise.
3010 (fold_builtin_memory_chk): Likewise.
3011 * c-typeck.c (build_unary_op): Likewise.
3012 * cgraphunit.c (thunk_adjust): Likewise.
3013 * fold-const.c (build_range_check): Likewise.
3014 (fold_binary_loc): Likewise.
3015 * omp-low.c (extract_omp_for_data): Likewise.
3016 (expand_omp_for_generic): Likewise.
3017 (expand_omp_for_static_nochunk): Likewise.
3018 (expand_omp_for_static_chunk): Likewise.
3019 * tree-affine.c (add_elt_to_tree): Likewise.
3020 * tree-data-ref.c (split_constant_offset_1): Likewise.
3021 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3022 * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3023 * tree-predcom.c (ref_at_iteration): Likewise.
3024 * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3025 (add_to_parts): Likewise.
3026 (create_mem_ref): Likewise.
3027 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3028 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3029 (number_of_iterations_le): Likewise.
3030 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3031 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3032 (vect_create_addr_base_for_vector_ref): Likewise.
3033 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3034 (vect_create_cond_for_alias_checks): Likewise.
3035 * tree-vrp.c (extract_range_from_assert): Likewise.
3036 * config/alpha/alpha.c (alpha_va_start): Likewise.
3037 (alpha_gimplify_va_arg_1): Likewise.
3038 * config/i386/i386.c (ix86_va_start): Likewise.
3039 (ix86_gimplify_va_arg): Likewise.
3040 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3041 * config/mep/mep.c (mep_expand_va_start): Likewise.
3042 (mep_gimplify_va_arg_expr): Likewise.
3043 * config/mips/mips.c (mips_va_start): Likewise.
3044 (mips_gimplify_va_arg_expr): Likewise.
3045 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3046 * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3047 (rs6000_gimplify_va_arg): Likewise.
3048 * config/s390/s390.c (s390_va_start): Likewise.
3049 (s390_gimplify_va_arg): Likewise.
3050 * config/sh/sh.c (sh_va_start): Likewise.
3051 (sh_gimplify_va_arg_expr): Likewise.
3052 * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3053 * config/spu/spu.c (spu_va_start): Likewise.
3054 (spu_gimplify_va_arg_expr): Likewise.
3055 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3057 (xstormy16_gimplify_va_arg_expr): Likewise.
3058 * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3059 (xtensa_gimplify_va_arg_expr): Likewise.
3061 2011-07-19 Richard Guenther <rguenther@suse.de>
3063 * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3064 (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3068 * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3069 result of BIT_*_EXPR to bitfield precision.
3071 2011-07-19 Richard Sandiford <richard.sandiford@linaro.org>
3073 PR tree-optimization/49742
3074 * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3075 as a potential write.
3077 2011-07-19 Richard Guenther <rguenther@suse.de>
3079 * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3080 * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3081 (forward_propagate_comparison): Simplify, remove obsolete code.
3083 2011-07-19 Richard Guenther <rguenther@suse.de>
3085 * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3086 BIT_XOR_EXPR, same as the RTL expander does.
3087 * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3088 (verify_gimple_assign_unary): Likewise.
3089 * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3090 * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3091 BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3093 2011-07-19 Jakub Jelinek <jakub@redhat.com>
3095 PR tree-optimization/49768
3096 * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3097 if offset is smaller than bitoffset, but offset+size is bigger
3100 2011-07-19 Ira Rosen <ira.rosen@linaro.org>
3102 PR tree-optimization/49771
3103 * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3104 zero step, set segment length to the size of the data-ref's type.
3106 2011-07-18 Martin Jambor <mjambor@suse.cz>
3108 * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3110 (ipcp_values_pool): Declare.
3111 (ipcp_sources_pool): Likewise.
3112 (ipcp_lattice): Changed to forward declaration.
3113 (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3114 cannot_devirtualize.
3115 (ipa_node_params): New fields descriptors, lattices, known_vals,
3116 clone_for_all_contexts and node dead, removed fields params and
3118 (ipa_set_param_count): Removed.
3119 (ipa_get_param_count): Made to work with descriptors vector.
3120 (ipa_get_param): Updated.
3121 (ipa_param_cannot_devirtualize_p): Removed.
3122 (ipa_param_types_vec_empty): Likewise.
3123 (ipa_set_param_used): New function.
3124 (ipa_get_param_used): Updated to use descriptors vector.
3125 (ipa_func_list): Removed.
3126 (ipa_init_func_list): Removed declaration.
3127 (ipa_push_func_to_list_1): Likewise.
3128 (ipa_pop_func_from_list): Likewise.
3129 (ipa_push_func_to_list): Removed.
3130 (ipa_lattice_from_jfunc): Remove declaration.
3131 (ipa_get_jf_pass_through_result): Declare.
3132 (ipa_get_jf_ancestor_result): Likewise.
3133 (ipa_value_from_jfunc): Likewise.
3134 (ipa_get_lattice): Update.
3135 (ipa_lat_is_single_const): New function.
3136 * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3137 (ipa_init_func_list): Likewise.
3138 (ipa_pop_func_from_list): Likewise.
3139 (ipa_get_param_decl_index): Fix coding style.
3140 (count_formal_params): Removed.
3141 (count_formal_params_1): Renamed to count_formal_params.
3142 (ipa_populate_param_decls): Update to use descriptors vector.
3143 (ipa_initialize_node_params): Likewise.
3144 (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3145 (ipa_analyze_params_uses): Likewise.
3146 (ipa_free_node_params_substructures): Likewise and free also lattices
3148 (duplicate_array): Removed.
3149 (ipa_edge_duplication_hook): Add the new edge to the list of edge
3151 (ipa_node_duplication_hook): Update to use new lattices.
3152 (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3153 (ipa_free_all_structures_after_iinln): Likewise.
3154 (ipa_write_node_info): Update to use new lattices.
3155 (ipa_read_node_info): Likewise.
3156 (ipa_get_jf_pass_through_result): New function.
3157 (ipa_get_jf_ancestor_result): Likewise.
3158 (ipa_value_from_jfunc): Likewise.
3159 (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3160 * ipa-cp.c: Reimplemented.
3161 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3162 (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3163 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3164 * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3165 * doc/invoke.texi (devirt-type-list-size): Removed description.
3166 (ipa-cp-value-list-size): Added description.
3168 2011-07-18 Richard Henderson <rth@redhat.com>
3170 * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3171 before calling create_basic_block.
3173 2011-07-18 Jakub Jelinek <jakub@redhat.com>
3176 * tree.c (build_common_builtin_nodes): Register
3177 __builtin_return_address, __cyg_profile_func_enter
3178 and __cyg_profile_func_exit.
3180 2011-07-18 Richard Henderson <rth@redhat.com>
3182 * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3183 (add_labels_and_missing_jumps): ... here.
3184 (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3186 2011-07-18 Uros Bizjak <ubizjak@gmail.com>
3189 * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3190 of DImode hard registers in PLUS address chains.
3192 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3195 * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3196 (alpha*-*-freebsd*): Likewise.
3197 (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3198 i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3199 i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3200 crtprec80.o, crtfastmath.o to extra_parts for all targets.
3201 (ia64*-*-elf*): Remove extra_parts.
3202 (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3203 (sparc64-*-linux*): Likewise.
3204 (sparc64-*-freebsd*): Likewise.
3207 * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3208 (ia64*-*-linux*): Likewise.
3209 (mips64*-*-linux*): Likewise.
3210 (mips*-*-linux*): Likewise.
3212 2011-07-18 David Edelsohn <dje.gcc@gmail.com>
3214 * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3216 2011-07-18 Richard Guenther <rguenther@suse.de>
3218 * gimplify.c (gimplify_expr): Use input_location, not saved_location
3219 when building new trees.
3221 2011-07-18 Richard Guenther <rguenther@suse.de>
3223 * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3224 expansion result to bitfield precision if required.
3226 2011-07-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3228 * config.gcc (i[3456x]86-*-netware*): Remove.
3230 * gthr-nks.h: Remove.
3231 * configure.ac (enable_threads): Remove nks.
3232 * configure: Regenerate.
3234 * config/i386/i386.c (ix86_encode_section_info): Remove netware
3236 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3237 <netware.h> reference.
3239 * config/i386/netware-libgcc.c,
3240 gcc/config/i386/netware-libgcc.def,
3241 gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3242 gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3243 gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3244 gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3246 * doc/extend.texi (Function Attributes,
3247 callee_pop_aggregate_return): Remove i?86-netware reference.
3248 * doc/install.texi (Configuration, --enable-threads): Remove nks.
3250 2011-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3254 2010-12-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3256 * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3259 2011-07-17 Eric Botcazou <ebotcazou@adacore.com>
3262 * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3264 2011-07-16 Matthias Klose <doko@ubuntu.com>
3266 * doc/install.texi: Document --enable-static-libjava.
3268 2011-07-15 Richard Henderson <rth@redhat.com>
3270 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3271 Replace all three arguments by returning a VEC of edges.
3272 (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3273 pointers and counts.
3274 (fix_edges_for_rarely_executed_code): Merge ...
3275 (rest_of_handle_partition_blocks): ... into...
3276 (partition_hot_cold_basic_blocks): ... here. Return todo items if
3277 any work was performed.
3278 (pass_partition_blocks): Clear todo_flags_finish.
3280 2011-07-15 Paolo Carlini <paolo.carlini@oracle.com>
3281 Jakub Jelinek <jakub@redhat.com>
3282 Jonathan Wakely <jwakely.gcc@gmail.com>
3285 * gthr-posix.h: Do not include <unistd.h> unconditionally; use
3286 _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
3288 2011-07-15 Jason Merrill <jason@redhat.com>
3291 * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
3292 rather than --tool_opts.
3294 2011-07-15 Basile Starynkevitch <basile@starynkevitch.net>
3296 * doc/plugins.texi (Building GCC plugins): gengtype needs its
3297 corresponding gtype.state.
3299 2011-07-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3302 * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
3304 2011-07-15 Eric Botcazou <ebotcazou@adacore.com>
3307 * doc/md.texi (Standard Names): Document window_save.
3308 * cfgexpand.c (expand_debug_parm_decl): New function extracted from
3309 expand_debug_expr and expand_debug_source_expr. If the target has
3310 a window_save instruction, adjust the ENTRY_VALUE_EXP.
3311 (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
3312 SSA_NAME_VAR is a parameter.
3313 (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
3314 * var-tracking.c (parm_reg_t): New type and associated vector type.
3315 (windowed_parm_regs): New variable.
3316 (adjust_insn): If the target has a window_save instruction and this
3317 is the instruction, make its effect on parameter registers explicit.
3318 (next_non_note_insn_var_location): New function.
3319 (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
3320 (vt_add_function_parameter): If the target has a window_save insn,
3321 adjust the incoming RTL and record that in windowed_parm_regs.
3322 (vt_finalize): Free windowed_parm_regs.
3324 2011-07-15 Bernd Schmidt <bernds@codesourcery.com>
3326 * doc/invoke.texi (C6X Options): New section.
3327 * doc/md.texi (TI C6X family): New section.
3328 * config.gcc: Handle tic6x, in particular tic6x-*-elf and
3330 * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
3331 count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
3332 Provide C6X definitions.
3333 * config/c6x/c6x.md: New file.
3334 * config/c6x/constraints.md: New file.
3335 * config/c6x/predicates.md: New file.
3336 * config/c6x/c6x-sched.md.in: New file.
3337 * config/c6x/c6x-sched.md: New file.
3338 * config/c6x/gensched.sh: New file.
3339 * config/c6x/c6x-mult.md.in: New file.
3340 * config/c6x/genmult.sh: New file.
3341 * config/c6x/c6x-mult.md: New file.
3342 * config/c6x/sync.md: New file.
3343 * config/c6x/c6x-protos.h: New file.
3344 * config/c6x/sfp-machine.h: New file.
3345 * config/c6x/c6x.c: New file.
3346 * config/c6x/c6x.h: New file.
3347 * config/c6x/crti.s: New file.
3348 * config/c6x/crtn.s: New file.
3349 * config/c6x/lib1funcs.asm: New file.
3350 * config/c6x/c6x-modes.def: New file.
3351 * config/c6x/genopt.sh: New file.
3352 * config/c6x/c6x.opt: New file.
3353 * config/c6x/c6x-tables.opt: New file.
3354 * config/c6x/c6x-opts.h: New file.
3355 * config/c6x/c6x-isas.def: New file.
3356 * config/c6x/elf.h: New file.
3357 * config/c6x/elf-common.h: New file.
3358 * config/c6x/uclinux-elf.h: New file.
3359 * config/c6x/t-c6x: New file.
3360 * config/c6x/t-c6x-elf: New file.
3361 * config/c6x/t-c6x-uclinux: New file.
3362 * config/c6x/t-c6x-softfp: New file.
3363 * config/c6x/gtd.c: New file.
3364 * config/c6x/gtf.c: New file.
3365 * config/c6x/ltd.c: New file.
3366 * config/c6x/ltf.c: New file.
3367 * config/c6x/ged.c: New file.
3368 * config/c6x/gef.c: New file.
3369 * config/c6x/led.c: New file.
3370 * config/c6x/lef.c: New file.
3371 * config/c6x/eqd.c: New file.
3372 * config/c6x/eqf.c: New file.
3373 * config/c6x/libgcc-c6xeabi.ver: New file.
3376 2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
3377 PR rtl-optimization/11320
3378 * sched-int.h (struct deps) [reg_conditional_sets]: New field.
3379 (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
3380 * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
3381 current_sched_info->compute_jump_reg_dependencies. Record which
3382 registers are used and which registers are set by the jump.
3383 Clear deps->reg_conditional_sets after a barrier.
3384 Set deps->reg_conditional_sets if the insn is a COND_EXEC.
3385 Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
3386 (init_deps): Initialize reg_conditional_sets.
3387 (free_deps): Clear reg_conditional_sets.
3388 * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
3389 Mark registers live on entry of the fallthrough block and conditionally
3390 set as set by the jump. Mark registers live on entry of non-fallthrough
3391 blocks as used by the jump.
3392 * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
3393 Mark new parameters as unused.
3395 2011-07-14 Andrew Pinski <pinskia@gmail.com>
3398 * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
3399 Use fold_build2_loc instead of build2.
3400 Use the correct type for the new tree.
3402 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3404 PR rtl-optimization/11320
3405 * config/ia64/ia64.md (load_symptr_low): Show a MEM.
3406 * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
3408 2011-07-14 Georg-Johann Lay <avr@gjlay.de>
3411 * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
3413 (*rotw<mode>): Use const_int_operand for operand2.
3414 Use match_scatch for operand3.
3415 (*rotb<mode>): Ditto
3416 * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
3418 2011-07-14 Richard Guenther <rguenther@suse.de>
3420 PR tree-optimization/49651
3421 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3422 handle dereferences with subvariables.
3424 2011-07-14 Richard Guenther <rguenther@suse.de>
3426 * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
3427 (fold_stmt_1): Do it here directly on gimple and as a first thing.
3429 2011-07-14 Richard Guenther <rguenther@suse.de>
3431 * fold-const.c (fold_binary_loc): Convert the !bool_var result,
3432 not bool_var when folding bool_var != 1 or bool_var == 0.
3434 2011-07-14 Bernd Schmidt <bernds@codesourcery.com>
3436 * haifa-sched.c (schedule_insns): Remove outdated comment.