]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
mips-opts.h: New.
[gcc.git] / gcc / ChangeLog
CommitLineData
3af42a7b
JM
12011-05-03 Joseph Myers <joseph@codesourcery.com>
2
3 * config/mips/mips-opts.h: New.
4 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
5 to mips-opts.h.
6 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
7 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
8 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
9 via opts pointer.
10 * config/mips/mips.h (enum mips_code_readable_setting): Move to
11 mips-opts.h.
12 (mips_abi, mips_code_readable): Don't declare.
13 * config/mips/mips.opt (config/mips/mips-opts.h): New
14 HeaderInclude.
15 (mabi=): Use Enum and Var.
16 (mips_abi): New Enum and EnumValue entries.
17 (mcode-readable=): Use Enum and Var.
18 (mips_code_readable_setting): New Enum and EnumValue entries.
19 (mr10k-cache-barrier=): Use Enum and Var.
20 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
21
1cb1a99f
JH
222011-05-03 Jan Hubicka <jh@suse.cz>
23
24 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
25 replace hash by pointer map.
26 (cgraph_node_set_element_def, cgraph_node_set_element,
27 const_cgraph_node_set_element, varpool_node_set_element_def,
28 varpool_node_set_element, const_varpool_node_set_element): Remove.
29 (free_cgraph_node_set, free_varpool_node_set): New function.
30 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
31 * tree-emutls.c: Free varpool node set.
32 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
33 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
34 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
35 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
36 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
37 Move here from ipa.c; implement using pointer_map
38 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
39 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
40 debug_cgraph_node_set, varpool_node_set_new,
41 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
42 dump_varpool_node_set, debug_varpool_node_set):
43 Move to ipa-uitls.c.
44 * passes.c (ipa_write_summaries): Update.
45
7f31f4db
SH
462011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
47
48 From Mike Frysinger:
49 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
50 bf542/bf544/bf547/bf548/bf549.
51
b70fce6d
UB
522011-05-03 Uros Bizjak <ubizjak@gmail.com>
53
54 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
55
265b1d82
SH
562011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
57
58 From Bernd Schmidt:
59 * config/bfin/bfin.md (MOVCC): New mode_macro.
60 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
61 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
62 comments from generated assembly.
63
f0b568f3
SH
642011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
65
66 From Bernd Schmidt
67 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
68 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
69 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
70 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
71 * config/bfin/lib1funcs.asm (___muldi3): New function.
72
2c67cf6e
NF
732011-05-03 Nathan Froyd <froydnj@codesourcery.com>
74
75 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
76 build_function_type_list instead of build_function_type.
77 Rearrange initialization of `args' to do so.
78
f9ac28ad
NF
792011-05-03 Nathan Froyd <froydnj@codesourcery.com>
80
81 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
82 instead of build_function_type.
83
22b8798c
NF
842011-05-03 Nathan Froyd <froydnj@codesourcery.com>
85
86 * config/rs6000/rs6000.c (spe_init_builtins): Call
87 build_function_type_list instead of build_function_type.
88 (paired_init_builtins, altivec_init_builtins): Likewise.
89 (builtin_function_type): Likewise.
90
4cb44528
NF
912011-05-03 Nathan Froyd <froydnj@codesourcery.com>
92
93 * config/sh/sh.c (sh_media_init_builtins): Call
94 build_function_type_list instead of build_function_type.
95
4c203a6a
NF
962011-05-03 Nathan Froyd <froydnj@codesourcery.com>
97
98 * config/sparc/sparc.c (sparc_file_end): Call
99 build_function_type_list instead of build_function_type.
100
d6a3d62b
NF
1012011-05-03 Nathan Froyd <froydnj@codesourcery.com>
102
103 * config/alpha/alpha.c (alpha_init_builtins): Call
104 build_function_type_list instead of build_function_type.
105
de530b86
NF
1062011-05-03 Nathan Froyd <froydnj@codesourcery.com>
107
108 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
109 build_function_type_list instead of build_function_type.
110
baeec5f2
NF
1112011-05-03 Nathan Froyd <froydnj@codesourcery.com>
112
113 * config/iq2000/i2000.c (iq2000_init_builtins): Call
114 build_function_type_list instead of build_function_type.
115 Delete `endlink' variable.
116
c19afe52
NF
1172011-05-03 Nathan Froyd <froydnj@codesourcery.com>
118
119 * config/avr/avr.c (avr_init_builtins): Call
120 build_function_type_list instead of build_function_type.
121
a341df0a
NF
1222011-05-03 Nathan Froyd <froydnj@codesourcery.com>
123
124 * config/picochip/picochip.c (picochip_init_builtins): Call
125 build_function_type_list instead of build_function_type.
126 Delete `endlink' variable.
127
2102b1e1
NF
1282011-05-03 Nathan Froyd <froydnj@codesourcery.com>
129
130 * config/bfin/bfin.c (bfin_init_builtins): Call
131 build_function_type_list instead of build_function_type.
132
9f111209
SH
1332011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
134
135 From Bernd Schmidt
136 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
137 that's not CONST_INT. Seemingly redundant check is due to PR39768.
138
7071d064
SH
1392011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
140
141 From Jie Zhang:
142 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
143 libbffastfp overrides libgcc when -mfast-fp.
144
44fb48ef
SH
1452011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
146
147 Originally from Bernd Schmidt
148 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
149 * config/bfin/bfin.c (override_options): Test it and error if
150 TARGET_FDPIC.
151
1a3a9152
SH
1522011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
153
154 Originally From Bernd Schmidt
155 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
156 FD-PIC.
157
7134c090
JL
1582011-05-03 Jeff Law <law@redhat.com>
159
160 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
161 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
162 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
b70fce6d
UB
163 than accessing AUX field directly. Free the AUX field before
164 clearing it.
7134c090
JL
165 (thread_block, thread_through_loop_header): Likewise.
166 (thread_single_edge, mark_threaded_blocks): Likewise.
167 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
168 (register_jump_thread): Do not attempt to thread to a NULL edge.
b70fce6d 169
2c7eebae
BS
1702011-05-03 Bernd Schmidt <bernds@codesourcery.com>
171
172 * function.c (init_function_start): Call decide_function_section.
173 * varasm.c (decide_function_section): New function.
174 (assemble_start_function): When not using
175 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
176 or first_function_block_is_cold.
177 * rtl.h (decide_function_section): Declare.
178
17038fcf
JJ
1792011-05-03 Uros Bizjak <ubizjak@gmail.com>
180 Jakub Jelinek <jakub@redhat.com>
181
182 PR target/48774
183 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
184 only succeed if req_mode is the same as set_mode.
185
3810076b
BS
1862011-05-03 Bernd Schmidt <bernds@codesourcery.com>
187
188 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
189 * genemit.c (gen_exp): Handle RETURN.
190 * emit-rtl.c (verify_rtx_sharing): Likewise.
191 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
192 * rtl.c (copy_rtx): RETURN is shared.
193 * rtl.h (enum global_rtl_index): Add GR_RETURN.
194 (ret_rtx): New.
195 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
196 * config/s390/s390.c (s390_emit_epilogue): Likewise.
197 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
198 * config/cris/cris.c (cris_expand_return): Likewise.
199 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
200 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
201 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
202 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
203 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
204 Likewise.
205 * config/v850/v850.c (expand_epilogue): Likewise.
206 * config/bfin/bfin.c (bfin_expand_call): Likewise.
207 * config/arm/arm.md (epilogue): Likewise.
208 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
209 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
210 variable to ret_reg.
211
9efdb4ad
RG
2122011-05-03 Richard Guenther <rguenther@suse.de>
213
214 PR lto/48846
215 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
216 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
217 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
218
60a45536
RG
2192011-05-03 Richard Guenther <rguenther@suse.de>
220
221 * c-decl.c (grokdeclarator): Instead of looking at
222 TREE_OVERFLOW check if the constant fits in the index type.
223
3188ed59
RS
2242011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
225
226 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
227 (vec_store_lanes<mode><mode>): Likewise.
228
272c6793
RS
2292011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
230
231 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
232 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
233 convert_optab_index values.
234 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
235 * genopinit.c (optabs): Initialize the new optabs.
236 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
237 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
238 (expand_STORE_LANES): New functions.
239 * tree.h (build_array_type_nelts): Declare.
240 * tree.c (build_array_type_nelts): New function.
241 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
242 (vect_model_load_cost): Likewise.
243 (vect_store_lanes_supported, vect_load_lanes_supported)
244 (vect_record_strided_load_vectors): Declare.
245 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
246 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
247 (vect_transform_strided_load): Split out statement recording into...
248 (vect_record_strided_load_vectors): ...this new function.
249 * tree-vect-stmts.c (create_vector_array, read_vector_array)
250 (write_vector_array, create_array_ref): New functions.
251 (vect_model_store_cost): Add store_lanes_p argument.
252 (vect_model_load_cost): Add load_lanes_p argument.
253 (vectorizable_store): Try to use store-lanes functions for
254 interleaved stores.
255 (vectorizable_load): Likewise load-lanes and loads.
256 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
257 to vect_model_store_cost.
258 (vect_build_slp_tree): Likewise vect_model_load_cost.
259
0f6d54f7
RS
2602011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
261
262 * hooks.h (hook_bool_mode_uhwi_false): Declare.
263 * hooks.c (hook_bool_mode_uhwi_false): New function.
264 * target.def (array_mode_supported_p): New hook.
265 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
266 * doc/tm.texi: Regenerate.
267 * stor-layout.c (mode_for_array): New function.
268 (layout_type): Use it.
269 * config/arm/arm.c (arm_array_mode_supported_p): New function.
270 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
271
b15eacc7
EB
2722011-05-03 Eric Botcazou <ebotcazou@adacore.com>
273
274 PR target/48723
275 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
276 for -fstack-check if the size to allocate is negative.
277
575bfb00
LC
2782011-05-02 Lawrence Crowl <crowl@google.com>
279
280 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
281 (timevar_cond_start): New for starting a timer only when it is not
282 already running.
283 (timevar_cond_stop): New for stopping a timer when it was not already
284 running.
285
286 * timevar.c (timevar_stop): Enable start/stop timers to start again.
287 (timevar_cond_start): New as above.
288 (timevar_cond_stop): New as above.
289
290 * timevar.def: Add start/stop timers for compiler phases,
291 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
292 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
293 and TV_PHASE_FINALIZE.
294 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
295 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
296 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
297 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
298 Make unused TV_OVERLOAD into a start/stop timer.
299
300 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
301 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
302 to indicate that they are start/stop timers.
303
304 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
305 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
306 Move initialization to do_compile.
307 (do_compile): Add initialization from above.
308 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
309
310 * c-decl.c (c_write_global_declarations): Add start/stop of
311 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
312
313 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
314 or TV_PARSE_INLINE, as appropriate.
315 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
316 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
317
3533b943
JM
3182011-05-02 Jason Merrill <jason@redhat.com>
319
320 PR c++/40975
321 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
322
2609a0ce
SM
3232011-05-02 Simon Martin <simartin@users.sourceforge.net>
324
325 PR c/35445
326 * c-decl.c (finish_decl): Only create a composite if the types are
327 compatible.
328
6b0e4cbb
JM
3292011-05-02 Joseph Myers <joseph@codesourcery.com>
330
331 * config/fr30/fr30-protos.h (Mmode): Don't define.
332 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
333 definition where used.
334 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
335 define. Expand definitions where used.
336 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
337 Expand definitions where used.
338 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
339 rx_function_arg, rx_function_arg_advance,
340 rx_function_arg_boundary): Expand definitions of those macros.
341 * config/v850/v850-protos.h (Mmode): Don't define. Expand
342 definition where used.
343
4e938ce6
UB
3442011-05-02 Uros Bizjak <ubizjak@gmail.com>
345
346 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
347 reg<->xmm moves.
348 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
349 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
350 with *movv2sf_internal_rex64_avx.
351 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
352 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
353 Use %v prefix in insn mnemonic to handle TARGET_AVX.
354 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
355 "vex" in "prefix" attribute calculation.
356 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
357
36019c19
SH
3582011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
359
360 PR target/47951
361 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
362 inputs match the output.
363
f69ea688
AS
3642011-05-02 Andreas Schwab <schwab@linux-m68k.org>
365
366 PR target/47955
367 * config/m68k/m68k.c (m68k_expand_prologue): Set
368 current_function_static_stack_size.
369
c33406f5
JH
3702011-05-02 Jan Hubicka <jh@suse.cz>
371
372 * lto-streamer.c (lto_streamer_cache_insert_1,
373 lto_streamer_cache_lookup, lto_streamer_cache_create,
374 lto_streamer_cache_delete): Use pointer map instead of hashtable.
375 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
376
47c94d21
JM
3772011-05-02 Joseph Myers <joseph@codesourcery.com>
378
379 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
380 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
381 config/m68k/t-opts: New files.
382 * config/m68k/m68k-tables.opt: New file (generated).
383 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
384 extra_options and m68k/t-opts to tmake_file.
385 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
386 (all_isas): Initialize using m68k-isas.def.
387 (all_microarchs): Initialize using m68k-microarchs.def.
388 (m68k_find_selection): Remove.
389 (m68k_handle_option): Don't assert that global structures are in
390 use. Use error_at. Access variables via opts pointer. Don't
391 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
392 directly for -m68020-40 and -m68020-60.
393 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
394 m68k_tune_entry here.
395 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
396 to m68k-opts.h.
397 (m68k_library_id_string): Remove declaration.
4e938ce6 398 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
47c94d21
JM
399 (m68k_library_id_string): New Variable.
400 (march=, mcpu=, mtune=): Use Enum and Var.
401
e562bf36
RG
4022011-05-02 Richard Guenther <rguenther@suse.de>
403
404 * varasm.c (output_constructor_regular_field): Compute zero-based
405 index with double-ints. Make sure to ICE instead of producing
406 wrong code.
407 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
408 in asserts. Properly use a signed type.
409
6bec6c98
UB
4102011-05-02 Uros Bizjak <ubizjak@gmail.com>
411
412 * config/i386/sse.md (V): New mode iterator.
413 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
414 TARGET_SSE2.
415 (V_256): Rename from AVX256MODE.
416 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
417 condition to all users.
418 (VF1): Ditto.
419 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
420 condition to all users.
421 (VF_128): Make V4SF mode unconditional.
422 (VF_256): Rename from AVX256MODEF2P.
423 (VI4F_128): Rename from SSEMODE4S.
424 (VI8F_128): Rename from SSEMODE2D.
425 (VI4F_256): Rename from AVX256MODE8P.
426 (VI8F_256): Rename from AVX256MODE4P.
427 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
428 (ssescalarmodesuffix): Remove SF and DF modes.
429 (SSEMODE124): Remove.
430 (SSEMODE1248): Ditto.
431 (SSEMODEF2P): Ditto.
432 (AVXMODEF2P): Ditto.
433 (AVXMODEFDP): Ditto.
434 (AVXMODEFSP): Ditto.
435 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
436 unconditional.
437 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
438 unconditional.
439 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
440 xop_pcmov_<mode>256. Use V mode iterator.
441
442 Adjust RTX patterns globally for renamed mode attributes.
443
2dfdcb4b
UW
4442011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
445
446 * haifa-sched.c (sched_emit_insn): Emit insn before first
447 non-scheduled insn. Inform back-end about new insn. Add
448 new insn to scheduled_insns list.
449
90bc4623
RG
4502011-05-02 Richard Guenther <rguenther@suse.de>
451
452 PR tree-optimization/48822
453 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
454 (process_scc): Indicate which iteration we start.
455
bc0fe8cb
JH
4562011-05-02 Jan Hubicka <jh@suse.cz>
457
458 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
459 (lto_section_overrun): New.
460 * lto-section-out.c (append_block): Rename to ...
461 (lto_append_block): ... this one; export.
462 (lto_output_1_stream): Move lto lto-streamer.h
463 (lto_output_data_stream): Update.
464 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
465 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
466 functions.
467
f070a9d1
RG
4682011-05-02 Richard Guenther <rguenther@suse.de>
469
470 * tree.c (tree_code_counts): New global array.
471 (record_node_allocation_statistics): Count individual tree codes.
472 (dump_tree_statistics): Dump individual code stats.
473
09dfe187
JH
4742011-05-01 Jan Hubicka <jh@suse.cz>
475
476 * ipa-inline.c (caller_growth_limits): Fix thinko when
477 looking for largest stack frame.
478 * ipa-inline.h (dump_inline_summary): Declare.
479 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
480 on stack usage.
481 (dump_inline_summary): Export.
482 (debug_inline_summary): Declare as DEBUG_FUNCTION.
483
6f76a878
AS
4842011-05-01 Anatoly Sokolov <aesok@post.ru>
485
486 * reginfo.c (memory_move_cost): Change rclass argument type form
487 'enum reg_class' to reg_class_t.
488 * reload.h (memory_move_cost): Update prototype.
489 * postreload.c reload_cse_simplify_set): Change type dclass var to
490 reg_class_t.
491 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
492 Update prototype.
493 (ira_allocate_and_set_costs): Change aclass argument type form
494 'enum reg_class' to reg_class_t.
6bec6c98 495 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
6f76a878
AS
496 Change aclass argument type to reg_class_t.
497 (update_conflict_hard_reg_costs): Change type aclass and pref vars
498 to reg_class_t.
499 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
500 memory_move_cost call.
501
502 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
503 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
504 Change type tmp var to reg_class_t.
505
9a4ac625
JH
5062011-04-30 Jan Hubicka <jh@suse.cz>
507
508 * ipa-inline.c (can_inline_edge_p): Disregard limits when
509 inlining into function with flatten attribute.
510 (want_inline_small_function_p): Be more realistic about inlining
511 cold calls where callee size grows.
512
dd8352ee
JH
5132011-04-30 Jan Hubicka <jh@suse.cz>
514
515 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
516 flags.
517
46e43d2b
AS
5182011-04-30 Anatoly Sokolov <aesok@post.ru>
519
520 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
521 PRINT_OPERAND_PUNCT_VALID_P): Remove.
522 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
523 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
524 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
525 (print_operand): Rename to...
526 (sparc_print_operand): ...this. Make static. Adjust
527 sparc_print_operand function call.
528 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
529 functions.
530
ecb62563
JH
5312011-04-30 Jan Hubicka <jh@suse.cz>
532
6bec6c98 533 PR middle-end/48752
ecb62563
JH
534 * ipa-inline.c (early_inliner): Disable when doing late
535 addition of function.
536
edb9b69e
JJ
5372011-04-30 Jakub Jelinek <jakub@redhat.com>
538
be80a87e
JJ
539 * dwarf2out.c (get_address_mode): New inline.
540 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
541 if not dwarf_strict emit
542 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
543 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
544 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
545 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
546 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
547 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
548 mem_loc_descriptor callers.
549 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
550 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
551 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
552 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
553 (base_types): New variable.
554 (get_base_type_offset, calc_base_type_die_sizes,
555 base_type_for_mode, mark_base_types, base_type_cmp,
556 move_marked_base_types): New functions.
557 (calc_die_sizes): Assert that die_offset is 0 or equal to
558 next_die_offset.
559 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
560 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
561 callers. If not dwarf_strict, call mem_loc_descriptor even for
562 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
563 (gen_subprogram_die): Don't give up on call site parameters
564 with non-integral or large integral modes. Adjust
565 mem_loc_descriptor callers.
566 (prune_unused_types): Call prune_unused_types_mark on base_types
567 vector entries.
568 (resolve_addr): Call mark_base_types.
569 (dwarf2out_finish): Call move_marked_base_types.
570
edb9b69e
JJ
571 PR tree-optimization/48809
572 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
573 type.
574 (gen_inbound_check): Don't compute index_expr - range_min in utype
575 again, instead reuse SSA_NAME initialized in build_arrays.
576 Remove two useless gsi_for_stmt calls.
577
a6545a3d
JL
5782011-04-29 Jeff Law <law@redhat.com>
579
580 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
581
af8bca3c
MJ
5822011-04-29 Martin Jambor <mjambor@suse.cz>
583
584 * cgraph.h (cgraph_postorder): Remove declaration.
585 * ipa-utils.h (ipa_free_postorder_info): Declare.
586 (ipa_reverse_postorder): Likewise.
587 * cgraphunit.c: Include ipa-utils.h.
588 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
589 * ipa-inline.c: Include ipa-utils.h.
590 (ipa_inline): Update call to ipa_reverse_postorder.
591 * ipa-pure-const.c (propagate_pure_const): Update call to
592 ipa_reduced_postorder and ipa_print_order. Call
593 ipa_free_postorder_info to clean up.
594 (propagate_nothrow): Likewise.
595 * ipa-reference.c (propagate): Removed a useless call to
596 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
597 and ipa_print_order. Call ipa_free_postorder_info to clean up.
598 * ipa.c: Include ipa-utils.h.
599 (ipa_profile): Update call to ipa_reverse_postorder.
600 (cgraph_postorder): Moved to...
601 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
602 (ipa_utils_print_order): Renamed to ipa_print_order.
603 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
604 comments.
605 (ipa_free_postorder_info): New function.
606 * passes.c: Include ipa-utils.h.
607 (do_per_function_toporder): Update call to ipa_reverse_postorder.
608 (ipa_write_summaries): Likewise.
609 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
610 (cgraphunit.o): Likewise.
611 (ipa.o): Likewise.
612 (ipa-inline.o): Likewise.
613
b15c64ee
JH
6142011-04-29 Jan Hubicka <jh@suse.cz>
615
616 * gcc.dg/tree-ssa/inline-10.c: New testcase.
617 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
618 * ipa-inline.h (clause_t): Turn into unsigned int.
619 * ipa-inline-analysis.c (add_clause): Do more simplification.
620 (and_predicates): Shortcut more cases.
621 (predicates_equal_p): Move forward; check that clauses are properly
622 ordered.
623 (or_predicates): Shortcut more cases.
624 (edge_execution_predicate): Rewrite as...
625 (set_cond_stmt_execution_predicate): ... this function; handle
626 __builtin_constant_p.
627 (set_switch_stmt_execution_predicate): New .
628 (compute_bb_predicates): New.
629 (will_be_nonconstant_predicate): Update TODO.
630 (estimate_function_body_sizes): Use compute_bb_predicates
631 and free them later, always try to estimate if stmt is constant.
632 (estimate_time_after_inlining, estimate_size_after_inlining):
633 Gracefully handle optimized out edges.
634 (read_predicate): Fix off by one error.
635
a88fdc2a
NP
6362011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
637
638 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
639
d984c8ef
XDL
6402011-04-27 Xinliang David Li <davidxl@google.com>
641
642 * tree-profile.c (init_ic_make_global_vars): Set
643 tls attribute on ic vars.
644 * coverage.c (coverage_end_function): Initialize
645 function_list with zero.
646
45a2c477
RG
6472011-04-29 Richard Guenther <rguenther@suse.de>
648
649 * builtins.c (fold_builtin_classify_type): Use integer_type_node
650 for the type of the result.
651 (fold_builtin_isascii): Likewise.
652 (fold_builtin_toascii): Use integer_type_node where appropriate.
653 (fold_builtin_logb): Likewise.
654 (fold_builtin_frexp): Likewise.
655 (fold_builtin_strstr): Likewise.
656 (fold_builtin_strpbrk): Likewise.
657 (fold_builtin_fputs): Likewise.
658 (fold_builtin_sprintf): Likewise.
659 (fold_builtin_snprintf): Likewise.
660 (fold_builtin_printf): Likewise.
661 (do_mpfr_remquo): Use a proper type for the assigned constant.
662 (do_mpfr_lgamma_r): Likewise.
663 * dwarf2out.c (resolve_one_addr): Use size_int.
664 * except.c (init_eh): Likewise.
665 (assign_filter_values): Use integer_type_node for filter values.
666 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
667 indices.
668 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
669 for EH region numbers.
670 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
671 for the shift amount.
672
eb6c3df1
RG
6732011-04-29 Richard Guenther <rguenther@suse.de>
674
675 * expr.h (expand_shift): Rename to ...
676 (expand_variable_shift): ... this.
677 (expand_shift): Take a constant shift amount.
678 * expmed.c (expand_shift): Rename to ...
679 (expand_variable_shift): ... this.
680 (expand_shift): New wrapper around expand_variable_shift.
681 * expr.c (convert_move, emit_group_load_1, emit_group_store,
682 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
683 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
684 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
685 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
686 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
687 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
688 emit_store_flag_1, emit_store_flag): Likewise.
689 * builtins.c (expand_builtin_signbit): Likewise.
690 * calls.c (load_register_parameters): Likewise.
691 * function.c (assign_parm_setup_block): Likewise.
692 * lower-subreg.c (resolve_shift_zext): Likewise.
693 * optabs.c (widen_bswap, expand_abs_nojump,
694 expand_one_cmpl_abs_nojump, expand_float): Likewise.
695 * spu/spu.c (spu_expand_extv): Likewise.
696 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
697
9f616812
RG
6982011-04-29 Richard Guenther <rguenther@suse.de>
699
700 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
701 for the remapped region number.
702 * predict.c (build_predict_expr): Use integer_type_node for the
703 predict kind.
704 * fold-const.c (fold_binary_loc): Use integer_type_node for
705 the shift amount. Use a proper type for the PLUS_EXPR operand.
706
b823cdfe
MM
7072011-04-29 Michael Matz <matz@suse.de>
708
709 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
710 other trees that just builtins.
711 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
712
413581ba
RG
7132011-04-29 Richard Guenther <rguenther@suse.de>
714
715 * tree-nested.c (get_trampoline_type): Use size_int.
716 (get_nl_goto_field): Likewise.
717 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
718 for all indexes.
719 (lower_eh_constructs_2): Likewise.
720 (lower_resx): Likewise.
721 (lower_eh_dispatch): Likewise.
722 * tree-mudflap.c (mf_build_string): Use size_int.
723 (mudflap_register_call): Use integer_type_node for the flag.
724 (mudflap_enqueue_constant): Use size_int.
725 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
726 instead of rebuilding it.
727
5c04e9f4
RG
7282011-04-29 Richard Guenther <rguenther@suse.de>
729
730 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
731 Handle OBJ_TYPE_REF.
732 (find_func_aliases_for_call): Use it more consistently.
733
5c24671b
AO
7342011-04-29 Alexandre Oliva <aoliva@redhat.com>
735
736 * haifa-sched.c (last_nondebug_scheduled_insn): New.
737 (rank_for_schedule): Use it.
738 (schedule_block): Set it.
739
10adac51
XDL
7402011-04-28 David Li <davidxl@google.com>
741
742 * tree.c (crc32_string): Use crc32_byte.
743 (crc32_byte): New function.
744 * tree.h (crc32_byte): New function.
745 * gcov.c (read_graph_file): Handle new cfg_cksum.
746 (read_count_file): Ditto.
747 * profile.c (instrument_values): Ditto.
748 (get_exec_counts): Ditto.
749 (read_profile_edge_counts): Ditto.
750 (compute_branch_probabilities): Ditto.
751 (compute_value_histograms): Ditto.
752 (branch_prob): Ditto.
753 (end_branch_prob): Ditto.
754 * coverage.c (read_counts_file): Ditto.
755 (get_coverage_counts): Ditto.
756 (tree_coverage_counter_addr): Ditto.
757 (coverage_checksum_string): Ditto.
758 (coverage_begin_output): Ditto.
759 (coverage_end_function): Ditto.
760 (build_fn_info_type): Ditto.
761 (build_fn_info_value): Ditto.
762 * libgcov.c (gcov_exit): Ditto.
763 * gcov-dump.c (tag_function): Ditto.
764 (compute_checksum): Remove.
765
5d6358a5
AM
7662011-04-29 Alan Modra <amodra@gmail.com>
767
768 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
769 unspec plus offset. Tidy macho code.
770
85ad2ef5
MJ
7712011-04-29 Martin Jambor <mjambor@suse.cz>
772
773 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
774 node instead of a decl. Update all callers.
775 * cgraph.h: Update declaration.
776
437f4a00
IR
7772011-04-28 Ira Rosen <ira.rosen@linaro.org>
778
779 PR tree-optimization/48765
780 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
781 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
782 to indicate if loop aware SLP is being used. Scan the statements
783 and update the vectorization factor according to the type of
784 vectorization before statement analysis.
785 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
786 pass it to vect_analyze_loop_operations.
787 (vectorizable_reduction): Set number of copies to 1 in case of pure
788 SLP statement.
789 * tree-vect-stmts.c (vectorizable_conversion,
790 vectorizable_assignment, vectorizable_shift,
791 vectorizable_operation, vectorizable_type_demotion,
792 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
793 Likewise.
794 (vectorizable_condition): Move the check that it is not SLP
795 vectorization before the number of copies check.
796 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
797 to vectorize the loop using SLP.
798
c6fc44f3
JJ
7992011-04-28 Jakub Jelinek <jakub@redhat.com>
800
801 PR middle-end/48597
802 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
803 inline asm.
804
6c0170ea
JM
8052011-04-28 Joseph Myers <joseph@codesourcery.com>
806
807 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
808 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
809 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
810 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
811 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
812 linux*.h headers.
6bec6c98 813 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
6c0170ea
JM
814 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
815 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
816 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6bec6c98 817 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
6c0170ea
JM
818 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
819 REG_NAME.
820 * config/i386/linux.h (REG_NAME): Don't define.
821 * config/i386/linux64.h (REG_NAME): Don't define.
822 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
823 Undefine before defining.
824
970dabbd
JH
8252011-04-28 Jan Hubicka <jh@suse.cz>
826
6bec6c98
UB
827 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
828 nonconstant_names array.
970dabbd
JH
829 (estimate_function_body_sizes): Build nonconstant_names array; handle
830 BUILT_IN_CONSTANT_P.
831
8d3e3924
RG
8322011-04-28 Richard Guenther <rguenther@suse.de>
833
834 PR bootstrap/48804
835 Revert
836 2011-04-28 Richard Guenther <rguenther@suse.de>
837
838 * tree-ssa-structalias.c (solve_constraints): Build succ graph
839 as late as possible.
6bec6c98 840
8576f20a
RG
8412011-04-28 Richard Guenther <rguenther@suse.de>
842
843 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
844 (debug_constraint): Do it here.
845 (dump_constraints): And here.
846 (rewrite_constraints): And here.
847 (dump_constraint_edge): Remove.
848 (dump_constraint_graph): Rewrite to produce DOT output.
849 (solve_constraints): Build succ graph as late as possible.
850 Dump constraint graphs before and after solving.
851
e38811ce
RG
8522011-04-28 Richard Guenther <rguenther@suse.de>
853
854 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
855 New function split out from ...
856 (find_func_aliases): ... here. Call it.
857 (find_func_aliases_for_call): Likewise.
858
fbaf0d0c
GDR
8592011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
860
861 * internal-fn.h (internal_fn_name_array): Declare.
862 (internal_fn_flags_array): Likewise.
863
cbb734aa
UB
8642011-04-27 Uros Bizjak <ubizjak@gmail.com>
865
866 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
867 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
868 Move from sse.md.
869 (ssemodefsuffix): Remove.
870 (ssevecmodesuffix): New mode attribute.
871 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
872 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
873 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
874 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
875 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
876 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
877 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
878 ssemodesuffix mode attribute.
879 (float splitters): Use ssevecmodesuffix mode attribute.
880 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
881 (sseinsmode): Rename from avxvecmode.
882 (avxsizesuffix): Rename from avxmodesuffix.
883 (sseintvecmode): Rename from avxpermvecmode.
884 (ssedoublevecmode): Rename from ssedoublesizemode.
885 (ssehalfvecmode): Rename from avxhalfvecmode.
886 (ssescalarmode): Rename from avxscalarmode.
887 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
888 templates for ssemodesuffix mode attribute.
889 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
890 mode attribute.
891
892 Adjust RTX patterns globally for renamed mode attributes.
893
991278ab
JH
8942011-04-27 Jan Hubcika <jh@suse.cz>
895
896 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
897 * ipa-inline-analysis.c: Include alloc-pool.h.
898 (edge_predicate_pool): New.
899 (trye_predicate_p): New function
900 (false_predicate_p): New function.
901 (add_clause): Sanity check that false clauses are "optimized";
902 never add clauses to predicate that is already known to be false.
903 (and_predicate): Use flase_predicate_p.
904 (evaulate_predicate): Rename to ...
905 (evaluate_predicate): ... this one; update all callers; assert
906 that false is not listed among possible truths.
907 (dump_predicate): Use true_predicate_p.
908 (account_size_time): Use false_predicate_p.
909 (evaulate_conditions_for_edge): Rename to ...
910 (evaluate_conditions_for_edge) ... this one.
911 (edge_set_predicate): New function.
912 (inline_edge_duplication_hook): Duplicate edge predicates.
913 (inline_edge_removal_hook): Free edge predicates.
cbb734aa 914 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
991278ab
JH
915 (dump_inline_summary): Update.
916 (estimate_function_body_sizes): Set edge predicates.
917 (estimate_calls_size_and_time): Handle predicates.
918 (estimate_callee_size_and_time): Update.
919 (remap_predicate): Add toplev_predicate; update comment.
920 (remap_edge_predicates): New function.
921 (inline_merge_summary): Compute toplev predicate; update.
922 (read_predicate): New function.
923 (read_inline_edge_summary): Use it.
924 (inline_read_section): Likewise.
925 (write_predicate): New function.
926 (write_inline_edge_summary): Use it.
927 (inline_write_summary): Likewise.
928 (inline_free_summary): Free alloc pool and edge summary vec.
929
648b5f85
RG
9302011-04-27 Richard Guenther <rguenther@suse.de>
931
932 * tree-ssa-structalias.c (changed_count): Remove.
933 (changed): Use a bitmap.
934 (unify_nodes): Adjust.
935 (do_sd_constraint): Likewise.
936 (do_ds_constraint): Likewise.
937 (do_complex_constraint): Likewise.
938 (solve_graph): Likewise.
939
4d5dcfb2
JH
9402011-04-27 Jan Hubicka <jh@suse.cz>
941
942 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
943
200eb7d2
UB
9442011-04-27 Uros Bizjak <ubizjak@gmail.com>
945
946 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
947 (avx_vperm2f128_*_operand): Ditto.
948 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
949 Use avx_vpermilp_parallel in insn condition.
950 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
951 Use avx_vperm2f128_parallel in insn condition.
952
7d6e2521
RG
9532011-04-27 Richard Guenther <rguenther@suse.de>
954
955 * Makefile.in (tree-ssa-structalias.o): Remove
956 gt-tree-ssa-structalias.h dependency.
957 (GTFILES): Remove tree-ssa-structalias.c.
958 * tree.c (allocate_decl_uid): New function.
959 (make_node_stat): Use it.
960 (copy_node_stat): Likewise.
961 * tree.h (allocate_decl_uid): Declare.
962 * tree-ssa-alias.h (delete_alias_heapvars): Remove.
963 * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
964 * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
200eb7d2 965 * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
7d6e2521
RG
966 * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
967 (struct heapvar_map): Likewise.
968 (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
969 heapvar_insert): Likewise.
970 (make_heapvar_for): Rename to ...
971 (make_heapvar): ... this. Simplify.
972 (fake_var_decl_obstack): New global var.
973 (build_fake_var_decl): New function.
974 (make_constraint_from_heapvar): Adjust.
975 (handle_lhs_call): Likewise.
976 (create_function_info_for): Likewise.
977 (intra_create_variable_infos): Likewise.
978 (init_alias_vars): Allocate fake_var_decl_obstack.
979 (init_alias_heapvars, delete_alias_heapvars): Remove.
980 (compute_points_to_sets): Do not call init_alias_heapvars.
981 (ipa_pta_execute): Likewise.
982 (delete_points_to_sets): Free fake_var_decl_obstack.
983
526ed6c2
UW
9842011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
985
986 * config/spu/divmovti4.c (union qword_UTItype): New data type.
987 (si_from_UTItype, si_to_UTItype): New functions.
988 (__udivmodti4): Use them to implement type-punning.
989 * config/spu/multi3.c (union qword_TItype): New data type.
990 (si_from_TItype, si_to_TItype): New functions.
991 (__multi3): Use them to implement type-punning.
992
c187d33c
UW
9932011-04-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
994
995 * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
996
40982661
JH
9972011-04-27 Jan Hubicka <jh@suse.cz>
998
999 * ipa-prop.c (function_insertion_hook_holder): New holder.
1000 (ipa_add_new_function): New function.
200eb7d2
UB
1001 (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
1002 Register/deregister holder.
40982661 1003
9aef53ee
RG
10042011-04-27 Richard Guenther <rguenther@suse.de>
1005
1006 PR tree-optimization/48772
200eb7d2 1007 * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
9aef53ee 1008
f63d806d
RG
10092011-04-27 Richard Guenther <rguenther@suse.de>
1010
1011 * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
1012 TARGET_MEM_REF handling.
1013
e1ea7451
NC
10142011-04-27 Nick Clifton <nickc@redhat.com>
1015
9b5db25d
NC
1016 * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
1017 ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
1018 (REG_CLASS_NAMES): Likewise.
1019 (REG_CLASS_CONTENTS): Likewise.
1020 (EVEN_ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1021 (ACC_REGS): New macro. Alias for QUAD_ACC_REGS.
1022 (FEVEN_REGS): New macro. Alias for QUAD_ACC_REGS.
1023 (FPR_REGS): New macro. Alias for QUAD_ACC_REGS.
1024 (EVEN_REGS): New macro. Alias for QUAD_REGS.
1025 * config/frv/frv.c (frv_secondary_reload_class): Remove use of
1026 duplicate register classes.
97d20907 1027 (frv_class_likely_spilled_p): Likewise.
9b5db25d
NC
1028 (frv_register_move_cost): Likewise.
1029
e1ea7451
NC
1030 * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
1031 end of the regno_reg_class array.
1032
5c2f94b4
JJ
10332011-04-27 Jakub Jelinek <jakub@redhat.com>
1034
1035 PR c/48742
1036 * c-typeck.c (build_binary_op): Don't wrap arguments if
1037 int_operands is true.
1038
57a944d7
KK
10392011-04-26 Kaz Kojima <kkojima@gcc.gnu.org>
1040
1041 PR target/48767
1042 * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
1043 targetm.calls.must_pass_in_stack for void type.
1044
898b8927
JH
10452011-04-26 Jan Hubicka <jh@suse.cz>
1046
1047 * cgraphbuild.c (build_cgraph_edges): Update call
1048 of cgraph_create_edge and cgraph_create_indirect_edge.
1049 * cgraph.c (cgraph_create_edge_including_clones,
1050 cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
1051 cgraph_update_edges_for_call_stmt_node): Do not take nest
1052 argument; do not initialize call_stmt_size/time.
1053 (dump_cgraph_node): Do not dump nest.
1054 (cgraph_clone_edge): Do not take loop_nest argument;
1055 do not propagate it; do not clone call_stmt_size/time.
1056 (cgraph_clone_node): Likewise.
1057 (cgraph_create_virtual_clone): Update.
1058 * cgraph.h (struct cgraph_edge): Remove
1059 call_stmt_size/call_stmt_time/loop_nest.
1060 (cgraph_create_edge, cgraph_create_indirect_edge,
1061 cgraph_create_edge_including_clones, cgraph_clone_node): Update
1062 prototype.
1063 * tree-emutls.c (gen_emutls_addr): Update.
1064 * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
1065 loop_nest; handle indirect calls, too.
1066 (clone_inlined_nodes): Do not care about updating inline summaries.
1067 * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
1068 * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
1069 stream call_stmt_size/call_stmt_time/loop_nest.
1070 * ipa-inline.c (edge_badness): Update.
1071 (ipa_inline): dump summaries after inlining.
1072 * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
200eb7d2 1073 New.
898b8927
JH
1074 (inline_edge_summary): New function.
1075 * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
1076 (inline_edge_removal_hook): Handle edge summaries.
1077 (inline_edge_duplication_hook): New hook.
1078 (inline_summary_alloc): Alloc hooks.
1079 (initialize_growth_caches): Do not register removal hooks.
1080 (free_growth_caches); Do not free removal hook.
1081 (dump_inline_edge_summary): New function.
1082 (dump_inline_summary): Use it.
1083 (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
1084 (inline_update_callee_summaries): New function.
1085 (inline_merge_summary): Use it.
1086 (do_estimate_edge_time, do_estimate_edge_growth): Update.
1087 (read_inline_edge_summary): New function.
1088 (inline_read_section): Use it.
1089 (write_inline_edge_summary): New function.
1090 (inline_write_summary): Use it.
1091 (inline_free_summary): Free edge new holders.
1092 * tree-inline.c (copy_bb): Update.
1093
ffa03772
JM
10942011-04-26 Jason Merrill <jason@redhat.com>
1095
1096 * tree-eh.c (lower_try_finally_switch): Create the label along with
1097 the CASE_LABEL_EXPR.
1098
6d7b45ad
DM
10992011-04-26 David S. Miller <davem@davemloft.net>
1100 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1101
1102 * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
1103 * configure: Regenerate.
1104
df10b6d4
MM
11052011-04-26 Michael Meissner <meissner@linux.vnet.ibm.com>
1106
1107 PR target/48258
1108 * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
1109 reduction.
1110 (VEC_reduc): New code iterator and splitters for vector reduction.
1111 (VEC_reduc_name): Ditto.
1112 (VEC_reduc_rtx): Ditto.
1113 (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
1114 (reduc_<VEC_reduc_name>_v4sf): Ditto.
1115
1116 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1117 support for extracting SF on VSX.
1118
1119 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
1120 generating xscvspdp.
1121 (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
1122 (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
1123 double add, minimum, maximum vector reduction.
1124 (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
1125 (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
1126 optimize double vector reduction.
1127 (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
1128
35a5db04
JM
11292011-04-26 Joseph Myers <joseph@codesourcery.com>
1130
1131 * config/fr30/fr30.h (inhibit_libc): Don't define.
1132 * config/m32r/m32r-protos.h: Correct comment.
1133 * config/v850/v850.h (GHS_default_section_names,
1134 GHS_current_section_names): Use tree, not union tree_node *.
1135
2f964ad6
XDL
11362011-04-26 Xinliang David Li <davidxl@google.com>
1137
200eb7d2 1138 * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
2f964ad6
XDL
1139 * c-family/c-opts.c (c_common_handle_option): Set
1140 warn_maybe_uninitialized.
1141 * opts.c (common_handle_option): Ditto.
1142 * common.opt: New option.
1143 * tree-ssa.c (warn_uninit): Add one more parameter.
1144 (warn_uninitialized_var): Pass warning code.
1145 * tree-flow.h: Interface change.
1146
1147
9c7bd91a
RO
11482011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1149
200eb7d2 1150 * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
9c7bd91a
RO
1151 (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
1152 (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
1153
c2f36e21
RO
11542011-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1155
1156 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
1157 * config/mips/mips.opt (mmips-tfile): Remove.
1158
1159 * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
1160 mips-tdump reference to ...
200eb7d2 1161 (Specific, alpha*-dec-osf5.1): ... here. Adapt for Tru64 UNIX.
c2f36e21
RO
1162 * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
1163 reference by Tru64 UNIX.
1164
2c9da85b
JJ
11652011-04-26 Jakub Jelinek <jakub@redhat.com>
1166
0c5f6539
JJ
1167 PR debug/48768
1168 * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
1169 is error_mark_node, set value to NULL.
1170
2c9da85b
JJ
1171 PR tree-optimization/48734
1172 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
1173 if return value from maybe_fold_*_comparsions isn't something
1174 the code is prepared to handle.
1175
77fa1d54
UB
11762011-04-26 Uros Bizjak <ubizjak@gmail.com>
1177
1178 * config/i386/predicates.md (ext_QIreg_operand): Remove extra
1179 mode check.
1180 (ext_QIreg_nomode_operands): Remove.
1181 * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
1182 (*andsi_1): Ditto.
1183 (*andhi_1): Ditto.
1184
0e2a6c2b
AS
11852011-04-26 Andrew Stubbs <ams@codesourcery.com>
1186
1187 * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
1188
961562d8
RB
11892011-04-26 Richard Guenther <rguenther@suse.de>
1190
1191 * c-typeck.c (build_unary_op): Do not expand array-refs via
1192 pointer arithmetic. Only adjust qualifiers for function types.
1193
11942011-04-26 Richard Guenther <rguenther@suse.de>
1195
1196 PR middle-end/48694
1197 * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
1198 * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
77fa1d54
UB
1199 compare the operands with OEP_CONSTANT_ADDRESS_OF. Treat trees
1200 with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
961562d8 1201
a0d260fc
PC
12022011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
1203
77fa1d54 1204 * c-family/c-common.c (struct c_common_resword): Add __underlying_type.
a0d260fc 1205 * c-family/c-common.h (enum rid): Add RID_UNDERLYING_TYPE.
6bec6c98 1206 * doc/extend.texi: Document __underlying_type.
a0d260fc 1207
4d583bb9
SB
12082011-04-25 Segher Boessenkool <segher@kernel.crashing.org>
1209
1210 * config/rs6000/titan.md (automata_option "progress"): Remove.
1211
1f3fcdc3
JL
12122011-04-25 Jeff Law <law@redhat.com>
1213
1214 * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
1215
e5b0dad8
JK
12162011-04-25 Jan Kratochvil <jan.kratochvil@redhat.com>
1217
1218 * system.h (ENUM_BITFIELD): Remove.
1219
5157a881 12202011-04-25 Maxim Kuvyrkov <maxim@codesourcery.com>
b15eacc7 1221 Eric Botcazou <ebotcazou@adacore.com>
5157a881
MK
1222
1223 * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
1224 for STORE_FLAG_VALUE==-1 case.
1225
ed4c109e
RS
12262011-04-24 Richard Sandiford <richard.sandiford@linaro.org>
1227
1228 PR target/43804
1229 * config/m68k/constraints.md (T): Allow PIC operands that satisfy
1230 LEGITIMATE_PIC_OPERAND_P.
1231
f3181aa2
JH
12322011-04-24 Jan Hubicka <jh@suse.cz>
1233
1234 * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
1235 WPA hack.
77fa1d54
UB
1236 * ipa-prop.h (ipa_get_param, ipa_is_param_used,
1237 ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
1238 ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
f3181aa2
JH
1239 * ipa-inline-analysis.c (add_clause): Fix clause ordering.
1240 (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
1241 Sanity check predicate length.
1242 (remap_predicate): Likewise; sanity check jump functions.
1243 (inline_read_section, inline_write_summary): Sanity check
1244 predicate length.
1245
5307cbaa
PC
12462011-04-24 Paolo Carlini <paolo.carlini@oracle.com>
1247
1248 PR other/48748
1249 * doc/extend.texi (Type Traits): Document __is_standard_layout,
1250 __is_literal_type, and __is_trivial; update throughout about
1251 possibly cv-qualified void types.
1252
bebd5f99
GP
12532011-04-24 Gerald Pfeifer <gerald@pfeifer.com>
1254
1255 * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
1256 testsuite and make it version agnostic.
1257
7ee28a74
JH
12582011-04-22 Jan Hubicka <jh@suse.cz>
1259
1260 * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
1261
16997bc0
JJ
12622011-04-23 Jakub Jelinek <jakub@redhat.com>
1263
1264 PR c/48685
1265 * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
1266 to VOID_TYPE even around MODIFY_EXPR.
1267
f94d4ab1
MS
12682011-04-22 Mike Stump <mikestump@comcast.net>
1269
1a84c183 1270 * gensupport.c (read_md_rtx): Fix typo in comment.
f94d4ab1
MS
1271 * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
1272 comment.
1273
632b4f8e
JH
12742011-04-22 Jan Hubicka <jh@suse.cz>
1275
1276 * gengtype.c (open_base_files): Add ipa-inline.h include.
77fa1d54
UB
1277 * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
1278 ipa-prop.c; update all uses.
632b4f8e 1279 * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
77fa1d54
UB
1280 * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
1281 merge summary of inlined function into former caller.
632b4f8e
JH
1282 * ipa-inline.c (max_benefit): Remove.
1283 (edge_badness): Compensate for removal of benefits.
77fa1d54
UB
1284 (update_caller_keys): Use
1285 reset_node_growth_cache/reset_edge_growth_cache.
632b4f8e
JH
1286 (update_callee_keys): Likewise.
1287 (update_all_callee_keys): Likewise.
77fa1d54
UB
1288 (inline_small_functions): Do not collect max_benefit; do not reset
1289 estimated_growth; call free_growth_caches and initialize_growth_caches.
1290 * ipa-inline.h (struct condition, type clause_t, struct predicate,
1291 struct size_time_entry): New structures.
632b4f8e 1292 (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
77fa1d54
UB
1293 (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
1294 and estimated_growth.
632b4f8e
JH
1295 (edge_growth_cache_entry): New structure.
1296 (node_growth_cache, edge_growth_cache): New global vars.
1297 (estimate_growth): Turn into inline.
1298 (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
1299 initialize_growth_caches, free_growth_caches): Declare.
1300 (estimate_edge_growth): Rewrite.
1301 (estimate_edge_time): Implement as inline cache lookup.
77fa1d54
UB
1302 (reset_node_growth_cache, reset_edge_growth_cache): New inline
1303 functions.
632b4f8e
JH
1304 (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
1305 (NUM_CONDITIONS): New constant.
1306 (predicate_conditions): New enum.
1307 (IS_NOT_CONSTANT): New constant.
1308 (edge_removal_hook_holder): New var.
1309 (node_growth_cache, edge_growth_cache): New global vars.
77fa1d54
UB
1310 (true_predicate, single_cond_predicate, false_predicate,
1311 not_inlined_predicate, add_condition, add_clause, and_predicates,
1312 or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
1313 dump_clause, dump_predicate, account_size_time,
632b4f8e
JH
1314 evaulate_conditions_for_edge): New functions.
1315 (inline_summary_alloc): Move to heap.
1316 (inline_node_removal_hook): Clear condition and entry vectors.
1317 (inline_edge_removal_hook): New function.
1318 (initialize_growth_caches, free_growth_caches): New function.
1319 (dump_inline_summary): Update.
1320 (edge_execution_predicate): New function.
1321 (will_be_nonconstant_predicate): New function.
1322 (estimate_function_body_sizes): Compute BB and constantness predicates.
1323 (compute_inline_parameters): Do not clear estimated_growth.
1324 (estimate_edge_size_and_time): New function.
1325 (estimate_calls_size_and_time): New function.
1326 (estimate_callee_size_and_time): New function.
1327 (remap_predicate): New function.
1328 (inline_merge_summary): New function.
1329 (do_estimate_edge_time): New function based on...
1330 (estimate_edge_time): ... this one.
1331 (do_estimate_edge_growth): New function.
1332 (do_estimate_growth): New function based on....
1333 (estimate_growth): ... this one.
1334 (inline_analyze_function): Analyze after deciding on jump functions.
1335 (inline_read_section): New function.
1336 (inline_read_summary): Use it.
1337 (inline_write_summary): Write all the new data.
1338 * ipa-prop.c (ipa_get_param_decl_index): Export.
1339 (ipa_lattice_from_jfunc): Move here from ipa-cp.c
77fa1d54
UB
1340 * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
1341 Declare.
1342 (ipa_get_lattice): Move here from ipa-cp.c
632b4f8e
JH
1343 * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
1344 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
1345 * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
1346 cgraph_edge_inlinable_p): Remove.
1347 * cgraphunit.c: Include ipainline.h
77fa1d54
UB
1348 (cgraph_process_new_functions): Update call of
1349 compute_inline_parameters.
632b4f8e 1350
1df5b0db
RG
13512011-04-22 Richard Guenther <rguenther@suse.de>
1352
1353 * tree.c (build_int_cst): Properly create canonicalized integer
1354 constants.
1355 (build_int_cst_type): Remove scary comments.
1356
ae01169c
XDL
13572011-04-22 Xinliang David Li <davidxl@google.com>
1358
1359 * toplev.c (process_options): Enable -Werror=coverage-mismatch
1360 by default when -Wno-error is not specified.
1361 * opts-global.c (decode_options): Remove call to
1362 control_warning_options.
1363
93dfac24
JJ
13642011-04-22 Jakub Jelinek <jakub@redhat.com>
1365
1366 PR tree-optimization/48717
1367 * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
1368 ~A + A optimizations use build_int_cst_type instead of build_int_cst.
1369
1b5f5069
JM
13702011-04-22 Joseph Myers <joseph@codesourcery.com>
1371
1372 * config/bfin/bfin-protos.h (Mmode): Don't define. Expand
1373 definition where used.
1374
144f4153
JJ
13752011-04-22 Jakub Jelinek <jakub@redhat.com>
1376
1377 PR c/48716
1378 * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
1379 TREE_STATIC variables declared inside of some OpenMP construct.
1380
f9fd305b
MJ
13812011-04-22 Martin Jambor <mjambor@suse.cz>
1382
1383 PR middle-end/48585
1d284ec5 1384 * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
f9fd305b 1385
49819fef
AM
13862011-04-22 Alexander Monakov <amonakov@ispras.ru>
1387
1388 PR c/36750
1389 * c-typeck.c (pop_init_level): Do not warn about initializing
1390 with ` = {0}'.
1391
401f6699
AM
13922011-04-22 Alan Modra <amodra@gmail.com>
1393
1394 * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
1395 when returning call_cookie.
1396 (rs6000_function_ok_for_sibcall): Allow sibcalls via function
1397 pointers, to functions with no more vector args than the current
1398 function, and some non-local calls for ABI_V4.
1399 * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
1400 sibcall_nonlocal_aix64): Combine to ..
1401 (sibcall_nonlocal_aix<mode>): ..this. Handle function pointer calls.
1402 (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
1403 (sibcall_value_nonlocal_aix<mode>): ..likewise.
1404 (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
1405 (sibcall_value_nonlocal_sysv<mode>): Likewise. Correct call cookie
1406 operand.
1407 * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
1408 sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
1409 sibcall_value_symbolic_64): Delete.
1410
903d1e67
XDL
14112011-04-21 Xinliang David Li <davidxl@google.com>
1412
1413 * cgraph.h: Remove pid.
1414 * cgraph.c: Remove pid.
1415 * value-prof.c (init_node_map): New function.
1416 (del_node_map): New function.
1417 (find_func_by_funcdef_no): New function.
1418 (gimple_ic_transform): Call new function.
1419 * cgraphunit.c (cgraph_finalize_function): Remove pid.
1420 * function.c (get_last_funcdef_no): New function.
1421 * function.h (get_last_funcdef_no): New function.
1422 * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1423 to libgcov function.
1424 (tree-profiling): Call node map init and delete function.
1425
7378e95f
ILT
14262011-04-21 Ian Lance Taylor <iant@google.com>
1427
1428 * godump.c (go_format_type): Use exported Go name for anonymous
1429 field name.
1430
e84a6fcf
NF
14312011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1432
1433 * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
1434 Call builtin_function_type_list instead of builtin_function_type.
1435 (UNARY, BINARY, TRINARY, QUAD): Likewise.
1436
4fe058e2
NF
14372011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1438
1439 * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
1440 build_function_type_list instead of build_function_type.
1441 Delete variable `endlink'.
1442
1ba0a2d2
NF
14432011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1444
1445 * config/s390/s390.c (s390_init_builtins): Call
1446 build_function_type_list instead of build_function_type.
1447
c0676219
NF
14482011-04-21 Nathan Froyd <froydnj@codesourcery.com>
1449
1450 * config/ia64/ia64.c (ia64_init_builtins): Call
1451 build_function_type_list instead of builtin_function_type.
1452
6ddfda8a
ER
14532011-04-21 Easwaran Raman <eraman@google.com>
1454
3a6448ea 1455 * cfgexpand.c (stack_var): Remove OFFSET...
6ddfda8a
ER
1456 (add_stack_var): ...and its reference here...
1457 (expand_stack_vars): ...and here.
1458 (stack_var_cmp): Sort by descending order of size.
1459 (partition_stack_vars): Change heuristic.
1d284ec5 1460 (union_stack_vars): Fix to reflect changes in partition_stack_vars.
6ddfda8a
ER
1461 (dump_stack_var_partition): Add newline after each partition.
1462
23756963
DA
14632011-04-21 Dimitrios Apostolou <jimis@gmx.net>
1464 Jeff Law <law@redhat.com>
1465
77fa1d54 1466 * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
23756963
DA
1467 * gengtype.c (matching_file_name_substitute): Likewise.
1468
aa2a43d2
RG
14692011-04-21 Richard Guenther <rguenther@suse.de>
1470
1471 PR lto/48703
1d284ec5 1472 * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
aa2a43d2 1473
4d931f41
EB
14742011-04-21 Eric Botcazou <ebotcazou@adacore.com>
1475
1476 * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
1477
f103fa7a
RG
14782011-04-21 Richard Guenther <rguenther@suse.de>
1479
1480 * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
1481 file name.
1482
e19f6650
RG
14832011-04-21 Richard Guenther <rguenther@suse.de>
1484
1485 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
1486 MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
1487 Use DECL_P, not SSA_VAR_P.
1488 (ptr_derefs_may_alias_p): Likewise.
1489 (ptr_deref_may_alias_ref_p_1): Likewise.
1490 (decl_refs_may_alias_p): Likewise.
1491 (refs_may_alias_p_1): Likewise.
1492 (ref_maybe_used_by_call_p_1): Likewise.
1493 (call_may_clobber_ref_p_1): Likewise.
1494 (indirect_ref_may_alias_decl_p): Assume indirect refrences
1495 are either MEM_REF or TARGET_MEM_REF.
1496 (indirect_refs_may_alias_p): Likewise.
1497 * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
1498 for MEM_EXPR of indirect calls.
1499
9d1831bb
TG
15002011-04-21 Tristan Gingold <gingold@adacore.com>
1501
1502 * vmsdbgout.c (write_srccorr): Compute file length from the string.
1503 (dst_file_info_struct): Remove flen field.
1504 (lookup_filename): Remove code that set flen field.
1505
f199c029
TG
15062011-04-21 Tristan Gingold <gingold@adacore.com>
1507
1508 * config/ia64/ia64.c (ia64_start_function): Add a guard.
1509
2894086e
UB
15102011-04-21 Uros Bizjak <ubizjak@gmail.com>
1511
1512 PR target/48708
1513 * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
1514 vec_extract and vec_concat for non-SSE4_1 targets.
1515
53f94a5c
RG
15162011-04-21 Richard Guenther <rguenther@suse.de>
1517
1518 * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
1519 return statements.
1520
f0dca5ba
JM
15212011-04-21 Joseph Myers <joseph@codesourcery.com>
1522
1523 * config/i386/cygming.h (union tree_node, TREE): Don't define or
1524 undefine.
1525 (FILE): Don't undefine.
1526
984514ac
JM
15272011-04-21 Joseph Myers <joseph@codesourcery.com>
1528
1529 * config/alpha/alpha.c (struct machine_function): Use rtx, not
1530 struct rtx_def *.
1531 * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
1532 struct rtx_def *.
1533 * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
2894086e 1534 * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
984514ac
JM
1535 * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
1536 rtx_def *.
1537 * config/m32c/m32c-protos.h (MM, UINT): Don't define. Expand
1538 definitions where used.
1539 * config/microblaze/microblaze.h (struct microblaze_args): Use
1540 rtx, not struct rtx_def *.
1541 * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
1542 rtx_def *.
2894086e
UB
1543 * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
1544 * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
984514ac
JM
1545 * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
1546 not struct rtx_def *.
1547 * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
1548 struct rtx_def *.
1549 * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
1550 rtx_def *.
2894086e 1551 * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
984514ac 1552
0b5a2724
RS
15532011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1554
1555 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
1556 operand_equal_p to compare DR_BASE_ADDRESSes.
1557 (vect_check_interleaving): Likewise.
1558
4b18d683
RS
15592011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1560
1561 PR target/46329
1562 * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
1563 for all Neon struct constants.
1564
1a627b35
RS
15652011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1566
1567 * target.def (legitimate_constant_p): New hook.
1568 * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
1569 (TARGET_LEGITIMATE_CONSTANT_P): ...this.
1570 * doc/tm.texi: Regenerate.
1571 * hooks.h (hook_bool_mode_rtx_true): Declare.
1572 * hooks.c (hook_bool_mode_rtx_true): Define.
1573 * system.h (LEGITIMATE_CONSTANT_P): Poison.
1574 * calls.c (precompute_register_parameters): Replace uses of
1575 LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
1576 (emit_library_call_value_1): Likewise.
1577 * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
1578 (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
1579 * ira-costs.c (scan_one_insn): Likewise.
1580 * recog.c (general_operand, immediate_operand): Likewise.
1581 * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
1582 * reload1.c (init_eliminable_invariants): Likewise.
1583
1584 * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
1585 mode argument.
1586 * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
1587 * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
1588 argument.
1589 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1590 * config/alpha/predicates.md (input_operand): Update call to
1591 alpha_legitimate_constant_p.
1592
1593 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
1594 * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
1595 (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
1596 * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1597 (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
1598 (arm_legitimate_constant_p): New functions.
1599 (arm_cannot_force_const_mem): Make static.
1600
1601 * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
1602
1603 * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
1604 * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
1605 * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
1606 instead of bfin_legitimate_constant_p.
1607 (bfin_legitimate_constant_p): Make static. Add a mode argument.
1608 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1609
1610 * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
1611
1612 * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
1613
1614 * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
1615 * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
1616 * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1617 (frv_legitimate_constant_p): Make static. Add a mode argument.
1618
1619 * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
1620 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
1621 * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
1622
1623 * config/i386/i386-protos.h (legitimate_constant_p): Delete.
1624 * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
1625 * config/i386/i386.c (legitimate_constant_p): Rename to...
1626 (ix86_legitimate_constant_p): ...this. Make static. Add a mode
1627 argument.
1628 (ix86_cannot_force_const_mem): Update accordingly.
1629 (ix86_legitimate_address_p): Likewise.
1630 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1631 * config/i386/i386.md: Update commentary.
1632
1633 * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
1634 * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
1635 * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1636 (ia64_legitimate_constant_p): Make static. Add a mode argument.
1637
1638 * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
1639
1640 * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
1641 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
1642 * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1643 (lm32_legitimate_constant_p): Make static. Add a mode argument.
1644
1645 * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
1646 * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
1647 * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
1648
1649 * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
1650 * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1651 (m32r_legitimate_constant_p): New function.
1652
1653 * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
1654 * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
1655 LEGITIMATE_CONSTANT_P.
1656 (LEGITIMATE_CONSTANT_P): Delete.
1657 * config/m68k/m68k.c (m68k_expand_prologue): Call
1658 m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
1659 (m68k_legitimate_constant_p): New function.
1660 * config/m68k/m68k.md: Update comments.
1661
1662 * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
1663 * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1664 (mcore_legitimate_constant_p): New function.
1665
1666 * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
1667 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
1668 * config/mep/mep.c (mep_legitimate_constant_p): Make static.
1669 Add a mode argument.
1670 (mep_legitimate_address): Update accordingly.
1671 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1672
1673 * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
1674 Delete.
1675 * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
1676 * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
1677 static. Check OP's mode for VOIDmode.
1678 (microblaze_legitimate_constant_p): New function.
1679 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1680
1681 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
1682 * config/mips/mips.c (mips_legitimate_constant_p): New function.
1683 (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
1684 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1685 * config/mips/predicates.md: Update comments.
1686
1687 * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
1688 * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
1689 * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1690 (mmix_legitimate_constant_p): Make static, return a bool, and take
1691 a mode argument.
1692 (mmix_print_operand_address): Update accordingly.
1693
1694 * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
1695 Delete.
1696 * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
2894086e
UB
1697 * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
1698 static. Add a mode argument.
1a627b35
RS
1699 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1700
1701 * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
1702
1703 * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
1704 * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1705 (pa_legitimate_constant_p): New function.
1706
1707 * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
1708
1709 * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
1710 * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1711 (pdp11_legitimate_constant_p): New function.
1712
1713 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
1714 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1715 (rs6000_legitimate_constant_p): New function.
1716
1717 * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
1718 (rx_legitimate_constant_p): ...this.
1719 * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
1720 * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
1721 (rx_legitimate_constant_p): ...this.
1722 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1723 * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
1724
1725 * config/s390/s390-protos.h (legitimate_constant_p): Delete.
1726 * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
1727 * config/s390/s390.c (legitimate_constant_p): Rename to...
1728 (s390_legitimate_constant_p): ...this. Make static, return a bool,
1729 and add a mode argument.
1730 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1731
1732 * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
1733
1734 * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
1735 * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1736 (sh_legitimate_constant_p): New function.
1737
1738 * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
1739 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
1740 * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1741 (legitimate_constant_p): Rename to...
1742 (sparc_legitimate_constant_p): ...this. Make static. Add a mode
1743 argument.
1744 (constant_address_p): Update accordingly.
1745
1746 * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
1747 argument and return a bool.
1748 * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
1749 * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1750 (spu_legitimate_constant_p): Add a mode argument and return a bool.
1751 (spu_rtx_costs): Update accordingly.
1752 * config/spu/predicates.md (vec_imm_operand): Likewise.
1753
1754 * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
1755
1756 * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
1757 * config/v850/v850.c (v850_legitimate_constant_p): New function.
1758 (TARGET_LEGITIMATE_CONSTANT_P): Define.
1759
1760 * config/vax/vax-protos.h (legitimate_constant_p): Delete.
1761 * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
1762 * config/vax/vax.c (legitimate_constant_p): Likewise.
1763
1764 * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
1765 * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
1766 (xtensa_legitimate_constant_p): New function.
1767
fbbf66e7
RS
17682011-04-21 Richard Sandiford <richard.sandiford@linaro.org>
1769
1770 * target.def (cannot_force_const_mem): Add a mode argument.
1771 * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
1772 * doc/tm.texi: Regenerate.
1773 * hooks.h (hook_bool_mode_rtx_false): Declare.
1774 * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
1775 (hook_bool_mode_const_rtx_true): Likewise.
1776 (hook_bool_mode_rtx_false): New function.
1777 * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
1778 to be non-VOID. Update call to cannot_force_const_mem.
1779 (find_reloads): Update accordingly.
1780 * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
1781 * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
1782 argument.
1783 * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
1784 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
1785 * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
1786 * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
1787 * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
1788 * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
1789 * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
1790 * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1791 (m68k_cannot_force_const_mem): ...this new function.
1792 * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
1793 argument.
1794 (mips_const_insns, mips_legitimize_const_move): Update calls.
1795 (mips_secondary_reload_class): Likewise.
1796 * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
1797 (pa_cannot_force_const_mem): ...this new function.
2894086e 1798 * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
fbbf66e7
RS
1799 (rs6000_cannot_force_const_mem): ...this new function.
1800 * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
1801 argument.
1802 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
1803 * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
1804 to...
1805 (xtensa_cannot_force_const_mem): ...this new function.
1806
b861891b
NF
18072011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1808
1809 * config/mips/mips.c (mips16_build_function_stub): Call
1810 build_function_type_list instead of build_function_type.
1811 (mips16_build_call_stub): Likewise.
1812
34149ed5
NF
18132011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1814
1815 * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
1816 instead of build_function_type.
1817
12526412
NF
18182011-04-20 Nathan Froyd <froydnj@codesourcery.com>
1819
1820 * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
1821 instead of build_function_type.
1822
3b84d61f
UB
18232011-04-20 Uros Bizjak <ubizjak@gmail.com>
1824
1825 PR target/48678
1826 * config/i386/i386.md (insv): Change operand 0 constraint to
1827 "register_operand". Change operand 1 and 2 constraint to
1828 "const_int_operand". Expand to pinsr{b,w,d,q} * when appropriate.
1829 * config/i386/sse.md (sse4_1_pinsrb): Export.
1830 (sse2_pinsrw): Ditto.
1831 (sse4_1_pinsrd): Ditto.
1832 (sse4_1_pinsrq): Ditto.
1833 * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
1834 * config/i386/i386.c (ix86_expand_pinsr): New.
1835
4a25752b
ER
18362011-04-20 Easwaran Raman <eraman@google.com>
1837
1838 * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
1839 containing union type only with -fstrict-aliasing.
1840
04695783
JM
18412011-04-20 Jim Meyering <meyering@redhat.com>
1842
1843 Remove useless if-before-free tests.
1844 * calls.c (expand_call, save_area): Likewise.
1845 * cfgcleanup.c (try_forward_edges): Likewise.
1846 * collect2.c (collect_execute): Likewise.
1847 * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
1848 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
1849 * coverage.c (coverage_checksum_string): Likewise.
1850 * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
1851 * cselib.c (cselib_init): Likewise.
1852 * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
1853 (df_set_clean_cfg): Likewise.
1854 * function.c (free_after_compilation): Likewise.
1855 * gcc.c (do_spec_1, main): Likewise.
1856 * gcov.c (create_file_names): Likewise.
1857 * gensupport.c (identify_predicable_attribute): Likewise.
1858 * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
1859 * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
1860 * haifa-sched.c (haifa_finish_h_i_d): Likewise.
1861 * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
1862 * ipa-pure-const.c (local_pure_const): Likewise.
1863 * ipa-reference.c (propagate): Likewise.
1864 * ira-costs.c (free_ira_costs): Likewise.
1865 * ira.c (free_register_move_costs, build_insn_chain): Likewise.
1866 * matrix-reorg.c (mat_free): Likewise.
1867 * prefix.c (get_key_value): Likewise.
1868 * profile.c (compute_value_histograms): Likewise.
1869 * reload1.c (free_reg_equiv): Likewise.
1870 * sched-deps.c (free_deps): Likewise.
1871 * sel-sched-ir.c (fence_clear): Likewise.
1872 * sese.c (set_rename, if_region_set_false_region): Likewise.
1873 * tree-data-ref.c (free_rdg): Likewise.
1874 * tree-eh.c (lower_try_finally): Likewise.
1875 * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
1876 * tree-ssa-live.c (delete_var_map): Likewise.
1877 * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
1878 * tree-ssa-pre.c (phi_trans_add): Likewise.
1879
6788475a
JJ
18802011-04-20 Jakub Jelinek <jakub@redhat.com>
1881
1882 PR tree-optimization/48611
1883 * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
1884 beyond ERT_MUST_NOT_THROW region.
1885
0eda4033
CM
18862011-04-20 Catherine Moore <clm@codesourcery.com>
1887
1888 * config/mips/mips.opt (mfix-24k): New.
1889 * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
1890 * config/mips/mips.md (length): Increase by 4 for stores if
1891 fixing 24K errata.
1892 * config/mips/mips.c (mips_reorg_process_insns): Do not allow
1893 all noreorder if fixing 24K errata.
1894 * doc/invoke.texi: Document mfix-24k.
1895
01475747
CLT
18962011-04-20 Chung-Lin Tang <cltang@codesourcery.com>
1897
1898 * config/arm/arm.c (arm_legitimize_reload_address): For NEON
2894086e 1899 quad-word modes, reduce to 9-bit index range when above 1016 limit.
01475747 1900
bc2c1a60
AS
19012011-04-20 Andrew Stubbs <ams@codesourcery.com>
1902
1903 * config/arm/arm.c (arm_gen_constant): Move movw support ....
1904 (const_ok_for_op): ... to here.
1905
583722ee
KT
19062011-04-20 Kai Tietz <ktietz@redhat.com>
1907
2894086e
UB
1908 * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
1909 and (X && !Y) | (!X && Y) optimization to (X ^ Y).
583722ee 1910
422c0989
AS
19112011-04-20 Andrew Stubbs <ams@codesourcery.com>
1912
1913 * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
1914
d7978bff
RG
19152011-04-20 Richard Guenther <rguenther@suse.de>
1916
1917 PR tree-optimization/47892
1918 * tree-if-conv.c (if_convertible_stmt_p): Const builtins
1919 are if-convertible.
1920
818412ba
EB
19212011-04-20 Eric Botcazou <ebotcazou@adacore.com>
1922
1923 * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
1924
b501ce4e
TG
19252011-04-20 Tristan Gingold <gingold@adacore.com>
1926
1927 * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
1928
516edfdd
GJL
19292011-04-20 Georg-Johann Lay <avr@gjlay.de>
1930
1931 PR target/18145
1932
1933 * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
1934 (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1935 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
1936 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
1937 (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
1938
1939 * config/avr/avr-protos.h (avr_asm_output_aligned_common):
1940 New prototype.
1941
1942 * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
1943 (avr_asm_named_section, avr_asm_output_aligned_common,
1944 avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
1945 New functions to update...
1946 (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
1947 (avr_asm_init_sections): Overwrite section callbacks for
1948 data_section, bss_section.
1949 (avr_file_start): Move output of __do_copy_data, __do_clear_bss
1950 from here to...
1951 (avr_file_end): ...here.
1952
dafc9511
RG
19532011-04-20 Richard Guenther <rguenther@suse.de>
1954
1955 PR middle-end/48695
1956 * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
2894086e 1957 objects and types here. Adjust for their offset before comparing.
dafc9511 1958
1da0876c
RS
19592011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
1960
1961 * tree-vect-stmts.c (vectorizable_store): Only chain one related
1962 statement per copy.
1963
25583c4f
RS
19642011-04-20 Richard Sandiford <richard.sandiford@linaro.org>
1965
1966 * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
1967 (GIMPLE_H): Include $(INTERNAL_FN_H).
1968 (OBJS-common): Add internal-fn.o.
1969 (internal-fn.o): New rule.
1970 * internal-fn.def: New file.
1971 * internal-fn.h: Likewise.
1972 * internal-fn.c: Likewise.
1973 * gimple.h: Include internal-fn.h.
1974 (GF_CALL_INTERNAL): New gf_mask.
1975 (gimple_statement_call): Put fntype into a union with a new
1976 internal_fn field.
1977 (gimple_build_call_internal): Declare.
1978 (gimple_build_call_internal_vec): Likewise.
1979 (gimple_call_same_target_p): Likewise.
1980 (gimple_call_internal_p): New function.
1981 (gimple_call_internal_fn): Likewise.
1982 (gimple_call_fntype): Return null for internal calls.
1983 (gimple_call_set_fntype): Assert that the function is not internal.
1984 (gimple_call_set_fn): Likewise.
1985 (gimple_call_set_fndecl): Likewise.
1986 (gimple_call_set_internal_fn): New function.
1987 (gimple_call_addr_fndecl): Handle null functions.
1988 (gimple_call_return_type): Likewise null types.
1989 * gimple.c (gimple_build_call_internal_1): New function.
1990 (gimple_build_call_internal): Likewise.
1991 (gimple_build_call_internal_vec): Likewise.
1992 (gimple_call_same_target_p): Likewise.
1993 (gimple_call_flags): Handle calls to internal functions.
1994 (gimple_call_fnspec): New function.
1995 (gimple_call_arg_flags, gimple_call_return_flags): Use it.
1996 (gimple_has_side_effects): Handle null functions.
1997 (gimple_rhs_has_side_effects): Likewise.
1998 (gimple_call_copy_skip_args): Handle calls to internal functions.
1999 * cfgexpand.c (expand_call_stmt): Likewise.
2000 * expr.c (expand_expr_real_1): Assert that the call isn't internal.
2001 * gimple-fold.c (gimple_fold_call): Handle null functions.
2002 (gimple_fold_stmt_to_constant_1): Don't fold
2003 calls to internal functions.
2004 * gimple-low.c (gimple_check_call_args): Handle calls to internal
2005 functions.
2006 * gimple-pretty-print.c (dump_gimple_call): Likewise.
2007 * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
2008 * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
2009 (do_warn_unused_result): Likewise.
2010 * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
2011 * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
2012 * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
2013 the target of a call.
2014 (initialize_hash_element): Update accordingly.
2015 (hashable_expr_equal_p): Use gimple_call_same_target_p.
2016 (iterative_hash_hashable_expr): Handle calls to internal functions.
2017 (print_expr_hash_elt): Likewise.
2018 * tree-ssa-pre.c (can_value_number_call): Likewise.
2019 (eliminate): Handle null functions.
2020 * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
2021 * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
2022 (find_func_aliases): Likewise.
2023 * value-prof.c (gimple_ic_transform): Likewise.
2024 (gimple_indirect_call_to_profile): Likewise.
2025 * lto-streamer-in.c (input_gimple_stmt): Likewise.
2026 * lto-streamer-out.c (output_gimple_stmt): Likewise.
2027
1a3118e9
JH
20282011-04-19 Jan Hubicka <jh@suse.cz>
2029
2030 * ipa-inline-transform.c (save_inline_function_body): Add comments.
9d12f71a
EB
2031 * ipa-inline.c (inline_small_functions): Compute summaries first,
2032 populate heap later.
1a3118e9 2033
fee8b6da
JH
20342011-04-19 Jan Hubicka <jh@suse.cz>
2035
2036 * cgraph.h (save_inline_function_body): Remove.
2037 * ipa-inline-transform.c: New file, broke out of...
2038 * ipa-inline.c: ... this one; Update toplevel comment.
2039 (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
2040 make global.
2041 (update_noncloned_frequencies): Move to ipa-inline-transform.c
2042 (cgraph_mark_inline_edge): Rename to inline_call; move to
2043 ipa-inline-transform.c.
2044 (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
2045 move to ipa-inline-transform.c
2046 (recursive_inlining, inline_small_functions, flatten_function,
2047 ipa_inline, inline_always_inline_functions,
2048 early_inline_small_functions): Update.
2049 (inline_transform): Move to ipa-inline-transform.c.
2050 * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
2051 Declare.
2052 * Makefile.in (ipa-inline-transform.o): New file.
2053 * cgraphunit.c (save_inline_function_body): Move to
2054 ipa-inline-transform.c
2055
f0679612
DD
20562011-04-19 DJ Delorie <dj@redhat.com>
2057
2058 * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
2059 registers if we already know there aren't any.
2060 (m32c_emit_epilogue): Don't emit a barrier here.
2061 (m32c_emit_eh_epilogue): Likewise.
2062 * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
2063 operands at expand time.
2064 * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
2065 int" wchar type.
2066 (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
2067 duplicates. Provide aliases instead.
2068 * config/m32c/prologue.md (eh_return): Emit a barrier here.
2069 (eh_epilogue): Add a "(return)" here as a hint to other parts of
2070 the compiler.
2071
32257ddc
AS
20722011-04-19 Anatoly Sokolov <aesok@post.ru>
2073
2074 * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
2075 * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
2076 (general_or_i64_p, sparc_register_move_cost): New function.
2077
60bea929
RO
20782011-04-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2079
2080 * doc/install.texi (Configuration, --enable-threads): Remove mach.
3b84d61f 2081 Add lynx, mipssde. Sort table.
60bea929 2082
444b3995 20832011-04-19 Xinliang David Li <davidxl@google.com>
3b84d61f 2084
9d12f71a
EB
2085 * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
2086 not negative.
444b3995 2087
d708ce50
JJ
20882011-04-19 Jakub Jelinek <jakub@redhat.com>
2089
2090 PR target/48678
2091 * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
2092 is a SUBREG with non-MODE_INT mode inside of it.
2093
49c471e3
MJ
20942011-04-19 Martin Jambor <mjambor@suse.cz>
2095
2096 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
2097 also according to actual contants.
2098 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
2099 (gimple_fold_call): Use it.
2100 * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
2101
0004f992
MJ
21022011-04-19 Martin Jambor <mjambor@suse.cz>
2103
2104 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
2105 non-pointer assignments.
2106
40591473
MJ
21072011-04-19 Martin Jambor <mjambor@suse.cz>
2108
2109 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
2110 account anc_offset and otr_type from the indirect edge info.
2111 * ipa-prop.c (get_ancestor_addr_info): New function.
2112 (compute_complex_ancestor_jump_func): Assignment analysis moved to
2113 get_ancestor_addr_info, call it.
2114 (ipa_note_param_call): Do not initialize information about polymorphic
2115 calls, return the indirect call graph edge. Remove the last
2116 parameter, adjust all callers.
2117 (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
2118 parameters. Initialize polymorphic information in the indirect edge.
2119
abe36b81
EB
21202011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2121
2122 PR lto/48148
2123 * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
2124 the types if they have different enumeration identifiers.
2125
e6416b30
JH
21262011-04-19 Jan Hubicka <jh@suse.cz>
2127
2128 * cgraph.h (cgraph_optimize_for_size_p): Declare.
2129 * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
2130 * predict.c (cgraph_optimize_for_size_p): Break out from ...
2131 (optimize_function_for_size_p) ... here.
2132
d39132ea
RG
21332011-04-19 Richard Guenther <rguenther@suse.de>
2134
2135 PR lto/48207
2136 * tree.c (free_lang_data): Do not reset the decl-assembler-name
2137 langhook.
2138
ff7037dc
EB
21392011-04-19 Eric Botcazou <ebotcazou@adacore.com>
2140
2141 * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
2142 if DECL_NO_INLINE_WARNING_P is set on the function.
2143
c1ee2892
BS
21442011-04-19 Bernd Schmidt <bernds@codesourcery.com>
2145
2146 PR fortran/47976
2147 * reload1.c (inc_for_reload): Return void. All callers changed.
2148 (emit_input_reload_insns): Don't try to delete previous output
2149 reloads to a register, or record spill_reg_store for autoincs.
fbb20b29
BS
2150
21512011-04-19 Basile Starynkevitch <basile@starynkevitch.net>
2152
2153 * gengtype.h: Updated copyright year.
2154 (struct input_file_st): Add inpisplugin field.
2155 (type_fileloc): New function.
2156 * gengtype.c
2157 (write_typed_struct_alloc_def): Add gcc_assert.
2158 (write_typed_alloc_defns): Ditto. Don't output for plugin files.
2159 (write_typed_alloc_defns): Don't output for plugin files.
2160 (input_file_by_name): Clear inpisplugin field.
2161 (main): Set inpisplugin field for plugin files.
2162
897e0a89
NP
21632011-04-19 Nicola Pero <nicola.pero@meta-innovation.com>
2164
2165 * gengtype-state.c (string_eq): New.
2166 (read_state): Use string_eq instead of strcmp when creating the
2167 state_ident_tab.
2168
363ee90e
WG
21692011-04-19 Wei Guozhi <carrot@google.com>
2170
2171 PR target/47855
2172 * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
2173 * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
2174 linkage.
2175 * config/arm/constraints.md (Uu): New constraint.
2176 * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
2177
18a24fed
TG
21782011-04-19 Tristan Gingold <gingold@adacore.com>
2179
2180 * config.gcc (-*-*-*vms): Added.
2181 (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
2182 definitions moved.
2183 * config/vms/vms-ld.c: New file.
2184 * config/vms/vms-ar.c: New file.
2185 * config/vms/t-vmsnative: New file.
2186
1c13f168
XDL
21872011-04-18 Xinliang David Li <davidxl@google.com>
2188
2189 * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
2190
84825707
JJ
21912011-04-18 Jakub Jelinek <jakub@redhat.com>
2192
2193 PR middle-end/48661
2194 * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
2195 if TREE_TYPE (v) is non-NULL.
2196
2197 * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
2198 gimple_get_virt_mehtod_for_binfo.
2199 * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
2200 * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
2201 callers.
2202 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
2203
7d4f8d02 22042011-04-18 Michael Matz <matz@suse.de>
7254cb57
MM
2205 Steve Ellcey <sje@cup.hp.com>
2206
7d4f8d02
EB
2207 * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
2208 use its mode as source mode if it isn't VOIDmode.
7254cb57 2209
474e8e70
DCR
22102011-04-18 Dennis, CHENG Renquan <crquan@fedoraproject.org>
2211
2212 * doc/passes.texi: Fill crossref nodes.
2213
cff41484
JM
22142011-04-18 Jim Meyering <meyering@redhat.com>
2215
7d4f8d02 2216 Fix doubled-word typos in comments and strings
cff41484
JM
2217 * config/alpha/vms-unwind.h: s/for for/for/
2218 * config/arm/unwind-arm.h: Likewise.
2219 * config/microblaze/microblaze.c: Likewise.
2220 * config/sh/constraints.md: s/in in/in/
2221 * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
2222
f60c2554
UB
22232011-04-18 Uros Bizjak <ubizjak@gmail.com>
2224
2225 * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
2226 (AVX_FLOAT_MODE_P): Ditto.
2227 (AVX128_VEC_FLOAT_MODE_P): Ditto.
2228 (AVX256_VEC_FLOAT_MODE_P): Ditto.
2229 (AVX_VEC_FLOAT_MODE_P): Ditto.
2230 * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
2231 (UNSPEC_MASKSTORE): Ditto.
2232 * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
2233 Merge from <sse>_movmsk<ssemodesuffix> and
2234 avx_movmsk<ssemodesuffix>256. Use VF mode iterator.
2235 (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64. Use P mode
2236 iterator.
2237 (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
2238 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
2239 (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
2240
09a2806f
JH
22412011-04-18 Jan Hubicka <jh@suse.cz>
2242
8a8dccb2
JH
2243 * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
2244
09a2806f
JH
2245 * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
2246 (want_inline_function_called_once_p): Break out the logic from
2247 ipa_inline.
2248 (edge_badness): Ensure that profile is not misupdated.
2249 (lookup_recursive_calls): Prioritize by call frequencies.
2250 (inline_small_functions): Move program size estimates here;
2251 actually process whole queue even when unit growth has been
2252 met. (to properly compute inline_failed reasons and for the
f60c2554 2253 case unit size decrease.) Revisit comments on recursive inlining.
09a2806f
JH
2254 (ipa_inline): Remove unit summary code; first inline hot calls
2255 of functions called once, cold calls next.
2256 (order, nnodes): Remove unused variables.
2257 * Makefile.in (ipa-inline.o): No longer depent on ggc files.
2258 (GTFILES): Remove ipa-inline.c
2259 * sel-sched.c (fill_insns): Silence uninitialized var warning.
2260
3eea52ef
EB
22612011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2262
2263 * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
2264
229a1c59 22652011-04-18 Jie Zhang <jie@codesourcery.com>
3eea52ef 2266 Richard Earnshaw <rearnsha@arm.com>
229a1c59
JZ
2267
2268 * arm.c (neon_builtin_type_bits): Remove.
2269 (typedef enum neon_builtin_mode): New.
2270 (T_MAX): Don't define.
2271 (typedef enum neon_builtin_datum): Remove bits, codes[],
2272 num_vars and base_fcode. Add mode, code and fcode.
2273 (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
2274 VAR10): Change accordingly.
2275 (neon_builtin_data[]): Change accordingly
2276 (arm_init_neon_builtins): Change accordingly.
2277 (neon_builtin_compare): Remove.
2278 (locate_neon_builtin_icode): Remove.
2279 (arm_expand_neon_builtin): Change accordingly.
2280
2281 * arm.h (enum arm_builtins): Move to ...
2282 * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
2283
2284 * arm.c (arm_builtin_decl): Declare.
2285 (TARGET_BUILTIN_DECL): Define.
2286 (enum arm_builtins): Correct ARM_BUILTIN_MAX.
2287 (arm_builtin_decls[]): New.
2288 (arm_init_neon_builtins): Store builtin declarations in
2289 arm_builtin_decls[].
2290 (arm_init_tls_builtins): Likewise.
2291 (arm_init_iwmmxt_builtins): Likewise. Refactor initialization code.
2292 (arm_builtin_decl): New.
2293
75e802cc
RG
22942011-04-18 Richard Guenther <rguenther@suse.de>
2295
2296 * tree.c (upper_bound_in_type): Build properly canonicalized
2297 INTEGER_CSTs.
2298 (lower_bound_in_type): Likewise.
2299
3b45a007
RG
23002011-04-18 Richard Guenther <rguenther@suse.de>
2301
2302 * gimple.h (gimple_call_addr_fndecl): New function.
2303 (gimple_call_fndecl): Use it.
2304 * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
2305 for direct calls.
2306 * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
2307 * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
2308
d25a79ea
RG
23092011-04-18 Richard Guenther <rguenther@suse.de>
2310
2311 PR middle-end/48650
2312 * tree.c (build_string): STRING_CST is now derived from tree_typed.
2313
7d5fc814
EB
23142011-04-18 Eric Botcazou <ebotcazou@adacore.com>
2315
2316 PR lto/48492
2317 * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
2318 DECL_IN_CONSTANT_POOL without RTL.
2319
7e7cfcf6
UW
23202011-04-18 Ulrich Weigand <ulrich.weigand@linaro.org>
2321 Ira Rosen <ira.rosen@linaro.org>
2322
2323 PR target/48252
2324 * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
2325 to match neon_vzip/vuzp/vtrn_internal.
2326 * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
2327 outputs explicitly dependent on both inputs.
2328 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
2329
49eab32e
JJ
23302011-04-18 Jakub Jelinek <jakub@redhat.com>
2331
2332 PR tree-optimization/48616
2333 * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
2334 whether the shift is by scalar or vector based on whether all SLP
2335 scalar stmts have the same rhs.
2336
e54170f4
CLT
23372011-04-17 Chung-Lin Tang <cltang@codesourcery.com>
2338
2339 * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
2340 memory operands.
2341
b14ee6c9
RS
23422011-04-17 Richard Sandiford <rdsandiford@googlemail.com>
2343
2344 * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
2345 registers.
2346
10158cd3
JH
23472011-04-17 Jan Hubicka <jh@suse.cz>
2348
2349 * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
7d5fc814
EB
2350 * cgrpahunit.c (cgraph_finalize_function): Do not set
2351 finalized_by_frontend.
10158cd3
JH
2352 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2353 finalized_by_frontend.
2354
2e9bb6ba
JH
23552011-04-17 Jan Hubicka <jh@suse.cz>
2356
2357 * cgraph.c (cgraph_clone_node): Do not handle vtable_method
2358 * cgraph.h (struct cgraph_local_info): Drop vtable_method.
2359 * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
7d5fc814
EB
2360 * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
2361 method.
2e9bb6ba
JH
2362 * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
2363 gimple-fold.c
2364 * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
2365
beb628e1
EB
23662011-04-17 Eric Botcazou <ebotcazou@adacore.com>
2367
2368 PR lto/48538
2369 * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
2370 is non-null before accessing it.
2371 (input_cgraph): Remove trailing spaces.
2372
3e2fdd24
RE
23732011-04-17 Revital Eres <revital.eres@linaro.org>
2374
2375 * params.def (sms-min-sc): New param flag.
2376 * modulo-sched.c (sms_schedule): Use it.
2377 * doc/invoke.texi (sms-min-sc): Document it.
2378
4c0f7679
JH
23792011-04-17 Jan Hubicka <jh@suse.cz>
2380
2381 * lto-symtab.c (lto_cgraph_replace_node): When call statement is
2382 present, also set gimple_call_set_cannot_inline.
2383 * ipa-inline.c: Update toplevel comment.
2384 (MAX_TIME): Remove.
2385 (cgraph_clone_inlined_nodes): Fix linebreaks.
2386 (cgraph_check_inline_limits): Restructure to ...
2387 (caller_growth_limits): ... this one; be more tolerant
2388 on growth in nested inline chains; add explanatory comment;
2389 fix stack accounting thinko introduced by previous patch.
2390 (cgraph_default_inline_p): Remove.
2391 (report_inline_failed_reason): New function.
2392 (can_inline_edge_p): New function.
2393 (can_early_inline_edge_p): New function.
2394 (leaf_node_p): Move upwards in file.
2395 (want_early_inline_function_p): New function.
2396 (want_inline_small_function_p): New function.
2397 (want_inline_self_recursive_call_p): New function.
2398 (cgraph_edge_badness): Rename to ...
2399 (edge_badness) ... this one; fix linebreaks.
2400 (update_edge_key): Update call of edge_baddness; add
2401 detailed dump about queue updates.
2402 (update_caller_keys): Use can_inline_edge_p and
2403 want_inline_small_function_p.
2404 (cgraph_decide_recursive_inlining): Rename to...
2405 (recursive_inlining): Use can_inline_edge_p and
f60c2554
UB
2406 want_inline_self_recursive_call_p; simplify and remove no longer
2407 valid FIXME.
4c0f7679
JH
2408 (cgraph_set_inline_failed): Remove.
2409 (add_new_edges_to_heap): Use can_inline_edge_p and
2410 want_inline_small_function_p.
2411 (cgraph_decide_inlining_of_small_functions): Rename to ...
2412 (inline_small_functions): ... this one; cleanup; use
f60c2554
UB
2413 can/want predicates; cleanup debug ouput; work edges till fibheap
2414 is exhausted and do not stop once unit growth is reached; remove
2415 later loop processing remaining edges.
4c0f7679
JH
2416 (cgraph_flatten): Rename to ...
2417 (flatten_function): ... this one; use can_inline_edge_p
2418 and can_early_inline_edge_p predicates.
2419 (cgraph_decide_inlining): Rename to ...
2420 (ipa_inline): ... this one; remove unreachable nodes before
2421 inlining functions called once; simplify the pass.
2422 (cgraph_perform_always_inlining): Rename to ...
2423 (inline_always_inline_functions): ... this one; use
f60c2554 2424 DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
4c0f7679
JH
2425 (cgraph_decide_inlining_incrementally): Rename to ...
2426 (early_inline_small_functions): ... this one; simplify
2427 using new predicates; cleanup; make dumps prettier.
2428 (cgraph_early_inlining): Rename to ...
2429 (early_inliner): newer inline regular functions into always-inlines;
2430 fix updating of call stmt summaries.
2431 (pass_early_inline): Update for new names.
2432 (inline_transform): Fix formating.
2433 (gate_cgraph_decide_inlining): Rename to ...
2434 (pass_ipa_inline): ... this one.
2435 * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
2436 * ipa-inline-analysis.c (dump_inline_summary): Update.
2437 (compute_inline_parameters): Do not compute disregard_inline_limits;
2438 look for mismatching arguments.
2439 (estimate_growth): Fix handlig of non-trivial self recursion.
2440 (inline_read_summary): Do not read info->disregard_inline_limits.
2441 (inline_write_summary): Do not write info->disregard_inline_limits.
beb628e1
EB
2442 * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
2443 and move all checks into can_inline_edge_p predicate; re-enable code
2444 comparing optimization levels.
4c0f7679
JH
2445 (expand_call_inline): Do not test inline_forbidden_into_p.
2446 * Makefile.in (ipa-inline.o): Update arguments.
2447
54333b7c
RE
24482011-04-17 Revital Eres <revital.eres@linaro.org>
2449
2450 * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
2451
42c2bf92
RE
24522011-04-17 Revital Eres <revital.eres@linaro.org>
2453
2454 * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
2455
b183e9e0
MM
24562011-04-17 Michael Matz <matz@suse.de>
2457
2458 PR tree-optimization/48622
2459 PR lto/48645
2460 * ipa-inline-analysis.c (inline_read_summary): Read size/time
2461 in same order as they're written.
2462
b8a17fa2
JDA
24632011-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2464
2465 * config/pa/predicates.md: Reorganize and simplify predicates.
2466 Eliminate duplicate code checks.
2467 (arith_operand): Rename to arith14_operand
2468 (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
2469 * config/pa/pa.md: Use renamed operands.
2470 * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
2471 (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
2472 arith11_operand, adddi3_operand, indexed_memory_operand,
2473 symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
2474 arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
2475 borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
2476 move_dest_operand, move_src_operand, prefetch_cc_operand,
2477 prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
2478 uint32_operand, reg_before_reload_operand, reg_or_0_operand,
2479 reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
2480 div_operand, int5_operand, movb_comparison_operator,
2481 ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
2482 arith_double_operand, ireg_operand, lhs_lshift_operand,
2483 pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
2484 integer_store_memory_operand): Likewise.
2485 * config/pa/pa.c (adddi3_operand): Move to predicates.md.
2486 (integer_store_memory_operand, read_only_operand,
2487 function_label_operand, borx_reg_operand,
2488 non_hard_reg_operand): Likewise.
2489 (eq_neq_comparison_operator): Delete unused operator.
2490 (legitimize_pic_address): Use VOIDmode for mode argument in calls to
2491 function_label_operand.
2492 (emit_move_sequence): Likewise.
2493
8dfb9f16
UB
24942011-04-16 Uros Bizjak <ubizjak@gmail.com>
2495
2496 * config/i386/sse.md (sseunpackmode): New mode attribute.
2497 (ssepackmode): Ditto.
2498 (vec_pack_trunc_<mode>): Macroize expander from
2499 vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
2500 (vec_unpacks_lo_<mode>): Macroize expander from
2501 vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2502 (vec_unpacks_hi_<mode>): Macroize expander from
2503 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2504 (vec_unpacku_lo_<mode>): Macroize expander from
2505 vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2506 (vec_unpacku_hi_<mode>): Macroize expander from
2507 vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
2508 * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
2509 ix86_expand_sse4_unpack.
2510 * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
2511
e7f23018
JH
25122011-04-16 Jan Hubicka <jh@suse.cz>
2513
2514 * cgraphbuild.c: Include ipa-inline.h.
2515 (reset_inline_failed): Use initialize_inline_failed.
2516 * cgraph.c: Include ipa-inline.h.
2517 (cgraph_create_node_1): Do not initialize estimated_growth.
2518 (initialize_inline_failed): More to ipa-inline-analysis.c
2519 (dump_cgraph_node): Do not dump inline flags.
2520 * cgraph.h (cgraph_local_info): Remove inlineable, versionable
2521 and disregard_inline_limits flags.
2522 (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
2523 time, size, estimated_growth.
8dfb9f16
UB
2524 * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
2525 Update.
e7f23018
JH
2526 * cgraphunit.c (cgraph_decide_is_function_needed): Use
2527 DECL_DISREGARD_INLINE_LIMITS.
2528 (cgraph_analyze_function): Do not initialize
2529 node->local.disregard_inline_limits.
2530 * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
2531 inlinable, versionable and disregard_inline_limits.
2532 * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
8dfb9f16
UB
2533 cgraph_check_inline_limits, cgraph_default_inline_p,
2534 cgraph_edge_badness, update_caller_keys, update_callee_keys,
2535 add_new_edges_to_heap): Update.
2536 (cgraph_decide_inlining_of_small_function): Update; set
2537 CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
e7f23018
JH
2538 (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
2539 cgraph_decide_inlining_incrementally): Update.
8dfb9f16
UB
2540 * ipa-inline.h (inline_summary): Add inlinable, versionable,
2541 disregard_inline_limits, estimated_stack_size, stack_frame_offset,
2542 time, size and estimated_growth parameters.
e7f23018
JH
2543 (estimate_edge_growth): Update.
2544 (initialize_inline_failed): Declare.
2545 * ipa-split.c: Include ipa-inline.h
2546 (execute_split_functions): Update.
2547 * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
2548 (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
2549 (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
2550 * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
2551 estimated_growth to INT_MIN.
2552 (inline_node_duplication_hook): Likewise.
2553 (dump_inline_summary): Dump new fields.
2554 (compute_inline_parameters): Update.
2555 (estimate_edge_time, estimate_time_after_inlining,
2556 estimate_size_after_inlining, estimate_growth, inline_read_summary,
2557 inline_write_summary):
2558 (initialize_inline_failed): Move here from cgraph.c.
2559 * tree-sra.c: Include ipa-inline.h.
2560 (ipa_sra_preliminary_function_checks): Update.
f60c2554
UB
2561 * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
2562 ipa-inline.h.
e7f23018 2563
e81b8564
UB
25642011-04-16 Uros Bizjak <ubizjak@gmail.com>
2565
2566 * config/i386/sse.md (V16): New mode iterator.
2567 (VI1, VI8): Ditto.
2568 (AVXMODEQI, AVXMODEDI): Remove.
2569 (sse2, sse3): New mode attribute.
2570 (mov<mode>): Use V16 mode iterator.
2571 (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
2572 (push<mode>1): Use V16 mode iterator.
2573 (movmisalign<mode>): Ditto.
2574 (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2575 <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
2576 (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
2577 *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
2578 (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
2579 avx_movdqu<avxmodesuffix>.
2580 (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
2581 *avx_movdqu<avxmodesuffix>.
2582 (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
2583 avx_lddqu<avxmodesuffix>.
2584 (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
2585 (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
2586 avx_movnt<AVXMODEDI:mode>.
2587 * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
2588 renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
2589
4743d438
BS
25902011-04-16 Bernd Schmidt <bernds@codesourcery.com>
2591
2592 PR target/48629
2593 * haifa-sched.c (prune_ready_list, schedule_block): Use
2594 sched_pressure_p rather than flag_sched_pressure.
2595
eb229cf4
PH
25962011-04-15 Pat Haugen <pthaugen@us.ibm.com>
2597
2598 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
2599 cgraph_get_node instead of cgraph_get_create_node.
2600
2ba172e0
JJ
26012011-04-15 Jakub Jelinek <jakub@redhat.com>
2602
2603 * cfgexpand.c (expand_debug_expr): Use
2604 simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
2605
63d2a353
MM
26062011-04-15 Michael Matz <matz@suse.de>
2607
2608 * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
2609 * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
2610 * function.c (gimplify_parameters): Ditto.
2611 * gimplify.c (gimplify_vla_decl): Ditto.
2612
2613 * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
2614 (gimple_call_set_alloca_for_var): New inline function.
2615 (gimple_call_alloca_for_var_p): Ditto.
e81b8564
UB
2616 * gimple.c (gimple_build_call_from_tree): Remember
2617 CALL_ALLOCA_FOR_VAR_P state.
63d2a353
MM
2618 * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
2619
2620 * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
2621 calls if they were for VLA objects.
2622
dee74c34
MJ
26232011-04-15 Martin Jambor <mjambor@suse.cz>
2624
2625 * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
2626 of ADR_EXPRs.
2627
8e5837bc
MJ
26282011-04-15 Martin Jambor <mjambor@suse.cz>
2629
2630 PR middle-end/48601
2631 * tree-emutls.c (lower_emutls_function_body): Call
2632 cgraph_get_create_node instead of cgraph_get_node. Do not assert the
2633 result is non-NULL.
2634
0dc33c3c
NP
26352011-04-15 Nicola Pero <nicola.pero@meta-innovation.com>
2636
2637 * c-decl.c (detect_field_duplicates): Call
2638 objc_detect_field_duplicates instead of objc_get_interface_ivars.
2639
edcdea5b
NF
26402011-04-15 Nathan Froyd <froydnj@codesourcery.com>
2641
2642 * gimple.h (gimple_asm_clobbers_memory_p): Declare.
2643 * gimple.c (gimple_asm_clobbers_memory_p): Define.
2644 * ipa-pure-const.c (check_stmt): Call it.
2645 * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
2646
8456558d
RG
26472011-04-15 Richard Guenther <rguenther@suse.de>
2648
2649 PR tree-optimization/48290
2650 * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
2651 Properly decide inhibiting propagation based on the valueized
2652 operand. Do loop-closed SSA form preserving here ...
2653 (init_copy_prop): ... not here.
2654
266446be
L
26552011-04-15 H.J. Lu <hongjiu.lu@intel.com>
2656
2657 PR target/48612
2658 * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
2659 (*ieee_smax<mode>3): Likewise.
2660
17465c6e
AK
26612011-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2662
2663 * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
2664 Replace match_operand with match_dup for the third operand in
2665 these expanders.
2666
bce204e5
MK
26672011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2668
2669 * combine.c (subst, combine_simlify_rtx): Add new argument, use it
2670 to track processing of conditionals. Update all callers.
2671 (try_combine, simplify_if_then_else): Update.
2672
3162fdf4
MK
26732011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2674
2675 * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
2676 -fsched-pressure.
2677
79002a57 26782011-04-15 Georg-Johann Lay <avr@gjlay.de>
e81b8564 2679
79002a57
GJL
2680 * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
2681 instead of match_operand for operand 3.
2682
4fd3a105
RS
26832011-04-15 Richard Sandiford <richard.sandiford@linaro.org>
2684
2685 * recog.h (insn_operand_data): Add an "allows_mem" field.
2686 * genoutput.c (output_operand_data): Initialize it.
2687 * optabs.c (maybe_legitimize_operand_same_code): New function.
2688 (maybe_legitimize_operand): Use it when matching the original
2689 op->value.
2690
ad19c4be
EB
26912011-04-15 Eric Botcazou <ebotcazou@adacore.com>
2692
2693 * gimplify.c: Fix issues in comments throughout.
2694 (voidify_wrapper_expr): Fix long line.
2695 (build_stack_save_restore): Likewise.
2696 (gimplify_loop_expr): Likewise.
2697 (gimplify_compound_lval): Likewise.
2698 (gimplify_init_ctor_eval): Likewise.
2699 (gimplify_modify_expr_rhs): Likewise.
2700 (omp_notice_threadprivate_variable): Likewise.
2701
b25aa0e8 27022011-04-15 Eric Botcazou <ebotcazou@adacore.com>
e7925582 2703
b25aa0e8
EB
2704 * cfgexpand.c (expand_call_stmt): Convert the function type to the
2705 original one if this is not a builtin function.
e7925582 2706
09db7afe
JJ
27072011-04-14 Jakub Jelinek <jakub@redhat.com>
2708
2709 PR target/48605
2710 * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
2711 offset it as needed based on top 2 bits in operands[3], change
2712 MEM mode to SFmode and mask those 2 bits away from operands[3].
2713
c59633d9
NP
27142011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2715
2716 * c-parser.c (c_parser_objc_protocol_definition): Updated for
2717 change from objc_declare_protocols() to objc_declare_protocol().
2718
5e60198b
UB
27192011-04-14 Uros Bizjak <ubizjak@gmail.com>
2720
2721 * config/i386/sse.md (sse4_1): New mode attribute.
2722 (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
2723 avx_blend<ssemodesuffix><avxmodesuffix> and
2724 sse4_1_blend<ssemodesuffix> using VF mode iterator.
2725 (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
2726 avx_blendv<ssemodesuffix><avxmodesuffix> and
2727 sse4_1_blendv<ssemodesuffix> using VF mode iterator.
2728 (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
2729 avx_dp<ssemodesuffix><avxmodesuffix> and
2730 sse4_1_dp<ssemodesuffix> using VF mode iterator.
2731 (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
2732 (sse4_1_packusdw): Merge with *avx_packusdw.
2733 (sse4_1_pblendvb): Merge with *avx_pblendvb.
2734 (sse4_1_pblendw): Merge with *avx_pblendw.
2735 (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
2736 (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
2737 avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
2738 VF mode iterator.
2739 (sse4_1_round<ssescalarmodesuffix>): Merge with
2740 *avx_round<ssescalarmodesuffix>.
2741 (aesenc): Merge with *avx_aesenc.
2742 (aesenclast): Merge with *avx_aesenclast.
2743 (aesdec): Merge with *avx_aesdec.
2744 (aesdeclast): Merge with *avx_aesdeclast.
2745 (pclmulqdq): Merge with *pclmulqdq.
2746 * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
2747 New predicate.
2748 (nonimm_not_xmm0_operand_maybe_avx): Ditto.
2749
6f197850
L
27502011-04-14 H.J. Lu <hongjiu.lu@intel.com>
2751
2752 PR middle-end/48608
2753 * cfgexpand.c (get_decl_align_unit): Renamed to ...
2754 (align_local_variable): This. Update DECL_ALIGN.
2755 (add_stack_var): Updated.
2756 (expand_one_stack_var): Likewise.
2757
4a5ba3ed
RG
27582011-04-14 Richard Guenther <rguenther@suse.de>
2759
2760 * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
2761 Remove.
2762 (dse_initialize_block_local_data, dse_leave_block,
2763 record_voperand_set, get_stmt_uid): Likewise.
2764 (dse_possible_dead_store_p): Allow any kind of killing stmt.
2765 (dse_optimize_stmt): Remove voperand set handling code.
2766 Simplify and improve to handle any kind of killing stmt.
2767 (dse_record_phi): Remove.
2768 (dse_enter_block): Simplify.
2769 (tree_ssa_dse): Likewise.
2770 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
2771
10a5dd5d
JH
27722011-04-14 Jan Hubicka <jh@suse.cz>
2773
2774 * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
2775 * cgraph.h (struct inline_summary): Move to ipa-inline.h
2776 (cgraph_local_info): Remove inline_summary.
2777 * ipa-cp.c: Include ipa-inline.h.
2778 (ipcp_cloning_candidate_p, ipcp_estimate_growth,
2779 ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
2780 accesor.
2781 * lto-cgraph.c (lto_output_node): Do not stream inline summary.
2782 (input_overwrite_node): Do not set inline summary.
2783 (input_node): Do not stream inline summary.
2784 * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
2785 (cgraph_decide_inlining_incrementally): Do not try to estimate overall
2786 growth; we do not have inline parameters computed for that anyway.
2787 (cgraph_early_inlining): After inlining compute call_stmt_sizes.
2788 * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
2789 (inline_summary_t): New type and VECtor.
2790 (debug_inline_summary, dump_inline_summaries): Declare.
2791 (inline_summary): Use VOCtor.
2792 (estimate_edge_growth): Kill hack computing call stmt size directly.
2793 * lto-section-in.c (lto_section_name): Add inline section.
2794 * ipa-inline-analysis.c: Include lto-streamer.h
2795 (node_removal_hook_holder, node_duplication_hook_holder): New holders
2796 (inline_node_removal_hook, inline_node_duplication_hook): New functions.
2797 (inline_summary_vec): Define.
2798 (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
2799 dump_inline_summaries): New functions.
5e60198b
UB
2800 (estimate_function_body_sizes): Properly compute size/time of outgoing
2801 calls.
2802 (compute_inline_parameters): Alloc inline_summary; do not compute
2803 size/time of incomming calls.
10a5dd5d
JH
2804 (estimate_edge_time): Avoid missing time summary hack.
2805 (inline_read_summary): Read inline summary info.
2806 (inline_write_summary): Write inline summary info.
2807 (inline_free_summary): Free all hooks and inline summary vector.
2808 * lto-streamer.h: Add LTO_section_inline_summary section.
2809 * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
2810 * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
2811
b602d918
RS
28122011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2813
2814 * tree-vectorizer.h (vect_strided_store_supported): Add a
2815 HOST_WIDE_INT argument.
2816 (vect_strided_load_supported): Likewise.
2817 (vect_permute_store_chain): Return void.
2818 (vect_transform_strided_load): Likewise.
2819 (vect_permute_load_chain): Delete.
2820 * tree-vect-data-refs.c (vect_strided_store_supported): Take a
2821 count argument. Check that the count is a power of two.
2822 (vect_strided_load_supported): Likewise.
2823 (vect_permute_store_chain): Return void. Update after above changes.
2824 Assert that the access is supported.
2825 (vect_permute_load_chain): Likewise.
2826 (vect_transform_strided_load): Return void.
2827 * tree-vect-stmts.c (vectorizable_store): Update calls after
2828 above interface changes.
2829 (vectorizable_load): Likewise.
2830 (vect_analyze_stmt): Don't check for strided powers of two here.
2831
ab4472fa
RG
28322011-04-14 Richard Guenther <rguenther@suse.de>
2833
2834 PR tree-optimization/48590
2835 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
2836 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2837 (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
2838 BUILT_IN_STACK_SAVE.
2839 * tree-ssa-dce.c (propagate_necessity): Handle
2840 BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
2841
32dabdaf
NP
28422011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2843
2844 * c-parser.c (c_parser_objc_class_declaration): Updated call to
2845 objc_declare_class.
2846
daade206
RG
28472011-04-14 Richard Guenther <rguenther@suse.de>
2848
2849 * tree.h (get_object_alignment_1): Declare.
2850 * builtins.c (get_object_alignment_1): Split out worker from ...
2851 (get_object_alignment): ... here.
2852 * fold-const.c (get_pointer_modulus_and_residue): Use
2853 get_object_alignment_1.
2854
920e8172
RS
28552011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2856
2857 * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
2858 type parameter.
2859 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
2860 parameter. Generalise code to handle arrays as well as vectors.
2861 (vect_setup_realignment): Update accordingly.
2862 * tree-vect-stmts.c (vectorizable_store): Likewise.
2863 (vectorizable_load): Likewise.
2864
5ce1ee7f
RS
28652011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
2866
2867 * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
2868 within the per-copy loop.
2869
6438fe33 28702011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
0ea25ecd
RS
2871
2872 * tree-vect-stmts.c (vectorizable_load): Print the number of copies
2873 in the dump file.
2874
6438fe33 28752011-04-14 Richard Sandiford <richard.sandiford@linaro.org>
77b10485
RS
2876
2877 * doc/options.texi (Negative): Explicitly mention that the
2878 Negative chain must be circular.
2879
61e46a7d
NF
28802011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2881
2882 * function.h (block_chainon): Declare.
2883 * function.c (block_chainon): Define.
2884
43ea6502 28852011-04-14 Anatoly Sokolov <aesok@post.ru>
5e60198b
UB
2886 Eric Weddington <eric.weddington@atmel.com>
2887 Georg-Johann Lay <avr@gjlay.de>
2888
f60c2554 2889 * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
43ea6502
AS
2890 New Includes
2891 (avr_init_builtins, avr_expand_builtin,
2892 avr_expand_delay_cycles, avr_expand_unop_builtin,
2893 avr_expand_binop_builtin ): New functions.
2894 (avr_builtin_id): New enum
2895 (struct avr_builtin_description): New struct
2896 (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
2897 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
5e60198b 2898
43ea6502 2899 * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
5e60198b 2900 UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
43ea6502
AS
2901 UNSPECV_DELAY_CYCLES): new enumeration values
2902 (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
2903 ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
2904 ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
2905 ("*rotlqi3_4"): rename insn to "rotlqi3_4"
2906 ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
2907 "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
2908 "fmulsu"): New insns
5e60198b 2909
43ea6502
AS
2910 * config/avr/avr-c.c: fix line endings
2911 (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
2912 __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
2913 __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
2914 __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
2915 __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
5e60198b 2916
43ea6502
AS
2917 * doc/extend.texi (AVR Built-in Functions): New node
2918 (Target Builtins): Add documentation of AVR
2919 built-in functions.
2920
8a9b55f3
GJL
29212011-04-14 Georg-Johann Lay <avr@gjlay.de>
2922
2923 PR target/44643
2924 * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
2925 alone. Error if non-const data has attribute progmem.
2926
94bd1825
NF
29272011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2928
2929 * tree.h (struct tree_constructor): Include tree_typed instead of
2930 tree_common.
2931 * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
2932 TS_TYPED instead of TS_COMMON.
2933
5e60198b 29342011-04-13 Uros Bizjak <ubizjak@gmail.com>
81b1e7eb
UB
2935
2936 * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
2937 (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
2938 (sse2_psadbw): Merge with *avx_psadbw.
2939 (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
2940 (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
2941 (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
2942 (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
2943 (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
2944 (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
2945 (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
2946 (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
2947 (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
2948 (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
2949 (ssse3_palignrti): Merge with *avx_palignrti.
2950
4b1a4694
NF
29512011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2952
2953 * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
2954 * tree-ssanames.c (fini_ssanames): VEC_free it.
2955 (make_ssa_name_fn): Update for VECness of free_ssanames.
2956 (release_ssa_name, release_dead_ssa_names): Likewise.
2957 * tree.h (struct tree_ssa_name): Include tree_typed instead of
2958 tree_common.
2959 * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
2960 TS_TYPED instead of TS_COMMON.
2961
4da3b811
NF
29622011-04-13 Nathan Froyd <froydnj@codesourcery.com>
2963
2964 * postreload-gcse.c (gcse_after_reload_main): Add calls to
2965 statistics_counter_event.
2966 * tree-ssa-copyrename.c (stats): Define.
2967 (rename_ssa_copies): Count coalesced SSA_NAMEs. Add call to
2968 statistics_counter_event.
2969 * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
2970 (bswap_stats, widen_mul_stats): Define.
2971 (insert_reciprocals): Increment rdivs_inserted.
2972 (execute_cse_reciprocals): Zeroize reciprocal_stats. Increment
2973 rfuncs_inserted. Add calls to statistics_counter_event.
2974 (execute_cse_sincos_1): Increment inserted.
2975 (execute_cse_sincos): Zeroize sincos_stats. Add call to
2976 statistics_counter_event.
2977 (execute_optimize_bswap): Zeroize bswap_stats. Increment fields
2978 of bswap_stats. Add calls to statistics_counter_event.
2979 (convert_mult_to_widen): Increment widen_mults_inserted.
2980 (convert_plusminus_to_widen): Increment maccs_inserted.
2981 (convert_mult_to_fma): Increment fmas_inserted.
2982 (execute_optimize_widening_mul): Zeroize widen_mul_stats. Add
2983 calls to statistics_counter_event.
2984
89fa552a
VM
29852011-04-13 Vladimir Makarov <vmakarov@redhat.com>
2986
2987 PR rtl-optimization/48455
2988 * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
2989 `temp_costs->mem_cost'.
2990
03dfc36d
JH
29912011-04-13 Jan Hubicka <jh@suse.cz>
2992
2993 * ipa-inline.h: New file.
2994 * ipa-inline-analysis.c: New file. Broken out of ...
2995 * ipa-inline.c: ... this file; update toplevel comment;
2996 include ipa-inline.h
2997 (inline_summary): Move to ipa-inline.h
2998 (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
2999 ipa-inline-analysis.c.
7d4f8d02
EB
3000 (cgraph_estimate_time_after_inlining): Rename to
3001 estiamte_time_after_inlining; move to ipa-inline-analysis.c
03dfc36d
JH
3002 (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
3003 to estimate_edge_growth.
3004 (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
3005 rename to estimate_size_after_inlining.
3006 (cgraph_mark_inline_edge): Update for new naming convention.
3007 (cgraph_check_inline_limits): Likewise.
3008 (cgraph_edge_badness): Likewise.
3009 (cgraph_decide_recursive_inlining): Likewise.
3010 (cgraph_decide_inlining_of_small_functions): Likewise.
3011 (cgraph_decide_inlining_incrementally): Likewise.
7d4f8d02
EB
3012 (cgraph_estimate_growth): Rename to estimate_growth; move to
3013 ipa-inline-analysis.c.
03dfc36d
JH
3014 (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
3015 (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
3016 (compute_inline_parameters): Likewise.
3017 (compute_inline_parameters_for_current): Likewise.
3018 (pass_inline_parameters): Likewise.
3019 (inline_indirect_intraprocedural_analysis): Likewise.
3020 (analyze_function): Rename to inline_analyze_function; likewise.
3021 (add_new_function): Move to ipa-inline-analysis.c.
3022 (inline_generate_summary): Likewise.
3023 (inline_read_summary): Likewise.
3024 (inline_write_summary): Likewise.
3025 * Makefile.in (ipa-inline-analysis.c): New file.
3026
7673c962
RO
30272011-04-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3028
3029 * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
3030 * configure: Regenerate.
3031
9698252f
NF
30322011-04-13 Nathan Froyd <froydnj@codesourcery.com>
3033
3034 * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
3035 instead of tree_common.
3036 (struct tree_fixed_cst, struct tree_string, struct tree_complex):
3037 Likewise.
3038 * tree.c (initialize_tree_contains_struct): Mark such nodes as being
3039 TS_TYPED rather than TS_COMMON.
3040 * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
3041
3a7bfdd5
GJL
30422011-04-01 Georg-Johann Lay <avr@gjlay.de>
3043
3044 PR target/45263
86d83530
GJL
3045 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
3046 r20 around calls of __tablejump_elpm__
3a7bfdd5 3047
20790697
JJ
30482011-04-13 Jakub Jelinek <jakub@redhat.com>
3049
3050 PR middle-end/48591
3051 * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
3052 NULL.
3053 (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
3054
094d7661
BS
30552011-04-13 Bernd Schmidt <bernds@codesourcery.com>
3056
3057 * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
3058 (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
3059 (cfi_vec): New typedef.
3060 (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
3061 dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
3062 (cie_cfi_vec): New static variable.
3063 (cie_cfi_head): Delete.
3064 (add_cfi): Accept a cfi_vec * as first argument. All callers and
3065 declaration changed. Use vector rather than list operations.
3066 (new_cfi): Don't initialize the dw_cfi_next field.
3067 (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
3068 rather than list operations.
3069 (lookup_cfa): Use vector rather than list operations.
3070 (output_cfis): New argument upto. Accept a cfi_vec rather than
3071 a dw_cfi_ref list head as argument. All callers changed.
3072 Iterate over the vector using upto as a maximum index.
3073 (output_all_cfis): New static function.
3074 (output_fde): Use vector rather than list operations. Use the
3075 new upto argument for output_cfis rather than manipulating a
3076 list.
3077 (dwarf2out_begin_prologue): Change initializations to match
3078 new struct members.
3079 (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
3080 from the vector length rather than searching for the end of a list.
3081 Use output_all_cfis.
3082 (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
3083
673a5740
NC
30842011-04-13 Nick Clifton <nickc@redhat.com>
3085
3086 * config/rx/rx.md (movmemsi): Do not use this pattern when
3087 volatile pointers are involved.
3088
1ee8b298
UB
30892011-04-13 Uros Bizjak <ubizjak@gmail.com>
3090
3091 * config/i386/sse.md (pinsrbits): Remove.
3092 (sse2_packsswb): Merge with *avx_packsswb.
3093 (sse2_packssdw): Merge with *avx_packssdw.
3094 (sse2_packuswb): Merge with *avx_packuswb.
3095 (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
3096 (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
3097 (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
3098 (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
3099 (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
3100 (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
3101 (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
3102 (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
3103 (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
3104 (*sse4_1_pinsrq): Merge with *avx_pinsrq.
3105 (sse2_loadld): Merge with *avx_loadld.
3106 (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
3107 (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
3108 (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
3109 (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
3110 (vec_concatv2di): Merge with *vec_concatv2di_avx.
3111
81f653d6
NF
31122011-04-12 Nathan Froyd <froydnj@codesourcery.com>
3113
3114 * c-decl.c (union lang_tree_node): Check for TS_COMMON before
3115 calling TREE_CHAIN.
3116 * print-tree.c (print_node): Likewise.
3117 * tree-inline.c (copy_tree_r): Likewise.
3118 * c-lang.c (LANG_HOOKS_INIT_TS): Define.
3119 * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
3120 instead of TS_COMMON.
3121 * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
3122 * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
3123 (copy_node_stat): Zero TREE_CHAIN only if necessary.
3124 (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
3125 (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
3126 ...and these...
3127 (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
3128 * tree.h: ...here.
3129 (TREE_CHAIN): Check for a TS_COMMON structure.
3130 (TREE_TYPE): Check for a TS_TYPED structure.
3131
ed940a4a
PH
31322011-04-12 Pat Haugen <pthaugen@us.ibm.com>
3133
3134 * config/rs6000/rs6000.c (call_ABI_of_interest): Call
3135 cgraph_get_create_node instead of cgraph_node.
3136
eb345401
NP
31372011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3138
3139 * c-parser.c (c_parser_initelt): Updated call to
3140 objc_build_message_expr.
3141 (c_parser_postfix_expression): Likewise.
3142
a6c46762
KT
31432011-04-12 Kai Tietz <ktietz@redhat.com>
3144
3145 * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
3146 MASK_MS_BITFIELD_LAYOUT bit.
3147
b4ccfed9
JJ
31482011-04-12 Jakub Jelinek <jakub@redhat.com>
3149
3150 * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
3151 assert it is always true.
3152 (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
3153 moves.
3154
0d8a2528
NP
31552011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
3156
3157 * c-parser.c (c_lex_one_token): Rewritten conditional used when
3158 compiling Objective-C to be more efficient.
3159
06bd234a
AF
31602011-04-12 Axel Freyn <axel-freyn@gmx.de>
3161
3162 * opts-common.c (decode_cmdline_options_to_array): Remove variable
3163 argv_copied.
3164
28569ac3
RS
31652011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3166
3167 * recog.h, genoutput.c, optabs.c: Revert last patch.
3168
ae59e00d
RR
31692011-04-12 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3170
81b1e7eb
UB
3171 PR target/48090
3172 * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
ae59e00d 3173
cff1b7e0
RS
31742011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3175
3176 * recog.h (insn_operand_data): Add an "allows_mem" field.
3177 * genoutput.c (output_operand_data): Initialize it.
3178 * optabs.c (maybe_legitimize_operand_same_code): New function.
3179 (maybe_legitimize_operand): Use it when matching the original
3180 op->value.
3181
77059241
RS
31822011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3183
3184 * genpreds.c (process_define_predicate): Move most processing
3185 to gensupport.c. Continue to validate the expression.
3186 * genrecog.c (did_you_mean_codes, compute_predicate_codes)
3187 (process_define_predicate): Move processing to gensupport.c.
3188 (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
3189 * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
3190 (compute_predicate_codes): Moved from genrecog.c. Add lineno
3191 argument.
3192 (valid_predicate_name_p): New function, split out from old
3193 genpreds.c:process_define_predicate.
3194 (process_define_predicate): New function, combining code from
3195 old genpreds.c and genrecog.c functions.
3196 (process_rtx): Call it for DEFINE_PREDICATE and
3197 DEFINE_SPECIAL_PREDICATE.
3198
6308e208
RS
31992011-04-12 Richard Sandiford <richard.sandiford@linaro.org>
3200
3201 * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
3202 size of a '%A' memory reference.
3203 (T_DREG, T_QREG): New neon_builtin_type_bits.
3204 (arm_init_neon_builtins): Assert that the load and store operands
3205 are neon_struct_operands.
3206 (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
3207 (NEON_ARG_MEMORY): New builtin_arg.
3208 (neon_dereference_pointer): New function.
3209 (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
3210 Handle NEON_ARG_MEMORY.
3211 (arm_expand_neon_builtin): Update after above interface changes.
3212 Use NEON_ARG_MEMORY for loads and stores.
3213 * config/arm/predicates.md (neon_struct_operand): New predicate.
3214 * config/arm/iterators.md (V_two_elem): Tweak formatting.
3215 (V_three_elem): Use BLKmode for accesses that have no associated mode.
3216 (V_four_elem): Tweak formatting.
3217 * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
3218 (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
3219 (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
3220 (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
3221 (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
3222 (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
3223 (neon_vst4<mode>): Replace pointer operand with a memory operand.
3224 Use %A in the output template.
3225 (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
3226 (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
3227 (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
3228 the width of the memory access. Remove post-increment.
3229 * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
3230
e5db8f2f
NC
32312011-04-12 Nick Clifton <nickc@redhat.com>
3232
3233 * config/v850/v850.c (expand_prologue): Do not use the CALLT
3234 instruction for interrupt handlers if the target is the basic V850
3235 architecture.
3236 (expand_epilogue): Likewise.
3237
74f091d6
JJ
32382011-04-12 Jakub Jelinek <jakub@redhat.com>
3239
3240 PR rtl-optimization/48549
3241 * combine.c (propagate_for_debug): Also stop after BB_END of
3242 this_basic_block. Process LAST and just stop processing after it.
3243 (combine_instructions): If last_combined_insn has been deleted,
3244 set last_combined_insn to its PREV_INSN.
3245
f20ca725
RG
32462011-04-12 Richard Guenther <rguenther@suse.de>
3247
3248 PR tree-optimization/46076
3249 * gimple.h (struct gimple_statement_call): Add fntype field.
3250 (gimple_call_fntype): Adjust.
3251 (gimple_call_set_fntype): New function.
3252 * gimple.c (gimple_build_call_1): Set the call function type.
3253 * gimplify.c (gimplify_call_expr): Preserve the function
3254 type the frontend used for the call.
3255 (gimplify_modify_expr): Likewise.
3256 * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
3257 function type.
3258 * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
3259 function type.
3260 * tree-ssa.c (useless_type_conversion_p): Function pointer
3261 conversions are useless.
3262
a358e188
MJ
32632011-04-12 Martin Jambor <mjambor@suse.cz>
3264
3265 * cgraph.h (cgraph_node): Remove function declaration.
3266 (cgraph_create_node): Declare.
3267 (cgraph_get_create_node): Likewise.
3268 * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
3269 Updated all callers.
3270 (cgraph_node): Renamed to cgraph_create_node, assert that a node for
3271 the decl does not already exist. Call cgraph_get_create_node instead
3272 of cgraph_node.
3273 (cgraph_get_create_node): New function.
3274 (cgraph_same_body_alias): Update comment.
3275 (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
3276 assert it does not return NULL.
3277 (cgraph_update_edges_for_call_stmt): Likewise.
3278 (cgraph_clone_edge): Likewise.
3279 (cgraph_create_virtual_clone): Likewise.
3280 (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
3281 instead of cgraph_node.
3282 (cgraph_add_new_function): Call cgraph_create_node or
3283 cgraph_get_create_node instead of cgraph_node.
3284 * cgraphbuild.c (record_reference): Call cgraph_get_create_node
3285 instead of cgraph_node.
3286 (record_eh_tables): Likewise.
3287 (mark_address): Likewise.
3288 (mark_load): Likewise.
3289 (build_cgraph_edges): Call cgraph_get_create_node instead
3290 of cgraph_node.
3291 (rebuild_cgraph_edges): Likewise.
3292 * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
3293 instead of cgraph_node.
3294 (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
3295 cgraph_node.
3296 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
3297 cgraph_create_node instead of cgraph_node.
3298 * c-decl.c (finish_function): Call cgraph_get_create_node instead
3299 of cgraph_node.
3300 * lto-cgraph.c (input_node): Likewise.
3301 * lto-streamer-in.c (input_function): Likewise.
3302 * varasm.c (mark_decl_referenced): Likewise.
3303 (assemble_alias): Likewise.
3304
fe660d7b
MJ
33052011-04-12 Martin Jambor <mjambor@suse.cz>
3306
3307 * tree-inline.c (tree_function_versioning): Call cgraph_get_node
3308 instead of cgraph_node and assert it does not return NULL.
3309 * lto-streamer-in.c (lto_read_body): Likewise.
3310 * omp-low.c (new_omp_context): Likewise.
3311 (create_task_copyfn): Likewise.
3312 * tree-emutls.c (lower_emutls_function_body): Likewise.
3313 * matrix-reorg.c (transform_allocation_sites): Likewise.
3314
bae5cddf
JJ
33152011-04-12 Jakub Jelinek <jakub@redhat.com>
3316
3317 PR c/48552
3318 * c-typeck.c (build_asm_expr): Error out on attempts to use
3319 void type outputs or inputs for constraints that allow reg or
3320 don't allow memory.
3321
06eb52ca
CLT
33222011-04-11 Chung-Lin Tang <cltang@codesourcery.com>
3323 Richard Earnshaw <rearnsha@arm.com>
3324
3325 PR target/48250
3326 * config/arm/arm.c (arm_legitimize_reload_address): Update cases
3327 to use sign-magnitude offsets. Reject unsupported unaligned
3328 cases. Add detailed description in comments.
3329 * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
3330 condition from TARGET_32BIT to TARGET_ARM.
3331
648a616b
NF
33322011-04-11 Nathan Froyd <froydnj@codesourcery.com>
3333
3334 * tree.h (struct typed_tree): New.
3335 (struct tree_common): Include it instead of tree_base.
3336 (TREE_TYPE): Update for new location of type field.
3337 (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
3338 (DECL_USER_ALIGN, DECL_PACKED): Likewise.
3339 (union tree_node): Add typed field.
3340 * treestruct.def (TS_TYPED): New.
3341 * lto-streamer.c (check_handled_ts_structures): Handle it.
3342 * tree.c (MARK_TS_TYPED): New macro.
3343 (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
3344
1e6d1da0
EB
33452011-04-11 Eric Botcazou <ebotcazou@adacore.com>
3346
3347 * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
3348 (force_nonfallthru): Do not alter the loop nest if no basic block
3349 was created.
3350
33512011-04-11 Uros Bizjak <ubizjak@gmail.com>
d8700b1c
UB
3352
3353 * config/i386/sse.md (VI): New mode iterator.
3354 (SSEMODEI): Remove.
3355 (AVX256MODEI): Ditto.
3356 (AVXMODEF4P): Ditto.
3357 (avxvecpsmode): Ditto.
3358 (one_cmpl<mode>2): Enable for TARGET_SSE. Use VI mode iterator.
3359 (sse2_andnot<mode>3): New expander.
3360 (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
3361 *avx_andnot<mode>3. Enable for TARGET_SSE. Use VI mode iterator.
3362 (<any_logic:code><mode>3): Use VI mode iterator.
3363 (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
3364 and *avx_<any_logic:code><mode>3. Use VI mode iterator.
3365 (*andnottf3): Handle AVX three-operand constraints.
3366 (*<any_logic:code>tf3): Handle AVX three-operand constraints.
3367
b1372d5d 33682011-04-11 Joseph Myers <joseph@codesourcery.com>
d8700b1c 3369 Robert Millan <rmh@gnu.org>
b1372d5d
JM
3370
3371 * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
3372 * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
3373 GNU_USER_DYNAMIC_LINKER64): Define.
3374 (REG_NAME): Don't undefine.
3375 (MD_UNWIND_SUPPORT): Undefine.
3376 * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
3377 (REG_NAME): Don't undefine.
3378 (MD_UNWIND_SUPPORT): Undefine.
d8700b1c 3379 * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
b1372d5d 3380
761c0c6e
JM
33812011-04-11 Joseph Myers <joseph@codesourcery.com>
3382
3383 * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
3384 (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
3385
26e0228f
XDL
33862011-04-11 Xinliang David Li <davidxl@google.com>
3387
3388 * value-profile.c (check_ic_target): New function.
3389 (gimple_ic_transform): Sanity check indirect call target.
3390 * gimple-low.c (gimple_check_call_args): Interface change.
3391 (gimple_check_call_matching_types): New function.
3392 * tree-inline.c (tree_can_inline_p): Call new function.
6075765d
BS
3393
33942011-04-11 Basile Starynkevitch <basile@starynkevitch.net>
3395
3396 * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
3397 tree-pretty-print.h & realmpfr.h.
3398
a58dfa49
VM
33992011-04-11 Vladimir Makarov <vmakarov@redhat.com>
3400
3401 PR middle-end/48464
3402 * ira.c (setup_pressure_classes): Fix typo in loop condition.
3403 (setup_allocno_and_important_classes): Ditto.
3404
107fd1c1
JM
34052011-04-11 Joseph Myers <joseph@codesourcery.com>
3406
3407 * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
3408 GNU_USER_DYNAMIC_LINKER.
3409 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
3410 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3411 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
3412 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3413 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3414 GNU_USER_TARGET_OS_CPP_BUILTINS.
3415 * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
3416 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3417 * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3418 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3419 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
3420 LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
3421 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3422 GNU_USER_TARGET_OS_CPP_BUILTINS.
3423 * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3424 GNU_USER_DYNAMIC_LINKER.
3425 * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3426 GNU_USER_TARGET_OS_CPP_BUILTINS.
3427 * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
3428 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3429 * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
3430 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3431 * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
3432 * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
3433 GNU_USER_DYNAMIC_LINKER64): Remove.
3434 * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
3435 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3436 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3437 GNU_USER_DYNAMIC_LINKER.
3438 * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3439 GNU_USER_TARGET_OS_CPP_BUILTINS.
3440 * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3441 GNU_USER_TARGET_OS_CPP_BUILTINS.
3442 * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
3443 to GNU_USER_TARGET_OS_CPP_BUILTINS.
3444 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
3445 GNU_USER_TARGET_OS_CPP_BUILTINS.
3446 (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
3447 (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
3448 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3449 * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
3450 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3451 * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3452 GNU_USER_DYNAMIC_LINKER.
3453 (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
3454 GNU_USER_TARGET_OS_CPP_BUILTINS.
3455 * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
3456 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3457 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3458 GNU_USER_DYNAMIC_LINKER.
3459 * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3460 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3461 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
3462 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3463 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3464 GNU_USER_DYNAMIC_LINKER.
3465 * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
3466 GNU_USER_DYNAMIC_LINKERN32.
3467 (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
3468 GNU_USER_DYNAMIC_LINKERN32. Change LINUX_DYNAMIC_LINKER64 to
3469 GNU_USER_DYNAMIC_LINKER64. Change LINUX_DYNAMIC_LINKER32 to
3470 GNU_USER_DYNAMIC_LINKER32.
3471 * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
3472 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3473 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3474 GNU_USER_DYNAMIC_LINKER.
3475 * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
3476 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3477 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
3478 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3479 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1
JM
3480 * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
3481 GNU_USER_DYNAMIC_LINKER32.
3482 (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
3483 * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
3484 GNU_USER_DYNAMIC_LINKER.
3485 * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
3486 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3487 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3488 GNU_USER_DYNAMIC_LINKER32. Change LINUX_DYNAMIC_LINKER64 to
3489 GNU_USER_DYNAMIC_LINKER64.
3490 * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
3491 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3492 (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3493 GNU_USER_DYNAMIC_LINKER.
3494 * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
3495 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3496 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
3497 GNU_USER_DYNAMIC_LINKER.
3498 * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
3499 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3500 (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
3501 GNU_USER_DYNAMIC_LINKER32.
3502 (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3503 GNU_USER_DYNAMIC_LINKER64.
3504 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
3505 GNU_USER_DYNAMIC_LINKER64.
3506 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
3507 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
3508 * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
3509 LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
d8700b1c 3510 (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
107fd1c1 3511
e24609cf
JM
35122011-04-11 Joseph Myers <joseph@codesourcery.com>
3513
3514 * config/i386/gnu-user.h: Copy from linux.h. Update comments.
3515 (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
3516 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
3517 GNU_USER_DYNAMIC_LINKER.
3518 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3519 * config/i386/gnu-user64.h: Copy from linux64.h. Update comments.
3520 (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
3521 (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
3522 GNU_USER_DYNAMIC_LINKER64.
3523 (MD_UNWIND_SUPPORT, REG_NAME): Remove.
3524 * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
3525 GNU_USER_LINK_EMULATION.
3526 * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
3527 DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
3528 ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
3529 MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
3530 PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
3531 CPP_SPEC, CC1_SPEC): Remove.
3532 (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
3533 (GNU_USER_DYNAMIC_LINKER): Define.
3534 (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
3535 ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
3536 ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
3537 LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
3538 TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
3539 STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
3540 TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3541 * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
3542 CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
3543 TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
3544 LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
3545 LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
3546 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
3547 (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
3548 TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
3549 TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
3550 * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3551 GNU_USER_DYNAMIC_LINKER.
3552 * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3553 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3554 * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3555 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3556 * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
3557 GNU_USER_DYNAMIC_LINKER. Unconditionally undefine and redefine.
3558 * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
3559 i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
3560 i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
d8700b1c 3561 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
e24609cf 3562
b8ce4e94
KT
35632011-04-11 Kai Tietz <ktietz@redhat.com>
3564
3565 PR target/9601
3566 PR target/11772
3567 * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
3568 * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
3569 comment.
3570 (ix86_is_msabi_thiscall): Removed.
3571 (ix86_is_type_thiscall): Likewise.
3572 (ix86_get_callcvt): New function.
3573 (ix86_comp_type_attributes): Simplify check.
3574 (ix86_function_regparm): Use ix86_get_callcvt for calling
3575 convention attribute checks.
3576 (ix86_return_pops_args): Likewise.
3577 (ix86_static_chain): Likewise.
3578 (x86_this_parameter): Likewise.
3579 (x86_output_mi_thunk): Likewise.
3580 (ix86_function_type_abi): Optimize check for types without attributes.
3581 * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
3582 IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
3583 IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
3584 by flag-values.
3585 (IX86_BASE_CALLCVT): Helper macro.
3586 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
3587 Use ix86_get_callcvt for calling convention attribute checks and avoid
3588 symbol-decoration for stdcall in TARGET_RTD case.
3589 * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
3590 Likewise.
3591 (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
3592 for declaration.
3593
798dd0ba
UB
35942011-04-11 Uros Bizjak <ubizjak@gmail.com>
3595
3596 * config/i386/sse.md (VI_128): New mode iterator.
3597 (VI12_128): Rename from SSEMODE12.
3598 (VI14_128): Rename from SSEMODE14.
3599 (VI124_128): New mode iterator.
3600 (VI24_128): Rename from SSEMODE248.
3601 (VI248_128): Rename from SSEMODE248.
3602 (SSEMODE124C8): Remove.
3603 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
3604 (*sse2_<plusminus_insn><mode>3): Merge with
3605 *avx_<plusminus_insn><mode>3.
3606 (*mulv8hi3): Merge with *avx_mulv8hi3.
3607 (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
3608 (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
3609 (*sse2_pmaddwd): Merge with *avx_pmaddwd.
3610 (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
3611 (ashr<mode>3): Merge with *avx_ashr<mode>3.
3612 (lshr<mode>3): Merge with *avx_lshr<mode>3.
3613 (ashl<mode>3): Merge with *avx_ashl<mode>3.
3614 (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
3615 (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
3616 (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
3617 (*<smaxmin:code>v8hi3): Ditto.
3618 (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
3619 (*<smaxmin:code>v16qi3): Ditto.
3620 (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
3621 (*sse2_eq<mode>3): Ditto.
3622 (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
3623 (*sse2_gt<mode>3): Ditto.
3624 (vcondv2di): Split out of vcond<mode>.
3625 (vconduv2di): Split out of vcondu<mode>.
3626
956011be
RG
36272011-04-11 Richard Guenther <rguenther@suse.de>
3628
3629 * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
3630 before calling tree_low_cst.
3631
e6313a78
RG
36322011-04-11 Richard Guenther <rguenther@suse.de>
3633
3634 * stor-layout.c (layout_type): Compute all array index size operations
3635 in the original type.
3636 (initialize_sizetypes): Add comment.
3637 (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
3638
e69d7376
JM
36392011-04-11 Joseph Myers <joseph@codesourcery.com>
3640
3641 * common.opt (Tbss=, Tdata=, Ttext=): New options.
3642
9f9ebcdf
MJ
36432011-04-11 Martin Jambor <mjambor@suse.cz>
3644
3645 * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
3646 of cgraph_node, handle NULL return value.
3647 (cgraph_global_info): Likewise.
3648 (cgraph_rtl_info): Likewise.
3649 * tree-inline.c (estimate_num_insns): Likewise.
3650 * gimplify.c (unshare_body): Likewise.
3651 (unvisit_body): Likewise.
3652 (gimplify_body): Likewise.
3653 * predict.c (optimize_function_for_size_p): Likewise.
3654 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
3655 (call_may_clobber_ref_p_1): Likewise.
3656 * varasm.c (function_section_1): Likewise.
3657 (assemble_start_function): Likewise.
3658
581985d7
MJ
36592011-04-11 Martin Jambor <mjambor@suse.cz>
3660
3661 * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
3662 of cgraph_node.
3663 * final.c (rest_of_clean_state): Likewise.
3664 * gimple-iterator.c (update_call_edge_frequencies): Likewise.
3665 * passes.c (pass_init_dump_file): Likewise.
3666 (execute_all_ipa_transforms): Likewise.
3667 (function_called_by_processed_nodes_p): Likewise.
3668 * predict.c (maybe_hot_frequency_p): Likewise.
3669 (probably_never_executed_bb_p): Likewise.
3670 (compute_function_frequency): Likewise.
3671 * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
3672 (unnest_nesting_tree_1): Likewise.
3673 (lower_nested_functions): Likewise.
3674 * tree-optimize.c (execute_fixup_cfg): Likewise.
3675 (tree_rest_of_compilation): Likewise.
3676 * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
3677 * tree-sra.c (ipa_early_sra): Likewise.
3678 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3679 * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
3680 * ipa.c (record_cdtor_fn): Likewise.
3681 * ipa-inline.c (cgraph_early_inlining): Likewise.
3682 (compute_inline_parameters_for_current): Likewise.
3683 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
3684 * ipa-pure-const.c (local_pure_const): Likewise.
3685 * ipa-split.c (split_function): Likewise.
3686 (execute_split_functions): Likewise.
3687 * cgraphbuild.c (build_cgraph_edges): Likewise.
3688 (rebuild_cgraph_edges): Likewise.
3689 (cgraph_rebuild_references): Likewise.
3690 (remove_cgraph_callee_edges): Likewise.
3691 * cgraphunit.c (cgraph_mark_if_needed): Likewise.
3692 (verify_cgraph_node): Likewise.
3693 (cgraph_analyze_functions): Likewise.
3694 (cgraph_preserve_function_body_p): Likewise.
3695 (save_inline_function_body): Likewise.
3696 (save_inline_function_body): Likewise.
3697 * tree-inline.c (copy_bb): Likewise.
3698 (optimize_inline_calls): Likewise.
3699
57dbdc5a
MJ
37002011-04-11 Martin Jambor <mjambor@suse.cz>
3701
3702 PR tree-optimization/48195
3703 * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
3704 ipa_check_create_edge_args.
3705 (ipcp_generate_summary): Do not call ipa_check_create_node_params and
3706 ipa_check_create_edge_args.
3707 * ipa-inline.c (inline_generate_summary): Do not call
3708 ipa_check_create_node_params and ipa_check_create_edge_args.
3709 * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
3710 ipa_check_create_edge_args.
3711
d108e679
AS
37122011-04-09 Anatoly Sokolov <aesok@post.ru>
3713
3714 * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
3715 instead of loop.
3716 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
3717 * function.c (record_hard_reg_sets): Likewise.
3718 * ira.c (compute_regs_asm_clobbered): Likewise.
3719 * sched-deps.c (sched_analyze_1): Likewise.
3720 * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
3721
3411bc59
XDL
37222011-04-09 Xinliang David Li <davidxl@google.com>
3723
3724 PR tree-optimization/PR48484
3725 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
3726 has_valid_pred lazily
3727
b365495a
DS
37282011-04-09 Duncan Sands <baldrick@free.fr>
3729
3730 * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
3731
68bc509a
EB
37322011-04-08 Eric Botcazou <ebotcazou@adacore.com>
3733
3734 * combine.c (combine_validate_cost): Adjust comments. Set registered
3735 cost of I0 to zero at the end, if any.
3736
041e059f
XDL
37372011-04-08 Xinliang David Li <davidxl@google.com>
3738
68bc509a
EB
3739 * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
3740 to insane profile data.
041e059f 3741
444b3995
XDL
37422011-04-08 Xinliang David Li <davidxl@google.com>
3743
3744 * ipa-cp.c (ipcp_update_profiling): Correct
3745 negative scale factor due to insane profile data.
3746
6a801cf2
XDL
37472011-04-08 Xinliang David Li <davidxl@google.com>
3748
3749 * final.c (dump_basic_block_info): New function.
3750 (final): Dump basic block.
3751 (final_scan_insn): Remove old dump.
3752
d5f3624e
SK
37532011-04-08 Steven G. Kargl <kargl@gcc.gnu.org>
3754
68bc509a
EB
3755 PR target/47829
3756 * config.gcc (i386-*-freebsd): Disable unwind table generation for
3757 crtbegin/crtend.
d5f3624e 3758
42821aff
MM
37592011-04-08 Michael Matz <matz@suse.de>
3760
3761 PR middle-end/48389
3762 * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
3763 functions.
3764 (rebuild_jump_labels): Call rebuild_jump_labels_1.
3765 * rtl.h (rebuild_jump_labels_chain): Declare.
3766 * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
3767 insns inserted on edges.
3768
ad7be009
JM
37692011-04-08 Joseph Myers <joseph@codesourcery.com>
3770
3771 * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
3772 * config/arm/arm-arches.def: New.
3773 * config/arm/arm-opts.h: New.
3774 * config/arm/genopt.sh: New.
3775 * config/arm/arm-tables.opt: New (generated).
3776 * config/arm/arm.c (arm_handle_option, arm_target_help,
3777 TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
3778 (all_architectures): Get most table contents from arm-arches.def.
3779 (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
3780 arm_selected_tune here.
3781 * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
3782 * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
3783 (march=, mcpu=, mtune=): Use Enum and Var.
3784 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
3785 (arm.o): Update dependencies.
ecbb6fb7 3786
42821aff 37872011-04-08 Basile Starynkevitch <basile@starynkevitch.net>
ecbb6fb7
BS
3788
3789 * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
3790 of header_file.
3791 (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
3792 (write_typed_alloc_defns): Likewise.
3793 (main): Calls write_typed_alloc_defns with output_header.
3794
8d189b3f
VM
37952011-04-08 Vladimir Makarov <vmakarov@redhat.com>
3796
68bc509a 3797 PR inline-asm/48435
8d189b3f
VM
3798 * ira-color.c (setup_profitable_hard_regs): Add comments.
3799 Don't take prohibited hard regs into account.
3800 (setup_conflict_profitable_regs): Rename to
3801 get_conflict_profitable_regs.
3802 (check_hard_reg_p): Check prohibited hard regs.
3803
44f370bf
NF
38042011-04-08 Nathan Froyd <froydnj@codesourcery.com>
3805
3806 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
3807 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
3808 * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
3809
483d7ad3
JDA
38102011-04-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3811
3812 PR target/48366
3813 * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
b8a17fa2 3814 move from floating point to shift amount register.
483d7ad3
JDA
3815 (emit_move_sequence): Remove secondary reload support for floating
3816 point to shift amount amount register copies.
3817 (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
3818 amount register copies.
3819 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
3820 register, return false if mode isn't a scalar integer mode.
3821 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
3822
97e03fa1
RG
38232011-04-08 Richard Guenther <rguenther@suse.de>
3824
3825 * gimple.c (gimple_call_flags): Remove kludge.
3826
9d40778b
AM
38272011-04-08 Alexander Monakov <amonakov@ispras.ru>
3828
3829 * sel-sched.c (sel_region_init): Move call to
3830 sel_setup_region_sched_flags after setup_current_loop_nest.
3831
19ac7892
AB
38322011-04-08 Andrey Belevantsev <abel@ispras.ru>
3833
3834 PR rtl-optimization/48272
19ac7892
AB
3835 * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
3836 init_insn_reg_pressure_info. Adjust a caller.
3837 * sched-int.h (init_insn_reg_pressure_info): Declare.
3838 * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
3839 when sched-pressure is enabled.
3840
0f8c63cc
RG
38412011-04-08 Richard Guenther <rguenther@suse.de>
3842
3843 * gimple.c (gimple_set_modified): Do not queue calls to
3844 MODIFIED_NORETURN_CALLS here ...
3845 * tree-ssa-operands.c (update_stmt_operands): ... but here.
3846
5e5a425e
RG
38472011-04-08 Richard Guenther <rguenther@suse.de>
3848
3849 PR lto/48467
3850 * toplev.c (lang_dependent_init): Do not open asm_out_file
3851 in WPA mode, nor perform debug machinery initialization.
3852 (finalize): Do not unlink asm_out_file in WPA mode.
3853
9bfc434b
RG
38542011-04-08 Richard Guenther <rguenther@suse.de>
3855
3856 * gimple.h (gimple_call_fntype): New function.
3857 (gimple_call_return_type): Use it.
3858 * expr.c (expand_expr_real_1): Use gimple_call_fntype.
3859 * gimple-low.c (gimple_check_call_args): Likewise.
3860 * gimple.c (gimple_call_flags): Likewise.
3861 (gimple_call_arg_flags): Likewise.
3862 (gimple_call_return_flags): Likewise.
3863 * tree-cfg.c (verify_gimple_call): Likewise.
3864 (do_warn_unused_result): Likewise.
3865 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
3866 * value-prof.c (gimple_ic_transform): Fix fndecl check.
3867
7c1f0b40
DM
38682011-04-08 Dmitry Melnik <dm@ispras.ru>
3869
3870 PR rtl-optimization/48235
3871 * sel-sched.c (code_motion_process_successors): Recompute the last
3872 insn in basic block if control flow changed.
3873 (code_motion_path_driver): Ditto. Recompute the first insn as well.
3874 Update condition for ilist_remove.
3875
ea4d630f
AM
38762011-04-08 Alexander Monakov <amonakov@ispras.ru>
3877
3878 PR rtl-optimization/48302
3879 * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
3880 * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument. Use
3881 it to record added preheader blocks.
3882 * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument. Pass it
3883 on to sel_add_loop_preheaders.
3884 (sel_region_init): Move call to setup_current_loop_nest after
3885 sel_init_bbs.
3886
07643d76
AM
38872011-04-08 Alexander Monakov <amonakov@ispras.ru>
3888
3889 PR target/48273
3890 * cfgloop.h (loop_has_exit_edges): New helper.
3891 * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
3892 non-clonable.
3893 * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
3894 that have no exit edges.
3895
1f3b2b4e
AM
38962011-04-08 Alexander Monakov <amonakov@ispras.ru>
3897
3898 PR rtl-optimization/48442
3899 * sel-sched.c (init_seqno): Remove number_of_insns argument. Update
3900 all callers. Adjust assert.
3901
554f1948
JJ
39022011-04-08 Jakub Jelinek <jakub@redhat.com>
3903
3904 PR tree-optimization/48377
3905 * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
3906 is_packed to true even for types with smaller TYPE_ALIGN than
3907 TYPE_SIZE.
3908
ddf72388
RG
39092011-04-08 Richard Guenther <rguenther@suse.de>
3910
3911 PR bootstrap/48513
3912 * doc/tm.texi: Re-generate.
3913
0c27e2d8
WG
39142011-04-08 Wei Guozhi <carrot@google.com>
3915
3916 PR target/47855
3917 * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
3918 * config/arm/arm.c (arm_attr_length_push_multi): New function.
3919 * config/arm/arm.md (*push_multi): Change the length computation to
3920 call a C function.
3921
07c5f94e
AS
39222011-04-08 Anatoly Sokolov <aesok@post.ru>
3923
3924 * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
3925 (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
3926 * doc/tm.texi: Regenerate.
3927 * system.h (ASM_OUTPUT_BSS): Poison.
3928 * varasm.c (asm_output_bss): Remove function.
3929 (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
798dd0ba 3930
07c5f94e
AS
3931 * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
3932 * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
3933 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
3934 * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3935 Likewise.
3936 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3937 Likewise.
3938 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
3939 Likewise.
3940 * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3941
5f2c36e1
JM
39422011-04-07 Joseph Myers <joseph@codesourcery.com>
3943
3944 * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
3945 EnumValue lines.
3946
39e7722b
JM
39472011-04-07 Joseph Myers <joseph@codesourcery.com>
3948
3949 * config/m68k/m68k.c (m68k_handle_option): Don't handle
3950 OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
3951 OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
3952 OPT_mcpu32.
3953 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
3954 handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
3955 -m68030, -m68040, -m68060, -mcpu32 and -m68332.
3956 * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
3957 m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
3958 * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
3959 (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
3960 (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
3961 options. Don't map other m68k options manually. Don't handle
3962 old-style options as canonical.
3963 (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
798dd0ba 3964 * doc/install.texi (m68k-*-*): Document binutils version requirement.
39e7722b 3965
cf103ca4
EB
39662011-04-07 Eric Botcazou <ebotcazou@adacore.com>
3967
3968 * basic-block.h (force_nonfallthru): Move to...
3969 * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
3970 (force_nonfallthru): ...here.
3971 * cfghooks.c (force_nonfallthru): New function.
3972 * cfgrtl.c (force_nonfallthru): Rename into...
3973 (rtl_force_nonfallthru): ...this.
3974 (commit_one_edge_insertion): Do not set AUX field.
3975 (commit_edge_insertions): Do not discover new basic blocks.
3976 (rtl_cfg_hooks): Add rtl_force_nonfallthru.
3977 (cfg_layout_rtl_cfg_hooks): Likewise.
3978 * function.c (thread_prologue_and_epilogue_insns): Remove bogus
3979 ATTRIBUTE_UNUSED. Discover new basic blocks in the prologue insns.
3980 * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
3981
14431f58
AS
39822011-04-07 Anatoly Sokolov <aesok@post.ru>
3983
3984 * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
3985 Remove macros.
3986
3729983c
UB
39872011-04-07 Uros Bizjak <ubizjak@gmail.com>
3988
3989 * config/i386/sse.md: Update copyright year.
3990 (avxcvtvecmode): Remove.
3991 (sse_movhlps): Merge with *avx_movhlps.
3992 (sse_movlhps): Merge with *avx_movlhps.
3993 (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
3994 (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
3995 (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
3996 (sse_loadhps): Merge with *avx_loadhps.
3997 (sse_storelps): Merge with *avx_storelps.
3998 (sse_loadlps): Merge with *avx_loadlps.
3999 (sse_movss): Merge with *avx_movss.
4000 (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
4001 (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
4002 (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
4003 (*vec_set<mode>_0_sse2): Split multi-unit alternative.
4004 (vec_set<mode>_0): Ditto.
4005 (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
4006 (sse4_1_insertps): Merge with *avx_insertps.
4007 (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
4008 (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
4009 (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
4010 (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
4011 (sse2_storehpd): Merge with *avx_storehpd.
4012 (sse2_loadhpd): Merge with *avx_loadhpd.
4013 (sse2_loadlpd): Merge with *avx_loadlpd.
4014 (sse2_movsd): Merge with *avx_movsd.
4015 (*vec_concatv2df): Merge with *vec_concatv2df.
4016
4e626909
JJ
40172011-04-07 Jakub Jelinek <jakub@redhat.com>
4018
4019 PR debug/48343
4020 * combine.c (combine_instructions): Add last_combined_insn,
3729983c 4021 update it if insn is after it, pass it to all try_combine calls.
4e626909
JJ
4022 (try_combine): Add last_combined_insn parameter, pass it instead of
4023 i3 to propagate_for_debug.
4024
3729983c 40252011-04-07 Nick Clifton <nickc@redhat.com>
5a10b0a9
NC
4026
4027 * config/mn10300/mn10300.md (movqi_internal): Add alternatives
4028 to handle MDR <-> data register transfers.
4029 (movhi_internal): Likewise.
4030
20c03367
AM
40312011-04-07 Alan Modra <amodra@gmail.com>
4032
4033 * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
4034 previous stack info.
4035
bf22920b
TV
40362011-04-07 Tom de Vries <tom@codesourcery.com>
4037
4038 PR target/43920
4039 * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter. Pass dir to
4040 flow_find_cross_jump. Swap variables to implement backward replacement.
4041 (try_crossjump_bb): Add argument to try_crossjump_to_edge.
4042
823918ae
TV
40432011-04-07 Tom de Vries <tom@codesourcery.com>
4044
4045 PR target/43920
4046 * cfgcleanup.c (walk_to_nondebug_insn): New function.
3729983c
UB
4047 (flow_find_cross_jump): Use walk_to_nondebug_insn. Recalculate bb1
4048 and bb2.
4049 (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
4050 src1 or src2. Redirect edges to the last basic block. Update
4051 frequency and count on multiple basic blocks in case of fallthru.
823918ae 4052
472c95f5
TV
40532011-04-07 Tom de Vries <tom@codesourcery.com>
4054
4055 PR target/43920
4056 * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
4057 function.
3729983c
UB
4058 (old_insns_match_p): Change return type. Replace return false/true
4059 with return dir_none/dir_both. Use can_replace_by.
4060 (flow_find_cross_jump): Add dir_p parameter. Init replacement
4061 direction from dir_p. Register replacement direction in dir, last_dir
4062 and afterlast_dir. Handle new return type of old_insns_match_p using
472c95f5
TV
4063 merge_dir. Return replacement direction in dir_p.
4064 (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
4065 return type of old_insns_match_p.
4066 (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
4067 * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
4068 flow_find_cross_jump.
4069 * basic-block.h (enum replace_direction): New type.
4070 (flow_find_cross_jump): Add parameter to declaration.
4071
a95d4000
UB
40722011-04-06 Uros Bizjak <ubizjak@gmail.com>
4073
4074 * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
4075 (AVXMODEDCVTPS2DQ): Ditto.
4076 (VEC_FLOAT_MODE): Ditto.
4077 (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3. Use VF mode
4078 iterator. Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4079 (<any_logic:code><mode>3): Use VF mode iterator.
4080 (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
4081 Use VF mode iterator.
4082 (copysign<mode>3): Use VF mode iterator.
4083 (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3. Handle
4084 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
4085 (*<any_logic:code><MODEF:mode>3): Merge with
4086 *avx_<any_logic:code><MODEF:mode>3.
4087 (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
4088 (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
4089 (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
4090 (avx_cvtdq2ps<avxmodesuffix>): Remove.
4091 (sse2_cvtdq2ps): Use %v modifier.
4092 (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
4093 (avx_cvtps2dq<avxmodesuffix>): Remove.
4094 (sse2_cvtps2dq): Use %v modifier.
4095 (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
4096 (avx_cvttps2dq<avxmodesuffix>): Remove.
4097 (sse2_cvttps2dq): Use %v modifier.
4098 (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
4099 (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
4100 (sse2_cvtsd2siq): Fix insn template.
4101 (sse2_cvtsd2siq_2): Ditto.
4102 (sse2_cvttsd2siq): Ditto.
4103 (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
4104 (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
4105
ad01c437
JM
41062011-04-06 Joseph Myers <joseph@codesourcery.com>
4107
4108 * gcov-io.c: Use GCC Runtime Library Exception.
4109
fe846284
JJ
41102011-04-06 Jakub Jelinek <jakub@redhat.com>
4111
4112 PR debug/48466
4113 * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
4114 as base_reg whatever register reg has been eliminated to, instead
4115 of hardcoding STACK_POINTER_REGNUM.
4116
acce4e77
JM
41172011-04-06 Joseph Myers <joseph@codesourcery.com>
4118
4119 * doc/tm.texi.in: Document C target hooks as separate from general
4120 target hooks.
4121 * doc/tm.texi: Regenerate.
4122 * genhooks.c (struct hook_desc): Add docname field.
4123 (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC). Initialize
4124 docname field.
4125 (hook_array): Include c-target.def.
4126 (emit_documentation): Use docname field in output.
4127 (emit_init_macros): Take docname argument. Only emit definitions
4128 for hooks matching docname.
4129 (main): Expect additional arguments in all cases. Pass argument
4130 to emit_init_macros.
4131 * target.def: Move initial macro definitions and comments to
4132 target-hooks-macros.h.
4133 (gcc_targetcm): Move to c-family/c-target.def.
4134 * target.h (targetcm): Move declaration to c-family/c-target.h.
4135 * targhooks.c (default_handle_c_option): Move to
4136 c-family/c-opts.c.
4137 * targhooks.h (default_handle_c_option): Move declaration to
4138 c-family/c-common.h.
4139 * target-hooks-macros.h: New file.
4140 * config.gcc (target_has_targetcm): Define and use to add to
4141 c_target_objs and cxx_target_objs.
4142 * config/default-c.c: New file.
4143 * config/darwin-c.c: Include c-target.h and c-target-def.h instead
4144 of target.h and target-def.h.
4145 (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
4146 (darwin_objc_construct_string, darwin_cfstring_ref_p,
4147 darwin_check_cfstring_format_arg): Make static.
4148 (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4149 TARGET_STRING_OBJECT_REF_TYPE_P,
4150 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
4151 * config/darwin-protos.h (darwin_objc_construct_string,
4152 darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
4153 declare.
4154 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
4155 TARGET_STRING_OBJECT_REF_TYPE_P,
a95d4000 4156 TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
acce4e77
JM
4157 * config/t-darwin (darwin-c.o): Update dependencies.
4158 * system.h (TARGET_HAS_TARGETCM): Poison.
4159 * Makefile.in (TARGET_H): Update.
4160 (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
4161 (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
4162 (default-c.o): New target.
4163 (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
a95d4000 4164 (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
acce4e77
JM
4165 (s-tm-texi): Pass -d option to genhooks. Also test timestamp on
4166 c-target.def.
4167 (build/genhooks.o): Update dependencies.
4168
275b4baa 41692011-04-06 Richard Guenther <rguenther@suse.de>
a95d4000 4170
275b4baa
RG
4171 * ipa-inline.c (enum inlining_mode): Remove.
4172 (cgraph_flatten): Use some other token.
4173 (cgraph_edge_early_inlinable_p): New function, split out from ...
4174 (cgraph_perform_always_inlining): New function, split out from ...
4175 (cgraph_decide_inlining_incrementally): ... here.
4176 (cgraph_mark_inline_edge): Adjust.
4177 (cgraph_early_inlining): Re-structure.
4178 (pass_early_inline): Require SSA form.
4179
f15b8bdf 41802011-04-06 Andrew Stubbs <ams@codesourcery.com>
9adc580c
AS
4181 Julian Brown <julian@codesourcery.com>
4182 Mark Shinwell <shinwell@codesourcery.com>
4183
4184 * config/arm/arm.h (arm_class_likely_spilled_p): Check against
4185 LO_REGS only for Thumb-1.
4186 (MODE_BASE_REG_CLASS): Restrict base registers to those which can
4187 be used in short instructions when optimising for size on Thumb-2.
4188
516426da
EB
41892011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4190
4191 * gimple-low.c (lower_gimple_return): When not optimizing, force labels
4192 associated with user returns to be preserved.
4193
96621ebf
TG
41942011-04-06 Tristan Gingold <gingold@adacore.com>
4195
f15b8bdf
EB
4196 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
4197 symbol_queue_size, DBXOUT_DECR_NESTING,
96621ebf
TG
4198 (DBXOUT_DECR_NESTING_AND_RETURN): Also define
4199 if XCOFF_DEBUGGING_INFO.
4200
07c0852e
UB
42012011-04-06 Uros Bizjak <ubizjak@gmail.com>
4202
4203 * config/i386/i386.md (attribute isa): New.
4204 (attribute enabled): New.
4205 (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
4206 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
4207 (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
4208 (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
4209 (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
4210 (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4211 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
4212 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
4213
4214 * config/i386/sse.md (VF): New mode iterator.
4215 (VF1): Ditto.
4216 (VF2): Ditto.
4217 (VF_128): Ditto.
4218 (SSEMODEF4): Remove.
4219 (attribute sse): Handle V8SF and V4DF modes.
4220 (<absneg:code><mode>2): Use VF mode iterator.
4221 (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2. Use VF
4222 mode iterator.
4223 (<plusminus_insn><mode>3): Use VF mode iterator.
4224 (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
4225 Use VF mode iterator.
4226 (<sse>_vm<plusminus_insn><mode>3): Merge with
4227 *avx_vm<plusminus_insn><mode>3. Use VF_128 mode iterator.
4228 (mul<mode>3): Use VF mode iterator.
4229 (*mul<mode>3): Merge with *avx_mul<mode>3. Use VF mode iterator.
4230 (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3. Use VF_128
4231 mode iterator.
4232 (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
4233 (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
4234 (<sse>_div<mode>3): Merge with *avx_div<mode>3. Use VF mode iterator.
4235 (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3. Use VF_128
4236 mode iterator.
4237 (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
4238 Use VF1 mode iterator.
4239 (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
4240 (sqrt<VF2:mode>2): New expander.
4241 (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
4242 (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
4243 and sqrtv2df2. Use VF mode iterator.
4244 (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2. Use VF_128
4245 mode iterator.
4246 (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
4247 (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
4248 Use VF1 mode iterator.
4249 (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
4250 (<smaxmin:code><mode>3): Use VF mode iterator.
4251 (*<smaxmin:code><mode>3_finite): Merge with
4252 *avx_<smaxmin:code><mode>3_finite. Use VF mode iterator.
4253 (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
4254 (<sse>_vm<smaxmin:code><mode>2): Merge with
4255 *avx_vm<smaxmin:code><mode>2. Use VF_128 mode iterator.
4256 (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3. Use VF
4257 mode iterator.
4258 (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3. Use VF
4259 mode iterator.
4260 (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
4261 (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
4262 (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
4263 (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
4264 (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3. Use
4265 VF mode iterator.
4266 (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
4267 Use VF_128 mode iterator.
4268 (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3. Use VF
4269 mode iterator.
4270 (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3. Use
4271 VF_128 mode iterator.
4272 (vcond<mode>): Use VF mode iterator.
4273 * config/i386/predicates.md (sse_comparison_operator): Merge with
4274 avx_comparison_float_operator. Do not declare as special_predicate.
4275 * config/i386/i386.c (struct builtin_description): Update for renamed
4276 compare patterns.
4277 (ix86_expand_args_builtin): Ditto.
4278 (ix86_expand_sse_compare_mask): Ditto.
4279
ff5d142c
RG
42802011-04-06 Richard Guenther <rguenther@suse.de>
4281
4282 * tree-inline.c (estimate_num_insns): For calls simply account
4283 for all passed arguments and a used return value.
4284
d7d1d041 42852011-04-06 Richard Guenther <rguenther@suse.de>
07c0852e 4286
d7d1d041
RG
4287 PR tree-optimization/47663
4288 * cgraph.h (struct cgraph_edge): Add call_stmt_size and
4289 call_stmt_time fields.
4290 (cgraph_edge_inlinable_p): Declare.
4291 (cgraph_edge_recursive_p): New inline function.
4292 * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
4293 (cgraph_clone_edge): Copy it.
4294 * ipa-inline.c (cgraph_estimate_edge_time): New function.
4295 Account for call stmt time.
4296 (cgraph_estimate_time_after_inlining): Take edge argument.
4297 (cgraph_estimate_edge_growth): Account call stmt size.
4298 (cgraph_estimate_size_after_inlining): Take edge argument.
4299 (cgraph_mark_inline_edge): Adjust.
4300 (cgraph_check_inline_limits): Likewise.
4301 (cgraph_recursive_inlining_p): Remove.
4302 (cgraph_edge_badness): Use cgraph_edge_recursive_p.
4303 (cgraph_decide_recursive_inlining): Take edge argument and
4304 adjust.
4305 (cgraph_decide_inlining_of_small_functions): Do not avoid
4306 diags for recursive inlining here.
4307 (cgraph_flatten): Adjust.
4308 (cgraph_decide_inlining_incrementally): Likewise.
4309 (estimate_function_body_sizes): Remove call cost handling.
4310 (compute_inline_parameters): Initialize caller edge call costs.
4311 (cgraph_estimate_edge_growth): New function.
4312 (cgraph_estimate_growth): Use it.
4313 (cgraph_edge_badness): Likewise.
4314 (cgraph_check_inline_limits): Take an edge argument.
4315 (cgraph_decide_inlining_of_small_functions): Adjust.
4316 (cgraph_decide_inlining): Likewise.
4317 * tree-inline.c (estimate_num_insns): Only account for call
4318 return value if it is used.
4319 (expand_call_inline): Avoid diagnostics on recursive inline
4320 functions here.
4321 * lto-cgraph.c (lto_output_edge): Output edge call costs.
4322 (input_edge): Input edge call costs.
4323
2feb95f7
RO
43242011-04-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4325
4326 * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
4327
26fbd9c2
JW
43282011-04-06 Jonathan Wakely <jwakely.gcc@gmail.com>
4329
4330 * doc/invoke.texi (Spec Files): Fix typo.
4331
694dc0ca
EB
43322011-04-06 Eric Botcazou <ebotcazou@adacore.com>
4333
4334 * profile.c (branch_prob): Move declaration of local variable. Remove
4335 obsolete ??? comment. Expand the location explicitly instead of using
4336 the LOCATION_FILE and LOCATION_LINE macros.
4337
4925d0d5
WG
43382011-04-06 Wei Guozhi <carrot@google.com>
4339
4340 PR target/47855
4341 * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
4342 (arm_cond_branch): Likewise.
4343 (arm_cond_branch_reversed): Likewise.
4344 (arm_jump): Likewise.
4345 (push_multi): Likewise.
4346 * config/arm/constraints.md (Py): New constraint.
4347
f55dfa2f
NF
43482011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4349
4350 PR bootstrap/48471
4351 * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
4352 Move these...
4353 (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
4354 (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
4355 #ifdef DBX_DEBUGGING_INFO.
4356
fca96842
BS
43572011-04-05 Bernd Schmidt <bernds@codesourcery.com>
4358
4359 PR bootstrap/48403
4360 * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
4361 if old and new states differ.
4362
30b83e38
JM
43632011-04-05 Joseph Myers <joseph@codesourcery.com>
4364
4365 * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
4366 OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
4367 * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
4368 handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
4369 * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
4370 mcfv4e): Use Alias.
4371 * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
4372 ColdFire options to -mcpu= options.
4373
277a9aa5
JL
43742011-04-05 Jeff Law <law@redhat.com>
4375
4376 * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
4377 check if BB is a successor of LOOP->header and return
4378 NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
4379
c1e2610e
SB
43802011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4381
4382 * cprop.c (struct reg_use): Remove.
4383 (reg_use_table): Make an array of RTX.
4384 (find_used_regs, constprop_register, local_cprop_pass,
4385 bypass_block): Simplify users of reg_use_table.
4386 (cprop_insn): Likewise. Iterate if copy propagation succeeded
4387 on one of the uses found by find_used_regs.
4388
e532f586
NF
43892011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4390
4391 PR bootstrap/48469
4392 * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
4393 declaration.
4394
3fb7c055
NF
43952011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4396
4397 * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
4398 as an rtx.
4399 (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
4400
b71b43d9
SB
44012011-04-05 Steven Bosscher <steven@gcc.gnu.org>
4402
4403 PR middle-end/48441
4404 * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
4405
b405b274
NF
44062011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4407
4408 * combine.c: Include obstack.h.
4409 (struct insn_link): Define.
4410 (uid_log_links): Adjust type.
4411 (FOR_EACH_LOG_LINK): New macro.
4412 (insn_link_obstack): Declare.
4413 (alloc_insn_link): Define.
4414 (create_log_links): Call it. Use FOR_EACH_LOG_LINK and adjust
4415 type of link variables.
4416 (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
4417 (try_combine, record_promoted_values, distribute_notes): Likewise.
4418 (distribute_links): Likewise. Tweak prototype.
4419 (clear_log_links): Delete.
4420 (adjust_for_new_dest): Call alloc_insn_link.
4421 * Makefile.in (combine.o): Depend on $(OBSTACK_H).
4422
6409abe3
NF
44232011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4424
4425 * gcse.c (modify_mem_list): Convert to an array of VECs.
4426 (canon_modify_mem_list, compute_transp): Tweak formatting.
4427 (alloc_gcse_mem): Likewise. Adjust for modify_mem_list change.
4428 (load_killed_in_block_p): Likewise.
4429 (record_last_mem_set_info): Likewise.
4430 (clear_modify_mem_tables): Likewise.
4431
170d8157
TV
44322011-04-05 Tom de Vries <tom@codesourcery.com>
4433
4434 PR middle-end/48461
4435 * function.c (emit_use_return_register_into_block): Only define if
4436 HAVE_return.
4437
c5911a55
EB
44382011-04-05 Eric Botcazou <ebotcazou@adacore.com>
4439
4440 * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
4441
abd016e6
JM
44422011-04-05 Joseph Myers <joseph@codesourcery.com>
4443
4444 * config/rx/rx-opts.h: New.
4445 * config/rx/rx.c (rx_cpu_type): Remove.
4446 (rx_handle_option): Don't assert that global structures are in
4447 use. Access variables via opts pointer. Defer most handling of
4448 OPT_mint_register_. Use error_at.
4449 (rx_option_override): Handle deferred OPT_mint_register_ here.
4450 * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
4451 * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
4452 (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
4453 (rx_cpu_types): New Enum and EnumValue entries.
4454 (mint-register=): Use Defer and use Var accordingly.
4455
1ed13f83
NF
44562011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4457
4458 * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
4459 (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
4460 * final.c (debug_flush_symbol_queue, debug_queue_symbol):
4461 Move these...
4462 (debug_free_queue, debug_nesting, symbol_queue_index):
4463 ...and these...
4464 * dbxout.c: ...to here. Make static.
4465
6ce1edcf
NF
44662011-04-05 Nathan Froyd <froydnj@codesourcery.com>
4467
4468 * gcse.c (modify_pair): Define. Define a VEC of it.
4469 (canon_modify_mem_list): Convert to an array of VECs.
4470 (free_insn_expr_list_list): Delete.
4471 (clear_modify_mem_tables): Call VEC_free instead.
4472 (record_last_mem_set_info): Don't modify canon_modify_mem_list.
4473 (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
4474 (canon_list_insert, compute_transp): Likewise.
4475
c201ac94
TV
44762011-04-05 Tom de Vries <tom@codesourcery.com>
4477
4478 PR target/43920
4479 * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
4480 for size.
4481
4c029f40
TV
44822011-04-05 Tom de Vries <tom@codesourcery.com>
4483
4484 PR target/43920
4485 * function.c (emit_use_return_register_into_block): New function.
4486 (thread_prologue_and_epilogue_insns): Use
4487 emit_use_return_register_into_block.
4488
2a562b0a
TV
44892011-04-05 Tom de Vries <tom@codesourcery.com>
4490
4491 PR target/43920
4492 * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
4493 insn.
4494
0248bceb
TV
44952011-04-05 Tom de Vries <tom@codesourcery.com>
4496
4497 * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
4498
ffa94123
YZ
44992011-04-05 Yufeng Zhang <yufeng.zhang@arm.com>
4500
798dd0ba
UB
4501 * config/arm/arm.md (define_constants for unspec): Replace with
4502 define_c_enum.
4503 (define_constants for unspecv): Replace with define_c_enum.
4504 * config/arm/neon.md (define_constants for unspec): Replace with
4505 define_c_enum.
ffa94123 4506
3b8f9b46
RH
45072011-04-04 Richard Henderson <rth@redhat.com>
4508
720cf80f 4509 PR bootstrap/48400
3b8f9b46
RH
4510 * dwarf2out.c (output_line_info): Always emit line info from
4511 at least one section.
4512 (dwarf2out_init): Create text_section_line_info here ...
4513 (set_cur_line_info_table): ... not here.
4514
720cf80f 45152011-04-04 Vladimir Makarov <vmakarov@redhat.com>
e5b0e1ca
VM
4516
4517 PR target/48380
4518 * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
720cf80f 4519 not called.
e5b0e1ca 4520
720cf80f 4521 * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
e5b0e1ca 4522
196565d4
SB
45232011-04-04 Steven Bosscher <steven@gcc.gnu.org>
4524
b77f9eab
SB
4525 * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
4526 (expr_equiv_p): Remove.
4527 (insert_set_in_table): Look at <dest, src> pair instead of expr.
4528 (hash_scan_set): Update call to insert_set_in_table.
4529 (dump_hash_table): Dump <dest, src> pair.
4530 (lookup_set): Simplify. Lookup <dest, src> pair.
4531 (compute_transp): Remove, fold heavily simplified code into...
4532 (compute_local_properties): ...here. Expect COMP and TRANSP
4533 unconditionally.
4534 (find_avail_set): Take set directly from struct expr.
4535 (find_bypass-set): Likewise.
4536 (bypass_block): Likewise.
4537 (cprop_insn): Likewise. Remove redundant INSN_P test.
4538
384d7a55
SB
4539 * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
4540 checks on form of COND from find_implicit_sets to here.
4541 (find_implicit_sets): Cleanup control flow. Split critical edges
4542 if it exposes implicit sets. Allocate/resize implicit_sets as
4543 necessary.
4544 (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
4545 changed something. Run df_analyze after find_implicit_sets if any
4546 edges were split. Do not allocate implicit_sets here.
4547
3084ce69
SB
4548 * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
4549 (gcse_obstack): Renamed to cprop_obstack.
4550 (GNEW, GNEWVEC, GNEWVAR): Remove.
4551 (gmalloc): Remove.
4552 (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
4553 (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
4554 (gcse_alloc): Likewise, and rename to cprop_alloc.
4555 (alloc_gcse_men, free_gcse_mem): Remove.
4556 (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
4557 (compute_hash_table_work): Allocate and free reg_set_bitmap here.
4558 (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
4559
196565d4
SB
4560 * cprop.c (oprs_not_set_p): Remove.
4561 (mark_set, mark_clobber): Remove.
4562 (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
4563 (reg_not_set_p): New function.
4564 (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
4565 (cprop_insn): Likewise.
4566 (cprop_jump): Use FOR_EACH_EDGE.
4567
9b69cf83
BS
45682011-04-04 Bernd Schmidt <bernds@codesourcery.com>
4569
4570 PR bootstrap/48403
4571 * haifa-sched.c (nonscheduled_insns_begin): New static variable.
4572 (rank_for_schedule): Use scheduled_insns vector instead of
4573 last_scheduled_insn.
4574 (ok_for_early_queue_removal): Likewise.
4575 (queue_to_ready): Search forward in nonscheduled_insns_begin if
4576 we have a dbg_cnt.
4577 (choose_ready): Likewise.
4578 (commit_schedule): Use VEC_iterate.
4579 (schedule_block): Initialize nonscheduled_insns_begin. If we have
4580 a dbg_cnt, use it and ensure the first insn is in the ready list.
4581 (haifa_sched_init): Allocate scheduled_insns.
4582 (sched_extend_ready_list): Don't allocate it; reserve space.
4583 (haifa_sched_finish): Free it.
4584
24f48c2f
JM
45852011-04-04 Joseph Myers <joseph@codesourcery.com>
4586
4587 * optc-gen.awk: Always remove type from Variable entry before
4588 recording in var_seen.
4589
8effe856
EB
45902011-04-04 Eric Botcazou <ebotcazou@adacore.com>
4591
4592 * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
4593 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
4594 call to tidy_fallthru_edges.
4595
413519ae
JM
45962011-04-04 Joseph Myers <joseph@codesourcery.com>
4597
4598 * doc/options.texi (ToLower): Document.
3729983c 4599 * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
413519ae
JM
4600 * opts-common.c (decode_cmdline_option): Handle cl_tolower.
4601 * opts.h (cl_option): Add cl_tolower field.
4602 * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
4603 arguments with lowercase strings.
4604 * config/rx/rx.opt (mcpu=): Add ToLower.
4605 * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
4606 argument.
4607
7d34a1b0
RS
46082011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4609
4610 * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
4611
c30e7434
RS
46122011-04-04 Richard Sandiford <richard.sandiford@linaro.org>
4613
4614 * config/vax/vax.c: Include reload.h.
4615
112a861d
AS
46162011-04-04 Anatoly Sokolov <aesok@post.ru>
4617
4618 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
4619 * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
4620 (sparc_preferred_reload_class): New function.
4621
e8c6bb74
JJ
46222011-04-04 Jakub Jelinek <jakub@redhat.com>
4623
2aeaa366 4624 PR debug/48401
e8c6bb74
JJ
4625 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
4626 Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
4627
2c081caf
NF
46282011-04-03 Nathan Froyd <froydnj@codesourcery.com>
4629
4630 * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
4631 * tree.c (initialize_tree_contains_struct): Adjust accordingly.
4632
53802f27
AS
46332011-04-03 Anatoly Sokolov <aesok@post.ru>
4634
4635 * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
4636 (ASM_OUTPUT_ALIGNED_BSS): Define.
4637
e89964e3
MM
46382011-04-03 Michael Matz <matz@suse.de>
4639
4640 * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
4641 and next_slot members.
4642 (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
4643 lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
4644 (lto_streamer_cache_append): Declare.
4645 * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
4646 unsigned index, remove offset parameter, ensure that we append
4647 or update existing entries.
4648 (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
4649 parameter, update next_slot for append.
4650 (lto_streamer_cache_insert): Use unsigned index, remove offset_p
4651 parameter.
4652 (lto_streamer_cache_insert_at): Likewise.
4653 (lto_streamer_cache_append): New function.
4654 (lto_streamer_cache_lookup): Use unsigned index.
4655 (lto_streamer_cache_get): Likewise.
4656 (lto_record_common_node): Don't test tree_node_can_be_shared.
4657 (preload_common_node): Adjust call to lto_streamer_cache_insert.
4658 (lto_streamer_cache_delete): Don't free offsets member.
4659 * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
4660 (lto_output_string_with_length): Use lto_output_data_stream.
4661 (lto_output_tree_header): Remove ix parameter, don't write it.
4662 (lto_output_builtin_tree): Likewise.
4663 (lto_write_tree): Adjust callers to above, don't track and write
4664 offset, write unsigned index.
4665 (output_unreferenced_globals): Don't emit all global vars.
4666 (write_global_references): Use unsigned indices.
4667 (lto_output_decl_state_refs): Likewise.
4668 (write_symbol): Likewise.
4669 * lto-streamer-in.c (lto_input_chain): Move earlier.
4670 (input_function): Use unsigned index.
4671 (input_alias_pairs): Don't read and then ignore all global vars.
4672 (lto_materialize_tree): Remove ix_p parameter, don't read index,
4673 don't pass it back, use lto_streamer_cache_append.
4674 (lto_register_var_decl_in_symtab): Use unsigned index.
4675 (lto_register_function_decl_in_symtab): Likewise.
4676 (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
4677 index.
4678 (lto_get_builtin_tree): Don't read index, use
4679 lto_streamer_cache_append.
4680 (lto_read_tree): Adjust call to lto_materialize_tree.
4681
4682 * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
4683 don't use function calls in arguments to MIN.
4684
4685 * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
4686 twice.
4687
4688 * gimple.c (gimple_type_leader_entry): Mark deletable.
4689
b9a5b5b2
AM
46902011-04-03 Alan Modra <amodra@gmail.com>
4691
4692 * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
4693
ac6a641b
MM
46942011-04-03 Michael Matz <matz@suse.de>
4695
4696 * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
4697 an integer.
4698 * tree.h (tree_decl_non_common.vindex): Adjust comment.
4699
0038d4e0
MM
47002011-04-03 Michael Matz <matz@suse.de>
4701
e9c18386 4702 * cgraphbuild.c (record_reference): Canonicalize constructor values.
0038d4e0
MM
4703 * gimple-fold.c (canonicalize_constructor_val): Accept being called
4704 without function context.
4705 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
4706 current_function_decl and cfun.
4707
91f2fae8
MM
47082011-04-03 Michael Matz <matz@suse.de>
4709
4710 * tree.c (decl_init_priority_insert): Don't create entry for
4711 default priority.
4712 (decl_fini_priority_insert): Ditto.
4713 (fields_compatible_p, find_compatible_field): Remove.
4714 * tree.h (fields_compatible_p, find_compatible_field): Remove.
4715 * gimple.c (gimple_compare_field_offset): Adjust block comment.
4716
da29e070
EB
47172011-04-03 Eric Botcazou <ebotcazou@adacore.com>
4718
4719 * combine.c (try_combine): Remove useless local variable.
4720
4979c28b 47212011-04-03 Richard Guenther <rguenther@suse.de>
91f2fae8 4722 Ira Rosen <ira.rosen@linaro.org>
4979c28b
RG
4723
4724 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
4725 non-variable offsets and compare the remaining bases of the two
4726 accesses instead of looking for exact same data-ref.
4727
b4ddcaee
KT
47282011-04-02 Kai Tietz <ktietz@redhat.com>
4729
f90298e1
KT
4730 PR target/48416
4731 * i386.c (ix86_function_arg_boundary): Fix printf formatter.
4732
b4ddcaee
KT
4733 * i386.c (ix86_is_msabi_thiscall): New helper function.
4734 (ix86_is_type_thiscall): New helper function.
4735 (ix86_comp_type_attributes): Handle thiscall for method-functions
4736 special.
4737 (init_cumulative_args): Likewise.
4738 (find_drap_reg): Likewise.
4739 (ix86_static_chain): Likewise.
4740 (x86_this_parameter): Likewise.
4741 (x86_output_mi_thunk): Likewise.
4742
2a9d769a 47432011-04-01 Olivier Hainque <hainque@adacore.com>
91f2fae8
MM
4744 Nicolas Setton <setton@adacore.com>
4745 Eric Botcazou <ebotcazou@adacore.com>
2a9d769a
OH
4746
4747 * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
4748 (add_gnat_descriptive_type_attribute): New function.
4749 (gen_array_type_die): Call it.
4750 (gen_enumeration_type_die): Likewise.
4751 (gen_struct_or_union_type_die): Likewise.
4752 (modified_type_die): Likewise.
4753 * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
4754 * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
4755 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
4756
15a03a11
JJ
47572011-04-01 Jakub Jelinek <jakub@redhat.com>
4758
4759 PR bootstrap/48148
4760 * dwarf2out.c (resolve_addr): Don't call force_decl_die
4761 if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
4762
4763 Revert:
4764 2011-03-17 Richard Guenther <rguenther@suse.de>
4765
4766 PR bootstrap/48148
4767 * lto-cgraph.c (input_overwrite_node): Clear the abstract
4768 origin for decls in other ltrans units.
4769 (input_varpool_node): Likewise.
4770
19228b93
JJ
47712011-04-01 Jakub Jelinek <jakub@redhat.com>
4772
4773 PR middle-end/48335
4774 * expr.c (expand_assignment): Handle all possibilities
4775 if TO_RTX is CONCAT.
e9c18386 4776 * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19228b93
JJ
4777 (store_split_bit_field): If SUBREG_REG (op0) or
4778 op0 itself has smaller mode than word, return it
4779 for offset 0 and const0_rtx for out-of-bounds stores.
4780 If word is const0_rtx, skip it.
4781
88cb339e
N
47822011-04-01 Naveen H.S <naveen.S@kpitcummins.com>
4783
4784 * config/h8300/h8300.c (print_operand_address): Rename to...
4785 (h8300_print_operand_address): ...this. Make static. Adjust comments.
4786 Call h8300_print_operand and h8300_print_operand_address instead of
4787 print_operand and print_operand_address. Declare.
4788 (print_operand): Renake to...
4789 (h8300_print_operand): ...this. Make static. Adjust comments.
4790 Call h8300_print_operand instead of print_operand. Declare.
4791 (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
4792 (h8300_register_move_cost): Likewise.
4793 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
4794 TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
4795 * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
4796 PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
4797 * config/h8300/h8300-protos.h (print_operand): Delete.
4798 (print_operand_address): Delete.
4799
756d6ee9
RH
48002011-04-01 Richard Henderson <rth@redhat.com>
4801
4802 PR 48400
4803 * dwarf2out.c (dwarf2out_source_line): Disable discriminators
4804 in strict mode before dwarf4. Re-order tests to early out
4805 before switching sections.
4806
ceaaaeab
NF
48072011-04-01 Nathan Froyd <froydnj@codesourcery.com>
4808
4809 * config/h8300/constraints.md: New file.
4810 * config/h8300/h8300.md: Include it. Use satisfies_constraint_J,
4811 satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
4812 (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
4813 * config/h8300/predicates.md (bit_operand): Likewise.
4814 (incdec_operand): Use satisfies_constraint_M and
4815 satisfies_constraint_O. Don't use C code block.
4816 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
4817 * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
4818 (compute_mov_length): Use satisfies_constraint_G.
4819 (fix_bit_operand): Use satisfies_constraint_U.
4820 * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
4821 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
4822 (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
4823 (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
4824 (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
4825 (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
4826 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
4827 (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
4828 (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
4829 (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
4830 (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
4831 (EXTRA_MEMORY_CONSTRAINT): Delete.
4832
08ae38e0
AP
48332011-04-01 Andrew Pinski <pinskia@gmail.com>
4834 Michael Meissner <meissner@linux.vnet.ibm.com>
4835
4836 PR target/48262
4837 * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
4838 operands, as per the specifications.
4839
4840 * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
4841 (vec_extract_evenv4sf): Ditto.
4842 (vec_extract_evenv8hi): Ditto.
4843 (vec_extract_evenv16qi): Ditto.
4844 (vec_extract_oddv4si): Ditto.
4845
bdb0b0f6
MW
48462011-03-31 Mark Wielaard <mjw@redhat.com>
4847
4848 * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
4849 high_pc attribute if the CU has no associated code. Only output
4850 DW_AT_entry_pc for CU if not generating strict dwarf and
4851 dwarf_version < 4.
4852
722279e4
BS
48532011-04-01 Bernd Schmidt <bernds@codesourcery.com>
4854
4855 * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
4856 * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
4857 out of ...
4858 (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
4859 * final.c (final_start_function): Call the new function rather
4860 than using a NULL argument for dwarf2out_frame_debug.
4861
c5dd277d
BS
4862 * ifcvt.c (cond_exec_process_insns): Disallow converting a block
4863 that contains the prologue.
4864
ec4efea9
BS
4865 * haifa-sched.c (queue_insn): New arg REASON. All callers
4866 changed. Print it in debugging output.
4867
2a6a0d80
BS
4868 * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
4869
86014d07
BS
4870 * sched-ebb.c (begin_schedule_ready): Remove second argument.
4871 Split most of the code into...
4872 (begin_move_insn): ... here. New function.
4873 (ebb_sched_info): Add a pointer to it.
4874 * haifa-sched.c (scheduled_insns): New static variable.
4875 (sched_extend_ready_list): Allocate it.
4876 (schedule_block): Use it to record the order of scheduled insns.
4877 Perform RTL changes to move insns only after all scheduling
4878 decisions have been made.
4879 * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
4880 begin_move_insn field.
4881 * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4882 * sched-int.h (struct haifa_sched_info): Remove second argument
4883 from begin_schedule_ready hook. Add new member begin_move_insn.
4884 * sched-rgn.c (begin_schedule_ready): Remove second argument.
4885 (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
4886
9d701248
BS
4887 * haifa-sched.c (prune_ready_list): New function, broken out of
4888 schedule_block.
4889 (schedule_block): Use it.
4890
1ca1dad5
UW
48912011-04-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4892
4893 * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
4894
49568e45
KT
48952011-04-01 Kai Tietz <ktietz@redhat.com>
4896
4897 * config.gcc (*-*-mingw*): Allow as option the
4898 posix threading model.
07c0852e 4899 * config/i386/mingw32.h (SPEC_PTHREAD1, SPEC_PTHREAD2):
49568e45
KT
4900 New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
4901 definition.
4902 (CPP_SPEC): Add pthread/no-pthread handling.
4903 (LIB_SPEC): Likewise.
4904 * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
4905 (LIB_SPEC): Likewise.
4906 * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
4907 flag to pass -pthread option for shared libgcc build.
4908 (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
4909 for shared libgcc build.
4910 * config/i386/t-mingw-pthread: New file.
4911 * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
4912 New define to enable use of library pthread by default.
4913 * config/i386/mingw.opt (pthread): New driver option.
4914 (no-pthread): New driver option.
e9c18386 4915 * config/i386/cygming.opt: Make sure trailing empty line is retained.
49568e45
KT
4916 * config/i386/mingw-w64.opt: Likewise.
4917
636b4106
GF
49182011-04-01 Gary Funck <gary@intrepid.com>
4919
4920 * c-decl.c (grokdeclarator): Fix formatting.
4921
f04713ee
RS
49222011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4923
4924 * expr.c (emit_block_move_via_movmem): Use n_generator_args
4925 instead of n_operands.
4926 (set_storage_via_setmem): Likewise.
4927 * optabs.c (maybe_gen_insn): Likewise.
4928 * config/arm/arm.c (arm_init_neon_builtins): Likewise.
4929 * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
4930 (mips_expand_builtin_direct): Likewise.
4931 * config/spu/spu.c (expand_builtin_args): Likewise.
4932
b29387ee
RS
49332011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4934
4935 * recog.h (insn_data_d): Add n_generator_args.
4936 * genoutput.c (data): Likewise.
4937 (output_insn_data): Print it.
4938 (max_opno, num_dups): Delete.
4939 (scan_operands): Just fill in "d->operand[...]".
4940 (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
4941
e792559a
RS
49422011-04-01 Richard Sandiford <richard.sandiford@linaro.org>
4943
4944 * gensupport.h (pattern_stats): New structure.
4945 * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
4946 * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
4947 (max_operand_1, max_operand_vec): Delete.
4948 (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
4949
e8110d6f
NF
49502011-03-31 Nathan Froyd <froydnj@codesourcery.com>
4951
4952 * emit-rtl.c (emit_pattern_after_setloc): New function.
4953 (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
4954 (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
4955 (emit_pattern_after): New function.
4956 (emit_insn_after, emit_jump_insn_after): Call it.
4957 (emit_call_insn_after, emit_debug_insn_after): Likewise.
4958 (emit_pattern_before_setloc): New function.
4959 (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
4960 (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
4961 Likewise.
4962 (emit_pattern_before): New function.
4963 (emit_insn_before, emit_jump_insn_before): Call it.
4964 (emit_call_insn_before, emit_debug_insn_before): Likewise.
4965
576f85f1
RH
49662011-03-31 Richard Henderson <rth@redhat.com>
4967
4968 * dwarf2out.c (dw_separate_line_info_ref): Remove.
4969 (dw_separate_line_info_entry): Remove.
4970 (enum dw_line_info_opcode): New.
4971 (dw_line_info_entry): Use it.
4972 (dw_line_info_table, dw_line_info_table_p): New.
4973 (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
4974 (line_info_table, line_info_label_num): Remove.
4975 (line_info_table_in_use): Remove.
4976 (separate_line_info_table): Remove.
4977 (separate_line_info_table_allocated): Remove.
4978 (separate_line_info_table_in_use): Remove.
4979 (LINE_INFO_TABLE_INCREMENT): Remove.
4980 (line_info_label_num): New.
4981 (cur_line_info_table): New.
4982 (text_section_line_info, cold_text_section_line_info): New.
4983 (separate_line_info): New.
4984 (SEPARATE_LINE_CODE_LABEL): Remove.
4985 (print_dwarf_line_table): Remove.
4986 (debug_dwarf): Don't dump it.
4987 (output_one_line_info_table): New.
4988 (output_line_info): Use it.
4989 (new_line_info_table): New.
4990 (set_cur_line_info_table): New.
4991 (dwarf2out_switch_text_section): Use it.
4992 (dwarf2out_begin_function): Likewise.
4993 (push_dw_line_info_entry): New.
4994 (dwarf2out_source_line): Rewrite for new line info tables.
4995 (dwarf2out_init): Remove dead initailizations.
4996
300d83d9
JM
49972011-03-31 Joseph Myers <joseph@codesourcery.com>
4998
4999 * opts.h (cl_option): Add comments to fields. Add bit-fields for
5000 various flags.
5001 (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
5002 CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
5003 CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
5004 CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
5005 (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
5006 * opt-functions.awk (flag_init, switch_bit_fields): New.
5007 (switch_flags): Don't handle flags moved to bit-fields. Don't
5008 generate CL_MISSING_OK or CL_SAVE.
5009 * optc-gen.awk: Update to generate bit-field output as well as
5010 flags field.
5011 * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
5012 bit-field instead of CL_REJECT_DRIVER flag.
5013 * opts-common.c (generate_canonical_option,
5014 decode_cmdline_option): Use bit-fields instead of CL_* flags.
5015 * opts.c (maybe_default_option): Use cl_reject_negative bit-field
5016 instead of CL_REJECT_NEGATIVE flag.
5017 * toplev.c (print_switch_values): Use cl_report bit-field instead
5018 of CL_REPORT flag.
5019
d4d73ce2
EB
50202011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5021
5022 * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
5023 a zero minimum index only if it is redundant.
5024
b8faca75
VM
50252011-03-31 Vladimir Makarov <vmakarov@redhat.com>
5026
5027 PR rtl-optimization/48381
5028 * ira-color.c (assign_hard_reg): Use hard reg set intersection
5029 instead of ira_class_hard_reg_index for calculating conflicting
5030 hard registers.
5031
7d11cebe
SB
50322011-03-31 Steven Bosscher <steven@gcc.gnu.org>
5033
5034 * cprop.c: Clean up hash table building.
5035 (reg_avail_info): Remove.
5036 (oprs_available_p): Remove.
5037 (record_last_reg_set_info): Remove.
5038 (record_last_set_info): Remove.
5039 (reg_available_p): New function.
5040 (gcse_constant_p): Do not treat unfolded conditions as constants.
5041 (make_set_regs_unavailable): New function.
5042 (hash_scan_set): Simplify with new reg_available_p.
5043 (compute_hash_table_work): Traverse insns stream only once.
5044 Do not compute reg_avail_info. Traverse insns in reverse order.
5045 Record implicit sets after recording explicit sets from the block.
5046
98faf84f
MM
50472011-03-31 Michael Matz <matz@suse.de>
5048
e9c18386 5049 * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
98faf84f 5050
f52d97da
AS
50512011-03-31 Anatoly Sokolov <aesok@post.ru>
5052
5053 * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
5054 * config/h8300/h8300-protos.h (h8300_get_index): Remove.
5055 * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5056 (h8300_mode_dependent_address_p): New function.
5057 (h8300_get_index): Make static.
5058
e16b6fd0
JL
50592011-03-31 Jeff Law <law@redhat.com>
5060
10c51983
JL
5061 * reload1.c (elimination_effects): Fix typo in recent change.
5062
e9c18386 5063 * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
e16b6fd0
JL
5064 typo potentially leading to null pointer dereference.
5065
5066 * caller-save.c (new_saved_hard_reg): Eliminate return value.
5067 (setup_save_areas): Corresponding changes to avoid useless
5068 assignments.
5069
5070 * jump.c (reversed_comparison_code_parts): Avoid successive return
5071 statements when REVERSE_CONDITION is defined.
5072
5073 * expr.c (expand_assignment): Avoid useless assignments.
5074 (expand_expr_real_1): Likewise.
5075 (expand_expr_real_2): Avoid useless statements.
5076
5077 * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
5078
5079 * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
5080
5081 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
5082 statements.
5083
5084 * stmt.c (expand_expr_stmt): Avoid useless assignment.
5085
eb1eb914
JM
50862011-03-31 Joseph Myers <joseph@codesourcery.com>
5087
5088 PR target/47109
5089 * doc/tm.texi.in (TARGET_VERSION): Remove.
5090 * doc/tm.texi: Regenerate.
5091 * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
5092 * collect2.c (main): Don't use TARGET_VERSION.
5093 * mips-tdump.c (main): Don't use TARGET_VERSION.
5094 * mips-tfile.c (main): Don't use TARGET_VERSION.
e9c18386 5095 * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
eb1eb914
JM
5096 * config/rs6000/vxworksae.h: Remove.
5097 * config/alpha/alpha.h (TARGET_VERSION): Remove.
5098 * config/alpha/freebsd.h (TARGET_VERSION): Remove.
5099 * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
5100 * config/alpha/netbsd.h (TARGET_VERSION): Remove.
5101 * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5102 * config/arm/arm.h (TARGET_VERSION): Remove.
5103 * config/arm/coff.h (TARGET_VERSION): Remove.
5104 * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
5105 * config/arm/elf.h (TARGET_VERSION): Remove.
5106 * config/arm/freebsd.h (TARGET_VERSION): Remove.
5107 * config/arm/linux-elf.h (TARGET_VERSION): Remove.
5108 * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
5109 * config/arm/pe.h (TARGET_VERSION): Remove.
5110 * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
5111 * config/arm/semi.h (TARGET_VERSION): Remove.
5112 * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
5113 * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
5114 * config/arm/vxworks.h (TARGET_VERSION): Remove.
5115 * config/avr/avr.h (TARGET_VERSION): Remove.
5116 * config/bfin/bfin.h (TARGET_VERSION): Remove.
5117 * config/fr30/fr30.h (TARGET_VERSION): Remove.
5118 * config/frv/frv.h (TARGET_VERSION): Remove.
5119 * config/h8300/h8300.h (TARGET_VERSION): Remove.
5120 * config/i386/cygwin.h (TARGET_VERSION): Remove.
5121 * config/i386/darwin.h (TARGET_VERSION): Remove.
5122 * config/i386/darwin64.h (TARGET_VERSION): Remove.
5123 * config/i386/djgpp.h (TARGET_VERSION): Remove.
5124 * config/i386/freebsd.h (TARGET_VERSION): Remove.
5125 * config/i386/freebsd64.h (TARGET_VERSION): Remove.
5126 * config/i386/gnu.h (TARGET_VERSION): Remove.
5127 * config/i386/i386-interix.h (TARGET_VERSION): Remove.
5128 * config/i386/i386elf.h (TARGET_VERSION): Remove.
5129 * config/i386/linux.h (TARGET_VERSION): Remove.
5130 * config/i386/linux64.h (TARGET_VERSION): Remove.
5131 * config/i386/lynx.h (TARGET_VERSION): Remove.
5132 * config/i386/mingw32.h (TARGET_VERSION): Remove.
5133 * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
5134 * config/i386/netbsd64.h (TARGET_VERSION): Remove.
5135 * config/i386/netware.h (TARGET_VERSION): Remove.
5136 * config/i386/nto.h (TARGET_VERSION): Remove.
5137 * config/i386/openbsd.h (TARGET_VERSION): Remove.
5138 * config/i386/vxworks.h (TARGET_VERSION): Remove.
5139 * config/ia64/elf.h (TARGET_VERSION): Remove.
5140 * config/ia64/freebsd.h (TARGET_VERSION): Remove.
5141 * config/ia64/hpux.h (TARGET_VERSION): Remove.
5142 * config/ia64/linux.h (TARGET_VERSION): Remove.
5143 * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
5144 * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
5145 TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5146 * config/lm32/lm32.h (TARGET_VERSION): Remove.
5147 * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
5148 * config/m32c/m32c.h (TARGET_VERSION): Remove.
5149 * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
5150 * config/m32r/m32r.h (TARGET_VERSION): Remove.
5151 * config/m68k/linux.h (TARGET_VERSION): Remove.
5152 * config/m68k/m68k.h (TARGET_VERSION): Remove.
5153 * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
5154 * config/m68k/uclinux.h (TARGET_VERSION): Remove.
5155 * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
5156 * config/mep/mep.h (TARGET_VERSION): Remove.
5157 * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
5158 MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
5159 * config/mips/iris6.h (MACHINE_TYPE): Remove.
5160 * config/mips/linux.h (TARGET_VERSION): Remove.
5161 * config/mips/netbsd.h (MACHINE_TYPE): Remove.
5162 * config/mips/vxworks.h (TARGET_VERSION): Remove.
5163 * config/mmix/mmix.h (TARGET_VERSION): Remove.
5164 * config/mn10300/linux.h (TARGET_VERSION): Remove.
5165 * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
5166 * config/pa/pa.h (TARGET_VERSION): Remove.
5167 * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
5168 * config/picochip/picochip.h (TARGET_VERSION): Remove.
5169 * config/rs6000/aix.h (TARGET_VERSION): Remove.
5170 * config/rs6000/darwin.h (TARGET_VERSION): Remove.
5171 * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
5172 * config/rs6000/eabi.h (TARGET_VERSION): Remove.
5173 * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
5174 * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
5175 * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
5176 * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
5177 * config/rs6000/linux.h (TARGET_VERSION): Remove.
5178 * config/rs6000/linux64.h (TARGET_VERSION): Remove.
5179 * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
5180 * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
5181 * config/rs6000/lynx.h (TARGET_VERSION): Remove.
5182 * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
5183 * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
5184 * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
5185 * config/s390/linux.h (TARGET_VERSION): Remove.
5186 * config/s390/s390.h (TARGET_VERSION): Remove.
5187 * config/s390/tpf.h (TARGET_VERSION): Remove.
5188 * config/score/score.h (TARGET_VERSION): Remove.
5189 * config/sh/linux.h (TARGET_VERSION): Remove.
5190 * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
5191 TARGET_VERSION_CPU, TARGET_VERSION): Remove.
5192 * config/sh/sh.h (TARGET_VERSION): Remove.
5193 * config/sh/sh64.h (TARGET_VERSION): Remove.
5194 * config/sh/superh.h (TARGET_VERSION): Remove.
5195 * config/sh/vxworks.h (TARGET_VERSION): Remove.
5196 * config/sparc/freebsd.h (TARGET_VERSION): Remove.
5197 * config/sparc/linux.h (TARGET_VERSION): Remove.
5198 * config/sparc/linux64.h (TARGET_VERSION): Remove.
5199 * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
5200 TARGET_NAME32, TARGET_NAME): Remove.
5201 * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
5202 * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
5203 * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
5204 * config/sparc/sysv4.h (TARGET_VERSION): Remove.
5205 * config/sparc/vxworks.h (TARGET_VERSION): Remove.
5206 * config/spu/spu.h (TARGET_VERSION): Remove.
5207 * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
5208 * config/v850/v850.h (TARGET_VERSION): Remove.
5209 * config/vax/linux.h (TARGET_VERSION): Remove.
5210 * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
5211 * config/xtensa/elf.h (TARGET_VERSION): Remove.
5212 * config/xtensa/linux.h (TARGET_VERSION): Remove.
5213
ace31bca
EB
52142011-03-31 Eric Botcazou <ebotcazou@adacore.com>
5215
5216 PR target/48142
5217 * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
5218 frame-related from frame-unrelated adjustments to the stack pointer.
5219
76f9db36
JJ
52202011-03-31 Jakub Jelinek <jakub@redhat.com>
5221
5222 * common.opt (fdebug-types-section): Move earlier.
5223 * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
5224
b7826465
AT
52252011-03-31 Andreas Tobler <andreast@fgznet.ch>
5226
5227 * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
5228 var.
5229
1290e54c
NF
52302011-03-30 Nathan Froyd <froydnj@codesourcery.com>
5231
5232 * tree.h (CASE_CHAIN): Define.
5233 * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
5234 (gimple_redirect_edge_and_branch): Likewise.
5235
bddc98e1
VM
52362011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5237
5238 PR middle-end/48367
5239 * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
5240 calculation.
5241
c865e437
JL
52422011-03-30 Jeff Law <law@redhat.com>
5243
b3750213 5244 * PR bootstrap/48371
c865e437
JL
5245 * reload1.c (reload): Fix botch in last change.
5246
5247 * reload.h (struct reload): Fix typo introduced in last change.
5248
2cdf9574
JM
52492011-03-30 Joseph Myers <joseph@codesourcery.com>
5250
5251 * config/arm/arm.opt (mhard-float, msoft-float): Mark
5252 Undocumented. Remove help text.
5253 * doc/invoke.texi (ARM Options): Don't document -msoft-float and
5254 -mhard-float.
5255
666a21a2
JM
52562011-03-30 Joseph Myers <joseph@codesourcery.com>
5257
5258 * doc/options.texi (NegativeAlias): Document.
5259 (Alias): Mention NegativeAlias.
5260 * opt-functions.awk: Handle NegativeAlias.
e9c18386 5261 * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
666a21a2
JM
5262 * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
5263 * opts.h (CL_NEGATIVE_ALIAS): Define.
5264 * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
5265 (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
5266 OPT_mspe_.
5267 * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
5268 Alias entries.
5269 * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
5270 mno-spe and mno-isel instead of mspe=no and -misel=no.
5271
0fa4e351
MW
52722011-03-29 Mark Wielaard <mjw@redhat.com>
5273
5274 * common.opt (fdebug-types-section): New flag.
5275 * doc/invoke.texi: Document new -fno-debug-types-section flag.
5276 * dwarf2out.c (use_debug_types): New define.
5277 (struct die_struct): Mark die_id with GTY desc use_debug_types.
5278 (print_die): Guard output of type unit signatures using
5279 use_debug_types.
5280 (build_abbrev_table): Replace assert of dwarf_version >= 4
5281 with assert on use_debug_types.
5282 (size_of_die): Likewise.
5283 (unmark_dies): Likewise.
5284 (value_format): Decide AT_ref_external form on use_debug_types.
5285 (output_die): Replace dwarf_version version check guard with
5286 use_debug_types where appropriate.
5287 (modified_type_die): Likewise.
5288 (gen_reference_type_die): Likewise.
5289 (dwarf2out_start_source_file): Likewise.
5290 (dwarf2out_end_source_file): Likewise.
5291 (prune_unused_types_walk_attribs): Likewise.
5292 (dwarf2out_finish): Likewise.
5293
4648deb4
VM
52942011-03-30 Vladimir Makarov <vmakarov@redhat.com>
5295
5296 * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
5297
4f431835
RS
52982011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5299
5300 PR rtl-optimization/48332
5301 * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
5302 mode of input operand N and modeN to its actual mode.
5303
f2034d06
JL
53042011-03-30 Jeff Law <law@redhat.com>
5305
5306 * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
5307 define accessor macro.
5308 (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
5309 (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
5310 (reg_equiv_init): Likewise.
5311 (reg_equivs_size): New variable.
5312 (reg_equiv_init_size): Remove.
5313 (allocate_initial_values): Move prototype to here from....
5314 * integrate.h (allocate_initial_values): Remove prototype.
5315 * integrate.c: Include reload.h.
5316 (allocate_initial_values): Corresponding changes.
5317 * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
5318 (fix_reg_equiv_init, no_equiv): Corresponding changes.
5319 (update_equiv_regs): Corresponding changes.
5320 (ira): Corresponding changes.
5321 * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
5322 (push_secondary_reload): Corresponding changes.
5323 (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
5324 (make_memloc, find_reloads_address): Corresponding changes.
5325 (subst_reg_equivs, subst_indexed_address): Corresponding changes.
5326 (find_reloads_address_1): Corresponding changes.
5327 (find_reloads_subreg_address, subst_reloads): Corresponding changes.
5328 (refers_to_regno_for_reload_p): Corresponding changes.
5329 (reg_overlap_mentioned_for_reload_p): Corresponding changes.
5330 (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
5331 * reload1.c: Include ggc.h.
5332 (grow_reg_equivs): New function.
5333 (replace_pseudos_in, reload): Corresponding changes.
5334 (calculate_needs_all_insns, alter_regs): Corresponding changes.
5335 (eliminate_regs_1, elimination_effects): Corresponding changes.
5336 (emit_input_reload_insns, emit_output_reload_insns): Likewise.
5337 (delete_output_reload): Likewise.
5338 * caller-save.c (mark_referenced_regs): Corresponding changes.
5339 * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
5340 * frv/predicates.md (frv_load_operand): Corresponding changes.
5341 * microblaze/microblaze.c (double_memory_operand): Corresponding
5342 changes.
5343 * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
5344 * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
e9c18386 5345 * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
f2034d06
JL
5346 * m68k/m68k.c (emit_move_sequence): Corresponding changes.
5347 * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
5348 changes.
5349 * pa/pa.c (emit_move_sequence): Corresponding changes.
5350 * vax/vax.c (nonindexed_address_p): Corresponding changes.
5351
159b81b0
RS
53522011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5353
5354 PR target/47551
5355 * config/arm/arm.c (coproc_secondary_reload_class): Handle
5356 structure modes. Don't check neon_vector_mem_operand for
5357 vector or structure modes.
5358
a6217191
RS
53592011-03-30 Richard Sandiford <richard.sandiford@linaro.org>
5360 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5361
5362 PR target/43590
5363 * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
5364 operand 1 and reshuffle the operands to match.
5365 (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
5366
bd837408
CS
53672011-03-30 Christian Schüler <cschueler@gmx.de>
5368
6955d771 5369 PR driver/48208
bd837408 5370 * config/c.opt (F): Added 'Driver' to -F option.
e9c18386 5371
6955d771 5372 PR driver/48260
bd837408
CS
5373 * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
5374 handler function.
5375 * config/darwin.opt: Added '-arch' option.
5376
e9c0470a
NC
53772011-03-30 Nick Clifton <nickc@redhat.com>
5378
5379 * config/rx/rx.md: Add peepholes and patterns to combine
5380 extending loads and simple arithmetic instructions.
5381 * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
e9c18386
UB
5382 * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
5383 * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
e9c0470a 5384 modes to use pre-decrement and post-increment addressing.
e9c18386 5385 (rx_is_restricted_memory_address): Add range checking of REG+INT
e9c0470a 5386 addresses.
e9c18386
UB
5387 (rx_print_operand): Add support for %Q. Fix handling of %Q.
5388 (rx_memory_move_cost): Adjust cost of stores.
5389 (rx_adjust_insn_length): New function.
e9c0470a 5390
8a87e7ab
JJ
53912011-03-30 Jakub Jelinek <jakub@redhat.com>
5392
5393 PR c/48305
5394 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
5395 arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
5396 matching arg00/arg01 types.
5397
12486e03
EB
53982011-03-30 Eric Botcazou <ebotcazou@adacore.com>
5399
5400 * cfglayout.c (insn_locators_alloc): Initialize curr_location and
5401 last_location to UNKNOWN_LOCATION.
5402
0b99eef6
L
54032011-03-30 H.J. Lu <hongjiu.lu@intel.com>
5404
5405 PR target/48349
5406 * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
5407 FLOAT_SSE_REGS.
5408
023592aa
JM
54092011-03-30 Joseph Myers <joseph@codesourcery.com>
5410 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5411
5412 PR bootstrap/48337
5413 * config/sparc/sparc.opt (sparc_cpu_and_features): Add
5414 Init(PROCESSOR_V7).
5415 (sparc_cpu): Likewise.
5416 * config/sparc/sparc.c (sparc_option_override): Replace 0 by
5417 PROCESSOR_V7.
5418
ad3b266b
VM
54192011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5420
5421 PR target/48336
5422 PR middle-end/48342
5423 PR rtl-optimization/48345
5424 * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
5425 hard regs for given mode from profitable regs when doing secondary
5426 allocation.
5427
633c9126
JL
54282011-03-29 Jeff Law <law@redhat.com>
5429
5430 PR bootstrap/48327
5431 * tree-ssa-threadupdate.c (struct redirection_data): Remove
5432 do_not_duplicate field.
5433 (lookup_redirection_data): Corresponding changes.
5434 (create_duplicates): Always create a template block.
5435 (redirect_edges): Remove code which reused the original block
5436 when it was going to become unreachable code.
5437 (thread_block): Don't set do_not_duplicate field.
5438
eb50f63a
JM
54392011-03-29 Joseph Myers <joseph@codesourcery.com>
5440
5441 * lto-opts.c (register_user_option_p, lto_register_user_option):
5442 Make type argument unsigned.
5443 * lto-streamer.h (lto_register_user_option): Make type argument
5444 unsigned.
5445 * opth-gen.awk: Make CL_* macros unsigned.
5446 * opts-common.c (find_opt): Make lang_mask argument unsigned.
5447 * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
5448 CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
5449 CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
5450 CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
5451 CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
5452 (find_opt): Make lang_mask argument unsigned.
5453
76763a6d
VM
54542011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5455
5456 PR rtl-optimization/48331
5457 PR rtl-optimization/48334
5458 * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
5459 for any used algorithm.
5460
5c82436e
VM
54612011-03-29 Vladimir Makarov <vmakarov@redhat.com>
5462
5463 * ira-conflicts.c (build_object_conflicts): Add unused attribute
5464 to parent_max.
5465
7a81008b
UB
54662011-03-29 Uros Bizjak <ubizjak@gmail.com>
5467
5468 * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
5469 (alpha_option_override): Don't set alpha_sr_alias_set.
5470 (emit_frame_store_1): Use gen_frame_mem rather than calling
5471 set_mem_alias_set.
5472 (alpha_expand_epilogue): Ditto.
5473
86c8d1f6
IR
54742011-03-29 Ira Rosen <ira.rosen@linaro.org>
5475
5476 PR tree-optimization/48290
5477 * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
5478 vectorization, check that relevant phis in the basic block after
5479 the inner loop are really inner loop's exit phis.
5480
0d12220f
RS
54812011-03-29 Richard Sandiford <richard.sandiford@linaro.org>
5482
e8cf17e7 5483 PR debug/48190
0d12220f
RS
5484 * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
5485 (cached_dw_loc_list_def): New structure.
5486 (cached_dw_loc_list): New typedef.
5487 (cached_dw_loc_list_table): New variable.
5488 (cached_dw_loc_list_table_hash): New function.
5489 (cached_dw_loc_list_table_eq): Likewise.
5490 (add_location_or_const_value_attribute): Take a bool cache_p.
5491 Cache the list when the parameter is true.
5492 (gen_formal_parameter_die): Update caller.
5493 (gen_variable_die): Likewise.
5494 (dwarf2out_finish): Likewise.
5495 (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
5496 while generating debug info for the decl.
5497 (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
5498 (dwarf2out_init): Initialize cached_dw_loc_list_table.
5499 (resolve_addr): Cache the result of resolving a chain of
5500 location lists.
5501
1756cb66
VM
55022011-03-28 Vladimir Makarov <vmakarov@redhat.com>
5503
5504 * ira-color.c (update_left_conflict_sizes_p): Don't assume that
5505 conflict object hard regset nodes have intersecting hard reg sets.
7a81008b 5506
1756cb66
VM
5507 * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
5508 after regstat_init_n_sets_and_refs.
5509
5510 * ira.c: Add more comments at the top.
5511 (setup_stack_reg_pressure_class, setup_pressure_classes):
5512 Add comments how we compute the register pressure classes.
5513 (setup_allocno_and_important_classes): Add more comments.
5514 (setup_class_translate_array, reorder_important_classes)
5515 (setup_reg_class_relations): Add comments.
5516
5517 * ira-emit.c: Add 2011 to the Copyright line. Add comments at the
5518 start of the file.
5519
5520 * ira-color.c: Add 2011 to the Copyright line.
5521 (assign_hard_reg): Add more comments.
5522 (improve_allocation): Ditto.
5523
5524 * ira-costs.c: Add 2011 to the Copyright line.
5525 (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
5526 comments.
5527 (setup_regno_cost_classes_by_mode): Ditto.
5528
5529 Initial patches from ira-improv branch:
5530
5531 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5532
f60c2554 5533 * ira-build.c (ira_create_object): Remove initialization of
1756cb66
VM
5534 OBJECT_PROFITABLE_HARD_REGS. Initialize OBJECT_ADD_DATA.
5535 (ira_create_allocno): Remove initialization of
5536 ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
5537 ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
5538 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5539 ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
5540 ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
5541 Initialize ALLOCNO_ADD_DATA.
5542 (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
5543 and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
5544 ALLOCNO_REG.
5545 (ira_flattening): Ditto. Use ALLOCNO_EMIT_DATA instead of
5546 ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
5547
5548 * ira.c (ira_reallocate): Remove.
5549 (setup_pressure_classes): Call
5550 ira_init_register_move_cost_if_necessary. Use
5551 ira_register_move_cost instead of ira_get_register_move_cost.
5552 (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
5553 (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
5554
5555 * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
5556 ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
5557 ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
5558 ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
5559 instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
5560 OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
5561 Fix formatting.
7a81008b 5562 (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
1756cb66
VM
5563 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
5564 (struct allocno_color_data): New.
5565 (allocno_color_data_t): New typedef.
5566 (allocno_color_data): New definition.
5567 (ALLOCNO_COLOR_DATA): New macro.
5568 (struct object_color_data): New.
5569 (object_color_data_t): New typedef.
5570 (object_color_data): New definition.
5571 (OBJECT_COLOR_DATA): New macro.
5572 (update_copy_costs, calculate_allocno_spill_cost): Call
5573 ira_init_register_move_cost_if_necessary. Use
5574 ira_register_move_cost instead of ira_get_register_move_cost.
5575 (move_spill_restore, update_curr_costs): Ditto.
5576 (allocno_spill_priority): Make it inline.
7a81008b 5577 (color_pass): Allocate and free allocno_color_dat and object_color_data.
1756cb66
VM
5578 (struct coalesce_data, coalesce_data_t): New.
5579 (allocno_coalesce_data): New definition.
5580 (ALLOCNO_COALESCE_DATA): New macro.
5581 (merge_allocnos, coalesced_allocno_conflict_p): Use
5582 ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
5583 ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
5584 (coalesce_allocnos): Ditto.
5585 (setup_coalesced_allocno_costs_and_nums): Ditto.
5586 (collect_spilled_coalesced_allocnos): Ditto.
5587 (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
5588 (setup_slot_coalesced_allocno_live_ranges): Ditto.
5589 (coalesce_spill_slots): Ditto.
5590 (ira_sort_regnos_for_alter_reg): Ditto. Allocate, initialize and
5591 free allocno_coalesce_data.
5592
5593 * ira-conflicts.c: Fix formatting.
5594 (process_regs_for_copy): Call
5595 ira_init_register_move_cost_if_necessary. Use
5596 ira_register_move_cost instead of ira_get_register_move_cost.
5597 (build_object_conflicts): Optimize.
5598
5599 * ira-costs.c (record_reg_classes): Optimize. Call
5600 ira_init_register_move_cost_if_necessary. Use
5601 ira_register_move_cost, ira_may_move_in_cost, and
5602 ira_may_move_out_cost instead of ira_get_register_move_cost and
5603 ira_get_may_move_cost.
5604 (record_address_regs): Ditto.
5605 (scan_one_insn): Optimize.
5606 (find_costs_and_classes): Optimize.
5607 (process_bb_node_for_hard_reg_moves): Call
5608 ira_init_register_move_cost_if_necessary. Use
5609 ira_register_move_cost instead of ira_get_register_move_cost.
5610
5611 * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
5612 ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
5613 ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
5614 (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
5615 definitions.
5616 (ira_initiate_emit_data, ira_finish_emit_data)
5617 (create_new_allocno): New functions.
7a81008b 5618 (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
1756cb66
VM
5619 (emit_move_list): Call ira_init_register_move_cost_if_necessary.
5620 Use ira_register_move_cost instead of ira_get_register_move_cost.
5621
5622 * ira-int.h: Fix some comments.
7a81008b
UB
5623 (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
5624 (struct object_hard_regs, struct object_hard_regs_node): Ditto.
1756cb66
VM
5625 (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
5626 hard_regs_subnodes_start, hard_regs_subnodes_num. Add new member
5627 add_data.
5628 (struct ira_allocno): Make mode and aclass a bitfield. Move other
5629 bitfield after mode. Make hard_regno a short int. Make
5630 hard_regno short. Remove first_coalesced_allocno and
5631 next_coalesced_allocno. Move mem_optimized_dest_p,
5632 somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
5633 into struct ira_emit_data. Remove in_graph_p, may_be_spilled_p,
5634 available_regs_num, next_bucket_allocno, prev_bucket_allocno,
5635 temp, colorable_p. Add new member add_data.
5636 (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
5637 (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
5638 (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
5639 (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
5640 (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
5641 (ALLOCNO_ADD_DATA): New macro.
5642 (ira_emit_data_t): New typedef.
5643 (struct ira_emit_data): New. Move mem_optimized_dest_p,
5644 somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
5645 from struct ira_allocno.
5646 (ALLOCNO_EMIT_DATA): New macro.
5647 (ira_allocno_emit_data, allocno_emit_reg): New.
5648 (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
7a81008b 5649 (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
1756cb66
VM
5650 (OBJECT_ADD_DATA): New macro.
5651 (ira_reallocate): Remove.
5652 (ira_initiate_emit_data, ira_finish_emit_data): New.
5653 (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
5654 (ira_init_register_move_cost_if_necessary): New.
5655 (ira_object_conflict_iter_next): Merge into
5656 ira_object_conflict_iter_cond.
7a81008b 5657 (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
1756cb66 5658
f60c2554 5659 * ira-live.c (process_single_reg_class_operands): Call
1756cb66
VM
5660 ira_init_register_move_cost_if_necessary. Use
5661 ira_register_move_cost instead of ira_get_register_move_cost.
5662
5663 2010-08-13 Vladimir Makarov <vmakarov@redhat.com>
5664
5665 * ira-int.h (struct target_ira_int): Remove x_cost_classes.
5666
5667 * ira-costs.c: Fix formatting.
5668 (cost_classes, cost_classes_num): Remove.
5669 (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
5670 (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
5671 (cost_classes_del, cost_classes_htab): New.
5672 (cost_classes_aclass_cache, cost_classes_mode_cache): New.
5673 (initiate_regno_cost_classes, setup_cost_classes): New.
5674 (setup_regno_cost_classes_by_aclass): New.
7a81008b 5675 (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
1756cb66
VM
5676 (record_reg_classes): Use regno_cost_classes instead of
5677 cost_classes. Move checking opposite operand up.
5678 (record_address_regs): Use regno_cost_classes
5679 instead of cost_classes.
5680 (scan_one_insn): Ditto. Use always general register.
5681 (print_allocno_costs): Use regno_cost_classes instead of
5682 cost_classes.
5683 (print_pseudo_costs): Ditto. Use Reg_N_REFS.
5684 (find_costs_and_classes): Set up cost classes for each registers.
5685 Use also their mode for this. Use regno_cost_classes instead of
5686 cost_classes.
5687 (setup_allocno_class_and_costs): Use regno_cost_classes instead of
5688 cost_classes.
5689 (free_ira_costs, ira_init_costs): Don't use cost_classes.
5690 (ira_costs, ira_set_pseudo_classes): Call
5691 initiate_regno_cost_classes and finish_regno_cost_classes.
5692
5693 2010-10-04 Vladimir Makarov <vmakarov@redhat.com>
5694
5695 * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
5696
5697 * target.def (ira_cover_classes): Remove.
5698
7a81008b 5699 * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
1756cb66
VM
5700
5701 * doc/tm.texi.in: Ditto.
5702
5703 * ira-conflicts.c: Remove mentioning cover classes from the file.
5704 Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Use
7a81008b 5705 ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST. Fix formatting.
1756cb66
VM
5706
5707 * targhooks.c (default_ira_cover_classes): Remove.
5708
5709 * targhooks.h (default_ira_cover_classes): Ditto.
5710
5711 * haifa-sched.c: Remove mentioning cover classes from the file.
5712 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
5713 ira_pressure_classes and ira_pressure_classes_num instead of
5714 ira_reg_class_cover_size and ira_reg_class_cover. Use
5715 sched_regno_pressure_class instead of sched_regno_cover_class.
5716 (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
5717 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5718
5719 * ira-int.h: Add 2010 to Copyright. Remove mentioning cover
5720 classes from the file.
5721 (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
5722 (struct object_hard_regs, struct object_hard_regs_node): New.
5723 (struct ira_object): New members profitable_hard_regs,
5724 hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
5725 (struct ira_allocno): Rename cover_class to aclass. Rename
5726 cover_class_cost and updated_cover_class_cost to class_cost and
5727 updated_class_cost. Remove splay_removed_p and
5728 left_conflict_size. Add new members colorable_p.
5729 (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
5730 (ALLOCNO_COLORABLE_P): New macro.
5731 (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
5732 (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
5733 Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
5734 (OBJECT_...): Rename parameter C to O.
5735 (OBJECT_PROFITABLE_HARD_REGS): New macro.
5736 (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
5737 (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
5738 (struct target_ira_int): New members x_ira_max_memory_move_cost,
5739 x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
5740 x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
5741 x_ira_reg_pressure_class_p, x_ira_important_class_nums,
5742 x_ira_reg_class_superunion. Rename x_prohibited_class_mode_reg to
5743 x_ira_prohibited_class_mode_reg. Rename x_ira_reg_class_union to
5744 x_ira_reg_class_subunion.
5745 (ira_max_memory_move_cost, ira_max_register_move_cost)
5746 (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
5747 (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
5748 (ira_important_class_nums, ira_reg_class_superunion): New macros.
7a81008b 5749 (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
1756cb66
VM
5750 (ira_reg_class_union): Rename to ira_reg_class_subunion.
5751 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5752 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5753 (ira_tune_allocno_costs_and_cover_classes): Rename to
5754 ira_tune_allocno_costs.
5755 (ira_debug_hard_regs_forest): New.
5756 (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
5757 (ira_object_conflict_iter_next): Fix comments.
7a81008b 5758 (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
1756cb66
VM
5759 (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
5760 cover_class to aclass.
5761 (ira_allocate_and_accumulate_costs): Ditto.
5762 (ira_allocate_and_set_or_copy_costs): Ditto.
5763
5764 * opts.c (decode_options): Remove ira_cover_class check.
5765
5766 * ira-color.c: Remove mentioning cover classes from the file. Use
5767 ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
5768 instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
5769 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
5770 (splay-tree.h): Remove include.
5771 (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
5772 before copy_freq_compare_func.
5773 (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
5774 (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
5775 New definitions.
5776 (hard_regs_roots, hard_regs_node_vec): Ditto.
5777 (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
5778 (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
5779 (finish_object_hard_regs, object_hard_regs_compare): Ditto.
5780 (create_new_object_hard_regs_node): Ditto.
5781 (add_new_object_hard_regs_node_to_forest): Ditto.
7a81008b 5782 (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
1756cb66
VM
5783 (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
5784 Ditto.
5785 (print_hard_reg_set, print_hard_regs_subforest): Ditto.
5786 (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
5787 (remove_unused_object_hard_regs_nodes): Ditto.
5788 (enumerate_object_hard_regs_nodes): Ditto.
5789 (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
5790 (object_hard_regs_subnode_t): Ditto.
5791 (struct object_hard_regs_subnode): Ditto.
5792 (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
5793 (setup_object_hard_regs_subnode_index): Ditto.
5794 (get_object_hard_regs_subnodes_num): Ditto.
5795 (form_object_hard_regs_nodes_forest): Ditto.
5796 (finish_object_hard_regs_nodes_tree): Ditto.
5797 (finish_object_hard_regs_nodes_forest): Ditto.
5798 (allocnos_have_intersected_live_ranges_p): Rename to
7a81008b 5799 allocnos_conflict_by_live_ranges_p. Move before copy_freq_compare_func.
1756cb66
VM
5800 (pseudos_have_intersected_live_ranges_p): Rename to
5801 conflict_by_live_ranges_p. Move before copy_freq_compare_func.
5802 (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
5803 (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
5804 (update_copy_costs): Remove assert. Skip cost update if the hard
5805 reg does not belong the class.
5806 (assign_hard_reg): Process only profitable hard regs.
5807 (uncolorable_allocnos_num): Make it scalar.
5808 (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
5809 and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
5810 and ira_reg_class_max_nregs.
5811 (bucket_allocno_compare_func): Check frequency first.
5812 (sort_bucket): Add compare function as a parameter.
5813 (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
5814 (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
5815 (push_allocno_to_stack): Rewrite for checking new allocno
5816 colorability.
7a81008b 5817 (remove_allocno_from_bucket_and_push): Print cost too. Remove assert.
1756cb66
VM
5818 (push_only_colorable): Pass new parameter to sort_bucket.
5819 (push_allocno_to_spill): Remove.
5820 (allocno_spill_priority_compare): Make it inline and rewrite.
5821 (splay_tree_allocate, splay_tree_free): Remove.
5822 (allocno_spill_sort_compare): New function.
5823 (push_allocnos_to_stack): Sort allocnos for spilling once. Don't
5824 build and use splay tree. Choose first allocno in uncolorable
5825 allocno bucket to spill. Remove setting spill cost.
5826 (all_conflicting_hard_regs): Remove.
5827 (setup_allocno_available_regs_num): Check only profitable hard
5828 regs. Print info about hard regs nodes.
5829 (setup_allocno_left_conflicts_size): Remove.
5830 (put_allocno_into_bucket): Don't call
7a81008b 5831 setup_allocno_left_conflicts_size. Use setup_left_conflict_sizes_p.
1756cb66
VM
5832 (improve_allocation): New.
5833 (color_allocnos): Call setup_profitable_hard_regs,
5834 form_object_hard_regs_nodes_forest, improve_allocation,
5835 finish_object_hard_regs_nodes_forest. Setup spill cost.
5836 (print_loop_title): Use pressure classes.
5837 (color_allocnso): Ditto.
5838 (do_coloring): Remove allocation and freeing splay_tree_node_pool
5839 and allocnos_for_spilling.
5840 (ira_sort_regnos_for_alter_reg): Don't setup members
5841 {first,next}_coalesced_allocno.
5842 (color): Remove allocating and freeing removed_splay_allocno_vec.
5843 (fast_allocation): Use ira_prohibited_class_mode_regs instead of
5844 prohibited_class_mode_regs.
5845
5846 * ira-lives.c: Remove mentioning cover classes from the file. Fix
5847 formatting.
5848 (update_allocno_pressure_excess_length): Use pressure classes.
5849 (inc_register_pressure, dec_register_pressure): Check for pressure
5850 class.
5851 (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
5852 pressure class. Use ira_reg_class_nregs instead of
5853 ira_reg_class_max_nregs.
5854 (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
5855 (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
5856 (single_reg_class): Use ira_reg_class_nregs instead of
5857 ira_reg_class_max_nregs.
5858 (process_bb_node_lives): Use pressure classes.
5859
5860 * ira-emit.c: Remove mentioning cover classes from the file. Use
5861 ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS. Fix formatting.
5862 (change_loop): Use pressure classes.
5863 (modify_move_list): Call ira_set_allocno_class instead of
5864 ira_set_allocno_cover_class.
5865
5866 * ira-build.c: Remove mentioning cover classes from the file. Use
5867 ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
5868 ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST. Use
5869 ALLOCNO_UPDATED_CLASS_COST instead of
5870 ALLOCNO_UPDATED_COVER_CLASS_COST. Fix formatting.
5871 (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
5872 (ira_create_allocno): Remove initialization of
5873 ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE. Initialize
5874 ALLOCNO_COLORABLE_P.
5875 (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
5876 Update conflict regs for the objects.
5877 (create_cap_allocno): Remove assert. Don't propagate
5878 ALLOCNO_AVAILABLE_REGS_NUM.
5879 (ira_free_allocno_costs): New function.
5880 (finish_allocno): Change a part of code into call of
5881 ira_free_allocno_costs.
5882 (low_pressure_loop_node_p): Use pressure classes.
5883 (object_range_compare_func): Don't compare classes.
5884 (setup_min_max_conflict_allocno_ids): Ditto.
5885
5886 * loop-invariant.c: Remove mentioning cover classes from the file.
5887 Use ira_pressure_classes and ira_pressure_classes_num instead of
5888 ira_reg_class_cover_size and ira_reg_class_cover. Fix formatting.
7a81008b
UB
5889 (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
5890 Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5891 Use reg_allocno_class instead of reg_cover_class.
1756cb66
VM
5892 (get_inv_cost): Use instead ira_stack_reg_pressure_class of
5893 STACK_REG_COVER_CLASS.
5894 (get_regno_cover_class): Rename to get_regno_pressure_class.
5895 (move_loop_invariants): Initialize and finalize regstat.
5896
5897 * ira.c: Remove mentioning cover classes from the file. Add
5898 comments about coloring without cover classes. Use ALLOCNO_CLASS
5899 instead of ALLOCNO_COVER_CLASS. Fix formatting.
5900 (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
5901 setup_class_subset_and_memory_move_costs.
5902 (setup_stack_reg_pressure_class, setup_pressure_classes): New.
5903 (setup_cover_and_important_classes): Rename to
5904 setup_allocno_and_important_classes.
5905 (setup_class_translate_array): New.
5906 (setup_class_translate): Call it for allocno and pressure classes.
5907 (cover_class_order): Rename to allocno_class_order.
5908 (comp_reg_classes_func): Use ira_allocno_class_translate instead
5909 of ira_class_translate.
5910 (reorder_important_classes): Set up ira_important_class_nums.
5911 (setup_reg_class_relations): Set up ira_reg_class_superunion.
5912 (print_class_cover): Rename to print_classes. Add parameter.
5913 (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
5914 Print pressure classes too.
5915 (find_reg_class_closure): Rename to find_reg_classes. Don't call
5916 setup_reg_subclasses.
7a81008b 5917 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
5918 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5919 (setup_prohibited_class_mode_regs): Use
7a81008b 5920 ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
1756cb66
VM
5921 (clarify_prohibited_class_mode_regs): New function.
5922 (ira_init_register_move_cost): Set up ira_max_register_move_cost,
5923 ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
5924 (ira_init_once): Initialize them.
5925 (free_register_move_costs): Process them.
5926 (ira_init): Move calls of find_reg_classes and
5927 setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
5928 Call clarify_prohibited_class_mode_regs.
5929 (ira_no_alloc_reg): Remove.
5930 (too_high_register_pressure_p): Use pressure classes.
5931
5932 * sched-deps.c: Remove mentioning cover classes from the file.
5933 Use ira_reg_pressure_cover instead of ira_reg_class_cover. Use
5934 ira_pressure_classes and ira_pressure_classes_num instead of
5935 ira_reg_class_cover_size and ira_reg_class_cover.
5936 (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
5937 sched_regno_pressure_class instead of sched_regno_cover_class.
5938 (mark_insn_pseudo_birth, mark_pseudo_death): Ditto. Use
5939 ira_reg_class_max_nregs instead of ira_reg_class_nregs.
5940
5941 * ira.h: Add 2010 to Copyright.
5942 (ira_no_alloc_reg): Remove external.
5943 (struct target_ira): Rename x_ira_hard_regno_cover_class,
5944 x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
5945 x_ira_class_translate to x_ira_hard_regno_allocno_class,
5946 x_ira_allocno_classes_num, x_ira_allocno_classes, and
5947 x_ira_allocno_class_translate. Add x_ira_pressure_classes_num,
5948 x_ira_pressure_classes, x_ira_pressure_class_translate, and
5949 x_ira_stack_reg_pressure_class. Rename x_ira_reg_class_nregs to
5950 x_ira_reg_class_max_nregs. Add x_ira_reg_class_min_nregs and
5951 x_ira_no_alloc_regs.
7a81008b 5952 (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
1756cb66
VM
5953 (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
5954 ira_allocno_classes_num and ira_allocno_classes.
5955 (ira_class_translate): Rename to ira_allocno_class_translate.
5956 (ira_pressure_classes_num, ira_pressure_classes): New definitions.
5957 (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
5958 (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
5959 (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
5960 (ira_no_alloc_regs): New.
5961
5962 * ira-costs.c: Add 2010 to Copyright. Remove mentioning cover
5963 classes from the file. Use ALLOCNO_CLASS instead of
5964 ALLOCNO_COVER_CLASS. Use ALLOCNO_CLASS_COST instead of
5965 ALLOCNO_COVER_CLASS_COST.
5966 (regno_cover_class): Rename to regno_aclass.
5967 (record_reg_classes): Use ira_reg_class_subunion instead of
5968 ira_reg_class_union.
5969 (record_address_regs): Check overflow.
5970 (scan_one_insn): Ditto.
7a81008b 5971 (print_allocno_costs): Print total mem cost fore regional allocation.
1756cb66
VM
5972 (print_pseudo_costs): Use REG_N_REFS.
5973 (find_costs_and_classes): Use classes intersected with them on the
5974 1st pass. Check overflow. Use ira_reg_class_subunion instead of
5975 ira_reg_class_union. Use ira_allocno_class_translate and
5976 regno_aclass instead of ira_class_translate and regno_cover_class.
5977 Modify code for finding regno_aclass. Setup preferred classes for
5978 the next pass.
5979 (setup_allocno_cover_class_and_costs): Rename to
5980 setup_allocno_class_and_costs. Use regno_aclass instead of
5981 regno_cover_class. Use ira_set_allocno_class instead of
5982 ira_set_allocno_cover_class.
5983 (init_costs, finish_costs): Use regno_aclass instead of
5984 regno_cover_class.
5985 (ira_costs): Use setup_allocno_class_and_costs instead of
5986 setup_allocno_cover_class_and_costs.
5987 (ira_tune_allocno_costs_and_cover_classes): Rename to
5988 ira_tune_allocno_costs. Check overflow. Skip conflict hard regs
5989 by processing objects. Use ira_reg_class_max_nregs instead of
5990 ira_reg_class_nregs.
5991
5992 * rtl.h (reg_cover_class): Rename to reg_allocno_class.
5993
5994 * sched-int.h: Remove mentioning cover classes from the file.
5995 (sched_regno_cover_class): Rename to sched_regno_pressure_class.
5996
5997 * reginfo.c: Add 2010 to Copyright. Remove mentioning cover
5998 classes from the file.
5999 (struct reg_pref): Rename coverclass into allocnoclass.
6000 (reg_cover_class): Rename to reg_allocno_class.
6001
7a81008b 6002 * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
1756cb66
VM
6003
6004 * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
6005
6006 * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
6007
6008 * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
6009
6010 * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
6011
6012 * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
6013
6014 * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
6015
6016 * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
6017
6018 * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
6019
6020 * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
6021
6022 * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
6023 (i386_ira_cover_classes): Ditto.
6024
6025 * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
6026
6027 * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
6028
6029 * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
6030
6031 * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
6032
6033 * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
6034
6035 * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
6036
6037 * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
6038 (mips_ira_cover_classes): Ditto.
6039
6040 * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
6041
6042 * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
6043
6044 * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
6045
6046 * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
6047
6048 * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
6049
6050 * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
6051 (IRA_COVER_CLASSES_VSX): Ditto.
6052
6053 * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
6054 (rs6000_ira_cover_classes): Ditto.
6055
6056 * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
6057
6058 * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
6059
6060 * config/score/score.h (IRA_COVER_CLASSES): Ditto.
6061
6062 * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
6063
6064 * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
6065
6066 * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
6067
6068 * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
6069
6070 * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
6071
6072 * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
6073
6074 * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
6075
2b80199f
JJ
60762011-03-29 Jakub Jelinek <jakub@redhat.com>
6077
71dae1fe
JJ
6078 PR debug/48253
6079 * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
6080 dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
6081 dw_fde_unlikely_section_end_label, cold_in_std_section,
6082 dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
6083 Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
6084 fields.
6085 (output_fde): Use dw_fde_second_{begin,end} if second is
6086 true, otherwise dw_fde_{begin,end}.
6087 (output_call_frame_info): Test dw_fde_second_begin != NULL
6088 instead of dw_fde_switched_sections.
6089 (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
6090 fields, initialize new fields. Initialize in_std_section
6091 unconditionally from the first partition.
6092 (dwarf2out_end_epilogue): Don't override dw_fde_end when
6093 dw_fde_second_begin is non-NULL.
6094 (dwarf2out_switch_text_section): Stop initializing removed
6095 dw_fde_struct fields, initialize new fields, initialize
6096 also dw_fde_end here. Set dw_fde_switch_cfi even when
6097 dwarf2out_do_cfi_asm (). Call var_location_switch_text_section.
6098 (struct var_loc_list_def): Add last_before_switch field.
6099 (arange_table, arange_table_allocated, arange_table_in_use,
6100 ARANGE_TABLE_INCREMENT, add_arange): Removed.
6101 (size_of_aranges): Count !in_std_section and !second_in_std_section
6102 hunks in fdes, instead of looking at arange_table_in_use.
6103 (output_aranges): Add aranges_length argument, don't call
6104 size_of_aranges here. Instead of using aranges_table*
6105 emit ranges for fdes when !in_std_section resp.
6106 !second_in_std_section.
6107 (dw_loc_list): Break ranges crossing section switch.
6108 (convert_cfa_to_fb_loc_list): Likewise. If switched sections,
7a81008b 6109 use dw_fde_second_end instead of dw_fde_end as end of last range.
71dae1fe
JJ
6110 (gen_subprogram_die): Don't call add_arange. Use
6111 dw_fde_{begin,end} for first partition and if switched
6112 section dw_fde_second_{begin,end} for the second.
6113 (var_location_switch_text_section_1,
6114 var_location_switch_text_section): New functions.
6115 (dwarf2out_begin_function): Initialize cold_text_section even
6116 when function_section () isn't text_section.
6117 (prune_unused_types): Don't walk arange_table.
6118 (dwarf2out_finish): Don't needlessly test
6119 flag_reorder_blocks_and_partition when testing cold_text_section_used.
6120 If info_section_emitted, call size_of_aranges and if it indicates
6121 non-empty .debug_aranges, call output_aranges with the computed
6122 size. Stop using removed dw_fde_struct fields, use
6123 dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
6124 for second.
6125
2b80199f
JJ
6126 PR debug/48203
6127 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
6128 create ENTRY_VALUE if incoming or address of incoming's MEM
6129 is a hard REG.
6130 * dwarf2out.c (mem_loc_descriptor): Don't emit
6131 DW_OP_GNU_entry_value of DW_OP_fbreg.
6132 * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
6133 on ENTRY_VALUE is able to find the canonical parameter VALUE.
6134 * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
6135 rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
6136 ENTRY_VALUE_EXPs.
6137 (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
6138 is a REG_P or MEM_P with REG_P address, compute hash directly
6139 instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
6140 (preserve_only_constants): Don't clear VALUES forwaring
6141 ENTRY_VALUE to some other VALUE.
6142
8a445129
RS
61432011-03-28 Richard Sandiford <richard.sandiford@linaro.org>
6144
6145 * builtins.c (expand_builtin_memset_args): Use gen_int_mode
6146 instead of GEN_INT.
6147
c82fee88
EB
61482011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6149
6150 * cfgexpand.c (expand_gimple_cond): Always set the source location and
6151 block before expanding the statement.
6152 (expand_gimple_stmt_1): Likewise. Set them here...
6153 (expand_gimple_stmt): ...and not here. Tidy.
6154 * cfglayout.c (curr_insn_locator): Return 0 if the current location is
6155 unknown.
6156
e45425ec
SB
61572011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6158
6159 * Makefile.in: New rule for cprop.o.
6160 * gcse.c: Move constant/copy propagation to cprop.c.
6161 (compute_local_properties): Only handle expression tables.
6162 (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
6163 (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
6164 (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
6165 next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
7a81008b 6166 mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
e45425ec
SB
6167 compute_cprop_data, find_used_regs, try_replace_reg,
6168 find_avail_set, cprop_jump, constprop_register, cprop_insn,
6169 local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
6170 fis_get_condition, implicit_set_cond_p, find_implicit_sets,
6171 find_bypass_set, reg_killed_on_edge, bypass_block,
6172 bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
6173 execute_rtl_cprop, pass_rtl_cprop): Move to...
6174 * cprop.c: ...here. New file, constant/copy propagation for RTL
6175 moved from gcse.c to here with minor cleanups in duplicated code.
6176
c09d5426
L
61772011-03-28 H.J. Lu <hongjiu.lu@intel.com>
6178
6179 * config/i386/i386.c (flag_opts): Fix a typo in
6180 -mavx256-split-unaligned-store.
6181
9eaa7740
AS
61822011-03-28 Anatoly Sokolov <aesok@post.ru>
6183
6184 * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
6185 LIBCALL_VALUE): Remove macros.
6186 * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6187 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6188 (h8300_function_value, h8300_libcall_value,
6189 h8300_function_value_regno_p): New functions.
6190
dcec2be2
AS
61912011-03-28 Anatoly Sokolov <aesok@post.ru>
6192
6193 * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
6194
520af9ec
JL
61952011-03-28 Jeff Law <law@redhat.com>
6196
6197 * tree-ssa-threadupdate.c (redirect_edges): Call
6198 create_edge_and_update_destination_phis as needed.
6199 (create_edge_and_update_destination_phis): Accept new BB argument.
6200 All callers updated.
6201 (thread_block): Do not update the profile when threading around
6202 intermediate blocks.
6203 (thread_single_edge): Likewise.
6204 (determine_bb_domination_status): If BB is not a successor of the
6205 loop header, return NONDOMINATING.
6206 (register_jump_thread): Note when we register a jump thread around
6207 an intermediate block.
6208 * tree-ssa-threadedge.c (thread_around_empty_block): New function.
6209 (thread_across_edge): Use it.
6210
7450b54f
TG
62112011-03-28 Tristan Gingold <gingold@adacore.com>
6212
6213 * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
6214 when for_return is 2.
6215
649beb33
JL
62162011-03-28 Jeff Law <law@redhat.com>
6217
6218 * var-tracking.c (canonicalize_values_mark): Delete unused
6219 lhs assignment.
6220 (canonicalize_values_star, set_variable_part): Likewise.
6221 (clobber_variable_part, delete_variable_part): Likewise.
6222
d5b8da97
SB
62232011-03-28 Steven Bosscher <steven@gcc.gnu.org>
6224
6225 * gcse.c (free_gcse_mem): Free reg_set_bitmap.
6226
322dd859
MJ
62272011-03-28 Martin Jambor <mjambor@suse.cz>
6228
6229 * tree-inline.c (expand_call_inline): Do not check that destination
6230 node is analyzed.
6231 (optimize_inline_calls): Assert that destination node is analyzed.
6232 * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
6233 not call tree_lowering_passes.
6234 * cgraph.h (cgraph_analyze_function): Declare.
6235 * cgraphunit.c (cgraph_analyze_function): Make public.
6236
aa53e58b
JM
62372011-03-28 Joseph Myers <joseph@codesourcery.com>
6238
6239 * config/sparc/sparc-opts.h: New.
6240 * config/sparc/sparc.c (sparc_handle_option, sparc_select,
6241 sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
6242 (sparc_option_override): Store processor_type enumeration rather
6243 than string in cpu_default. Remove name and enumeration from
6244 cpu_table. Directly default -mcpu then default -mtune from -mcpu
6245 without using sparc_select. Use target_flags_explicit instead of
6246 fpu_option_set.
6247 * config/sparc/sparc.h (enum processor_type): Move to
6248 sparc-opts.h.
6249 (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
6250 * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
6251 HeaderInclude entry.
6252 (mcpu=, mtune=): Use Var and Enum.
6253 (sparc_processor_type): New Enum and EnumValue entries.
6254
dd350eba
RO
62552011-03-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6256 Iain Sandoe <iains@gcc.gnu.org>
6257
6258 PR target/48245
6259 * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
6260
1b29f05e
EB
62612011-03-28 Eric Botcazou <ebotcazou@adacore.com>
6262
6263 * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
6264 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
6265 Insert new statements at it in lieu of STMT.
6266 (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
6267 * tree-vect-stmts.c (vectorizable_store): Likewise.
6268 (vectorizable_load): Likewise.
6269
506e6808
UB
62702011-03-28 Uros Bizjak <ubizjak@gmail.com>
6271
6272 * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
6273 (divtf3): Ditto.
6274 (multf3): Ditto.
6275 (subtf3): Ditto.
6276
2e939ee9
L
62772011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6278
6279 * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
6280 unaligned 256bit load/store.
6281 (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
6282 (*avx_movdqu<avxmodesuffix>): Likewise.
6283
5e85ab88
JDA
62842011-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6285
6286 PR target/48288
6287 * config/pa/predicates.md (reg_or_ior_operand): New predicate.
6288 * config/pa/pa.md (iordi3): Use new predicate in expander.
6289 (iorsi3): Likewise.
6290
47be3d6d
AS
62912011-03-27 Anatoly Sokolov <aesok@post.ru>
6292
506e6808 6293 * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
47be3d6d 6294 FUNCTION_VALUE_REGNO_P): Remove macros.
506e6808
UB
6295 * config/mips/mips-protos.h (mips_function_value): Remove.
6296 * config/mips/mips.c (mips_function_value): Rename to...
47be3d6d
AS
6297 (mips_function_value_1): ... this. Make static. Handle receiving
6298 the function type in 'fn_decl_or_type' argument.
6299 (mips_function_value, mips_libcall_value,
6300 mips_function_value_regno_p): New function.
6301 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6302 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6303
d253656a
L
63042011-03-27 H.J. Lu <hongjiu.lu@intel.com>
6305
6306 * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
6307 and -mavx256-split-unaligned-store.
6308 (ix86_option_override_internal): Split 32-byte AVX unaligned
6309 load/store by default.
6310 (ix86_avx256_split_vector_move_misalign): New.
6311 (ix86_expand_vector_move_misalign): Use it.
6312
6313 * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
6314 -mavx256-split-unaligned-store.
6315
6316 * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
6317 256bit load/store. Generate unaligned store on misaligned memory
6318 operand.
6319 (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
6320 256bit load/store.
6321 (*avx_movdqu<avxmodesuffix>): Likewise.
6322
6323 * doc/invoke.texi: Document -mavx256-split-unaligned-load and
6324 -mavx256-split-unaligned-store.
6325
1ea9206a
RS
63262011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6327
6328 PR target/38598
6329 * config/mips/mips.md (extendsidi2): Add an "l" alternative.
6330 Update commentary.
6331
b99ce2a8
RS
63322011-03-27 Richard Sandiford <rdsandiford@googlemail.com>
6333
6334 * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
6335 opno arguments with an expand_operand. Use create_input_operand.
6336 (mips_prepare_builtin_target): Delete.
6337 (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
6338 functions.
6339 (mips_expand_builtin_direct): Use create_output_operand and
6340 mips_expand_builtin_insn. Update call to mips_prepare_builtin_arg.
6341 (mips_expand_builtin_movtf): Likewise. Use mips_expand_fp_comparison.
6342 (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
6343
69d52339
IR
63442011-03-27 Ira Rosen <ira.rosen@linaro.org>
6345
6346 * config/arm/arm.c (arm_autovectorize_vector_sizes): New
6347 function.
6348 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
6349
ba5e9aca
EB
63502011-03-26 Eric Botcazou <ebotcazou@adacore.com>
6351
6352 * basic-block.h (fixup_abnormal_edges): Adjust prototype.
6353 * reload1.c (reload): Adjust call to fixup_abnormal_edges. Rediscover
6354 basic blocks and call commit_edge_insertions directly.
6355 (fixup_abnormal_edges): Move from here to...
6356 * cfgrtl.c (fixup_abnormal_edges): ...here. Only insert instructions
6357 on the edges and return whether some have actually been inserted.
6358 * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
6359 compensation code.
6360
5d369d58
AB
63612011-03-26 Andrey Belevantsev <abel@ispras.ru>
6362
6363 PR rtl-optimization/48144
6364 * sel-sched-ir.c (merge_history_vect): Factor out from ...
6365 (merge_expr_data): ... here.
6366 (av_set_intersect): Rename to av_set_code_motion_filter.
6367 Update all callers. Call merge_history_vect when an expression
6368 is found in both sets.
6369 * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
6370
f082c000
AM
63712011-03-26 Alan Modra <amodra@gmail.com>
6372
6373 * config/rs6000/predicates.md (word_offset_memref_op): Handle
6374 cmodel medium addresses.
6375 * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
6376 64-bit gpr loads and stores.
6377 (rs6000_secondary_reload_ppc64): New function.
6378 * config/rs6000/rs6000-protos.h: Declare it.
6379 * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
6380
8ac5e12e
AM
63812011-03-26 Alan Modra <amodra@gmail.com>
6382
6383 PR target/47487
6384 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
6385 GNU Go in traceback table.
6386
c2654ded
RH
63872011-03-25 Richard Henderson <rth@redhat.com>
6388
6389 * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
6390 if there are exactly 6 operands.
6391 (set_storage_via_setmem): Similarly.
6392
ba78087b
KT
63932011-03-25 Kai Tietz <ktietz@redhat.com>
6394
6395 * collect2.c (write_c_file_stat): Handle backslash
6396 as right-hand directory separator.
6397 (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
6398 checking just for slash.
6399 * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
6400 instead of checking for trailing slash.
6401 * gcc.c (record_temp_file): Use filename_cmp instead
6402 of strcmp.
6403 (do_spec_1): Likewise.
6404 (replace_outfile_spec_function): Likewise.
6405 (is_directory): Use filename_ncmp instead of strncmp.
6406 (print_multilib_info): Likewise.
6407 * gcov.c (find_source): Use filename_cmp instead
6408 instead of strcmp.
6409 (make_gcov_file_name): Fix order of slash/backslash
6410 checks.
6411 * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
6412 (add_standard_paths): Likewise.
6413 * mips-tfile.c (saber_stop): Handle backslash.
6414 * prefix.c (update_path): Use filename_ncmp instead of
6415 strncmp.
6416 * profile.c (output_location): Use filename_cmp instead
6417 of strcmp.
6418 * read-md.c (handle_toplevel_file): Handle backslash.
6419 * tlink.c (frob_extension): Likewise.
6420 * tree-cfg.c (same_line_p): Use filename_cmp instead of
6421 strcmp.
6422 * tree-dump.c (dequeue_and_dump): Handle backslash.
6423 * tree.c (get_file_function_name): Likewise.
6424 * gengtype.c (read_input_list): Likewise.
6425 (get_file_realbasename): Likewise.
6426 (get_output_file_with_visibility): Use filename_cmp
6427 instead of strcmp.
6428
75f6ec9a
RS
64292011-03-25 Richard Sandiford <richard.sandiford@linaro.org>
6430
6431 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
6432 case to VFPv1.
6433
6c4e2997
NF
64342011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6435
6436 * fold-const.c (expr_location_or): New function.
6437 (fold_truth_not_expr): Call it.
6438
0edf1bb2
JL
64392011-03-25 Jeff Law <law@redhat.com>
6440
6441 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
6442 va_end.
6443 * c-family/c-common.c (def_fn_type): Likewise.
6444 * ada/gcc-interface/utils.c (def_fn_type): Likewise.
6445 * emit-rtl.c (gen_rtvec): Likewise.
6446 * lto/lto-lang.c (def_fn_type): Likewise.
6447
fdc2de95
RG
64482011-03-25 Richard Guenther <rguenther@suse.de>
6449
6450 * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
6451 also generate copies.
6452 (fini_copy_prop): Handle constant values properly.
6453
21385db0
JJ
64542011-03-25 Jakub Jelinek <jakub@redhat.com>
6455
6456 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
6457 mode size instead of bitsize with DWARF2_ADDR_SIZE.
6458 (hash_loc_operands, compare_loc_operands): Handle
6459 DW_OP_GNU_entry_value.
6460
6510e8bb
KT
64612011-03-25 Kai Tietz <ktietz@redhat.com>
6462
6463 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
6464 (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
6465 * config/i386/i386.c (ix86_conditional_register_usage): Adjust
6466 comment and use macro TARGET_64BIT_MS_ABI instead.
6467 (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
6468 and change default behavior for 32-bit MS_ABI.
6469 (ix86_reg_parm_stack_space): Check additionally for bit-ness.
6470 (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
6471 32-bit, too.
6472 (ix86_cfun_abi): Likewise.
6473 (ix86_maybe_switch_abi): Adjust comment.
6474 (init_cumulative_args): Check for bit-ness in MS_ABI case.
6475 (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
6476 instead of checking for SYSV_ABI.
6477 (ix86_nsaved_sseregs): Likewise.
6478 (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
6479 to 16 bytes.
6480 (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
6481 * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
6482 (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
6483 (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
6484 * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
6485
34019e28
RG
64862011-03-25 Richard Guenther <rguenther@suse.de>
6487
6488 * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
6489 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6490 (verify_gimple): Remove.
6491 * tree-cfg.c (verify_gimple_call): Merge verification
6492 from verify_stmts.
6493 (verify_gimple_phi): Merge verification from verify_stmts.
6494 (verify_gimple_label): New function.
6495 (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
6496 (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
6497 (verify_stmt): Merge into verify_gimple_in_cfg and callees.
6498 (verify_stmts): Rename to verify_gimple_in_cfg.
6499 (verify_gimple_in_cfg): New function.
6500 * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
6501 * tree-ssa.c (verify_ssa): Likewise.
6502 * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
6503
605896f5
RG
65042011-03-25 Richard Guenther <rguenther@suse.de>
6505
6506 * passes.c (init_optimization_passes): Add FRE pass after
6507 early SRA.
6508
7baa7c13
BS
65092011-03-25 Bernd Schmidt <bernds@codesourcery.com>
6510 Andrew Stubbs <ams@codesourcery.com>
6511
6512 * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
6513 for Cortex-A8.
6514 (arm_movdi_vfp_cortexa8): New pattern.
6515 * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
6516 iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
6517 instructions when tuning for Cortex-A8. Set attribute "arch".
6518 * config/arm/arm.md: Move include arm-tune.md up a bit.
6519 (define_attr "arch"): Add "onlya8" and "nota8" values.
6520 (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
6521
45dbce1b
NF
65222011-03-25 Nathan Froyd <froydnj@codesourcery.com>
6523
4ff08abf 6524 PR bootstrap/48282
45dbce1b
NF
6525 Revert:
6526 2011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6527
6528 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6529 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6530 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6531 * passes.c (init_optimization_passes): Move
6532 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6533
ac9a30ae
KT
65342011-03-25 Kai Tietz <ktietz@redhat.com>
6535
6536 * c-typeck.c (comptypes_internal): Replace target
6537 hook call of comp_type_attributes by version in tree.c file.
6538 * gimple.c (gimple_types_compatible_p_1): Likewise.
6539 * tree-ssa.c (useless_type_conversion_p): Likewise.
6540 * tree.c (build_type_attribute_qual_variant): Likewise.
6541 (attribute_value_equal): New static helper function.
6542 (comp_type_attributes): New function.
6543 (merge_attributes): Use attribute_value_equal for comparison.
6544 (attribute_list_contained): Likewise.
6545 * tree.h (comp_type_attributes): New prototype.
6546
afdac116
RG
65472011-03-25 Richard Guenther <rguenther@suse.de>
6548
6549 * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
6550 of complex types at -O0.
6551 (verify_gimple_assign_binary): Likewise.
6552 (verify_gimple_assign_ternary): Likewise.
6553
ec6165f8
MW
65542011-03-24 Mark Wielaard <mjw@redhat.com>
6555
6556 * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
6557 (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
6558
2a5ac39a
MW
65592011-03-24 Mark Wielaard <mjw@redhat.com>
6560
6561 PR debug/48041
6562 * dwarf2out.c (output_abbrev_section): Only write table when
6563 abbrev_die_table_in_use > 1.
6564
e533b2a4
RH
65652011-02-24 Richard Henderson <rth@redhat.com>
6566
6567 * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
6568 (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
6569 (alpha_expand_unaligned_load_words): Use extql.
6570 (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
6571 (emit_insxl): Handle all modes for consistency.
6572
0b2a7367
RH
65732011-02-24 Richard Henderson <rth@redhat.com>
6574
6575 * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
6576 (alpha_expand_unaligned_load): Likewise.
6577 (alpha_expand_unaligned_store): Likewise.
6578 (alpha_expand_unaligned_load_words): Likewise.
6579 (alpha_expand_unaligned_store_words): Likewise.
6580 (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
6581 (alpha_split_lock_test_and_set_12): Likewise.
6582 (print_operand, alpha_fold_builtin_extxx): Likewise.
6583 (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
6584 * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
6585 (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
6586 (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
6587 (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
6588 (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
6589 (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
6590 (unaligned_storeqi_be, unaligned_storehi_be): Remove.
6591 (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
6592 (extwl, extll, extql): Similarly.
6593 (inswh, inslh, insqh): Similarly.
6594 (mskbl, mskwl, mskll, mskql): Similarly.
6595 (mskwh, msklh, mskqh): Similarly.
6596
315b2bef
RH
65972011-02-24 Richard Henderson <rth@redhat.com>
6598
6599 * config/alpha/alpha.md (attribute isa): Add er, ner.
6600 (attribute enabled): Handle them.
6601 (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
6602
67102517
RH
66032011-02-24 Richard Henderson <rth@redhat.com>
6604
6605 * config/alpha/alpha.md (attribute isa): Add vms.
6606 (attribute enabled): Handle it.
6607 (*movsf): Merge *movsf_{nofix,fix,nofp}.
6608 (*movdf): Merge *movdf_{nofix,fix,nofp}.
6609 (*movtf): Rename from *movtf_internal for consistency.
6610 (*movsi): Merge with *movsi_nt_vms.
6611 (*movhi): Merge *movhi_nobwx, *movhi_bwx.
6612 (*movqi): Merge *movqi_nobwx, *movqi_bwx.
6613 (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
6614 * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
6615
6aba5cb4
RH
66162011-02-24 Richard Henderson <rth@redhat.com>
6617
6618 * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
6619 (extendqisi2, extendhisi2): Likewise.
6620 (extendqidi2): Simplify BWX/non-BWX expansions.
6621 (extendhidi2): Similarly.
6622
bdfb351b
RH
66232011-02-24 Richard Henderson <rth@redhat.com>
6624
6625 * config/alpha/alpha.md (attribute isa): New.
6626 (attribute enabled): New.
6627 (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
6628 (zero_extendqisi2, zero_extendqidi2): Similarly.
6629 (zero_extendhisi2, zero_extendhidi2): Similarly.
6630 * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
6631
6abe71eb
RH
66322011-02-24 Richard Henderson <rth@redhat.com>
6633
6634 * config/alpha/predicates.md (input_operand): Revert last change;
6635 update comment to mention 32-bit VMS rather than Windows.
6636
7114321e
NF
66372011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6638
6639 * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
6640 FOR_BB_INSNS_SAFE to iterate through insns. Re-indent.
6641 (pass_instantiate_virtual_regs): Require PROP_cfglayout.
6642 * passes.c (init_optimization_passes): Move
6643 pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
6644
c8679567
EB
66452011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6646
6647 * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
6648
27173058
UB
66492011-03-24 Uros Bizjak <ubizjak@gmail.com>
6650
6651 * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
6652 correctly.
6653
6f0c9f06
JJ
66542011-03-24 Jakub Jelinek <jakub@redhat.com>
6655
6656 PR debug/48204
6657 * simplify-rtx.c (simplify_const_unary_operation): Call
6658 real_convert when changing mode class with FLOAT_EXTEND.
6659
662666e5
NC
66602011-03-24 Nick Clifton <nickc@redhat.com>
6661
6662 * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
6663 (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
6664 * config/rx/rx.c (rx_option_override): Set align_jumps,
6665 align_loops and align_labels if not set by the user.
6666 (rx_align_for_label): New function.
6667 (rx_max_skip_for_label): New function.
6668 (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
6669 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
6670 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
6671 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
6672 * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
6673
2b99b2b8
RS
66742011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6675
6676 PR rtl-optimization/48263
6677 * optabs.c (expand_binop_directly): Reinstate convert_modes code
6678 and original commutative_p handling. Use maybe_gen_insn.
6679
ccecd6ea
AK
66802011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6681
6682 * reload.c (find_reloads_subreg_address): Add address_reloaded
6683 parameter and return true there if the full address has been
6684 reloaded.
6685 (find_reloads_toplev): Pass address_reloaded flag.
6686 (find_reloads_address_1): Don't use address_reloaded parameter.
6687
67295642
JL
66882011-03-24 Jeff Law <law@redhat.com>
6689
6690 * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
6691 unused variable "ann".
6692 (remove_unused_locals): Likewise.
6693
6694 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
6695 statement.
6696
6697 * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
6698 after it is freed.
6699
212aa74f
AK
67002011-03-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6701
6702 * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
6703 for invalid symbolic addresses.
6704 (s390_secondary_reload): Don't use s390_check_symref_alignment for
6705 larl operands.
6706
fe784e0d
EB
67072011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6708
6709 * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
6710 the argument in calls to fold_truth_not_expr.
6711
63ee8641
NF
67122011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6713
6714 * tree.c (record_node_allocation_statistics): New function.
6715 (make_node_stat, copy_node_stat, build_string): Call it.
6716 (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
6717 (build1_stat, build_omp_clause): Likewise.
6718
61be2a1c
RS
67192011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6720
6721 * builtins.c (expand_movstr): Fix endp == 1 adjustment after
6722 last commit.
6723
a881aaa7
RG
67242011-03-24 Richard Guenther <rguenther@suse.de>
6725
6726 PR tree-optimization/48271
6727 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
6728 blocks that still exist.
6729
dbaa912c
RG
67302011-03-24 Richard Guenther <rguenther@suse.de>
6731
6732 PR tree-optimization/48270
6733 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
6734 not free datarefs before ddrs.
6735
1d60cc55
EB
67362011-03-24 Eric Botcazou <ebotcazou@adacore.com>
6737
6738 * tree-sra.c (build_ref_for_offset): Strip useless type conversions
6739 from the address built for a reference with variable offset.
6740
c78dd519
UB
67412011-03-24 Uros Bizjak <ubizjak@gmail.com>
6742
6743 PR target/48237
6744 * config/i386/i386.md (*movdf_internal_rex64): Do not split
6745 alternatives that can be handled with movq or movabsq insn.
6746 (*movdf_internal): Disable for !TARGET_64BIT.
6747 (*movdf_internal_nointeger): Ditto.
6748 * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
6749
b25b9e8f
NF
67502011-03-24 Nathan Froyd <froydnj@codesourcery.com>
6751
6752 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
6753 (FUNCTION_ARG_ADVANCE): Likewise.
6754 * tm.texi.in: Change references to them to hook references.
6755 * tm.texi: Regenerate.
c78dd519 6756 * targhooks.c (default_function_arg): Eliminate check for target macro.
b25b9e8f
NF
6757 (default_function_incoming_arg): Likewise.
6758 (default_function_arg_advance): Likewise.
c78dd519 6759 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
b25b9e8f
NF
6760 (function_arg_advance): Likewise.
6761 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
6762
190b2187
RG
67632011-03-24 Richard Guenther <rguenther@suse.de>
6764
6765 PR middle-end/48269
6766 * tree-object-size.c (addr_object_size): Do not double-account
6767 for MEM_REF offsets.
6768
a183b5c7
DN
67692011-03-24 Diego Novillo <dnovillo@google.com>
6770
6771 * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
c78dd519 6772 * lto-streamer-in.c (input_string_internal): Add clarifying comments.
a183b5c7
DN
6773 (lto_input_data_block): Move from lto-opts.c. Make extern.
6774 Update all users.
6775 (lto_input_string): Rename from input_string. Make extern.
6776 Update all users.
6777 * lto-streamer-out.c (lto_output_string_with_length): Rename from
6778 output_string_with_length.
6779 Output 0 to indicate a non-NULL string. Update all callers to
6780 not emit 0.
6781 (lto_output_string): Rename from output_string. Make extern.
6782 Update all users.
6783 (lto_output_decl_state_streams): Make extern.
6784 (lto_output_decl_state_refs): Make extern.
6785 * lto-streamer.h (lto_input_string): Declare.
6786 (lto_input_data_block): Declare.
6787 (lto_output_string): Declare.
6788 (lto_output_string_with_length): Declare.
6789 (lto_output_decl_state_streams): Declare.
6790 (lto_output_decl_state_refs): Declare.
6791
cfef45c8
RG
67922011-03-24 Richard Guenther <rguenther@suse.de>
6793
6794 PR tree-optimization/46562
6795 * tree.c (build_invariant_address): New function.
6796 * tree.h (build_invariant_address): Declare.
6797 * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
6798 a renamed function moved ...
6799 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
6800 Take valueization callback parameter.
6801 * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
6802 * gimple-fold.h: New file.
6803 * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
6804 (ccp_fold, fold_const_aggregate_ref,
6805 fold_ctor_reference, fold_nonarray_ctor_reference,
6806 fold_array_ctor_reference, fold_string_cst_ctor_reference,
6807 get_base_constructor): Move ...
6808 * gimple-fold.c: ... here.
6809 (gimple_fold_stmt_to_constant_1): New function
6810 split out from ccp_fold. Take a valueization callback parameter.
6811 Valueize all operands.
6812 (gimple_fold_stmt_to_constant): New wrapper function.
6813 (fold_const_aggregate_ref_1): New function split out from
6814 fold_const_aggregate_ref. Take a valueization callback parameter.
6815 (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
6816 * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
6817 invariant POINTER_PLUS_EXPRs to invariant form.
6818 (vn_valueize): New function.
6819 (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
6820 * tree-vrp.c (vrp_valueize): New function.
6821 (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
6822 to fold statements to constants.
6823 * tree-ssa-pre.c (eliminate): Properly guard propagation of
6824 function declarations.
6825 * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
6826 tree-ssa-ccp.o): Add gimple-fold.h dependencies.
6827
5e0a7e40
RS
68282011-03-24 Richard Sandiford <richard.sandiford@linaro.org>
6829
6830 * config/h8300/predicates.md (jump_address_operand): Fix register
6831 mode check.
6832
bfe068c3
IR
68332011-03-24 Ira Rosen <ira.rosen@linaro.org>
6834
6835 * doc/invoke.texi (max-stores-to-sink): Document.
6836 * params.h (MAX_STORES_TO_SINK): Define.
6837 * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
6838 if either vectorization or if-conversion is disabled.
6839 * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
6840 tree-vect-data-refs.c vect_equal_offsets.
6841 (dr_equal_offsets_p): New function.
6842 (find_data_references_in_bb): Remove static.
6843 * tree-data-ref.h (find_data_references_in_bb): Declare.
6844 (dr_equal_offsets_p): Likewise.
6845 * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
6846 (vect_drs_dependent_in_basic_block): Update calls to
6847 vect_equal_offsets.
6848 (vect_check_interleaving): Likewise.
6849 * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
6850 (cond_if_else_store_replacement): Rename to...
6851 (cond_if_else_store_replacement_1): ... this. Change arguments and
6852 documentation.
6853 (cond_if_else_store_replacement): New function.
6854 * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
6855 * params.def (PARAM_MAX_STORES_TO_SINK): Define.
6856
4908b0bf
CLT
68572011-03-23 Chung-Lin Tang <cltang@codesourcery.com>
6858
6859 PR target/46934
6860 * config/arm/arm.md (casesi): Use the gen_int_mode() function
6861 to subtract lower bound instead of GEN_INT().
6862
2be478a2
JW
68632011-03-23 Jonathan Wakely <jwakely.gcc@gmail.com>
6864
6865 PR other/48179
6866 PR other/48221
6867 PR other/48234
6868 * doc/extend.texi (Alignment): Move section to match order in TOC.
6869 * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
6870 (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
6871
0c617be4
JL
68722011-03-23 Jeff Law <law@redhat.com>
6873
6874 * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
6875 before removing the edge.
6876
6877 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
6878 it may have been freed by redirect_branch_edge or
6879 redirect_edge_succ_nodup.
6880
58da96fe
RG
68812011-03-23 Richard Guenther <rguenther@suse.de>
6882
c78dd519 6883 * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
58da96fe
RG
6884 (check_va_list_escapes): Likewise.
6885 (check_all_va_list_escapes): Likewise.
6886
b8beb4d1
RG
68872011-03-23 Richard Guenther <rguenther@suse.de>
6888
6889 * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
6890 (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
6891 (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
6892 (alias.o): Likewise.
6893 (ipa-type-escape.o): Remove.
6894 (ipa-struct-reorg.o): Likewise.
6895 (GTFILES): Remove ipa-struct-reorg.c.
6896 * alias.c: Do not include ipa-type-escape.h.
6897 * tree-ssa-alias.c: Likewise.
6898 * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
6899 * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
6900 * passes.c (init_optimization_passes): Remove ipa-struct-reorg
6901 and ipa-type-escape passes.
6902 * tree-pass.h (pass_ipa_type_escape): Remove.
6903 (pass_ipa_struct_reorg): Likewise.
6904 * ipa-struct-reorg.h: Remove.
6905 * ipa-struct-reorg.c: Likewise.
6906 * ipa-type-escape.h: Likewise.
6907 * ipa-type-escape.c: Likewise.
6908 * doc/invoke.texi (-fipa-struct-reorg): Remove.
6909 (--param struct-reorg-cold-struct-ratio): Likewise.
6910 * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6911 * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
6912 * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
6913
f137aa63
AK
69142011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6915
6916 * config/s390/2084.md: Enable all insn reservations also for z9_ec
6917 cpu attribute value.
6918 * config/s390/s390-opts.h (enum s390_arch_option): Remove.
6919 (enum processor_type): Add PROCESSOR_2094_Z9_EC.
6920 * config/s390/s390.c (processor_flags_table): New constant array.
6921 (s390_handle_arch_option): Remove.
6922 (s390_handle_option): Remove s390_handle_arch_option invocations
6923 and OPT_mwarn_framesize_ handling.
6924 (s390_option_override): Remove s390_handle_arch_option invocation.
6925 (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
6926 warnings.
6927 * config/s390/s390.md (cpu attribute): Add z9_ec value.
6928 * config/s390/s390.opt (s390_tune, s390_arch)
6929 (march=): Replace s390_arch_option enum and values with
6930 processor_type. Set variable name to s390_arch. Set
6931 initialization value.
6932 (mtune=): Replace s390_arch_option with processor_type. Set
6933 variable name to s390_tune. Set initialization value.
6934
bf90208f
JB
69352011-03-23 Julian Brown <julian@codesourcery.com>
6936
6937 * expr.c (expand_expr_real_1): Only use BLKmode for volatile
6938 accesses which are not naturally aligned.
6939
3460fdf3
RS
69402011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
6941
6942 PR target/47553
6943 * config/arm/predicates.md (neon_lane_number): Accept 0..15.
6944
a5c7d693
RS
69452011-03-23 Richard Sandiford <richard.sandiford@linaro.org>
6946
6947 * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
6948 parameter from "int" to "enum insn_code".
6949 (expand_operand_type): New enum.
6950 (expand_operand): New structure.
6951 (create_expand_operand): New function.
6952 (create_fixed_operand, create_output_operand): Likewise
6953 (create_input_operand, create_convert_operand_to): Likewise.
6954 (create_convert_operand_from, create_address_operand): Likewise.
6955 (create_integer_operand): Likewise.
6956 (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
6957 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6958 (expand_insn, expand_jump_insn): Likewise.
6959 * builtins.c (expand_builtin_prefetch): Use the new interfaces.
6960 (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
6961 (expand_movstr, expand_builtin___clear_cache): Likewise.
6962 (expand_builtin_lock_release): Likewise.
6963 * explow.c (allocate_dynamic_stack_space): Likewise.
6964 (probe_stack_range): Likewise. Allow check_stack to FAIL,
6965 and use the default handling in that case.
6966 * expmed.c (check_predicate_volatile_ok): Delete.
6967 (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
6968 (emit_cstore): Likewise.
6969 * expr.c (emit_block_move_via_movmem): Likewise.
6970 (set_storage_via_setmem, expand_assignment): Likewise.
6971 (emit_storent_insn, try_casesi): Likewise.
6972 (emit_single_push_insn): Likewise. Allow the expansion to fail.
6973 * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
6974 (expand_vec_shift_expr, expand_binop_directly): Likewise.
6975 (expand_twoval_unop, expand_twoval_binop): Likewise.
6976 (expand_unop_direct, emit_indirect_jump): Likewise.
6977 (emit_conditional_move, vector_compare_rtx): Likewise.
6978 (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
6979 (expand_sync_operation, expand_sync_fetch_operation): Likewise.
6980 (expand_sync_lock_test_and_set): Likewise.
6981 (maybe_emit_unop_insn): Likewise. Change icode to an insn_code.
6982 (emit_unop_insn): Likewise.
6983 (expand_copysign_absneg): Change icode to an insn_code.
6984 (create_convert_operand_from_type): New function.
6985 (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
6986 (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
6987 (expand_insn, expand_jump_insn): Likewise.
6988 * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
6989 than const_int_operand for operand 2.
6990
78fadbab
AK
69912011-03-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6992
6993 * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
6994 if possible.
6995
5f02387d
NF
69962011-03-22 Nathan Froyd <froydnj@codesourcery.com>
6997
6998 * emit-rtl.c (emit_pattern_before_noloc): New function.
6999 (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
7000 (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
7001 (emit_pattern_after_noloc): New function.
7002 (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
7003 (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
7004
fdf3e18a
NF
70052011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7006
7007 * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
7008 (__ffsDI2): Likewise.
7009
42d085c1
RH
70102011-03-22 Richard Henderson <rth@redhat.com>
7011
7012 * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
7013 of !TARGET_ABI_OPEN_VMS.
7014 (alpha_trampoline_init, alpha_start_function): Likewise.
7015 (alpha_expand_epilogue, alpha_file_start): Likewise.
7016 * config/alpha/alpha.md (divsi3, modsi3): Likewise.
7017 (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
7018 (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
7019 (*divmodsi_internal, *divmoddi_internal_er): Likewise.
7020 (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
7021
cabbe12a
JM
70222011-03-22 Joseph Myers <joseph@codesourcery.com>
7023
7024 * config/s390/s390-opts.h: New.
7025 * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
7026 s390_arch_flags, s390_warn_framesize, s390_stack_size,
7027 s390_stack_guard): Remove.
7028 (s390_handle_arch_option): Return void. Take enum
7029 s390_arch_option value instead of string and searching array.
7030 (s390_handle_option): Don't assert that global structures are in
7031 use. Access variables via opts pointer. Use error_at. Don't use
7032 sscanf for -mstack-guard= or -mstack-size=. Update call to
7033 s390_handle_arch_option.
7034 (s390_option_override): Update call to s390_handle_arch_option.
7035 (s390_emit_prologue): Use %d format for s390_stack_size in
7036 diagnostic. Use %wd for HOST_WIDE_INT.
7037 * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
7038 (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
7039 * config/s390/s390.opt (config/s390/s390-opts.h): New
7040 HeaderInclude entry.
7041 (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
7042 s390_arch_flags, s390_warn_framesize): New Variable entries.
7043 (s390_arch_option): New Enum and EnumValue entries.
7044 (march=): Use Enum instead of Var.
7045 (mstack-guard=, mstack-size=): Use UInteger and Var.
7046 (mtune=): Use Enum.
7047
05b12036
JM
70482011-03-22 Joseph Myers <joseph@codesourcery.com>
7049
7050 * config/score/score.c (score_handle_option): Don't assert that
7051 global structures are in use. Access target_flags via opts
7052 pointer. Use value of -march= option to determine target_flags
7053 settings.
7054 * config/score/score.opt (march=): Use Enum.
7055 (score_arch): New Enum and EnumValue entries.
7056
dd51e35a
JM
70572011-03-22 Joseph Myers <joseph@codesourcery.com>
7058
7059 * config/mep/mep.c (option_mtiny_specified): Remove.
7060 (mep_option_override): Move register handling for -mivc2 from
7061 mep_handle_option. Use global_options_set.x_mep_tiny_cutoff
7062 instead of option_mtiny_specified.
7063 (mep_handle_option): Access target_flags via opts pointer. Don't
7064 assert that global structures are in use. Defer part of -mivc2
7065 handling and move it to mep_option_override.
7066 * config/mep/mep.opt (IVC2): New Mask entry.
7067 (mivc2): Use Var and Defer instead of Mask.
7068
4a8d3d91
JM
70692011-03-22 Joseph Myers <joseph@codesourcery.com>
7070
7071 * config/v850/v850-opts.h: New.
7072 * config/v850/v850.c (small_memory): Replace with
7073 small_memory_physical_max array. Make that array static const.
7074 (v850_handle_memory_option): Take integer value of argument. Take
7075 gcc_options pointer, option text and location. Return void.
7076 Update for changes to small memory structures.
7077 (v850_handle_option): Access target_flags via opts pointer. Don't
7078 assert that global structures are in use. Update calls to
7079 v850_handle_memory_option.
c78dd519
UB
7080 (v850_encode_data_area): Update references to small memory settings.
7081 * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
4a8d3d91
JM
7082 (enum small_memory_type): Move to v850-opts.h.
7083 * config/v850/v850.opt (config/v850/v850-opts.h): New
7084 HeaderInclude entry.
7085 (small_memory_max): New Variable entry.
7086 (msda): Replace by pair of options msda= and msda-. Use UInteger.
7087 (mtda, mzda): Likewise.
7088
117fdbfa
JM
70892011-03-22 Joseph Myers <joseph@codesourcery.com>
7090
7091 * config/sh/sh.c (sh_handle_option): Access target_flags via opts
7092 pointer. Don't assert that global structures are in use.
7093
d715091c
JM
70942011-03-22 Joseph Myers <joseph@codesourcery.com>
7095
7096 * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
7097 via opts pointer. Don't assert that global structures are in use.
7098
1bb721dc
JM
70992011-03-22 Joseph Myers <joseph@codesourcery.com>
7100
7101 * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
7102 (munix=93): Use Var.
7103 * config/pa/pa-hpux1010.opt (munix=95): Use Var.
7104 * config/pa/pa-hpux1111.opt (munix=98): Use Var.
7105 * config/pa/pa-opts.h: New.
7106 * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
7107 (pa_handle_option): Don't assert that global structures are in
7108 use. Access target_flags via opts pointer. Don't handle
7109 OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
7110 OPT_munix_98 here.
7111 (pa_option_override): Handle deferred OPT_mfixed_range_.
7112
cd8d8754
JM
71132011-03-22 Joseph Myers <joseph@codesourcery.com>
7114
7115 * config/mn10300/mn10300-opts.h: New.
7116 * config/mn10300/mn10300.c (mn10300_processor,
7117 mn10300_tune_string): Remove.
7118 (mn10300_handle_option): Don't assert that global structures are
7119 in use. Access mn10300_processor via opts pointer. Don't handle
7120 OPT_mtune_ here.
7121 * config/mn10300/mn10300.h (enum processor_type): Move to
7122 mn10300-opts.h.
7123 (mn10300_processor): Remove.
7124 * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
7125 HeaderInclude entry.
7126 (mn10300_processor): New Variable entry.
7127 (mtune=): Use Var.
7128
24e6e6b1
JM
71292011-03-22 Joseph Myers <joseph@codesourcery.com>
7130
7131 * config/microblaze/microblaze.c: Don't include opts.h.
7132 (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
7133 * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
7134 (mno-clearbss): Use Var and Warn.
7135
8a784afb
JM
71362011-03-22 Joseph Myers <joseph@codesourcery.com>
7137
7138 * config/m32r/m32r-opts.h: New.
7139 * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
7140 (m32r_handle_option): Don't assert that global structures are in
7141 use. Access target_flags and m32r_cache_flush_func via opts
7142 pointer. Don't handle OPT_mmodel_, OPT_msdata_ or
7143 OPT_mno_flush_trap here.
7144 * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
7145 include of m32r-opts.h.
7146 * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
7147 HeaderInclude entry.
7148 (m32r_model_selected, m32r_sdata_selected): New Variable entries.
7149 (mmodel=): Use Enum and Var.
7150 (m32r_model): New Enum and EnumValue entries.
7151 (mno-flush-trap): Use Var.
7152 (msdata=): Use Enum and Var.
7153 (m32r_sdata): New Enum and EnumValue entries.
7154
bbfc9a8c
JM
71552011-03-22 Joseph Myers <joseph@codesourcery.com>
7156
7157 * config/m32c/m32c.c: Don't include opts.h.
7158 (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
7159 m32c_handle_option): Remove.
7160 (m32c_option_override): Check global_options_set.x_target_memregs
7161 instead of target_memregs_set.
7162 * config/m32c/m32c.h (target_memregs): Remove.
7163 * config/m32c/m32c.opt (memregs=): Use UInteger with integer
7164 variable.
7165
e24b8335
JM
71662011-03-22 Joseph Myers <joseph@codesourcery.com>
7167
7168 * config/iq2000/iq2000-opts.h: New.
7169 * config/iq2000/iq2000.c: Don't include opts.h.
7170 (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 7171 * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
e24b8335
JM
7172 * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
7173 HeaderInclude entry.
7174 (iq2000_tune): New Variable entry.
7175 (march=): Add comment. Use Enum.
7176 (iq2000_arch): New Enum and EnumValue entries.
7177 (mcpu=): Use Enum and Var.
7178 (iq2000_tune): New Enum and EnumValue entries.
7179
e6cc0c98
JM
71802011-03-22 Joseph Myers <joseph@codesourcery.com>
7181
7182 * config/ia64/ia64-opts.h: New.
7183 * config/ia64/ia64.c (ia64_tune): Remove.
7184 (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
7185 here. Use error_at.
7186 (ia64_option_override): Handle deferred OPT_mfixed_range_.
7187 * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
7188 * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
7189 HeaderInclude entry.
7190 (ia64_tune): New Variable entry.
7191 (mfixed-range=): Use Defer and Var.
7192 (mtune=): Use Enum and Var.
7193 (ia64_tune): New Enum and EnumValue entries.
7194
db25893c
JM
71952011-03-22 Joseph Myers <joseph@codesourcery.com>
7196
7197 * config/frv/frv-opts.h: New.
7198 * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
7199 frv-opts.h.
7200 (frv_cpu_type): Remove.
7201 * config/frv/frv.c: Don't include opts.h.
7202 (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
c78dd519 7203 * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
db25893c
JM
7204 (frv_cpu_type): New Variable entry.
7205 (frv_cpu): New Enum and EnumValue entries.
7206
6c223f5d
JM
72072011-03-22 Joseph Myers <joseph@codesourcery.com>
7208
7209 * config/cris/cris.c (cris_handle_option): Access target_flags via
7210 opts pointer. Don't assert that global structures are in use.
7211 Don't call CRIS_SUBTARGET_HANDLE_OPTION.
7212 * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
7213
bbd399cf
JM
72142011-03-22 Joseph Myers <joseph@codesourcery.com>
7215
7216 * config/bfin/bfin-opts.h: New.
7217 * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
7218 bfin_si_revision, bfin_workarounds): Remove.
7219 (bfin_cpus): Make static const.
7220 (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
7221 not bfin_lib_id_given.
7222 (bfin_handle_option): Don't set bfin_lib_id_given. Access
7223 bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
c78dd519 7224 pointer. Use error_at. Don't assert that global structures are in use.
bbd399cf
JM
7225 * config/bfin/bfin.h: Include bfin-opts.h.
7226 (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
7227 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
7228 * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
7229 (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
7230 entries.
7231
5e1b4d5a
JM
72322011-03-22 Joseph Myers <joseph@codesourcery.com>
7233
7234 * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
7235 * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
7236 or -msoft-float here.
7237 * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
7238 -msoft-float and -mhard-float.
c78dd519 7239 (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
5e1b4d5a
JM
7240 * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7241 msoft-float.
7242 * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
7243 -msoft-float.
7244 (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
7245 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
7246 not mhard-float.
7247 (LIBGCC_SPEC): Don't handle -msoft-float.
7248 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
7249 -mhard-float.
7250 * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
7251 msoft-float.
7252 * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
7253 -mfloat-abi=*, not -msoft-float and -mhard-float.
7254 * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
7255 -msoft-float.
7256 * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
7257 Use mfloat-abi=hard and mfloat-abi=soft in comments, not
7258 mhard-float and msoft-float.
7259 * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
7260 mfloat-abi=soft in comments, not mhard-float and msoft-float.
7261 * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
7262 mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
7263 mhard-float.
7264 * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
7265 mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
7266 msoft-float.
7267 * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
7268 not mhard-float.
7269 * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
7270 not msoft-float.
7271
800d1de1
RH
72722011-03-22 Richard Henderson <rth@redhat.com>
7273
7274 * config/alpha/alpha.c (alpha_expand_prologue): Don't test
7275 TARGET_ABI_WINDOWS_NT.
7276 (alpha_output_function_end_prologue): Likewise.
7277 * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
7278 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
7279 * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
7280 (trap, *movsi_nt_vms): Likewise.
7281 (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
7282 (*tablejump_osf_nt_internal): Remove.
7283 * config/alpha/predicates.md (input_operand): Only test Pmode.
7284
c59ddd2b
JM
72852011-03-22 Joseph Myers <joseph@codesourcery.com>
7286
7287 * config/alpha/alpha.c (alpha_handle_option): Access target_flags
7288 via opts pointer. Use error_at. Don't assert that global
7289 structures are in use.
7290
1333f97f
JM
72912011-03-22 Joseph Myers <joseph@codesourcery.com>
7292
7293 * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
7294 (ix86_handle_option): Access ix86_isa_flags and
7295 ix86_isa_flags_explicit via opts pointer. Don't assert that
7296 global structures are in use.
7297 (ix86_function_specific_save, ix86_function_specific_restore):
7298 Update ix86_isa_flags_explicit field name.
c78dd519 7299 * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
1333f97f
JM
7300 (ix86_isa_flags_explicit): Rename TargetSave entry to
7301 x_ix86_isa_flags_explicit.
7302
75db85d8
RH
73032011-03-22 Richard Henderson <rth@redhat.com>
7304
7305 * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
7306 (alpha_option_override, direct_return): Likewise.
7307 (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
7308 (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
7309 (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
7310 (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7311 (alpha_expand_epilogue, alpha_end_function): Likewise.
7312 (alpha_init_libfuncs): Likewise.
7313 (struct machine_function): Remove unicosmk members.
7314 (print_operand) ['t']: Remove.
7315 (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
7316 unicosmk_output_module_name, unicosmk_output_common,
7317 current_section_align, unicosmk_output_text_section_asm_op,
7318 unicosmk_output_data_section_asm_op, unicosmk_init_sections,
7319 unicosmk_section_type_flags, unicosmk_unique_section,
7320 unicosmk_asm_named_section, unicosmk_insert_attributes,
7321 unicosmk_output_align, unicosmk_defer_case_vector,
7322 unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
7323 SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
7324 unicosmk_output_ssib, unicosmk_add_call_info_word,
7325 unicosmk_extern_head, unicosmk_output_default_externs,
7326 unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
7327 unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
7328 unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
7329 * config/alpha/alpha-protos.h: Update.
7330 * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
7331 * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
7332 (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
7333 (mulsi3): Don't test TARGET_ABI_UNICOSMK.
7334 (*mulsi_se, mulvsi3): Likewise.
7335 (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
7336 (*divmodsi_internal, call, call_value, realign): Likewise.
7337 (moddi3, umoddi3): Likewise; remove duplicate expander.
7338 (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
7339 (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
7340 (*movdi_nofix): Remove r/U alternative.
7341 (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
7342 * config/alpha/constraints.md ("U"): Remove.
7343 * config/alpha/predicates.md (call_operand"): Don't test
7344 TARGET_ABI_UNICOSMK.
7345
96e45421
JM
73462011-03-22 Joseph Myers <joseph@codesourcery.com>
7347
7348 * target.def (handle_option): Take gcc_options and
7349 cl_decoded_option pointers and location_t.
7350 * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
7351 * doc/tm.texi: Regenerate.
7352 * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
7353 * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
7354 * lto-opts.c (lto_reissue_options): Generate option structure for
7355 targetm.handle_option call.
7356 * opts.c (target_handle_option): Update call to
7357 targetm.handle_option. Remove assertions about values now passed
7358 down to hook.
7359 * targhooks.c (default_target_handle_option): New.
7360 * targhooks.h (default_target_handle_option): Declare.
7361 * config/alpha/alpha.c: Include opts.h.
7362 (alpha_handle_option): Update to new hook interface.
7363 * config/arm/arm.c: Include opts.h.
7364 (arm_handle_option): Update to new hook interface.
7365 * config/arm/t-arm (arm.o): Update dependencies.
7366 * config/bfin/bfin.c: Include opts.h.
7367 (bfin_handle_option): Update to new hook interface.
7368 * config/cris/cris.c: Include opts.h.
7369 (cris_handle_option): Update to new hook interface.
7370 * config/frv/frv.c: Include opts.h.
7371 (frv_handle_option): Update to new hook interface.
7372 * config/i386/i386.c: Include opts.h.
7373 (ix86_handle_option): Update to new hook interface.
7374 (ix86_valid_target_attribute_inner_p): Generate option structure
7375 for call to ix86_handle_option.
7376 * config/i386/t-i386 (i386.o): Update dependencies.
7377 * config/ia64/ia64.c: Include opts.h.
7378 (ia64_handle_option): Update to new hook interface.
7379 * config/ia64/t-ia64 (ia64.o): Update dependencies.
7380 * config/iq2000/iq2000.c: Include opts.h.
7381 (iq2000_handle_option): Update to new hook interface.
7382 * config/m32c/m32c.c: Include opts.h.
7383 (m32c_handle_option): Update to new hook interface.
7384 * config/m32r/m32r.c: Include opts.h.
7385 (m32r_handle_option): Update to new hook interface.
7386 * config/m68k/m68k.c: Include opts.h.
7387 (m68k_handle_option): Update to new hook interface.
7388 * config/mep/mep.c: Include opts.h.
7389 (mep_handle_option): Update to new hook interface.
7390 * config/microblaze/microblaze.c: Include opts.h.
7391 (microblaze_handle_option): Update to new hook interface.
7392 * config/mips/mips.c: Include opts.h.
7393 (mips_handle_option): Update to new hook interface.
7394 * config/mn10300/mn10300.c: Include opts.h.
7395 (mn10300_handle_option): Update to new hook interface.
7396 * config/pa/pa.c: Include opts.h.
7397 (pa_handle_option): Update to new hook interface.
7398 * config/pdp11/pdp11.c: Include opts.h.
7399 (pdp11_handle_option): Update to new hook interface.
7400 * config/rs6000/rs6000.c: Include opts.h.
7401 (rs6000_handle_option): Update to new hook interface.
7402 * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7403 * config/rx/rx.c: Include opts.h.
7404 (rx_handle_option): Update to new hook interface.
7405 * config/s390/s390.c: Include opts.h.
7406 (s390_handle_option): Update to new hook interface.
7407 * config/score/score.c: Include opts.h.
7408 (score_handle_option): Update to new hook interface.
7409 * config/sh/sh.c: Include opts.h.
7410 (sh_handle_option): Update to new hook interface.
7411 * config/sparc/sparc.c: Include opts.h.
7412 (sparc_handle_option): Update to new hook interface.
7413 * config/v850/v850.c: Include opts.h.
7414 (v850_handle_option): Update to new hook interface.
7415
66017846
JM
74162011-03-22 Joseph Myers <joseph@codesourcery.com>
7417
7418 * gcc.c (driver_unknown_option_callback): Only permit and save
7419 unknown -Wno- options.
7420 (driver_wrong_lang_callback): Save options directly instead of via
7421 driver_unknown_option_callback.
7422
e8b97ccd
EB
74232011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7424
7425 * combine.c (simplify_set): Try harder to find the best CC mode when
7426 simplifying a nested COMPARE on the RHS.
7427
ebb9f8b0
JM
74282011-03-22 Joseph Myers <joseph@codesourcery.com>
7429
7430 * config/alpha/gnu.h: Remove.
7431 * config/arc: Remove directory.
7432 * config/arm/netbsd.h: Remove.
7433 * config/arm/t-pe: Remove.
7434 * config/crx: Remove directory.
7435 * config/i386/netbsd.h: Remove.
7436 * config/m68hc11: Remove directory.
7437 * config/m68k/uclinux-oldabi.h: Remove.
7438 * config/mcore/mcore-pe.h: Remove.
7439 * config/mcore/t-mcore-pe: Remove.
7440 * config/netbsd-aout.h: Remove.
7441 * config/rs6000/gnu.h: Remove.
7442 * config/sh/sh-symbian.h: Remove.
7443 * config/sh/symbian-base.c: Remove.
7444 * config/sh/symbian-c.c: Remove.
7445 * config/sh/symbian-cxx.c: Remove.
7446 * config/sh/symbian-post.h: Remove.
7447 * config/sh/symbian-pre.h: Remove.
7448 * config/sh/t-symbian: Remove.
7449 * config/svr3.h: Remove.
7450 * config/vax/netbsd.h: Remove.
7451 * config.build: Don't handle i[34567]86-*-pe.
7452 * config.gcc: Remove handling of deprecations for most deprecated
7453 targets.
7454 (m68k-*-uclinuxoldabi*): Add to second deprecated list.
7455 (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
7456 i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
7457 m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
7458 powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
7459 sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
7460 Remove cases.
7461 * config.host: Don't handle i[34567]86-*-pe.
7462 * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
7463 (ASM_SPEC32): Don't handle -mcall-gnu.
7464 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
7465 -mcall-gnu.
7466 (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
7467 STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
7468 (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
7469 LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
7470 (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
7471 * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
7472 conditional on SYMBIAN.
7473 * configure.ac: Don't handle powerpc*-*-gnu*.
7474 * configure: Regenerate.
7475 * doc/extend.texi (interrupt attribute): Don't mention CRX.
7476 * doc/install-old.texi (m6811, m6812): Don't mention.
7477 * doc/install.texi (arc-*-elf*): Don't document multilib option.
7478 (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
7479 (m68k-uclinuxoldabi): Don't mention.
7480 * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
7481 Remove.
7482 (-mcall-gnu): Remove.
7483 * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
7484 families): Remove constraint documentation.
7485
999a7d80
MS
74862011-03-22 Marius Strobl <marius@FreeBSD.org>
7487
7488 * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
7489 (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
7490 (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
7491
45540bcf
MM
74922011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7493
7494 PR target/48226
7495 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
7496 vector when peeking at the next token for vector, don't expand the
7497 keywords.
7498
980a0ff4
GJL
74992011-03-21 Georg-Johann Lay <avr@gjlay.de>
7500
7501 * config/avr/avr-protos.h (expand_epilogue): Change prototype
7502 * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
7503 * config/avr/avr.c (init_cumulative_args)
7504 (avr_function_arg_advance): Use it.
7505 * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
7506 sibcall epilogues.
7507 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
7508 (avr_function_ok_for_sibcall): ...this new function.
7509 (avr_lookup_function_attribute1): New static Function.
7510 (avr_naked_function_p, interrupt_function_p)
7511 (signal_function_p, avr_OS_task_function_p)
7512 (avr_OS_main_function_p): Use it.
7513 * config/avr/avr.md ("sibcall", "sibcall_value")
7514 ("sibcall_epilogue"): New expander.
7515 ("*call_insn", "*call_value_insn"): New insn.
7516 ("call_insn", "call_value_insn"): Remove
7517 ("call", "call_value", "epilogue"): Change expander to handle
7518 sibling calls.
7519
49168734
NC
75202011-03-21 Nick Clifton <nickc@redhat.com>
7521
7522 * doc/invoke.texi (Overall Options): Move closing brace to end of
7523 options list.
7524 (Optimization Options): Add missing @gol.
7525 (Directory Options): Likewise.
7526 (i386 and x86-64 Options): Likewise.
7527 (RS6000 and PowerPC Options): Likewise.
7528 (i386 and x86-64 Windows Options): Likewise.
7529 (V850 Options): Add text missing from descriptions.
7530
bdfe906f
RH
75312011-03-22 Richard Henderson <rth@redhat.com>
7532
7533 * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
7534 (avr_incoming_return_addr_rtx): New.
7535 (emit_push_byte): New.
7536 (expand_prologue): Use it. Remove incorrect dwarf annotation for
7537 SREG, RAMPZ, zero register. Push frame pointer by bytes. Add dwarf
7538 annotation for __prologue_saves__. Fixup dwarf annotation for CFA.
7539 (emit_pop_byte): New.
7540 (expand_epilogue): Use it. Pop frame pointer by bytes.
7541 * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
7542 (INCOMING_RETURN_ADDR_RTX): New.
7543 (INCOMING_FRAME_SP_OFFSET): New.
7544 (ARG_POINTER_CFA_OFFSET): New.
7545 * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
7546 (*pushhi, *pushsi, *pushsf, popqi): Likewise.
7547 (pophi): Remove.
7548
d090a5aa
RH
7549 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
7550
fdf3e18a
NF
75512011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7552
7553 * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
7554 (FUNCTION_ARG_ADVANCE): Likewise.
7555 * tm.texi.in: Change references to them to hook references.
7556 * tm.texi: Regenerate.
7557 * targhooks.c (default_function_arg): Eliminate check for target
7558 macro.
7559 (default_function_incoming_arg): Likewise.
7560 (default_function_arg_advance): Likewise.
c78dd519 7561 * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
fdf3e18a
NF
7562 (function_arg_advance): Likewise.
7563 * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
7564
009d3fcf
NF
75652011-03-22 Nathan Froyd <froydnj@codesourcery.com>
7566
7567 * tree.c (build_call_1): New function.
7568 (build_call_valist, build_call_array_loc, build_call_vec): Call it.
7569
7bec30e1
RG
75702011-03-22 Richard Guenther <rguenther@suse.de>
7571
7572 PR tree-optimization/48228
7573 * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
7574 for single-arg PHIs.
7575
0b7e851b
AB
75762011-03-22 Andrey Belevantsev <abel@ispras.ru>
7577
7578 PR rtl-optimization/48143
7579 * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
7580 (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
7581 sse2_cvtps2pd): Likewise.
7582
d89afca5
AK
75832011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7584
7585 * recog.c (canonicalize_change_group): Use validate_unshare_change.
7586
f471fe72
RG
75872011-03-22 Richard Guenther <rguenther@suse.de>
7588
7589 * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
7590 a valid RHS. Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
7591 * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
7592 and REALIGN_LOAD_EXPR.
7593 (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
7594 DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
7595 * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
7596 DOT_PROD_EXPR case ...
7597 (expand_expr_real_2): ... here.
7598 * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
7599 and REALIGN_LOAD_EXPR.
7600 * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
7601 * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
7602 (vect_create_epilog_for_reduction): Likewise.
7603 (vectorizable_reduction): Likewise.
7604 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
7605 * tree-vect-stmts.c (vectorizable_load): Likewise.
7606
f2f81d57
EB
76072011-03-22 Eric Botcazou <ebotcazou@adacore.com>
7608
7609 * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
7610
ab081dd6
AK
76112011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7612
7613 * config/s390/s390.c (s390_delegitimize_address): Fix offset
7614 handling for PLTOFF/GOTOFF.
7615
6fd5332b
NC
76162011-03-22 Nick Clifton <nickc@redhat.com>
7617
7618 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
7619 trailing backslash from the end of the macro definition.
7620
01841ac0
AK
76212011-03-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7622
7623 * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
7624 and PLT unspecs.
7625
2ef6ce06
RS
76262011-03-21 Richard Sandiford <richard.sandiford@linaro.org>
7627
7628 * expr.h (prepare_operand): Move to...
7629 * optabs.h (prepare_operand): ...here and change the insn code
7630 parameter from "int" to "enum insn_code".
7631 (insn_operand_matches): Declare.
7632 * expr.c (init_expr_target): Use insn_operand_matches.
7633 (compress_float_constant): Likewise.
7634 * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
7635 * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
7636 (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
c78dd519
UB
7637 (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
7638 Likewise.
2ef6ce06
RS
7639 (gen_cond_trap): Likewise.
7640 (prepare_operand): Likewise. Change icode to an insn_code.
7641 (insn_operand_matches): New function.
7642 * reload.c (find_reloads_address_1): Use insn_operand_matches.
7643 * reload1.c (gen_reload): Likewise.
7644 * targhooks.c (default_secondary_reload): Likewise.
7645
9e43ad68
UB
76462011-03-21 Uros Bizjak <ubizjak@gmail.com>
7647
9a96da32
UB
7648 * config/alpha/alpha.md (unspec): New define_c_enum.
7649 (unspecv): Ditto.
7650
76512011-03-21 Uros Bizjak <ubizjak@gmail.com>
7652
7653 PR debug/48214
9e43ad68
UB
7654 * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
7655 between a call and its CALL_ARG_LOCATION note.
7656
31408f60
EB
76572011-03-21 Eric Botcazou <ebotcazou@adacore.com>
7658
7659 * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
7660
76612011-03-21 Jakub Jelinek <jakub@redhat.com>
126e6609
JJ
7662
7663 PR c/42544
7664 PR c/48197
7665 * c-common.c (shorten_compare): If primopN is first sign-extended
7666 to opN and then zero-extended to result type, set primopN to opN.
7667
9dfd55f5
DJ
76682011-03-21 Daniel Jacobowitz <dan@codesourcery.com>
7669
7670 * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
7671 for barrier handlers.
7672
f3c33d9d
MM
76732011-03-21 Michael Meissner <meissner@linux.vnet.ibm.com>
7674
7675 * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
7676 UNSPEC constants to be in the unspec enumeration, and redefine
7677 all UNSPECV constants to be in the unspecv enumeration, so that
7678 dumps print which unspec/unspec_volatile this is.
7679 * config/rs6000/vector.md (UNSPEC_*): Ditto.
7680 * config/rs6000/paired.md (UNSPEC_*): Ditto.
7681 * config/rs6000/vsx.md (UNSPEC_*): Ditto.
7682 * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
7683 * config/rs6000/dfp.md (UNSPEC_*): Ditto.
7684
7685 * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
7686 UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
7687 UNSPECV_LWSYNC, since these are used as unspec_volatile.
7688 * config/rs6000/sync.md (isync, lwsync): Ditto.
7689
ac43f774
RG
76902011-03-21 Richard Guenther <rguenther@suse.de>
7691
7692 * params.def (lto-min-partition): Fix typo.
7693
411cdbd8
RG
76942011-03-21 Richard Guenther <rguenther@suse.de>
7695
7696 PR c/47939
7697 * c-decl.c (grokdeclarator): Drop to the main variant only
7698 for array types. Drop flag_gen_aux_info check.
7699
1cd9e416
RG
77002011-03-21 Richard Guenther <rguenther@suse.de>
7701
7702 PR translation/47911
7703 * params.def (lto-partitions): Fix typo.
7704 (lto-min-partition): Fix wording.
7705
ada5ad67
AT
77062011-03-21 Andreas Tobler <andreast@fgznet.ch>
7707
7708 * config/rs6000/t-freebsd: Remove duplication from file.
7709
f9613c9a
RG
77102011-03-21 Richard Guenther <rguenther@suse.de>
7711
7712 PR middle-end/47661
7713 * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
7714
9bfbc1eb
RG
77152011-03-21 Richard Guenther <rguenther@suse.de>
7716
7717 PR lto/48210
7718 * params.def (lto-partitions): Require at least 1 partition.
7719
a2268084
RO
77202011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7721
7722 * gthr-solaris.h: Remove.
7723 * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
7724 * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
7725 (LIB_SPEC): Likewise.
7726 * config/sol2.opt (threads): Remove.
9e43ad68 7727 * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
a2268084
RO
7728 (sparc*-*-solaris2*): Likewise.
7729 * configure.ac (enable_threads): Enable solaris support.
7730 * configure: Regenerate.
9e43ad68 7731 * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
a2268084
RO
7732 * doc/install.texi (Configuration, --enable-threads=lib): Remove
7733 solaris.
7734
c43d9a1b
RO
77352011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7736
7737 * config.gcc: Obsolete *-*-solaris2.8*.
7738 * doc/install.texi (Specific, *-*-solaris2*): Document it.
7739
084239f4
RO
77402011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7741
7742 PR bootstrap/48135
7743 * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
7744 reference. Solaris 8 perl works.
7745
64cadbe7
RO
77462011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7747
7748 PR bootstrap/48135
7749 * doc/install.texi (Prerequisites): Move jar etc. up.
7750 Explain support library version requirements.
7751
eb975109
RO
77522011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7753
7754 PR bootstrap/48135
7755 * doc/install.texi (Prerequisites): Move Perl to build
7756 requirements. Always necessary on Solaris 2 with Sun ld.
7757
8a509ffd
RO
77582011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7759
7760 * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
7761 binutils 2.21.
7762 (Specific, i?86-*-solaris2.[89]): Likewise.
7763 (Specific, i?86-*-solaris2.10): Likewise.
7764 (Specific, mips-sgi-irix6): Likewise.
7765 (Specific, *-*-solaris2*): Remove Sun Studio download URL.
7766 Update for binutils 2.21.
7767
8fbc58a1
RO
77682011-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7769
7770 * configure.ac (gcc_cv_lto_plugin): Fix typo.
7771 Allow -fuse-linker-plugin for non-default plugin linker.
7772 * configure: Regenerate.
7773
7e84ad0b
NP
77742011-03-21 Nicola Pero <nicola.pero@meta-innovation.com>
7775
7776 PR bootstrap/48167
7777 * gengtype.c (files_rules): Added rule for cp/parser.h.
7778
2f36e14b
JJ
77792011-03-21 Jakub Jelinek <jakub@redhat.com>
7780
7781 PR target/48213
7782 * config/s390/s390.c (s390_delegitimize_address): Don't call
7783 lowpart_subreg if orig_x has BLKmode.
7784
62d784f7
KT
77852011-03-21 Kai Tietz <ktietz@redhat.com>
7786
7787 PR target/12171
9e43ad68
UB
7788 * doc/plugins.texi: Adjust documentation for plugin register_callback.
7789 * tree.h (attribute_spec): Add new member affects_type_identity.
7790 * attribs.c (empty_attribute_table): Adjust attribute_spec
7791 initializers.
62d784f7
KT
7792 * config/alpha/alpha.c: Likewise.
7793 * config/arc/arc.c: Likewise.
7794 * config/arm/arm.c: Likewise.
7795 * config/avr/avr.c: Likewise.
7796 * config/bfin/bfin.c: Likewise.
7797 * config/crx/crx.c: Likewise.
7798 * config/darwin.h: Likewise.
7799 * config/h8300/h8300.c: Likewise.
7800 * config/i386/cygming.h: Likewise.
7801 * config/i386/i386.c: Likewise.
7802 * config/ia64/ia64.c: Likewise.
7803 * config/m32c/m32c.c: Likewise.
7804 * config/m32r/m32r.c: Likewise.
7805 * config/m68hc11/m68hc11.c: Likewise.
7806 * config/m68k/m68k.c: Likewise.
7807 * config/mcore/mcore.c: Likewise.
7808 * config/mep/mep.c: Likewise.
7809 * config/microblaze/microblaze.c: Likewise.
7810 * config/mips/mips.c: Likewise.
7811 * config/rs6000/rs6000.c: Likewise.
7812 * config/rx/rx.c: Likewise.
7813 * config/sh/sh.c: Likewise.
7814 * config/sol2.h: Likewise.
7815 * config/sparc/sparc.c: Likewise.
7816 * config/spu/spu.c: Likewise.
7817 * config/stormy16/stormy16.c: Likewise.
7818 * config/v850/v850.c: Likewise.
7819
54833ec0
CLT
78202011-03-21 Chung-Lin Tang <cltang@codesourcery.com>
7821
7822 * simplify-rtx.c (simplify_binary_operation_1): Handle
7823 (xor (and A B) C) case when B and C are both constants.
7824
14a41392
MX
78252011-03-21 Mingjie Xing <mingjie.xing@gmail.com>
7826
7827 * tree-dfa.c (add_referenced_var): Fix typo in comment.
7828
806c3492
EB
78292011-03-20 Eric Botcazou <ebotcazou@adacore.com>
7830
7831 PR bootstrap/48168
7832 * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
7833
65e0a0f3
JJ
78342011-03-20 Jakub Jelinek <jakub@redhat.com>
7835
7836 PR rtl-optimization/48156
7837 * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
7838 assume df and df_lr are not NULL.
7839
b6a75dda
RR
78402011-03-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7841
7842 PR debug/48023
7843 * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
7844 between a call and its CALL_ARG_LOCATION note.
7845
5969b52d
KK
78462011-03-19 Kaz Kojima <kkojima@gcc.gnu.org>
7847
7848 PR debug/48178
7849 * config/sh/sh.c (find_barrier): Don't emit a constant pool
7850 between a call and its corresponding CALL_ARG_LOCATION note.
7851
f773c2bd
AS
78522011-03-19 Anatoly Sokolov <aesok@post.ru>
7853
7854 * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
7855 instead of loop. Use HARD_REGISTER_NUM_P predicate.
7856 * haifa-sched.c (setup_ref_regs): Ditto.
7857 * caller-save.c (add_used_regs_1): Ditto.
7858 * dse.c (look_for_hardregs): Ditto.
7859 * df-problems.c (df_simulate_one_insn_forwards): Ditto.
7860 * sched-rgn.c (check_live_1): Ditto.
7861
8bf872f9
JM
78622011-03-18 Joseph Myers <joseph@codesourcery.com>
7863
7864 * c-decl.c (diagnose_mismatched_decls): Give an error for
7865 redefining a typedef with variably modified type.
7866
ff8e2159
JM
78672011-03-18 Joseph Myers <joseph@codesourcery.com>
7868
7869 * c-decl.c (grokfield): Don't allow typedefs for structures or
7870 unions with no tag by default.
7871 * doc/extend.texi (Unnamed Fields): Update.
7872
16cc4440
UB
78732011-03-18 Uros Bizjak <ubizjak@gmail.com>
7874
7875 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
7876 Rewrite using indirect functions.
7877 (lwp_slwpcb): Ditto.
7878 * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
7879 (avx_vinsertf128<mode>): Ditto.
7880
e101e12e
AK
78812011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7882
7883 * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
7884 unspecs.
7885
4627c7fb
AK
78862011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7887
7888 * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
9e43ad68 7889 splitting between a call and its corresponding CALL_ARG_LOCATION note.
4627c7fb 7890
2d36b47f
MK
78912011-03-18 Maxim Kuvyrkov <maxim@codesourcery.com>
7892
7893 PR rtl-optimization/48170
7894 * gcse.c (hoist_code): Remove bogus asserts.
7895
2a3d7659
JL
78962011-03-18 Georg-Johann Lay <avr@gjlay.de>
7897
7898 * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
7899 computation for prologue/epilogue.
7900
34c3ef05
RO
79012011-03-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7902
7903 * Makefile.in (check-consistency): Remove.
7904
81f2b976
JJ
79052011-03-18 Jakub Jelinek <jakub@redhat.com>
7906
7907 PR debug/48176
7908 * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
7909 arange_table_in_use is 0, but either text_section_used or
7910 cold_text_section_used is true. Don't call it if
7911 !info_section_emitted.
7912
68fd7765
AS
79132011-03-18 Anatoly Sokolov <aesok@post.ru>
7914
7915 * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
7916 FUNCTION_VALUE_REGNO_P): Remove.
7917 * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
7918 Remove.
7919 * config/avr/avr.c (avr_ret_register): Make static inline.
7920 (avr_function_value_regno_p): New function.
7921 (avr_libcall_value): Make static. Add 'func' argument.
7922 (avr_function_value): Make static. Rename 'func' argument to
7923 'fn_decl_or_type', forward it to avr_libcall_value. Call
7924 avr_ret_register function instead of RET_REGISTER macro.
7925 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
7926
b4ef8aac
JM
79272011-03-18 Jason Merrill <jason@redhat.com>
7928
7929 PR c++/23372
7930 * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
7931
09a52fc3
RG
79322011-03-18 Richard Guenther <rguenther@suse.de>
7933
7934 * doc/install.texi (--enable-gold): Remove.
7935 (--with-plugin-ld): Document.
7936 * doc/invoke.texi (-fuse-linker-plugin): Clarify.
7937
2a3d7659 79382011-03-18 Andrew Pinski <pinskia@gmail.com>
3bf162a0
AP
7939
7940 PR middle-end/47790
7941 * expr.c (optimize_bitfield_assignment_op): Revamp to work
7942 again after expansion changes.
7943
2abbb0fe
CLT
79442011-03-18 Chung-Lin Tang <cltang@codesourcery.com>
7945
7946 * combine.c (try_combine): Do simplification only call of
7947 subst() on i2 even when i1 is present. Update comments.
7948
2efd0aa6
KK
79492011-03-18 Kaz Kojima <kkojima@gcc.gnu.org>
7950
7951 * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
7952 and UNSPEC_PCREL_SYMOFF.
7953
30a49b23
AK
79542011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7955
7956 * config/s390/s390.md: Use define_c_enum for the unspec constant
7957 definitions.
7958
419e1853
JJ
79592011-03-18 Richard Henderson <rth@redhat.com>
7960 Jakub Jelinek <jakub@redhat.com>
7961
7962 PR bootstrap/48161
7963 * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
7964 instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
7965
37875856
L
79662011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7967
7968 PR middle-end/47725
7969 * combine.c (cant_combine_insn_p): Don't check zero/sign
7970 extended hard registers.
7971
76069764
L
79722011-03-17 H.J. Lu <hongjiu.lu@intel.com>
7973
7974 PR middle-end/47725
7975 * combine.c (cant_combine_insn_p): Check zero/sign extended
7976 hard registers.
7977
24da2019
AS
79782011-03-17 Anatoly Sokolov <aesok@post.ru>
7979
7980 * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
7981 * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
7982 * config/v850/v850.c (v850_output_addr_const_extra): Make static.
7983 Change return type to bool.
7984 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
7985
a82ff31f
JJ
79862011-03-17 Jakub Jelinek <jakub@redhat.com>
7987
8b29c87a
JJ
7988 PR debug/48163
7989 * var-tracking.c (prepare_call_arguments): If CALL target
7990 is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
7991 pc instead of looking it up using cselib_lookup and use
7992 Pmode for it if x has VOIDmode.
7993 * dwarf2out.c (gen_subprogram_die): If also both first and
7994 second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
7995
a82ff31f
JJ
7996 PR debug/48163
7997 * function.c (assign_parms): For data.passed_pointer parms
7998 use MEM of data.entry_parm instead of data.entry_parm itself
7999 as DECL_INCOMING_RTL.
8000 * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
8001 also when passed and declared mode is the same, DECL_RTL
8002 is a MEM with pseudo as address and DECL_INCOMING_RTL is
8003 a MEM too.
8004
82ce305c
JL
80052011-03-16 Jeff Law <law@redhat.com>
8006
8007 PR rtl-optimization/37273
8008 * ira-costs.c (scan_one_insn): Detect constants living in memory and
8009 handle them like argument loads from stack slots. Do not double
8010 count memory for memory constants and argument loads from stack slots.
8011
fe58e02b
L
80122011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8013
8014 PR debug/48160
8015 * var-tracking.c (prepare_call_arguments): Check SUBREG.
8016
6fc4dbc7
L
80172011-03-17 H.J. Lu <hongjiu.lu@intel.com>
8018
8019 PR target/48171
8020 * config/i386/i386.opt: Add Save to -mavx and -mfma.
8021
db3ed0b3
JJ
80222011-03-17 Jakub Jelinek <jakub@redhat.com>
8023
8054a389
JJ
8024 PR bootstrap/48153
8025 * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
8026 if dwarf_strict.
8027 (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
8028 Clear call_arg_locations and call_arg_loc_last always.
8029
db3ed0b3
JJ
8030 PR middle-end/48152
8031 * var-tracking.c (prepare_call_arguments): If argument needs to be
8032 passed by reference, adjust argtype and mode.
8033
1bce4ff3
RG
80342011-03-17 Richard Guenther <rguenther@suse.de>
8035
8036 PR middle-end/48134
8037 * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
8038 a value make sure to fold the statement.
8039
7c71147d
CLT
80402011-03-17 Chung-Lin Tang <cltang@codesourcery.com>
8041
8042 PR target/43872
8043 * config/arm/arm.c (arm_get_frame_offsets): Adjust early
8044 return condition with !cfun->calls_alloca.
8045
0e1ee172
RG
80462011-03-17 Richard Guenther <rguenther@suse.de>
8047
8048 PR bootstrap/48148
8049 * lto-cgraph.c (input_overwrite_node): Clear the abstract
8050 origin for decls in other ltrans units.
8051 (input_varpool_node): Likewise.
8052
f8bce518
RG
80532011-03-17 Richard Guenther <rguenther@suse.de>
8054
8055 PR middle-end/48165
8056 * tree-object-size.c (compute_object_offset): Properly return
8057 the offset operand of MEM_REFs as sizetype.
8058
1b6fa860
JJ
80592011-03-17 Jakub Jelinek <jakub@redhat.com>
8060
dabd47e7
JJ
8061 PR rtl-optimization/48141
8062 * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
8063 * dse.c: Include params.h.
8064 (active_local_stores_len): New variable.
8065 (add_wild_read, dse_step1): Clear it when setting active_local_stores
8066 to NULL.
8067 (record_store, check_mem_read_rtx): Decrease it when removing
8068 from the chain.
8069 (scan_insn): Likewise. Increase it when adding to chain, if it
8070 reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
8071 set active_local_stores to NULL before the addition.
8072 * Makefile.in (dse.o): Depend on $(PARAMS_H).
8073
1b6fa860
JJ
8074 PR rtl-optimization/48141
8075 * dse.c (record_store): If no positions are needed in an insn
8076 that cannot be deleted, at least unchain it from active_local_stores.
8077
7b5cb7d6
DS
80782011-03-16 Dodji Seketeli <dodji@redhat.com>
8079
8080 PR debug/47510
8081 * dwarf2out.c (strip_naming_typedef): Factorize out of ...
8082 (lookup_type_die_strip_naming_typedef): ... here.
8083 (get_context_die): Use it.
8084 (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
8085 the anonymous struct named by the naming typedef.
8086
585e9d9d
L
80872011-03-16 H.J. Lu <hongjiu.lu@intel.com>
8088
8089 PR target/48154
8090 * config/i386/i386.c (ix86_builtin_vectorized_function): Check
8091 TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8092
6261ab0e
JL
80932011-03-16 Jeff Law <law@redhat.com>
8094
8095 * tree-vrp.c (identify_jump_threads): Slightly simplify type
16cc4440 8096 check for operands of conditional. Allow type to be a pointer.
6261ab0e 8097
0b0081ec
RG
80982011-03-16 Richard Guenther <rguenther@suse.de>
8099
8100 PR tree-optimization/48149
8101 * fold-const.c (fold_binary_loc): Fold
8102 COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
8103
64a3d647
RG
81042011-03-16 Richard Guenther <rguenther@suse.de>
8105
8106 PR tree-optimization/26134
8107 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
8108 complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
8109 (non_rewritable_mem_ref_base): Handle complex type component
8110 accesses, constrain offsets for vector and complex extracts
8111 more properly.
8112
ef13324e
RG
81132011-03-16 Richard Guenther <rguenther@suse.de>
8114
8115 PR tree-optimization/48146
8116 * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
8117 operands avoiding the need for renaming.
8118
f0eddb90
RG
81192011-03-16 Richard Guenther <rguenther@suse.de>
8120
8121 * gimple-fold.c (maybe_fold_reference): Open-code relevant
8122 constant folding. Move MEM_REF canonicalization first.
8123 Rely on fold_const_aggregate_ref for initializer folding.
8124 * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
8125
e42348b8
JJ
81262011-03-16 Jakub Jelinek <jakub@redhat.com>
8127
29f10e71
JJ
8128 PR middle-end/48136
8129 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
8130 arg0/arg1 or their arguments are always fold converted to matching
8131 types.
8132
e42348b8
JJ
8133 * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
8134 to nargs.
8135
55b46574
RO
81362011-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8137
8138 PR lto/46944
8139 * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
8140 Handle in-tree gold.
8141 (ld_vers): Extract binutils version for gold.
8142 (gcc_cv_ld_hidden): Handle gold here.
8143 (gcc_cv_lto_plugin): Determine level of linker plugin support.
8144 * configure: Regenerate.
8145 * config.in: Regenerate.
8146 * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
8147 -fuse-linker-plugin otherwise.
8148 (LINK_PLUGIN_SPEC): Define. Extract from LINK_COMMAND_SPEC.
8149 (LINK_COMMAND_SPEC): Use it.
8150 (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
8151
2b1c5433
JJ
81522011-03-16 Jakub Jelinek <jakub@redhat.com>
8153
c2969d8e
JJ
8154 * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
8155 * calls.c: Remove debug.h include.
8156 (emit_call_1): Don't call virtual_call_token debug hook.
8157 * dwarf2out.c (debug_dcall_section, debug_vcall_section,
8158 dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
8159 vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
8160 size_of_dcall_table, output_dcall_table, size_of_vcall_table,
8161 output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
8162 vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
8163 dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
8164 dwarf2out_virtual_call): Remove.
8165 (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
8166 copy_call_info and virtual_call hooks.
8167 (dwarf2out_init): Don't initialize vcall_insn_table,
8168 debug_dcall_section and debug_vcall_section.
8169 (prune_unused_types): Don't mark nodes from dcall_table.
8170 (dwarf2out_finish): Don't output dcall or vcall tables.
8171 * final.c (final_scan_insn): Don't call direct_call or
8172 virtual_call debug hooks.
8173 * debug.h (struct gcc_debug_hooks): Remove direct_call,
8174 virtual_call_token, copy_call_info and virtual_call hooks.
8175 (debug_nothing_uid): Remove prototype.
8176 * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
8177 copy_call_info and virtual_call hooks.
8178 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
8179 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
8180 * debug.c (do_nothing_debug_hooks): Likewise.
8181 (debug_nothing_uid): Remove.
8182 * doc/invoke.texi (-fenable-icf-debug): Remove.
8183 * common.opt (-fenable-icf-debug): Likewise.
8184
325f5379
JJ
8185 * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
8186 * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
8187 call's MEM. Handle functions returning aggregate through a hidden
8188 first pointer. For virtual calls add clobbered pc to call arguments
8189 chain.
8190 * dwarf2out.c (gen_subprogram_die): Emit
8191 DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
8192 can't be emitted.
8193
a58a8e4b
JJ
8194 PR debug/45882
8195 * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
8196 * rtl.h (ENTRY_VALUE_EXP): Define.
8197 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
8198 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
8199 * print-rtl.c (print_rtx): Likewise.
8200 * gengtype.c (adjust_field_rtx_def): Likewise.
8201 * var-tracking.c (vt_add_function_parameter): Adjust
8202 gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
8203 * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
8204 * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
8205 partition is a default definition of a PARM_DECL, use ENTRY_VALUE
8206 of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
8207
2b1c5433
JJ
8208 * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
8209 Call var_location debug hook even on CALL_INSNs.
8210 (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
8211 * rtl.def (ENTRY_VALUE): New.
8212 * dwarf2out.c: Include cfglayout.h.
8213 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
8214 output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
8215 (struct call_arg_loc_node): New type.
8216 (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
8217 tail_call_site_count): New variables.
8218 (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
8219 DW_TAG_GNU_call_site_parameter.
8220 (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
8221 DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
8222 DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
8223 DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
8224 and DW_AT_GNU_all_source_call_sites.
8225 (mem_loc_descriptor): Handle ENTRY_VALUE.
8226 (add_src_coords_attributes): Don't add enything if
8227 DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
8228 (dwarf2out_abstract_function): Save and clear call_arg_location,
8229 call_site_count and tail_call_site_count around dwarf2out_decl call.
8230 (gen_call_site_die): New function.
8231 (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
8232 (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
8233 (dwarf2out_function_decl): Clear call_arg_locations,
8234 call_arg_loc_last, set call_site_count and tail_call_site_count
8235 to -1 and free block_map.
8236 (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
8237 CALL_INSNs. Add NOTE_DURING_CALL_P var location notes even when not
8238 followed by any real instructions.
8239 (dwarf2out_begin_function): Set call_site_count and
8240 tail_call_site_count to 0.
8241 (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
8242 is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
8243 attempt to force a DIE for it and worst case remove the attribute.
8244 (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
8245 check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
8246 the decl itself.
8247 * var-tracking.c: Include tm_p.h.
8248 (vt_stack_adjustments): For calls call note_register_arguments.
8249 (argument_reg_set): New variable.
8250 (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
8251 ensure the VALUE is resolved.
8252 (call_arguments): New variable.
8253 (prepare_call_arguments): New function.
8254 (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
8255 (struct expand_loc_callback_data): Add ignore_cur_loc field.
8256 (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
8257 always use the best expression.
8258 (vt_expand_loc): Add ignore_cur_loc argument.
8259 (vt_expand_loc_dummy): Clear ignore_cur_loc field.
8260 (emit_note_insn_var_location): Adjust vt_expand_loc callers.
8261 (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
8262 note for all calls.
8263 (vt_add_function_parameter): Use cselib_lookup_from_insn.
8264 If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
8265 argument. Don't call cselib_preserve_only_values and
8266 cselib_reset_table.
8267 (note_register_arguments): New function.
8268 (vt_initialize): Compute argument_reg_set. Call
8269 vt_add_function_parameters before processing basic blocks instead of
8270 afterwards. For calls call prepare_call_arguments before calling
8271 cselib_process_insn.
8272 * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
8273 * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
8274 (var-tracking.o): Depend on $(TM_P_H).
8275 * cfglayout.h (insn_scope): New prototype.
8276 * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
8277 * cfglayout.c (insn_scope): No longer static.
8278 * insn-notes.def (CALL_ARG_LOCATION): New.
8279 * calls.c (expand_call, emit_library_call_value_1): Put USEs for
8280 MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
8281 * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
8282 nothing for DECL_EXTERNAL BLOCK_VARS.
8283
9ef13bd0
AM
82842011-03-16 Alan Modra <amodra@gmail.com>
8285
8286 PR target/45844
8287 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
8288 create invalid offset address for vsx splat insn.
8289 * config/rs6000/predicates.md (splat_input_operand): New.
8290 * config/rs6000/vsx.md (vsx_splat_*): Use it.
8291
56b67510
XDL
82922011-03-15 Xinliang David Li <davidxl@google.com>
8293
8294 PR c/47837
8295 * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
8296 (normalize_preds): New function.
8297 (is_use_properly_guarded): Normalize def predicates.
8298
80fffdef
RR
82992011-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8300
732f37c6 8301 PR target/46788
80fffdef
RR
8302 * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
8303 in the output template.
8304
930672ad
RG
83052011-03-15 Richard Guenther <rguenther@suse.de>
8306
8307 PR middle-end/47650
8308 * tree-pretty-print.c (dump_function_declaration): Properly
8309 dump unprototyped and varargs function types.
8310
c7ee7b45
RG
83112011-03-15 Richard Guenther <rguenther@suse.de>
8312
8313 PR tree-optimization/13954
8314 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
8315 and friends.
8316
b2ad5e37
RG
83172011-03-15 Richard Guenther <rguenther@suse.de>
8318
8319 PR tree-optimization/48037
8320 * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
8321 selects into BIT_FIELD_REFs.
8322 (non_rewritable_mem_ref_base): Check if a MEM_REF is a
8323 vector select.
8324
7ee93d4e
JJ
83252011-03-15 Jakub Jelinek <jakub@redhat.com>
8326
8327 PR tree-optimization/48129
8328 * builtins.c (fold_builtin_snprintf): Convert to type of
8329 built_in_decls[BUILT_IN_SNPRINTF] retval instead of
8330 implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
8331
e106efc7
RG
83322011-03-15 Richard Guenther <rguenther@suse.de>
8333
8334 PR tree-optimization/41490
8335 * tree-ssa-dce.c (propagate_necessity): Handle returns without
8336 value but with VUSE.
8337 * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
8338 return statements.
8339 * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
8340 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
8341 * tree-tailcall.c (find_tail_calls): Ignore returns.
8342
17dea42f
RG
83432011-03-15 Richard Guenther <rguenther@suse.de>
8344
8345 PR middle-end/48031
8346 * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
8347 or variable-indexed array accesses when in gimple form.
8348
01c77a60
RG
83492011-03-15 Richard Guenther <rguenther@suse.de>
8350
16cc4440 8351 * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
01c77a60 8352
77b0791e
AM
83532011-03-15 Alan Modra <amodra@gmail.com>
8354
8355 PR target/48032
8356 * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
8357 presume symbol_refs without a symbol_ref_decl are suitably
8358 aligned, nor other trees we may see here. Handle anchor symbols.
8359 (legitimate_constant_pool_address_p): Comment. Add mode param.
8360 Check cmodel=medium addresses. Adjust all calls.
8361 (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
8362 creating cmodel=medium optimized access to locals.
8363 * config/rs6000/constraints.md (R): Pass QImode to
8364 legitimate_constant_pool_address_p.
8365 * config/rs6000/predicates.md (input_operand): Pass mode to
8366 legitimate_constant_pool_address_p.
8367 * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
8368 Update prototype.
8369
35f61ba4
MM
83702011-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8371
8372 PR target/48053
8373 * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
8374 64-bit constants being loaded into registers other than GPRs such
8375 as loading 0 into a VSX register.
8376
07332e6d
RO
83772011-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8378
16cc4440 8379 * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
07332e6d 8380
de888d90
JJ
83812011-03-14 Jakub Jelinek <jakub@redhat.com>
8382
ba3ceb2d
JJ
8383 PR middle-end/47917
8384 * builtins.c (fold_builtin_snprintf): New function.
8385 (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
8386 (fold_builtin_4): Likewise.
8387
2e64f8b8
JJ
8388 PR middle-end/38878
8389 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
8390 STRIP_NOPS on arg0 and arg1. When optimizing X +- C == X
8391 and C - X == X also strip nops from +/-/p+ operand.
8392 When optimizing -X == C, fold C to arg0's type.
8393
de888d90
JJ
8394 PR debug/47946
8395 * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
8396 emit it as add_AT_int instead of add_AT_unsigned.
8397
83982011-03-14 Tom Tromey <tromey@redhat.com>
f4e749b4
TT
8399
8400 * unwind-dw2.c: Include sys/sdt.h if it exists.
8401 (_Unwind_DebugHook): Use STAP_PROBE2.
8402 * config.in, configure: Rebuild.
8403 * configure.ac: Check for sys/sdt.h.
8404
d34abfd2
UB
84052011-03-14 Uros Bizjak <ubizjak@gmail.com>
8406
8407 * config/i386/i386.md (ROUND_FLOOR): New constant.
8408 (ROUND_CEIL): Ditto.
8409 (ROUND_TRUNC): Ditto.
8410 (ROUND_MXCSR): Ditto.
8411 (ROUND_NO_EXC): Ditto.
8412 (rint<mode>2): Use new defines instead of numerical constants.
8413 (floor<mode>2): Ditto.
8414 (ceil<mode>2): Ditto.
8415 (btrunc<mode>2): Ditto.
8416 * config/i386/i386-builtin-types.def: Define ROUND function type
8417 aliases.
8418 * config/i386/i386.c (enum ix86_builtins): Add
8419 IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
8420 (struct builtin_description): Add
8421 __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
8422 (ix86_expand_sse_round): New static function.
8423 (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
8424 function types.
8425 (ix86_builtin_vectorized_function): Handle
8426 BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
8427
87f9e23d
TT
84282011-03-14 Tom Tromey <tromey@redhat.com>
8429
8430 * c-parser.c (c_parser_asm_string_literal): Clear
8431 warn_overlength_strings.
8432
b3ab9ea2
TT
84332011-03-14 Tom Tromey <tromey@redhat.com>
8434
8435 * c-parser.c (disable_extension_diagnostics): Save
8436 warn_overlength_strings.
8437 (restore_extension_diagnostics): Restore warn_overlength_strings.
8438
6bd73dd8
JJ
84392011-03-14 Jakub Jelinek <jakub@redhat.com>
8440
8441 * BASE-VER: Change to 4.7.0.
8442
7f4d6e1b
RG
84432011-03-14 Richard Guenther <rguenther@suse.de>
8444
8445 PR middle-end/48098
8446 * tree.c (build_vector_from_val): Adjust assert to requirements
8447 and reality.
8448
c6104ef1
JJ
84492011-03-14 Jakub Jelinek <jakub@redhat.com>
8450
8451 PR bootstrap/48102
d34abfd2 8452 * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
c6104ef1 8453
dfa95e19
AT
84542011-03-14 Andreas Tobler <andreast@fgznet.ch>
8455
f60c2554 8456 * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
dfa95e19
AT
8457 terms of target_flags_explicit. Adjust copyright year.
8458
8459 * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
8460 * config/rs6000/t-freebsd: New file. Add override for
8461 LIB2FUNCS_EXTRA.
8462
bb322018
CD
84632011-03-13 Chris Demetriou <cgd@google.com>
8464
8465 * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
8466 (-fno-diagnostics-show-option): this, to reflect current default.
8467 (-Werror=): Update text about -fno-diagnostics-show-option.
8468
12b1c80b
PB
84692011-03-12 Peter Bergner <bergner@vnet.ibm.com>
8470
8471 PR target/48053
8472 * config/rs6000/predicates.md (easy_vector_constant_add_self,
8473 easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
8474 * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
8475 mode is not V2DImode or V2DFmode.
8476 (vspltis_constant): Do not handle V2DImode and V2DFmode.
8477 (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
8478 * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
8479 registers to 0.
8480 (movdi_internal64): Likewise.
8481
57d598f7
SP
84822011-03-12 Sebastian Pop <sebastian.pop@amd.com>
8483
8484 PR tree-optimization/47127
8485 * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
8486 parameter.
8487 (set_cloog_options): Same.
8488 (scop_to_clast): Same.
8489 (print_clast_stmt): Do not call cloog_state_malloc and
8490 cloog_state_free.
8491 (print_generated_program): Same.
8492 (gloog): Same.
8493 * graphite-clast-to-gimple.h (cloog_state): Declared.
8494 (scop_to_clast): Adjust declaration.
8495 * graphite.c (cloog_state): Defined here.
8496 (graphite_initialize): Call cloog_state_malloc.
8497 (graphite_finalize): Call cloog_state_free.
8498
f231b5ff
JM
84992011-03-11 Jason Merrill <jason@redhat.com>
8500
8501 * attribs.c (lookup_attribute_spec): Take const_tree.
8502 * tree.h: Adjust.
8503
6a4e2bd5
JM
85042011-03-11 Joseph Myers <joseph@codesourcery.com>
8505
8506 * config/sparc/sparc.c (sparc_option_override): Use
8507 PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
8508
a758fd67
RG
85092011-03-11 Richard Guenther <rguenther@suse.de>
8510
8511 PR tree-optimization/48067
8512 * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
8513 multiplication result will be only used once on the target
8514 stmt.
8515
03dfda54
RG
85162011-03-11 Richard Guenther <rguenther@suse.de>
8517
8518 * doc/invoke.texi (max-inline-insns-single): Adjust default value.
8519
5f11a50a
RG
85202011-03-11 Richard Guenther <rguenther@suse.de>
8521
8522 PR lto/48073
8523 * tree.c (find_decls_types_r): Do not walk types only reachable
8524 from IDENTIFIER_NODEs.
8525
4074f163
JJ
85262011-03-11 Jakub Jelinek <jakub@redhat.com>
8527
8528 PR middle-end/48044
8529 * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
8530 all vnode->force_output nodes as needed.
8531
30f7cdcd
JM
85322011-03-11 Jason Merrill <jason@redhat.com>
8533
8534 PR c++/48069
8535 * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
8536 COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
8537
62ecfeb8
MJ
85382011-03-11 Martin Jambor <mjambor@suse.cz>
8539
8540 * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
8541 cgraph_node.
8542
e89e03ab
JJ
85432011-03-11 Jakub Jelinek <jakub@redhat.com>
8544
8545 PR tree-optimization/48063
8546 * ipa-inline.c (cgraph_decide_inlining): Don't try to
8547 inline functions called once if !tree_can_inline_p (node->callers).
8548
efbe978b 85492011-03-11 Chen Liqin <liqin.gcc@gmail.com>
9d6193a7 8550
efbe978b
EB
8551 * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
8552 extra_objs.
9d6193a7
CL
8553 * config/score/score3.c: Delete.
8554 * config/score/score3.h: Delete.
8555 * config/score/mul-div.S: Delete.
8556 * config/score/sfp-machine.h: Add new file.
8557 * config/score/constraints.md: Add new file.
8558 * config/score/t-score-softfp: Add new file.
efbe978b 8559 * config/score/t-score-elf: Remove score3.o, do not generate multilib.
9d6193a7
CL
8560 * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
8561 (score7_extra_constraint): Delete.
efbe978b 8562 (score7_option_override): Remove unused code.
9d6193a7
CL
8563 * config/score/score.c: Remove score3 and score5 define and code.
8564 * config/score/score.h: Remove score3 and score5 define and code.
efbe978b 8565 * config/score/score.md: Remove score3 template and unusual insn.
9d6193a7
CL
8566 * config/score/score.opt: Remove score3 and score5 options.
8567
5de27cca
JDA
85682011-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8569
8570 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
8571 when _HPUX_SOURCE is defined.
8572 (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
8573
18d92053
JM
85742011-03-10 Jason Merrill <jason@redhat.com>
8575
8576 PR c++/48029
8577 * stor-layout.c (layout_type): Don't set structural equality
8578 on arrays of incomplete type.
8579 * tree.c (type_hash_eq): Handle comparing them properly.
8580
67a2f76d
JJ
85812011-03-10 Jakub Jelinek <jakub@redhat.com>
8582
8583 PR debug/48043
18d92053 8584 * config/s390/s390.c (s390_delegitimize_address): Make sure the
67a2f76d
JJ
8585 result mode matches original rtl mode.
8586
d845b2f9
NC
85872011-03-10 Nick Clifton <nickc@redhat.com>
8588
8589 * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
39242686 8590 (andsi3, andsi3_flags): Fix timings for three operand alternative.
d845b2f9 8591
db7ec035
JJ
85922011-03-09 Jakub Jelinek <jakub@redhat.com>
8593
8594 PR rtl-optimization/47866
8595 * expr.c (store_field): If MEM_SCALAR_P (target), don't use
8596 MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
8597 if target wasn't scalar.
8598 * function.c (assign_stack_temp_for_type): Assert that neither
8599 MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
8600 MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
8601 macro.
8602 * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
8603
5d304e47
AK
86042011-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8605
8606 * config/s390/s390-protos.h (s390_label_align): New prototype.
8607 * config/s390/s390.c (s390_label_align): New function.
8608 * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
8609
93b826f0
MM
86102011-03-08 Michael Meissner <meissner@linux.vnet.ibm.com>
8611
8612 PR target/47755
8613 * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
8614 V2DI/V2DF constants. Only all 0's or all 1's are easy.
8615 (output_vec_const_move): Ditto.
8616
ef78aed6
AS
86172011-03-08 Anatoly Sokolov <aesok@post.ru>
8618
8619 * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
8620 * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
8621 * config/mips/mips.c (mips_preferred_reload_class): Make static.
8622 Change 'rclass' argument and result type to reg_class_t.
8623 (TARGET_PREFERRED_RELOAD_CLASS): Define.
8624
5f892aa0
GJL
86252011-03-08 Georg-Johann Lay <avr@gjlay.de>
8626
9e43ad68
UB
8627 * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
8628 * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
8629 (TARGET_MEMORY_MOVE_COST): Define.
8630 (avr_register_move_cost, avr_memory_move_cost): New Functions.
5f892aa0 8631
32bd2409
JJ
86322011-03-08 Jakub Jelinek <jakub@redhat.com>
8633
530a4800
JJ
8634 PR debug/47881
8635 * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
8636 removed anything.
8637
32bd2409
JJ
8638 PR tree-optimization/48022
8639 * fold-const.c (fold_comparison): Don't call fold_overflow_warning
8640 for EQ/NE_EXPR.
8641
c7148991
JJ
86422011-03-07 Jakub Jelinek <jakub@redhat.com>
8643
8644 PR debug/47991
8645 * var-tracking.c (find_use_val): Return NULL for
8646 cui->sets && cui->store_p BLKmode MEMs.
8647
43070a6e
AS
86482011-03-07 Anatoly Sokolov <aesok@post.ru>
8649
8650 * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
8651 Remove.
8652 * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
8653 xstormy16_print_operand_address): Remove.
8654 * config/stormy16/stormy16.c (xstormy16_print_operand,
8655 xstormy16_print_operand_address): Make static.
8656 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
8657
efbe978b 86582011-03-07 Pat Haugen <pthaugen@us.ibm.com>
79eefb0d
PH
8659
8660 PR target/47862
8661 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
8662 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
8663 before definition.
8664
cec8ac0b
ZD
86652011-03-07 Zdenek Dvorak <ook@ucw.cz>
8666
8667 PR bootstrap/48000
8668 * cfgloopmanip.c (fix_bb_placements): Return immediately
8669 if FROM is BASE_LOOP's header.
8670
59527282
PW
86712011-03-07 Paul Wögerer <paul_woegerer@mentor.com>
8672
8673 * gimplify.c (gimplify_function_tree): Fix building calls
8674 to __builtin_return_address.
8675
617718f7
AM
86762011-03-07 Alan Modra <amodra@gmail.com>
8677
8678 * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
8679 * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
8680 * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
8681 * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
8682 return_mode args.
8683 * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
8684 (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
8685 (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
8686 (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
8687 * config/rs6000/rs6000.c
8688 (rs6000_elf_end_indicate_exec_stack): Rename to..
8689 (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack
8690 for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from..
8691 (rs6000_file_start): ..here.
8692 (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
8693 file scope variables.
8694 (call_ABI_of_interest): New function.
8695 (init_cumulative_args): Set above vars when function return value
8696 is a float, vector, or small struct.
8697 (rs6000_function_arg_advance_1): Likewise for function args.
8698 (rs6000_va_start): Set rs6000_passes_float if variable arg function
8699 references float args.
8700
38528d50
MX
87012011-03-07 Mingjie Xing <mingjie.xing@gmail.com>
8702
8703 * doc/cfg.texi: Remove "See" before @ref.
8704 * doc/invoke.texi: Likewise.
8705
f42cf4f4
JM
87062011-03-05 Jason Merrill <jason@redhat.com>
8707
8708 * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
8709
804a304d
AG
87102011-03-05 Anthony Green <green@moxielogic.com>
8711
8712 * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
8713
634ee309
ZD
87142011-03-05 Zdenek Dvorak <ook@ucw.cz>
8715
8716 PR rtl-optimization/47899
8717 * cfgloopmanip.c (fix_bb_placements): Fix first argument
8718 to flow_loop_nested_p when moving the loop upward.
8719
6fe471c8
RE
87202011-03-05 Richard Earnshaw <rearnsha@arm.com>
8721
8722 PR target/47719
8723 * arm.md (movhi_insn_arch4): Accept any immediate constant.
8724
cc58ceee
JJ
87252011-03-05 Jakub Jelinek <jakub@redhat.com>
8726
8727 PR tree-optimization/47967
8728 * ipa-cp.c (build_const_val): Return NULL instead of creating
8729 VIEW_CONVERT_EXPR for mismatching sizes.
8730 (ipcp_create_replace_map): Return NULL if build_const_val failed.
8731 (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
8732 give up on versioning.
8733
ea868305
AM
87342011-03-05 Alan Modra <amodra@gmail.com>
8735
8736 PR target/47986
8737 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8738 full cmodel medium/large lo_sum + high addresses.
8739
bc6ce334
AK
87402011-03-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8741
8742 * config/s390/s390.c (s390_decompose_address): Reject non-literal
8743 pool references in UNSPEC_LTREL_OFFSET.
8744
87e7b310
JH
87452011-03-04 Jan Hubicka <jh@suse.cz>
8746
8747 PR lto/47497
8748 * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
8749 (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
d34abfd2
UB
8750 * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
8751 Add node pointers.
87e7b310
JH
8752 * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
8753 cgraph_add_thunk): Add node pointers.
8754 * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
8755 associated to right node.
8756 (input_node): Update use of cgraph_same_body_alias
8757 and cgraph_add_thunk.
8758
d9c64246
CF
87592011-03-04 Changpeng Fang <changpeng.fang@amd.com>
8760
8761 * config/i386/i386.opt (mprefer-avx128): New flag.
d34abfd2
UB
8762 * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
8763 modes when the flag -mprefer-avx128 is on.
d9c64246 8764
08707076
RS
87652011-03-04 Richard Sandiford <richard.sandiford@linaro.org>
8766
8767 * dwarf2out.c (compare_loc_operands): Fix address handling.
8768
52517c81
AM
87692011-03-04 Alan Modra <amodra@gmail.com>
8770
8771 * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
8772
b147c5b9
RG
87732011-03-04 Richard Guenther <rguenther@suse.de>
8774
8775 PR middle-end/47968
8776 * expmed.c (extract_bit_field_1): Prefer vector modes that
8777 vec_extract patterns can handle.
8778
8750672f
RG
87792011-03-04 Richard Guenther <rguenther@suse.de>
8780
8781 PR middle-end/47975
8782 * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
8783
9eac0f2a
RH
87842011-03-04 Richard Henderson <rth@redhat.com>
8785
8786 * explow.c (emit_stack_save): Remove 'after' parameter.
8787 (emit_stack_restore): Likewise.
8788 * expr.h: Update to match.
8789 * builtins.c, calls.c, stmt.c: Likewise.
8790 * config/alpha/alpha.md, config/avr/avr.md: Likewise.
8791 * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
8792 * function.c (expand_function_end): Insert the emit_stack_save
8793 sequence before parm_birth_insn instead of after.
8794
dfee1406
UB
87952011-03-03 Uros Bizjak <ubizjak@gmail.com>
8796
8797 * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
8798 (ssse3_pmaddubsw128): Ditto.
8799 (ssse3_pmaddubsw): Ditto.
8800
f1d4c3de
SE
88012011-03-03 Steve Ellcey <sje@cup.hp.com>
8802
8803 * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
8804
71f3a3f5
JJ
88052011-03-03 Jakub Jelinek <jakub@redhat.com>
8806
423ed416
JJ
8807 PR c/47963
8808 * gimplify.c (omp_add_variable): Only call omp_notice_variable
8809 on TYPE_SIZE_UNIT if it is a DECL.
8810
71f3a3f5
JJ
8811 PR debug/47283
8812 * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
8813 first operand is not is_gimple_mem_ref_addr, try to fold it.
8814 If the operand still isn't is_gimple_mem_ref_addr, clear
8815 MEM_EXPR on op0.
8816
4b1a5c0d
RG
88172011-03-03 Richard Guenther <rguenther@suse.de>
8818
8819 PR middle-end/47283
8820 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
8821 match comment.
8822 (refs_may_alias_p_1): For release branches return true if
8823 we are confused by our input.
8824
b46616fd
AK
88252011-03-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8826
8827 * config/s390/s390.c (s390_function_value): Rename to ...
8828 (s390_function_and_libcall_value): ... this.
8829 (s390_function_value): New function.
8830 (s390_libcall_value): New function.
dfee1406 8831 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
b46616fd
AK
8832 * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
8833 target macro definitions.
8834 * config/s390/s390-protos.h (s390_function_value): Remove prototype.
8835
46d8fabb
JM
88362011-03-02 Joseph Myers <joseph@codesourcery.com>
8837
8838 * config/i386/freebsd64.h (CC1_SPEC): Define.
8839 * config/i386/linux64.h (CC1_SPEC): Define.
8840 * config/i386/x86-64.h (CC1_SPEC): Don't define.
8841
6b1ce545
AS
88422011-03-02 Anatoly Sokolov <aesok@post.ru>
8843
8844 * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
8845 Remove.
8846 * config/stormy16/stormy16.c: Include reload.h.
8847 (xstormy16_memory_move_cost): New function.
8848 (TARGET_MEMORY_MOVE_COST): Define.
8849
34161e98
RS
88502011-03-02 Richard Sandiford <richard.sandiford@linaro.org>
8851
8852 PR rtl-optimization/47925
8853 * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
8854 with side effects. Remove the more-specific check for volatile asms.
8855
f60a97cf
AM
88562011-03-02 Alan Modra <amodra@gmail.com>
8857
8858 PR target/47935
8859 * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
8860 toc relative addresses for valid offsets.
8861
f2ca11ca
RG
88622011-03-01 Richard Guenther <rguenther@suse.de>
8863
8864 PR tree-optimization/47890
8865 * tree-vect-loop.c (get_initial_def_for_induction): Set
8866 related stmt properly.
8867
7a00d9ea
RG
88682011-03-01 Richard Guenther <rguenther@suse.de>
8869
8870 PR lto/47924
8871 * lto-streamer.c (lto_record_common_node): Also register
8872 the canonical type.
8873
06c7edcc
RG
88742011-03-01 Richard Guenther <rguenther@suse.de>
8875
8876 PR lto/46911
8877 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
8878 Do not stream DECL_ABSTRACT_ORIGIN.
8879 (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8880 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8881 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
8882 Do not stream DECL_ABSTRACT_ORIGIN.
8883 (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
8884 BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
8885
998871e9
AS
88862011-02-28 Anatoly Sokolov <aesok@post.ru>
8887
8888 * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
8889 FUNCTION_VALUE_REGNO_P): Remove.
b2e2ea67 8890 * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
998871e9
AS
8891 * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
8892 Add 'outgoing' argument.
8893 (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
8894 function.
8895 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
8896 TARGET_FUNCTION_VALUE_REGNO_P): Define.
8897
94369251
KT
88982011-02-28 Kai Tietz <kai.tietz@onevision.com>
8899
8900 PR debug/28047
8901 * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
8902 (lookup_filename): Likewise.
b2e2ea67 8903 * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
94369251 8904
80a832cd
JJ
89052011-02-28 Bernd Schmidt <bernds@codesourcery.com>
8906 Jakub Jelinek <jakub@redhat.com>
8907
8908 PR middle-end/47893
8909 * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
8910 (assign_stack_local_1): Change last argument type to int.
8911 * function.c (assign_stack_local_1): Replace reduce_alignment_ok
8912 argument with kind. If bit ASLK_RECORD_PAD is not set in it,
b2e2ea67 8913 don't record padding space into frame_space_list nor use those areas.
80a832cd
JJ
8914 (assign_stack_local): Adjust caller.
8915 (assign_stack_temp_for_type): Call assign_stack_local_1 instead
8916 of assign_stack_local, pass 0 as last argument.
8917 * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
8918 callers.
8919
1b500976
JJ
89202011-02-28 Jakub Jelinek <jakub@redhat.com>
8921
f61c6f34
JJ
8922 PR debug/47283
8923 * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
8924 Use target address_mode and pointer_mode hooks instead of hardcoded
8925 Pmode and ptr_mode. Handle some simple cases of extending if
8926 POINTERS_EXTEND_UNSIGNED < 0.
8927 (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
8928 Call convert_debug_memory_address.
8929 (expand_debug_expr) <case ADDR_EXPR>: Pass as to
8930 convert_debug_memory_address.
8931
1b500976
JJ
8932 PR middle-end/46790
8933 * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
8934 * configure: Regenerated.
8935 * config.in: Regenerated.
8936 * varasm.c (default_function_section): Return NULL
b2e2ea67 8937 if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
1b500976 8938
2f2935b6
MJ
89392011-02-28 Martin Jambor <mjambor@suse.cz>
8940
8941 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
8942 the description to match the printed values.
8943
474086eb
RG
89442011-02-28 Richard Guenther <rguenther@suse.de>
8945
8946 * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
8947 of the copied scope tree.
8948
15bf6f3a
RW
89492011-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8950
8951 * doc/extend.texi (Function Attributes): Avoid deeply (and
8952 wrongly) nested tables.
8953
f6b439c9
JJ
89542011-02-27 Jakub Jelinek <jakub@redhat.com>
8955
8956 PR middle-end/47903
8957 * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
8958 MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
8959 r isn't op0 nor op1.
8960
1d8ca2c7
GJL
89612011-02-23 Georg-Johann Lay <avr@gjlay.de>
8962
8963 * config/avr/avr.md: Remove magic comment for emacs.
8964
593fca4b
GJL
89652011-02-23 Georg-Johann Lay <avr@gjlay.de>
8966
8967 PR target/45261
8968 * config/avr/avr.c (avr_option_override): Use error on bad options.
8969 (avr_help): New function.
8970 (TARGET_HELP): Define.
8971
6609216e
GJL
89722011-02-22 Georg-Johann Lay <avr@gjlay.de>
8973
8974 PR target/42240
8975 * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
8976 (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
8977
03d458af
GP
89782011-02-26 Gerald Pfeifer <gerald@pfeifer.com>
8979
8980 * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
8981 (ARM Options): Ditto.
8982 (i386 and x86-64 Options): Ditto.
8983 (RX Options): Ditto.
8984 (SPARC Options): Ditto.
8985
1c379b78
TC
89862011-02-26 Tijl Coosemans <tijl@coosemans.org>
8987
8988 * config.gcc (i386-*-freebsd*): Make i486 the default arch on
8989 FreeBSD 6 and later. Generally use cpu generic.
8990
d5ed058c 89912011-02-25 Gerald Pfeifer <gerald@pfeifer.com>
b2e2ea67 8992
d5ed058c
GP
8993 * doc/cpp.texi: Update copyright years.
8994
509d65dd 89952011-02-25 Sebastien Bourdeauducq <sebastien@milkymist.org>
308d39cd 8996
509d65dd 8997 PR target/46898
308d39cd
SB
8998 * config/lm32/lm32.md (ashrsi3): Added needed variable.
8999
509d65dd 90002011-02-25 Jon Beniston <jon@beniston.com>
308d39cd 9001
509d65dd 9002 PR target/46898
308d39cd
SB
9003 * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
9004 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
9005 * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
9006 (lm32_block_move_inline): Add type cast to remove warning.
b2e2ea67 9007 (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
308d39cd
SB
9008 (gen_int_relational): Move declarations to start of function.
9009
822ba6d7
EB
90102011-02-25 Eric Botcazou <ebotcazou@adacore.com>
9011
9012 PR tree-optimization/45470
9013 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
9014 can throw internally only.
9015 * tree-vect-stmts.c (vectorizable_call): Likewise.
9016
ef795fc2
AS
90172011-02-24 Anatoly Sokolov <aesok@post.ru>
9018
9019 * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
9020 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
9021 * config/stormy16/stormy16-protos.h
9022 (xstormy16_preferred_reload_class): Remove.
9023 * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
9024 static. Change 'rclass' argument and return type to reg_class_t.
9025 (TARGET_PREFERRED_RELOAD_CLASS,
9026 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
9027
1c3277ee
RG
90282011-02-24 Richard Guenther <rguenther@suse.de>
9029
9030 * lto-streamer-in.c (input_bb): Do not find referenced vars
9031 in debug statements.
9032
67e18edb
JM
90332011-02-23 Jason Merrill <jason@redhat.com>
9034
9035 * common.opt (fabi-version): Document v5 and v6.
9036
b14fad9d
RG
90372011-02-23 Richard Guenther <rguenther@suse.de>
9038
9039 PR tree-optimization/47849
9040 * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
9041
7fcf46f5
JZ
90422011-02-23 Jie Zhang <jie@codesourcery.com>
9043
9044 * opts-common.c (decode_cmdline_option): Print empty string
9045 argument as "" in decoded->orig_option_with_args_text.
9046 * gcc.c (execute): Print empty string argument as ""
9047 in the verbose output.
9048 (do_spec_1): Keep empty string argument.
9049
f85b70fd
NF
90502011-02-23 Nathan Froyd <froydnj@codesourcery.com>
9051
9052 * config.gcc: Declare score-* and crx-* obsolete.
9053
b152a615
JZ
90542011-02-23 Jie Zhang <jie@codesourcery.com>
9055
9056 PR rtl-optimization/47763
9057 * web.c (web_main): Ignore naked clobber when replacing register.
9058
bb6e77bc
AS
90592011-02-22 Anatoly Sokolov <aesok@post.ru>
9060
9061 * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
9062 Remove.
9063
68bf6491
SP
90642011-02-22 Sebastian Pop <sebastian.pop@amd.com>
9065
9066 PR doc/47848
9067 * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
9068
88ee1fc7
MS
90692011-02-22 Mike Stump <mikestump@comcast.net>
9070
9071 * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
9072 assembler.
9073 * configure: Regenerate.
9074
6042d1dd
CLT
90752011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
9076
9077 PR rtl-optimization/46002
9078 * ira-color.c (update_copy_costs): Change class intersection
9079 test to reg_class_contents[] test of 'hard_regno'.
9080
7de97f9e
JM
90812011-02-21 Joseph Myers <joseph@codesourcery.com>
9082
9083 * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
9084 than Driver option.
9085 * config/hpux11.opt (mt): Likewise.
9086 * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
9087 * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
9088 * config/vax/elf.opt (mno-asm-pic): Likewise.
9089 * config/vms/vms.opt (map, mvms-return-codes): Likewise.
9090
d1d46f9f
MS
90912011-02-21 Mike Stump <mikestump@comcast.net>
9092
9093 PR target/47822
9094 * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
9095 tree so we can get save the type.
9096 * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
9097 for CFString instead of trying to use past the end of the builtins.
9098 * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
9099 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
9100 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
9101 * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
9102 Rename to darwin_builtin_cfstring.
9103 (darwin_init_cfstring_builtins): Return the built type.
9104
23e0d930
UB
91052011-02-21 Uros Bizjak <ubizjak@gmail.com>
9106
9107 PR target/47840
9108 * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
9109 (_mm256_insert_epi64): Use _mm_insert_epi64.
9110
192997cf
AS
91112011-02-21 Anatoly Sokolov <aesok@post.ru>
9112
9113 * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9114 * config/stormy16/stormy16-protos.h
9115 (xstormy16_mode_dependent_address_p): Remove.
9116 * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
9117 Make static. Change return type to bool. Change argument type to
9118 const_rtx. Remove dead code.
9119 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9120
e292d003
RG
91212011-02-21 Richard Guenther <rguenther@suse.de>
9122
9123 PR lto/47820
9124 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
9125 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9126 (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
9127 TUs context.
23e0d930 9128 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
e292d003
RG
9129 Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
9130
77f846e9
RG
91312011-02-20 Richard Guenther <rguenther@suse.de>
9132
9133 PR lto/47822
9134 * tree.c (free_lang_data_in_decl): Clean builtins from
9135 the TU decl BLOCK_VARS.
23e0d930 9136
b2cddfc8
AO
91372011-02-19 Alexandre Oliva <aoliva@redhat.com>
9138
9139 PR debug/47620
9140 PR debug/47630
9141 * haifa-sched.c (fix_tick_ready): Skip tick computation
9142 for debug insns.
9143
becf4c11
RG
91442011-02-19 Richard Guenther <rguenther@suse.de>
9145
9146 PR lto/47647
9147 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
9148 Remove lazy BLOCK_VARS streaming.
9149 (lto_input_ts_block_tree_pointers): Likewise.
9150 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
9151
27f98305
JM
91522011-02-19 Joseph Myers <joseph@codesourcery.com>
9153
9154 * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
9155
064bf3f4
JM
91562011-02-19 Joseph Myers <joseph@codesourcery.com>
9157
9158 * config/i386/biarch32.h, config/i386/mach.h,
9159 config/rs6000/aix.opt, config/sh/superh64.h: Remove.
9160
9215ddc3
JJ
91612011-02-19 Jakub Jelinek <jakub@redhat.com>
9162
9163 PR target/47800
9164 * config/i386/i386.md (peephole2 for shift and plus): Use
9165 operands[1] original mode in the first insn.
9166
8b021004
MS
91672011-02-18 Mike Stump <mikestump@comcast.net>
9168
65ded153 9169 * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
8b021004 9170
f84ae14c
JH
91712011-02-18 Jan Hubicka <jh@suse.cz>
9172
9173 PR middle-end/47788
65ded153
EB
9174 * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
9175 to zero when the function is not inlinable at all.
f84ae14c 9176
eddabc80
JDA
91772011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9178
9179 * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
9180 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9181 pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
9182 * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
9183 * config/pa/t-pa64: Likewise.
9184 * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
9185
ca3da783
JJ
91862011-02-18 Jakub Jelinek <jakub@redhat.com>
9187
9188 PR driver/47787
9189 * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
9190
430aa868
JDA
91912011-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9192
9193 PR target/47792
9194 * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
9195
4bf7ff7e
AS
91962011-02-18 Anatoly Sokolov <aesok@post.ru>
9197
9198 * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
9199 RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
9200 LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
9201 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
9202 * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
9203 (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
9204 m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
9205 m32r_load_postinc_p, m32r_store_preinc_predec_p,
9206 m32r_legitimate_address_p): New functions.
9207 * config/m32r/constraints.md (constraint "S"): Don't use
9208 STORE_PREINC_PREDEC_P.
9209 (constraint "U"): Don't use LOAD_POSTINC_P.
9210
7efcf910
CLT
92112011-02-18 Chung-Lin Tang <cltang@codesourcery.com>
9212
9213 PR rtl-optimization/46178
9214 * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
9215 compute ira_hard_regno_cover_class[].
9216
237d6259
RG
92172011-02-18 Richard Guenther <rguenther@suse.de>
9218
9219 PR lto/47798
9220 * lto-streamer.h (lto_global_var_decls): Declare.
9221 * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
9222 statics for global var processing.
9223
12d80acc
RG
92242011-02-18 Richard Guenther <rguenther@suse.de>
9225
9226 PR tree-optimization/47737
9227 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
9228 edge dominance check.
9229
abfea58d
JJ
92302011-02-18 Jakub Jelinek <jakub@redhat.com>
9231
9232 PR debug/47780
9233 * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
9234 avoid invalid rtx sharing.
9235
f73c8882
GP
92362011-02-18 Gerald Pfeifer <gerald@pfeifer.com>
9237
9238 * doc/cpp.texi (Obsolete Features): Add background on the
9239 origin of assertions.
9240
d764a8e6
IS
92412011-02-17 Iain Sandoe <iains@gcc.gnu.org>
9242
9243 * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
23e0d930 9244 objc_abi == 2.
d764a8e6
IS
9245 * config/darwin.c (output_objc_section_asm_op): Added support for
9246 ABI v1 and v2.
9247 (is_objc_metadata): New.
9248 (darwin_objc2_section): New.
9249 (darwin_objc1_section): New.
9250 (machopic_select_section): Added support for ABI v1 and v2.
9251 (darwin_emit_objc_zeroed): New.
9252 (darwin_output_aligned_bss): Detect objc metadata and treat it
9253 appropriately.
9254 (darwin_asm_output_aligned_decl_common): Same.
9255 (darwin_asm_output_aligned_decl_local): Same.
9256 * config/darwin-sections.def: Updated for ABI v1 and v2.
9257 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
9258 compiling Objective-C code for the NeXT runtime, default to using
9259 ABI version 0 for 32-bit, and version 2 for 64-bit.
9260
0a8134ca
JM
92612011-02-17 Joseph Myers <joseph@codesourcery.com>
9262
9263 * common.opt (optimize_fast): New Variable.
9264 * opts.c (default_options_optimization): Use opts->x_optimize_fast
9265 instead of local variable ofast.
9266
0a256240
NP
92672011-02-17 Nicola Pero <nicola.pero@meta-innovation.com>
9268
9269 * doc/invoke.texi (fobjc-abi-version): Documented.
9270 (fobjc-nilcheck): Documented.
9271 (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
9272 version.
9273
fa381cb2
JM
92742011-02-17 Joseph Myers <joseph@codesourcery.com>
9275
9276 PR driver/47390
9277 * common.opt (export-dynamic): New Driver option.
9278 * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
9279
5437eaa6
JM
92802011-02-17 Joseph Myers <joseph@codesourcery.com>
9281
9282 * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
9283
bb7e6d55
AO
92842011-02-17 Alexandre Oliva <aoliva@redhat.com>
9285 Jan Hubicka <jh@suse.cz>
9286
9287 PR debug/47106
9288 PR debug/47402
9289 * cfgexpand.c (account_used_vars_for_block): Remove.
9290 (estimated_stack_frame_size): Use referenced vars.
9291 * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
9292 that were referenced in the original function. Test src_fn
9293 rather than cfun. Drop redundant get_var_ann.
9294 (setup_one_parameter): Drop redundant get_var_ann.
9295 (declare_return_variable): Likewise.
9296 (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
9297 (copy_arguments_for_versioning): Drop redundant get_var_ann.
9298 * ipa-inline.c (compute_inline_parameters): Do not compute
9299 disregard_inline_limits here.
bb7e6d55
AO
9300 (compute_inlinable_for_current, pass_inlinable): New.
9301 (pass_inline_parameters): Require PROP_referenced_vars.
9302 * cgraphunit.c (cgraph_process_new_functions): Don't run
23e0d930 9303 compute_inline_parameters explicitly unless function is in SSA form.
bb7e6d55
AO
9304 (cgraph_analyze_function): Set .disregard_inline_limits.
9305 * tree-sra.c (convert_callers): Compute inliner parameters
9306 only for functions already in SSA form.
9307
f181a8a7
JM
93082011-02-17 Joseph Myers <joseph@codesourcery.com>
9309
9310 * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
9311 -mlittle-endian-data.
9312
c6869789
JM
93132011-02-17 Joseph Myers <joseph@codesourcery.com>
9314
9315 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
9316 -mno-fpu, not -fpu and -no-fpu.
9317 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
9318 * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
9319
fbf4bfd3
UB
93202011-02-17 Uros Bizjak <ubizjak@gmail.com>
9321
9322 PR target/43653
9323 * config/i386/i386.c (ix86_secondary_reload): Handle SSE
9324 input reload with PLUS RTX.
9325
70be5dc7
JM
93262011-02-16 Joseph Myers <joseph@codesourcery.com>
9327
9328 * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
9329 of InverseVar(MDMX).
9330
30b1646e
JM
93312011-02-16 Joseph Myers <joseph@codesourcery.com>
9332
9333 * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
9334 --m4-340.
9335
ab7b71e9
JM
93362011-02-16 Joseph Myers <joseph@codesourcery.com>
9337
9338 * config/mn10300/mn10300.opt (mno-crt0): New.
9339
466f3f08
JM
93402011-02-16 Joseph Myers <joseph@codesourcery.com>
9341
9342 * config/m68k/uclinux.opt (static-libc): New Driver option.
9343
8226cd7b
JM
93442011-02-16 Joseph Myers <joseph@codesourcery.com>
9345
9346 * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
9347
45cab1d7
JM
93482011-02-16 Joseph Myers <joseph@codesourcery.com>
9349
9350 * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
9351 %{muser-extend-enabled}.
9352
65aab64f
RG
93532011-02-16 Richard Guenther <rguenther@suse.de>
9354
9355 PR tree-optimization/47738
9356 * tree-ssa-loop.c (run_tree_predictive_commoning): Return
9357 the TODO from tree_predictive_commoning.
9358
fc2fa4fb
JL
93592011-02-15 Jeff Law <law@redhat.com>
9360
9361 Revert
9362 2011-01-25 Jeff Law <law@redhat.com>
9363
9364 PR rtl-optimization/37273
9365 * ira-costs.c (scan_one_insn): Detect constants living in memory and
9366 handle them like argument loads from stack slots. Do not double
9367 count memory for memory constants and argument loads from stack slots.
9368
4e380b8e
L
93692011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9370
9371 PR middle-end/47725
9372 * combine.c (cant_combine_insn_p): Revert the last change.
9373
e3a69bb4
MM
93742011-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9375
9376 PR target/47755
9377 * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
9378 mode for vector constants. Remove code that checks for TImode.
9379
de650422
AO
93802011-02-15 Alexandre Oliva <aoliva@redhat.com>
9381
9382 PR debug/47106
9383 PR debug/47402
9384 * cgraph.h (compute_inline_parameters): Return void.
9385 * ipa-inline.c (compute_inline_parameters): Adjust.
9386
30925d94
AO
93872011-02-15 Alexandre Oliva <aoliva@redhat.com>
9388
9389 PR debug/47106
9390 PR debug/47402
9391 * tree-inline.h (estimated_stack_frame_size): Take cgraph node
9392 rather than decl.
9393 * cfgexpand.c (estimated_stack_frame_size): Likewise.
9394 * ipa-inline.c (compute_inline_parameters): Adjust.
9395
1b9a784a
AO
93962011-02-15 Alexandre Oliva <aoliva@redhat.com>
9397
9398 PR debug/47106
9399 PR debug/47402
9400 * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
9401 Adjust all users. Pass FN to...
9402 * tree-flow-inline.h (first_referenced_var): ... this. Add
9403 fn argument.
9404 * ipa-struct-reorg.c: Adjust.
9405 * tree-dfa.c: Adjust.
9406 * tree-into-ssa.c: Adjust.
9407 * tree-sra.c: Adjust.
9408 * tree-ssa-alias.c: Adjust.
9409 * tree-ssa-live.c: Adjust.
9410 * tree-ssa.c: Adjust.
9411 * tree-ssanames.c: Adjust.
9412 * tree-tailcall.c: Adjust.
9413
27c6b086
AO
94142011-02-15 Alexandre Oliva <aoliva@redhat.com>
9415
9416 PR debug/47106
9417 PR debug/47402
9418 * tree-flow.h (referenced_var_lookup): Add fn parameter.
9419 Adjust all callers.
9420 * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
9421 * tree-flow-inline.h: Adjust.
9422 * gimple-pretty-print.c: Adjust.
9423 * tree-into-ssa.c: Adjust.
9424 * tree-ssa.c: Adjust.
9425 * cfgexpand.c: Adjust.
9426
679e8183
NF
94272011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9428
fbf4bfd3
UB
9429 * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
9430 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9431 (EXTRA_CONSTRAINT): Delete.
9432 * config/iq2000/constraints.md: New file.
9433 * config/iq2000/iq2000.md: Include it.
679e8183
NF
9434 (define_insn ""): Delete.
9435 (movsi_internal2, movhi_internal2, movqi_internal2): Delete
9436 unsupported constraint letters from patterns.
9437 (call_value, call_value_internal1): Likewise.
9438 (call_value_multiple_internal1): Likewise.
9439
a45d420a
NC
94402011-02-15 Nick Clifton <nickc@redhat.com>
9441
9442 * config/mn10300/mn10300.c: Include tm-constrs.h.
9443 (struct liw_data): New data structure describing an LIW candidate
9444 instruction.
9445 (extract_bundle): Use struct liw_data. Allow small integer
9446 operands for some instructions.
9447 (check_liw_constraints): Use struct liw_data. Remove swapped
9448 parameter. Add comments describing the checks. Fix bug when
9449 assigning the source of liw1 to the source of liw2.
9450 (liw_candidate): Delete. Code moved into extract_bundle.
9451 (mn10300_bundle_liw): Use struct liw_data. Check constraints
9452 before swapping.
9453 * config/mn10300/predicates.md (liw_operand): New predicate.
9454 Allows registers and small integer constants.
9455 * config/mn10300/constraints.md (O): New constraint. Accetps
9456 integers in the range -8 to +7 inclusive.
9457 * config/mn10300/mn10300.md (movesi_internal): Add an alternative
9458 for moving a small integer into a register. Give this alternative
9459 LIW attributes.
9460 (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
9461 (ashlsi3): Likewise, plus give LIW attributes to the alternatives
9462 using the J,K,L and M constraints,
9463 (liw): Remove SI mode on second operands to allow for HI and QI
9464 mode values.
9465 (cmp_liw, liw_cmp): Likewise. Plus fix order of operands in the
9466 instruction.
9467
8a73faf1
L
94682011-02-15 H.J. Lu <hongjiu.lu@intel.com>
9469
9470 PR middle-end/47725
9471 * combine.c (cant_combine_insn_p): Check zero/sign extended
9472 hard registers.
9473
48feba28
RG
94742011-02-15 Richard Guenther <rguenther@suse.de>
9475
9476 PR tree-optimization/47743
9477 * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
9478 for a non-type-compatible VN lookup bail out.
9479
ad1c1eeb
NF
94802011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9481
9482 * config/fr30/constraints.md: New file.
9483 * config/fr30/fr30.md: Include it.
9484 * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
9485 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9486 (EXTRA_CONSTRAINT): Delete.
9487
49ac143d
NF
94882011-02-15 Nathan Froyd <froydnj@codesourcery.com>
9489
9490 * config/frv/constraints.md: New file.
9491 * config/frv/predicates.md: Include it.
9492 * config/frv/frv.c (reg_class_from_letter): Delete.
9493 (frv_option_override): Don't initialize it.
9494 * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
9495 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
9496 (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
9497 (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9498 (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
9499 (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9500 (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
9501 (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
9502 (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
9503 (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
9504 (REG_CLASS_FROM_CONSTRAINT): Delete.
9505
c95f9494
JJ
95062011-02-15 Jakub Jelinek <jakub@redhat.com>
9507
9508 PR middle-end/47581
9509 * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
9510 if frame size is 0 in a leaf function.
9511
13aed611
RO
95122011-02-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9513
9514 PR pch/14940
9515 * config/alpha/host-osf.c: New file.
9516 * config/alpha/x-osf: New file.
9517 * config.host (alpha*-dec-osf*): Use it.
9518
b09c3081
AS
95192011-02-14 Anatoly Sokolov <aesok@post.ru>
9520
9521 * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
9522 * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
9523 * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
9524 (rx_mode_dependent_address_p): ...this. Make static. Change argument
9525 type to const_rtx.
9526 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
9527
d634083b
NF
95282011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9529
9530 * config/stormy16/constraints.md: New file.
9531 * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
9532 Use satisfies_constraint_Q and satisfies_constraint_R.
9533 * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
9534 Delete.
9535 (xstormy16_legitiamte_address_p): Declare.
9536 * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
9537 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9538 (EXTRA_CONSTRAINT): Delete.
fbf4bfd3 9539 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
d634083b
NF
9540 Un-staticize.
9541 (xstormy16_extra_constraint_p): Delete.
9542
c7dd803e
EB
95432011-02-14 Eric Botcazou <ebotcazou@adacore.com>
9544
9545 PR tree-optimization/46494
9546 * loop-unroll.c (split_edge_and_insert): Adjust comment.
9547 * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
9548 (pass_rtl_loop_done): Add TODO_verify_flow.
9549 * fwprop.c (pass_rtl_fwprop): Likewise.
9550 * modulo-sched.c (pass_sms): Likewise.
9551 * tree-ssa-dom.c (pass_dominator): Likewise.
9552 * tree-ssa-loop-ch.c (pass_ch): Likewise.
9553 * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
9554 (pass_tree_loop_done): Likewise.
9555 * tree-ssa-pre.c (execute_pre): Likewise.
9556 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9557 * tree-ssa-sink.c (pass_sink_code): Likewise.
9558 * tree-vrp.c (pass_vrp): Likewise.
9559
c6150df6
NF
95602011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9561
c7dd803e
EB
9562 * config/v850/constraints.md: New file.
9563 * config/v850/v850.md: Include it.
9564 * config/v850/predicates.md (reg_or_0_operand): Use
9565 satisfies_constraint_G.
9566 (special_symbolref_operand): Use satisfies_constraint_K.
9567 * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
9568 (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9569 (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
9570 (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
9571 (EXTRA_CONSTRAINT): Delete.
9572 (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
9573 (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
9574 (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
c6150df6 9575
30dd1ea3
AS
95762011-02-14 Anatoly Sokolov <aesok@post.ru>
9577
9578 PR target/47696
9579 * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
9580 description.
9581
944f4bb3
NF
95822011-02-14 Nathan Froyd <froydnj@codesourcery.com>
9583
9584 * config/mcore/constraints.md: New file.
9585 * config/mcore/mcore.md: Include it.
9586 * config/mcore/mcore.c (reg_class_from_letter): Delete.
9587 * config/mcore/mcore.h (reg_class_from_letter): Delete.
9588 (REG_CLASS_FROM_LETTER): Delete.
9589 (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
9590 insn_const_int_ok_for_constraint.
9591 (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
9592 (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
9593 (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
9594 (EXTRA_CONSTRAINT): Delete.
9595
ad56a54c
RO
95962011-02-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9597
9598 PR ada/41929
9599 * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
9600 (IS_SIGHANDLER): Define.
9601 (sparc64_is_sighandler): New function, split off from
9602 sparc64_fallback_frame_state.
9603 (sparc_is_sighandler): New function, split off from
9604 sparc_fallback_frame_state.
9605 (sparc64_fallback_frame_state): Merge with ...
9606 (sparc_fallback_frame_state): ... this into ...
9607 (MD_FALLBACK_FRAME_STATE_FOR): ... this.
fbf4bfd3
UB
9608 Change new_cfa to long. Remove regs_off, fpu_save_off, fpu_save.
9609 Define nframes, mctx. Use IS_SIGHANDLER, handler_args, mctx, walk
9610 stack instead of hardcoded offsets.
ad56a54c 9611
fbf4bfd3 96122011-02-14 Andriy Gapon <avg@freebsd.org>
67932abf
AG
9613
9614 PR target/45808
9615 * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
9616
029c8f3e
RW
96172011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
9618
9619 * configure: Regenerate.
9620
a016dc83
JM
96212011-02-12 Joseph Myers <joseph@codesourcery.com>
9622
9623 PR driver/45731
9624 * gcc.c (asm_options): Correct spec matching --target-help.
9625
8957a0ec
MJ
96262011-02-12 Martin Jambor <mjambor@suse.cz>
9627
9628 * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
9629 to gimple call error.
9630
6ef828bc
MS
96312011-02-12 Mike Stump <mikestump@comcast.net>
9632
9633 * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
9634 comments in backslash regions.
9635
a4015be5
MS
96362011-02-12 Mike Stump <mikestump@comcast.net>
9637 Jakub Jelinek <jakub@redhat.com>
9638 Iain Sandoe <iains@gcc.gnu.org>
9639
9640 PR target/47324
9641 * dwarf2out.c (output_cfa_loc): When required, apply the
9642 DWARF2_FRAME_REG_OUT macro to adjust register numbers.
9643 (output_loc_sequence): Likewise.
9644 (output_loc_operands_raw): Likewise.
9645 (output_loc_sequence_raw): Likewise.
9646 (output_cfa_loc): Likewise.
9647 (output_loc_list): Suppress register number adjustment when
9648 calling output_loc_sequence()
9649 (output_die): Likewise.
9650
5378dda2
AS
96512011-02-12 Anatoly Sokolov <aesok@post.ru>
9652
9653 * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
9654 Remove macros.
9655 * config/xtensa/xtensa.c (xtensa_register_move_cost,
9656 xtensa_memory_move_cost): New functions.
9657 (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
9658
f3d533d3
AO
96592011-02-12 Alexandre Oliva <aoliva@redhat.com>
9660
9661 PR lto/47225
9662 * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
9663 in the current directory.
9664 * configure: Rebuilt.
9665
9d53403c
IS
96662011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9667
9668 * config/darwin.c (darwin_override_options): Add a hunk missed
fbf4bfd3 9669 from the commit of r168571. Trim comment line lengths and
9d53403c
IS
9670 correct indents of the preceding block.
9671
a350a6c8
IS
96722011-02-12 Iain Sandoe <iains@gcc.gnu.org>
9673
9674 * gcc.c (driver_handle_option): Concatenate the argument to -F with
9675 the switch.
9676
bab79a40
JM
96772011-02-11 Joseph Myers <joseph@codesourcery.com>
9678
9679 * common.opt (nostartfiles): New Driver option.
9680
1bbc6693
XDL
96812011-02-11 Xinliang David Li <davidxl@google.com>
9682
9683 PR tree-optimization/47707
9684 * tree-chrec.c (convert_affine_scev): Keep type precision.
9685
1da7d8c0
EB
96862011-02-11 Eric Botcazou <ebotcazou@adacore.com>
9687
9688 PR tree-optimization/47420
9689 * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
9690
96912011-02-11 Pat Haugen <pthaugen@us.ibm.com>
3f82421f
PH
9692
9693 PR rtl-optimization/47614
9694 * rtl.h (check_for_inc_dec): Declare.
9695 * dse.c (check_for_inc_dec): Externalize...
9696 * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
9697 (reload_cse_simplify_operands): Don't simplify opnds with side effects.
9698
4df47bca
JM
96992011-02-11 Joseph Myers <joseph@codesourcery.com>
9700
9701 PR driver/47678
9702 * gcc.c (main): Do not compile inputs if there were errors in
9703 option handling.
9704 * opts-common.c (read_cmdline_option): Check for wrong language
9705 after other error checks.
9706
61502ca8
NF
97072011-02-11 Nathan Froyd <froydnj@codesourcery.com>
9708
9709 * cgraph.c: Fix comment typos.
9710 * cgraph.h: Likewise.
9711 * cgraphunit.c: Likewise.
9712 * ipa-cp.c: Likewise.
9713 * ipa-inline.c: Likewise.
9714 * ipa-prop.c: Likewise.
9715 * ipa-pure-const.c: Likewise.
9716 * ipa-ref.c: Likewise.
9717 * ipa-reference.c: Likewise.
9718
b63f974e
JJ
97192011-02-11 Jakub Jelinek <jakub@redhat.com>
9720
d50c5e0c
JJ
9721 PR debug/47684
9722 * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
b63f974e 9723
6dd2a13c
RO
97242011-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9725
9726 PR testsuite/47400
9727 * doc/sourcebuild.texi (Require Support): Document
9728 dg-require-ascii-locale.
9729
4a087ccf
MX
97302011-02-11 Mingjie Xing <mingjie.xing@gmail.com>
9731
9732 * doc/lto.texi (Write summary): Fix missing parentheses.
9733
a4403164
DD
97342011-02-10 DJ Delorie <dj@redhat.com>
9735
9736 * config/m32c/m32c.c (m32c_option_override): Disable
9737 -fcombine-stack-adjustments until flag value tracking and compare
9738 optimization can be rewritten.
9739
4fac45bd
PB
97402011-02-10 Peter Bergner <bergner@vnet.ibm.com>
9741
9742 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
9743 PROCESSOR_POWER7.
9744 (PROCESSOR_DEFAULT64): Likewise.
9745
72602cd1
RH
97462011-02-10 Richard Henderson <rth@redhat.com>
9747
9748 * config/rx/predicates.md (rx_zs_comparison_operator): Revert
9749 change from 2011-02-03.
9750 * config/rx/rx.c (flags_from_code): Likewise.
9751 (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
9752 is valid, n/pz otherwise.
9753 (rx_select_cc_mode): Return CCmode if Y is not zero.
9754
ea57f573
RG
97552011-02-10 Richard Guenther <rguenther@suse.de>
9756
ea4c3e65 9757 * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
ea57f573 9758
92b1d23b
RG
97592011-02-10 Richard Guenther <rguenther@suse.de>
9760
9761 PR tree-optimization/47677
9762 * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
9763
525a2d06
JJ
97642011-02-10 Jakub Jelinek <jakub@redhat.com>
9765
9766 PR target/47665
9767 * combine.c (make_compound_operation): Only change shifts into
9768 multiplication for SCALAR_INT_MODE_P.
9769
06c969bd
JZ
97702011-02-10 Jie Zhang <jie@codesourcery.com>
9771
9772 PR testsuite/47622
9773 Revert
9774 2011-02-05 Jie Zhang <jie@codesourcery.com>
9775 PR debug/42631
9776 * web.c (entry_register): Don't clobber the number of the
9777 first uninitialized reference in used[].
9778
282ec48e
RG
97792011-02-09 Richard Guenther <rguenther@suse.de>
9780
9781 PR tree-optimization/47664
9782 * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
9783 all edges again.
9784
df98c3e8
DE
97852011-02-09 David Edelsohn <dje.gcc@gmail.com>
9786
d0f21cd6
DE
9787 PR target/46481
9788 PR target/47032
df98c3e8
DE
9789 * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
9790 PROCESSOR_POWER7.
9791 (PROCESSOR_DEFAULT64): Same.
9792 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
9793
67b6839f
RO
97942011-02-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9795
9796 * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
9797
4fd73214
MJ
97982011-02-09 Martin Jambor <mjambor@suse.cz>
9799
9800 PR middle-end/45505
9801 * tree-sra.c (struct access): New flags grp_scalar_read and
9802 grp_scalar_write. Changed description of assignment read and write
9803 flags.
9804 (dump_access): Dump new flags, reorder all of them.
9805 (sort_and_splice_var_accesses): Set the new flag accordingly, use them
9806 to detect multiple scalar reads.
9807 (analyze_access_subtree): Use the new scalar read write flags instead
9808 of the old flags. Adjusted comments.
9809
91140cd3
DD
98102011-02-08 DJ Delorie <dj@redhat.com>
9811
9812 PR target/47548
9813 * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
9814 patterns.
9815
4254bbfe
JM
98162011-02-08 Joseph Myers <joseph@codesourcery.com>
9817
9818 * config/m68k/uclinux.opt: New.
9819 * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
9820
f1fda84e
JM
98212011-02-08 Joseph Myers <joseph@codesourcery.com>
9822
9823 * config/cris/elf.opt (sim): New Driver option.
9824
4933ae74
JM
98252011-02-08 Joseph Myers <joseph@codesourcery.com>
9826
9827 * config/xtensa/elf.opt: New.
9828 * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
9829
4ad70280
JM
98302011-02-08 Joseph Myers <joseph@codesourcery.com>
9831
9832 * config/vax/elf.opt: New.
9833 * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
9834
20893707
JM
98352011-02-08 Joseph Myers <joseph@codesourcery.com>
9836
9837 * config/rs6000/aix64.opt (posix, pthread): New Driver options.
9838
b8e7038e
JM
98392011-02-08 Joseph Myers <joseph@codesourcery.com>
9840
9841 * config/gnu-user.opt: New.
9842 * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
9843 *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
9844 *-*-uclinux*): Use gnu-user.opt.
9845
e1c5225a
TS
98462011-02-08 Thomas Schwinge <thomas@schwinge.name>
9847
9848 * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
9849 * config/i386/gnu.h (CPP_SPEC): Likewise.
9850
5e46b0c6
ILT
98512011-02-08 Ian Lance Taylor <iant@google.com>
9852
9853 * common.opt (fcx-limited-range): Add SetByCombined flag.
9854 (ffinite-math-only, fmath-errno, frounding-math): Likewise.
9855 (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
9856 (fassociative-math, freciprocal-math): Likewise.
9857 (funsafe-math-optimizations): Likewise.
9858 * opth-gen.awk: Handle SetByCombined.
9859 * optc-gen.awk: Likewise.
ea4c3e65 9860 * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
5e46b0c6
ILT
9861 (set_unsafe_math_optimizations_flags): Likewise.
9862 * doc/options.texi (Option properties): Document SetByCombined.
9863
32243d46
JM
98642011-02-08 Joseph Myers <joseph@codesourcery.com>
9865
9866 * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
9867 i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
9868 m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
9869 m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
9870 sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
9871
479c1fb3
SP
98722011-02-08 Sebastian Pop <sebastian.pop@amd.com>
9873
9874 PR tree-optimization/46834
9875 PR tree-optimization/46994
9876 PR tree-optimization/46995
9877 * graphite-sese-to-poly.c (used_outside_reduction): New.
9878 (detect_commutative_reduction): Call used_outside_reduction.
9879 (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
9880 translate_scalar_reduction_to_array only when at least one
9881 loop-phi/close-phi tuple has been detected.
9882
3865a06f
RG
98832011-02-08 Richard Guenther <rguenther@suse.de>
9884
9885 PR middle-end/47639
9886 * tree-vect-generic.c (expand_vector_operations_1): Update
9887 stmts here ...
9888 (expand_vector_operations): ... not here. Cleanup EH info
9889 and the CFG if required.
9890
62902f3f
RG
98912011-02-08 Richard Guenther <rguenther@suse.de>
9892
9893 PR tree-optimization/47641
9894 * tree-ssa.c (execute_update_addresses_taken): For asm outputs
9895 require type compatibility.
9896
0efb9d64
AK
98972011-02-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9898
9899 * gimple-low.c (lower_function_body): Don't remove the location of
9900 the return statement here.
9901 (lower_gimple_return): Do it here instead but only if the return
9902 statement is actually used twice.
9903
034b8ae4
RG
99042011-02-08 Richard Guenther <rguenther@suse.de>
9905
9906 PR tree-optimization/47632
9907 * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
9908 unused up_to_stmt parameter, return whether cfg-cleanup is
9909 necessary, remove EH info properly.
9910 (forward_propagate_into_gimple_cond): Adjust caller.
9911 (forward_propagate_into_cond): Likewise.
9912 (forward_propagate_comparison): Likewise.
9913 (tree_ssa_forward_propagate_single_use_vars): Make
9914 forward_propagate_comparison case similar to the two others.
9915
298362c8
NC
99162011-02-08 Nick Clifton <nickc@redhat.com>
9917
9918 * config/mn10300/mn10300.opt (mliw): New command line option.
9919 * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
9920 (liw_bundling): New automaton.
9921 (liw): New attribute.
9922 (liw_op): New attribute.
9923 (liw_op1, liw_op2, liw_both, liw_either): New reservations.
9924 (movsi_internal): Add LIW attributes.
9925 (andsi3): Likewise.
9926 (iorsi3): Likewise.
9927 (xorsi3): Likewise.
9928 (addsi3): Separate register and immediate alternatives.
9929 Add LIW attributes.
9930 (subsi3): Likewise.
9931 (cmpsi): Likewise.
9932 (aslsi3): Likewise.
9933 (lshrsi3): Likewise.
9934 (ashrsi3): Likewise.
9935 (liw): New pattern.
9936 * config/mn10300/mn10300.c (liw_op_names): New
9937 (mn10300_print_operand): Handle 'W' operand descriptor.
9938 (extract_bundle): New function.
9939 (check_liw_constraints): New function.
9940 (liw_candidate): New function.
9941 (mn10300_bundle_liw): New function.
9942 (mn10300_reorg): New function.
9943 (TARGET_MACHINE_DEPENDENT_REORG): Define.
9944 (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
9945 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
9946 __LIW__ or __NO_LIW__.
9947 * doc/invoke.texi: Describe the -mliw command line option.
9948
90488014
JDA
99492011-02-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9950
9951 * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
9952 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
9953 pthread_mutex_unlock): Remove.
9954 * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
9955 * config/pa/t-pa64: Likewise.
9956 * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
9957 shared libc if not linking against libpthread.
9958 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9959
689ff841
IS
99602011-02-07 Iain Sandoe <iains@gcc.gnu.org>
9961
9962 PR target/47558
9963 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
9964 on 10.6 and later to ensure that we always use the unwinder from
9965 the system. Only add -no_compact_unwind when tarteting darwin
9966 10.6 or later.
9967
821014aa
SE
99682011-02-07 Steve Ellcey <sje@cup.hp.com>
9969
9970 PR target/46997
9971 * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
9972 (vec_interleave_lowv2sf): Ditto.
9973 (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
9974 (vec_extract_oddv2sf): Ditto.
9975
41cf94fb
MS
99762011-02-07 Mike Stump <mikestump@comcast.net>
9977
62dea57d 9978 PR target/42333
41cf94fb
MS
9979 Add __ieee_divdc3 entry point.
9980 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
9981 entry point.
9982 (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
9983 * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
9984 * config/darwin.c (darwin_rename_builtins): Add.
9985 * config/darwin-protos.h (darwin_rename_builtins): Add.
9986
ee09a3dd
MM
99872011-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
9988
9989 PR target/47636
9990 * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
9991 for the condition.
9992
83296cd0
MS
99932011-02-07 Mike Stump <mikestump@comcast.net>
9994
ea4c3e65 9995 * config/darwin.opt (mmacosx-version-min): Update default OS version.
83296cd0 9996
0f4e946f
DC
99972011-02-07 Denis Chertykov <chertykov@gmail.com>
9998
9999 PR target/47534
10000 * config/avr/libgcc.S (exit): Move .endfunc
10001
1ec87690
RG
100022011-02-07 Richard Guenther <rguenther@suse.de>
10003
10004 PR tree-optimization/47615
10005 * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
10006 * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
10007 (run_scc_vn): Initialize it.
10008 (visit_reference_op_load): Use it.
10009 * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
10010
b46ae6da
UW
100112011-02-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10012
10013 * config/spu/spu.c (spu_init_libfuncs): Install SImode and
10014 DImode trapping arithmetic libfuncs.
10015
c0aae19c
RG
100162011-02-07 Richard Guenther <rguenther@suse.de>
10017
10018 PR tree-optimization/47621
10019 * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
10020 two duplicates ...
10021 (execute_update_addresses_taken): ... here. Make it more
10022 conservative in what we accept.
10023
295d926b
JM
100242011-02-06 Joseph Myers <joseph@codesourcery.com>
10025
10026 * config/sparc/freebsd.h (ASM_SPEC): Define.
10027 * config/sparc/vxworks.h (ASM_SPEC): Define.
10028
bdeb2471
JM
100292011-02-06 Joseph Myers <joseph@codesourcery.com>
10030
10031 * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
10032
d5d3781a
SB
100332011-02-06 Steven Bosscher <steven@gcc.gnu.org>
10034
10035 * doc/invoke.texi: Remove reference to compiler internals from
10036 user documentation.
10037
10038 * reg-notes.def: Remove REG_VALUE_PROFILE.
10039 * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
10040
c42c09fc
JJ
100412011-02-05 Jakub Jelinek <jakub@redhat.com>
10042
10043 PR middle-end/47610
10044 * varasm.c (default_section_type_flags): If decl is NULL,
38be4072 10045 and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
c42c09fc 10046
beea2755
JZ
100472011-02-05 Jie Zhang <jie@codesourcery.com>
10048
10049 PR debug/42631
10050 * web.c (entry_register): Don't clobber the number of the
10051 first uninitialized reference in used[].
10052
a130584a
SP
100532011-02-04 Sebastian Pop <sebastian.pop@amd.com>
10054
10055 PR tree-optimization/46194
10056 * tree-data-ref.c (analyze_miv_subscript): Remove comment.
10057 (build_classic_dist_vector_1): Do not represent classic distance
10058 vectors when the access functions are variating in different loops.
10059
962101ac
JM
100602011-02-04 Joseph Myers <joseph@codesourcery.com>
10061
10062 * config/mips/iris6.opt: New.
10063 * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
10064
55eaaa5b
RH
100652011-02-04 Richard Henderson <rth@redhat.com>
10066 Steve Ellcey <sje@cup.hp.com>
10067
10068 PR target/46997
10069 * config/ia64/predicates.md (mux1_brcst_element): New.
10070 * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
10071 * config/ia64/ia64.c (ia64_unpack_assemble): New.
10072 (ia64_unpack_sign): New.
10073 (ia64_expand_unpack): Rewrite using new routines.
10074 (ia64_expand_widen_sum): Ditto.
10075 (ia64_expand_dot_prod_v8qi): Ditto.
10076 * config/ia64/vect.md (mulv8qi3): Rewrite to use new
10077 routines, add endian check.
10078 (pmpy2_even): Rename from pmpy2_r, add endian check.
10079 (pmpy2_odd): Rename from pmpy2_l, add endian check.
10080 (vec_widen_smult_lo_v4hi): Rewrite using new routines.
10081 (vec_widen_smult_hi_v4hi): Ditto.
10082 (vec_widen_umult_lo_v4hi): Ditto.
10083 (vec_widen_umult_hi_v4hi): Ditto.
10084 (mulv2si3): Change endian checks.
10085 (sdot_prodv4hi): Rewrite with new calls.
10086 (udot_prodv4hi): New.
10087 (vec_pack_ssat_v4hi): Add endian check.
10088 (vec_pack_usat_v4hi): Ditto.
10089 (vec_pack_ssat_v2si): Ditto.
10090 (max1_even): Rename from max1_r, add endian check.
10091 (max1_odd): Rename from max1_l, add endian check.
10092 (*mux1_rev): Format change.
10093 (*mux1_mix): Ditto.
10094 (*mux1_shuf): Ditto.
10095 (*mux1_alt): Ditto.
10096 (*mux1_brcst_v8qi): Use new predicate.
10097 (vec_extract_evenv8qi): Remove endian check.
10098 (vec_extract_oddv8qi): Ditto.
10099 (vec_interleave_lowv4hi): Format change.
10100 (vec_interleave_highv4hi): Ditto.
10101 (mix2_even): Rename from mix2_r, add endian check.
10102 (mix2_odd): Rename from mux2_l, add endian check.
10103 (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
10104 (vec_extract_evenodd_helper): Format change.
10105 (vec_extract_evenv4hi): Remove endian check.
10106 (vec_extract_oddv4hi): Remove endian check.
10107 (vec_interleave_lowv2si): Format change.
10108 (vec_interleave_highv2si): Format change.
10109 (vec_initv2si): Remove endian check.
10110 (vecinit_v2si): Add endian check.
10111 (reduc_splus_v2sf): Add endian check.
10112 (reduc_smax_v2sf): Ditto.
10113 (reduc_smin_v2sf): Ditto.
10114 (vec_initv2sf): Remove endian check.
10115 (fpack): Add endian check.
10116 (fswap): Add endian check.
10117 (vec_interleave_highv2sf): Add endian check.
10118 (vec_interleave_lowv2sf): Add endian check.
10119 (fmix_lr): Add endian check.
10120 (vec_setv2sf): Format change.
10121 (*vec_extractv2sf_0_be): Use shift to extract operand.
10122 (*vec_extractv2sf_1_be): New.
10123 (vec_pack_trunc_v4hi): Add endian check.
10124 (vec_pack_trunc_v2si): Format change.
10125
dcde5957
JJ
101262011-02-04 Jakub Jelinek <jakub@redhat.com>
10127
10128 PR inline-asm/23200
10129 * tree-ssa-ter.c (is_replaceable_p): Add TER argument. Don't
38be4072 10130 do bb, locus and block comparison and disallow loads if it is not set.
dcde5957
JJ
10131 (stmt_is_replaceable_p): New function.
10132 (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
10133 callers.
10134 * expr.c (expand_expr_real_1) <case SSA_NAME>: If
10135 get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
10136 SSA_NAME_DEF_STMT.
10137 * tree-flow.h (stmt_is_replaceable_p): New prototype.
10138
a64a8e5a
JM
101392011-02-04 Joseph Myers <joseph@codesourcery.com>
10140
10141 * config/rs6000/xilinx.opt: New.
10142 * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
10143
4da2ed2f
JM
101442011-02-04 Joseph Myers <joseph@codesourcery.com>
10145
10146 * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
10147
a6e508f9
AS
101482011-02-03 Anatoly Sokolov <aesok@post.ru>
10149
10150 * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
10151 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
10152 * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
10153 secondary_reload_info, xtensa_secondary_reload): Remove.
10154 * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
10155 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
10156 (xtensa_preferred_reload_class): Make static. Change return and
10157 'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
10158 Use CONST_DOUBLE_P predicate.
10159 (xtensa_preferred_output_reload_class): New function.
10160 (xtensa_secondary_reload): Make static.
10161
82dc0de3
JM
101622011-02-03 Joseph Myers <joseph@codesourcery.com>
10163
10164 * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
10165 Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
10166 Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
10167
7fece979
JJ
101682011-02-03 Jakub Jelinek <jakub@redhat.com>
10169
10170 PR middle-end/31490
10171 * output.h (SECTION_RELRO): Define.
10172 (SECTION_MACH_DEP): Adjust.
10173 (get_variable_section): New prototype.
10174 * varpool.c (varpool_finalize_named_section_flags): New function.
10175 (varpool_assemble_pending_decls): Call it.
10176 * cgraph.h (varpool_finalize_named_section_flags): New prototype.
10177 * cgraphunit.c (cgraph_output_in_order): Call
10178 varpool_finalize_named_section_flags.
10179 * varasm.c (get_section): Allow section flags conflicts between
10180 relro and read-only sections if the section hasn't been declared yet.
10181 Set SECTION_OVERRIDE after diagnosing section type conflict.
10182 (get_variable_section): No longer static.
10183 (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
10184 readonly sections that need relocations.
10185 (decl_readonly_section_1): New function.
10186 (decl_readonly_section): Use it.
10187
10188 Revert:
509d65dd 10189 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
7fece979
JJ
10190 Steve Ellcey <sje@cup.hp.com>
10191
10192 PR middle-end/31490
10193 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
10194 if section attribute used.
10195
d18d5478
JJ
101962011-02-03 Jakub Jelinek <jakub@redhat.com>
10197
10198 * config/darwin.h (SECTION_NO_ANCHOR): Remove.
10199 * config/darwin.c (SECTION_NO_ANCHOR): Define.
10200 (darwin_init_sections): Remove assertion.
10201
6479ed4b
NC
102022011-02-03 Nick Clifton <nickc@redhat.com>
10203
10204 * config/rx/predicates.md (rx_zs_comparison_operator): Remove
10205 lt and ge.
38be4072 10206 * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
6479ed4b
NC
10207 * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
10208 instead of "n" and "pz".
10209 (flags_from_code): LT and GE tests need CC_FLAG_O as well as
10210 CC_FLAG_S.
10211
89843f5d
JJ
102122011-02-03 Jakub Jelinek <jakub@redhat.com>
10213
65450d64
JJ
10214 PR target/47312
10215 * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
10216 fma, expand FMA_EXPR as fma{,f,l} call.
10217
7d58701c
JJ
10218 PR lto/47274
10219 * lto-streamer-out.c (write_symbol): When writing kind and visibility,
10220 copy them into a unsigned char variable and pass address of it to
10221 lto_output_data_stream.
10222
89843f5d
JJ
10223 PR target/47564
10224 * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
10225 around backend_init_target and lang_dependent_init_target calls.
10226 * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
10227 (verify_cgraph_node): Don't call set_cfun here. Use
10228 cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
10229 Set error_found for incorrectly represented calls to thunks.
10230
4deef538
AO
102312011-02-03 Alexandre Oliva <aoliva@redhat.com>
10232
10233 PR debug/43092
10234 PR rtl-optimization/43494
10235 * rtl.h (for_each_inc_dec_fn): New type.
10236 (for_each_inc_dec): Declare.
10237 * rtlanal.c (struct for_each_inc_dec_ops): New type.
10238 (for_each_inc_dec_find_inc_dec): New fn.
10239 (for_each_inc_dec_find_mem): New fn.
10240 (for_each_inc_dec): New fn.
10241 * dse.c (struct insn_size): Remove.
10242 (replace_inc_dec, replace_inc_dec_mem): Remove.
10243 (emit_inc_dec_insn_before): New fn.
10244 (check_for_inc_dec): Use it, along with for_each_inc_dec.
10245 (canon_address): Pass mem modes to cselib_lookup.
10246 * cselib.h (cselib_lookup): Add memmode argument. Adjust callers.
10247 (cselib_lookup_from_insn): Likewise.
10248 (cselib_subst_to_values): Likewise.
10249 * cselib.c (find_slot_memmode): New var.
10250 (cselib_find_slot): New fn. Use it instead of
10251 htab_find_slot_with_hash everywhere.
10252 (entry_and_rtx_equal_p): Use find_slot_memmode.
10253 (autoinc_split): New fn.
10254 (rtx_equal_for_cselib_p): Rename and implement in terms of...
10255 (rtx_equal_for_cselib_1): ... this. Take memmode, pass it on.
10256 Deal with autoinc. Special-case recursion into MEMs.
10257 (cselib_hash_rtx): Likewise.
10258 (cselib_lookup_mem): Infer pmode from address mode. Distinguish
10259 address and MEM modes.
10260 (cselib_subst_to_values): Add memmode, pass it on.
10261 Deal with autoinc.
10262 (cselib_lookup): Add memmode argument, pass it on.
10263 (cselib_lookup_from_insn): Add memmode.
10264 (cselib_invalidate_rtx): Discard obsolete push_operand handling.
10265 (struct cselib_record_autoinc_data): New.
10266 (cselib_record_autoinc_cb): New fn.
10267 (cselib_record_sets): Use it, along with for_each_inc_dec. Pass MEM
10268 mode to cselib_lookup. Reset autoinced REGs here instead of...
10269 (cselib_process_insn): ... here.
10270 * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
10271 to cselib_lookup.
10272 (add_uses): Likewise, also to cselib_subst_to_values.
10273 (add_stores): Likewise.
10274 * sched-deps.c (add_insn_mem_dependence): Pass mode to
10275 cselib_subst_to_values.
10276 (sched_analyze_1, sched_analyze_2): Likewise. Adjusted.
10277 * gcse.c (do_local_cprop): Adjusted.
10278 * postreload.c (reload_cse_simplify_set): Adjusted.
10279 (reload_cse_simplify_operands): Adjusted.
10280 * sel-sched-dump (debug_mem_addr_value): Pass mode.
10281
1551d44a
AO
102822011-02-03 Alexandre Oliva <aoliva@redhat.com>
10283
10284 PR tree-optimization/45122
10285 * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
10286 unsafe assumptions when there's more than one loop exit.
10287
c9485473
MM
102882011-02-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10289
10290 PR target/47272
10291 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10292 Document using vector double with the load/store builtins, and
10293 that the load/store builtins always use Altivec instructions.
10294
10295 * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
10296 to use altivec memory instructions, even on VSX.
10297 (vector_altivec_store_<mode>): Ditto.
10298
10299 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
10300 function.
10301
10302 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10303 V2DF, V2DI support to load/store overloaded builtins.
10304
10305 * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
10306 altivec load/store builtins for V2DF/V2DI types.
10307
10308 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10309 set avoid indexed addresses on power6 if -maltivec.
10310 (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
10311 vector_altivec_load/vector_altivec_store builtins.
10312 (altivec_expand_st_builtin): Ditto.
10313 (altivec_expand_builtin): Add VSX memory builtins.
10314 (rs6000_init_builtins): Add V2DI types to internal types.
10315 (altivec_init_builtins): Add support for V2DF/V2DI altivec
10316 load/store builtins.
10317 (rs6000_address_for_altivec): Insure memory address is appropriate
10318 for Altivec.
10319
10320 * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
10321 vec_vsx_ld and vec_vsx_st.
10322 (vsx_store_<mode>): Ditto.
10323
10324 * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
10325 variables to hold long long types for VSX vector memory builtins.
10326 (RS6000_BTI_unsigned_long_long): Ditto.
10327 (long_long_integer_type_internal_node): Ditti.
10328 (long_long_unsigned_type_internal_node): Ditti.
10329
10330 * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
10331 (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
10332 (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
10333
10334 * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
10335 short cuts.
10336 (vec_vsx_st): Ditto.
10337
b24d1acf
JM
103382011-02-02 Joseph Myers <joseph@codesourcery.com>
10339
10340 * config/pa/pa-hpux10.opt: New.
10341 * config/hpux11.opt (pthread): New Driver option.
10342 * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
10343 * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
10344
aa18dd0f
JM
103452011-02-02 Joseph Myers <joseph@codesourcery.com>
10346
10347 * config/ia64/vms.opt: New.
10348 * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
10349
28fc3eee
MM
103502011-02-01 Michael Meissner <meissner@linux.vnet.ibm.com>
10351
10352 PR target/47580
10353 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
10354 gpc_reg_operand instead of vsx_register_operand to match rs6000.md
10355 generator functions.
10356 (vsx_floatuns<VSi><mode>2): Ditto.
10357 (vsx_fix_trunc<mode><VSi>2): Ditto.
10358 (vsx_fixuns_trunc<mode><VSi>2): Ditto.
10359
b5838b1f
JM
103602011-02-02 Joseph Myers <joseph@codesourcery.com>
10361
10362 * config/i386/djgpp.opt (posix): New Driver option.
10363
0db8fa89
GP
103642011-02-02 Gerald Pfeifer <gerald@pfeifer.com>
10365
10366 * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
10367 Move to the unsupported targets list.
10368
9cd4f22a
PB
103692011-02-02 Peter Bergner <bergner@vnet.ibm.com>
10370
10371 PR rtl-optimization/47525
10372 * df-scan.c: Update copyright years.
10373 (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
10374 and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
10375
9ed8059c
RO
103762011-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10377
10378 * config/i386/sysv4.h (TARGET_VERSION): Remove.
10379 (SUBTARGET_RETURN_IN_MEMORY): Remove.
10380 (ASM_OUTPUT_ASCII): Remove.
10381 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
10382
2a737389
JL
103832011-02-02 Jeff Law <law@redhat.com>
10384
10385 PR middle-end/47543
10386 * reload.c (find_reloads_address): Handle reg+d address where both
10387 components are invalid by reloading the entire address.
10388
9dac82c4
SP
103892011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10390 Richard Guenther <rguenther@suse.de>
10391
10392 PR tree-optimization/40979
10393 PR bootstrap/47044
10394 * passes.c (init_optimization_passes): After LIM call copy_prop
10395 and DCE to clean up.
10396 * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
10397
14dd9aab
SP
103982011-02-02 Sebastian Pop <sebastian.pop@amd.com>
10399
10400 PR tree-optimization/47576
10401 PR tree-optimization/47555
10402 * doc/invoke.texi (scev-max-expr-complexity): Documented.
10403 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10404 (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
10405 * tree-scalar-evolution.c (follow_ssa_edge): Use
10406 PARAM_SCEV_MAX_EXPR_COMPLEXITY.
10407
5cbf5c20
RG
104082011-02-02 Richard Guenther <rguenther@suse.de>
10409
10410 PR tree-optimization/47566
10411 * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
10412
83d70792
AO
104132011-02-02 Alexandre Oliva <aoliva@redhat.com>
10414
e829c321
AO
10415 PR debug/47106
10416 PR debug/47402
10417 * tree-inline.c (declare_return_variable): Remove unused caller
10418 variable.
10419
83d70792
AO
10420 PR debug/47106
10421 PR debug/47402
10422 * tree-flow-inline.h (clear_is_used, is_used_p): New.
10423 * cfgexpand.c (account_used_vars_for_block): Use them.
10424 * tree-nrv.c (tree_nrv): Likewise.
10425 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
10426 (dump_scope_block): Likewise.
10427 (remove_unused_locals): Likewise.
10428
aaa2ac93
AO
10429 PR debug/47106
10430 PR debug/47402
10431 * tree-inline.c (declare_return_variable): Add result decl to
10432 local decls only once.
10433 * gimple-low.c (record_vars_into): Mark newly-created variables
10434 as referenced.
10435
a59d15cf
AO
104362011-02-02 Alexandre Oliva <aoliva@redhat.com>
10437
10438 PR debug/47498
10439 PR debug/47501
10440 PR debug/45136
10441 PR debug/45130
10442 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10443 debug insns.
10444 (no_real_insns_p, schedule_block, set_priorities): Drop special
10445 treatment of boundary debug insns.
38be4072 10446 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
a59d15cf
AO
10447 * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
10448 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10449 (BOUNDARY_DEBUG_INSN_P): Likewise.
10450 (SCHEDULE_DEBUG_INSN_P): Likewise.
10451 * sched-rgn.c (init_ready_list): Drop special treatment of
10452 boundary debug insns.
10453 * final.c (rest_of_clean_state): Clear notes' BB.
10454
6fc2f091
JM
104552011-02-01 Joseph Myers <joseph@codesourcery.com>
10456
10457 * config/openbsd.opt (assert=): New Driver option.
10458
fc523387
JM
104592011-02-01 Joseph Myers <joseph@codesourcery.com>
10460
10461 * config/i386/nto.opt: New.
10462 * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
10463
6d9821e5
JM
104642011-02-01 Joseph Myers <joseph@codesourcery.com>
10465
10466 * config/i386/netware.opt: New.
10467 * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
10468
cef932d4
JM
104692011-02-01 Joseph Myers <joseph@codesourcery.com>
10470
10471 * config/interix.opt (posix): New Driver option.
10472
22843acd
DD
104732011-02-01 DJ Delorie <dj@redhat.com>
10474
56490b74
DD
10475 * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
10476
22843acd
DD
10477 * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
10478 class for A0/A1.
10479
199c8f2f
SP
104802011-02-01 Sebastian Pop <sebastian.pop@amd.com>
10481
10482 PR tree-optimization/47561
10483 * toplev.c (process_options): Print the Graphite flags. Add
10484 flag_loop_flatten to the list of options requiring Graphite.
10485
926bcf22
JM
104862011-02-01 Joseph Myers <joseph@codesourcery.com>
10487
10488 * config/i386/cygming.opt (posix): New Driver option.
10489
59793c51
JM
104902011-02-01 Joseph Myers <joseph@codesourcery.com>
10491
10492 * config/arm/vxworks.opt: New.
10493 * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
10494
183c38a4
JM
104952011-02-01 Joseph Myers <joseph@codesourcery.com>
10496
10497 * config/alpha/elf.opt: New.
10498 * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
10499 alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
10500
9939e416
RG
105012011-02-01 Richard Guenther <rguenther@suse.de>
10502
10503 PR tree-optimization/47559
10504 * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
10505 store-motion on references that can throw.
10506
4a3c9687
BS
105072011-02-01 Bernd Schmidt <bernds@codesourcery.com>
10508
10509 * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
10510 * tree-pass.h (TDF_CSELIB): New macro.
10511 * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
10512 cselib_lookup): Check for it rather than for TDF_DETAILS.
10513
dd3b31fb
L
105142011-02-01 H.J. Lu <hongjiu.lu@intel.com>
10515
10516 PR driver/47547
10517 * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
10518 is HOST_BIT_BUCKET.
10519
10520 * opts.c (finish_options): Don't add x_aux_base_name if it is
10521 HOST_BIT_BUCKET.
10522
34c1de79
RG
105232011-02-01 Richard Guenther <rguenther@suse.de>
10524
10525 PR tree-optimization/47555
10526 Revert
10527 2010-07-15 Sebastian Pop <sebastian.pop@amd.com>
10528
10529 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
10530
dd2804d2
SB
105312011-02-01 Sebastien Bourdeauducq <sebastien@milkymist.org>
10532
10533 PR gcc/46692
10534 * config/lm32/t-lm32: Add multilib for all CPU options.
10535
3fd3b156
RG
105362011-02-01 Richard Guenther <rguenther@suse.de>
10537
10538 PR tree-optimization/47541
10539 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
10540 sure to have a field at offset zero.
10541
f16072b6
JM
105422011-01-31 Joseph Myers <joseph@codesourcery.com>
10543
10544 * config/arc/arc.opt (EB, EL): New Driver options.
10545
6456cf2e
JM
105462011-01-31 Joseph Myers <joseph@codesourcery.com>
10547
10548 * config/alpha/osf5.opt: New.
10549 * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
10550
cdde6ab4
JM
105512011-01-31 Joseph Myers <joseph@codesourcery.com>
10552
10553 * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
10554
7633415c
SP
105552011-01-31 Sebastian Pop <sebastian.pop@amd.com>
10556
10557 * common.opt (ftree-loop-linear): Use Alias to make it an alias of
10558 -floop-interchange.
10559 * invoke.texi (-ftree-loop-linear): Make it clear that this flag
10560 is an alias of -floop-interchange and that it requires the
10561 Graphite infrastructure.
10562 * tree-ssa-loop.c (gate_graphite_transforms): Do not set
10563 flag_loop_interchange based on the value of flag_tree_loop_linear.
10564
0425d6f5
JJ
105652011-01-31 Jakub Jelinek <jakub@redhat.com>
10566 Richard Guenther <rguenther@suse.de>
10567
10568 PR tree-optimization/47538
10569 * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
10570 type instead of r1type, except for comparisons. For right
10571 shifts and comparisons punt if there are mismatches in
10572 sizetype vs. non-sizetype types.
10573
500b16c3
RO
105742011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10575
10576 * doc/sourcebuild.texi (Effective-Target Keywords): Document
10577 avx_runtime.
10578
e279edb0
RO
105792011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10580
10581 * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
10582 version number.
10583 * configure: Regenerate.
10584
c6092243
RO
105852011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10586
10587 * configure.ac (gcc_cv_ld_static_option): Define.
10588 (gcc_cv_ld_dynamic_option): Define.
10589 (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
10590 instead.
10591 (HAVE_LD_STATIC_DYNAMIC): Update message.
10592 (LD_STATIC_OPTION): Define.
10593 (LD_DYNAMIC_OPTION): Define.
10594 * configure: Regenerate.
10595 * config.in: Regenerate.
10596 * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
10597 HAVE_LD_STATIC_DYNAMIC]: Use them.
10598
d7862be3
NC
105992011-01-31 Nick Clifton <nickc@redhat.com>
10600
10601 * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
10602 registers inside interrupt handlers if the handler is not a leaf
10603 function.
10604
ba4ec0e0
NC
106052011-01-31 Nick Clifton <nickc@redhat.com>
10606
10607 * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
10608 reg_renumber returning an INVALID_REGNUM.
10609
29a63921
AO
106102011-01-31 Alexandre Oliva <aoliva@redhat.com>
10611
10612 PR libgcj/44341
10613 * doc/install.texi: Document host options discarded when cross
10614 configuring target libraries.
10615
ef591d3f
AO
106162011-01-31 Alexandre Oliva <aoliva@redhat.com>
10617
10618 Reverted:
10619 2011-01-25 Alexandre Oliva <aoliva@redhat.com>
10620 PR debug/45136
10621 PR debug/45130
10622 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10623 debug insns.
10624 (no_real_insns_p, schedule_block, set_priorities): Drop special
10625 treatment of boundary debug insns.
38be4072 10626 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
ef591d3f
AO
10627 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10628 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10629 (BOUNDARY_DEBUG_INSN_P): Likewise.
10630 (SCHEDULE_DEBUG_INSN_P): Likewise.
10631 * sched-rgn.c (init_ready_list): Drop special treatment of
10632 boundary debug insns.
10633 * final.c (rest_of_clean-state): Clear notes' BB.
10634
61052244
AM
106352011-01-31 Alan Modra <amodra@gmail.com>
10636
10637 * config/rs6000/rs6000.c (print_operand): Rearrange addends in
10638 toc relative expressions as we do in print_operand_address.
10639
c4c8962b
KH
106402011-01-30 Kazu Hirata <kazu@codesourcery.com>
10641
10642 * doc/extend.texi: Follow spelling conventions.
10643 * doc/invoke.texi: Fix a typo.
10644
e543b94c
JM
106452011-01-30 Joseph Myers <joseph@codesourcery.com>
10646
10647 * config/hpux11.opt: New.
10648 * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
10649 ia64*-*-hpux*): Use hpux11.opt.
10650
509d65dd 106512011-01-30 Jonathan Yong <jon_y@users.sourceforge.net>
a70e0551
JY
10652
10653 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
10654 to tmake_file.
10655
7be03a0e
GP
106562011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10657
10658 * doc/install.texi (hppa-hp-hpux10): Remove references to HP
10659 support sites.
10660
419d1d37
GP
106612011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
10662
b596ed64
GP
10663 * doc/install.texi (Binaries): Remove outdated reference for
10664 Motorola 68HC11/68HC12 downloads.
10665
106662011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
61052244 10667
419d1d37
GP
10668 * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
10669 Drepper's paper.
10670
4406d0e9
JW
106712011-01-29 Jonathan Wakely <jwakely.gcc@gmail.com>
10672
10673 PR bootstrap/47147
10674 * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
10675 used by NetBSD.
10676
38be4072 106772011-01-28 Ahmad Sharif <asharif@google.com>
e0b77418
AS
10678
10679 * value-prof.c (check_counter): Corrected error message.
10680
0cd98787
JZ
106812011-01-29 Jie Zhang <jie@codesourcery.com>
10682
10683 * config/arm/arm.c (arm_legitimize_reload_address): New.
10684 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
10685 arm_legitimize_reload_address.
38be4072 10686 * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
0cd98787 10687
9b798ac5
ILT
106882011-01-28 Ian Lance Taylor <iant@google.com>
10689
10690 * godump.c (go_define): Ignore macros whose definitions include
10691 two adjacent operands.
10692
591e29d9
JJ
106932011-01-28 Jakub Jelinek <jakub@redhat.com>
10694
10695 PR target/42894
10696 * varasm.c (force_const_mem): Store copy of x in desc->constant
10697 instead of x itself.
10698 * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
10699 itself into REG_EQUAL note.
10700
62dcc44a
JM
107012011-01-28 Joseph Myers <joseph@codesourcery.com>
10702
10703 * config/freebsd.opt (posix, rdynamic): New Driver options.
10704
c9f58b9a
RO
107052011-01-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10706
10707 * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
10708 -Bstatic/-Bdynamic.
10709 * configure: Regenerate.
10710
5f02b9db
JM
107112011-01-27 Joseph Myers <joseph@codesourcery.com>
10712
10713 * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
10714 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
10715
5df97412
AS
107162011-01-27 Anatoly Sokolov <aesok@post.ru>
10717
10718 * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
10719 * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
10720 * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
10721 (s390_preferred_reload_class): Make static. Change return and
10722 'rclass' argument type to reg_class_t.
10723
779d4b91
JH
107242011-01-27 Jan Hubicka <jh@suse.cz>
10725
10726 PR middle-end/46949
10727 * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
10728 (process_function_and_variable_attributes): Check defined weakrefs.
10729
e80b21ed
MJ
107302011-01-27 Martin Jambor <mjambor@suse.cz>
10731
10732 PR tree-optimization/47228
10733 * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
10734 build_ref_for_offset.
10735
6dcc4f31
UW
107362011-01-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
10737
10738 * config/spu/spu-elf.h (ASM_SPEC): Remove.
10739
509d65dd 107402011-01-26 Mikael Pettersson <mikpe@it.uu.se>
3b8ff89f
MP
10741
10742 PR rtl-optimization/46856
10743 * postreload.c (reload_combine_recognize_const_pattern): Do not
10744 separate cc0 setter and user on cc0 targets.
10745
04af8788
NP
107462011-01-26 Nicola Pero <nicola.pero@meta-innovation.com>
10747
10748 PR c/43082
10749 * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
10750 passed a VOID_TYPE expression, immediately emit an error and
10751 return error_mark_node.
10752
f7a60085
JL
107532011-01-26 Jeff Law <law@redhat.com>
10754
10755 PR rtl-optimization/47464
10756 * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
10757 rather than may_trap_p as needed.
10758
5c2917ec
DD
107592011-01-26 DJ Delorie <dj@redhat.com>
10760
10761 PR rtl-optimization/46878
10762 * combine.c (insn_a_feeds_b): Check for the implicit cc0
10763 setter/user dependency as well.
10764
bef16e87
EB
107652011-01-26 Eric Botcazou <ebotcazou@adacore.com>
10766
10767 PR rtl-optimization/44469
10768 * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
10769 after removing trivially dead basic blocks.
10770
c75d884b
JM
107712011-01-26 Joseph Myers <joseph@codesourcery.com>
10772
10773 * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
10774 * config/frv/frv.h (LINK_SPEC): Likewise.
10775 * config/i386/netware.h (LINK_SPEC): Likewise.
10776 * config/m68k/linux.h (ASM_SPEC): Likewise.
10777 * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
10778 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10779 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10780 * config/sparc/linux.h (ASM_SPEC): Likewise.
10781 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10782 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10783
d3153553
JM
107842011-01-26 Joseph Myers <joseph@codesourcery.com>
10785
10786 * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
10787 * config/frv/frv.h (ASM_SPEC): Likewise.
10788 * config/m68k/linux.h (ASM_SPEC): Likewise.
10789 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10790 * config/rs6000/linux64.h (ASM_SPEC): Likewise.
10791 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10792 * config/sparc/linux.h (ASM_SPEC): Likewise.
10793 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10794 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10795
b89b1e9d
JM
107962011-01-26 Joseph Myers <joseph@codesourcery.com>
10797
10798 * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
10799 * config/frv/frv.h (LINK_SPEC): Likewise.
10800 * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
10801
12eb1a9c
JM
108022011-01-26 Joseph Myers <joseph@codesourcery.com>
10803
10804 * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
10805 * config/frv/frv.h (ASM_SPEC): Likewise.
10806 * config/i386/sol2-10.h (ASM_SPEC): Likewise.
10807 * config/m68k/linux.h (ASM_SPEC): Likewise.
10808 * config/pa/pa-linux.h (ASM_SPEC): Likewise.
10809 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
10810 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
10811 * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
10812 * config/sparc/linux.h (ASM_SPEC): Likewise.
10813 * config/sparc/linux64.h (ASM_SPEC): Likewise.
10814 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
10815 * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
10816
e435f098
SE
108172011-01-26 Steve Ellcey <sje@cup.hp.com>
10818
10819 PR target/46997
10820 * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
10821 (*mux2): Ditto.
10822 (vec_extract_evenodd_help): Ditto.
10823 (vec_extract_evenv4hi): Ditto.
10824 (vec_extract_oddv4hi): Ditto.
10825 (vec_interleave_lowv2si): Ditto.
10826 (vec_interleave_highv2si): Ditto.
10827 (vec_extract_evenv2si): Ditto.
10828 (vec_extract_oddv2si: Ditto.
10829 (vec_pack_trunc_v2si): Ditto.
10830
34f0eee0
JH
108312011-01-22 Jan Hubicka <jh@suse.cz>
10832
10833 PR target/47237
10834 * cgraph.h (cgraph_local_info): New field can_change_signature.
10835 * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
10836 signature can change.
10837 (ipcp_estimate_growth): Call sequence simplify only if calle signature
10838 can change.
10839 (ipcp_insert_stage): Only compute args_to_skip if signature can change.
10840 (cgraph_function_versioning): We can not change signature of functions
10841 that don't allow that.
10842 * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
10843 (lto_input_node): Likewise.
38be4072
UB
10844 * ipa-inline.c (compute_inline_parameters): Compute
10845 local.can_change_signature.
34f0eee0 10846 * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
38be4072
UB
10847 * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
10848 functions that can not change signature.
34f0eee0 10849 * i386.c (ix86_function_regparm, ix86_function_sseregparm,
38be4072
UB
10850 init_cumulative_args): Do not use local calling conventions
10851 for functions that can not change signature.
34f0eee0 10852
980ca891
JH
108532011-01-22 Jan Hubicka <jh@suse.cz>
10854
10855 * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
10856
768e3c60
RG
108572011-01-26 Richard Guenther <rguenther@suse.de>
10858
10859 PR tree-optimization/47190
61052244
AM
10860 * cgraphunit.c (process_common_attributes): New function.
10861 (process_function_and_variable_attributes): Use it.
768e3c60 10862
21d6a1c7
RG
108632011-01-26 Richard Guenther <rguenther@suse.de>
10864
10865 PR lto/47423
10866 * cgraphbuild.c (record_eh_tables): Record reference to personality
10867 function.
10868
48bb58b1
AO
108692011-01-26 Alexandre Oliva <aoliva@redhat.com>
10870
10871 PR debug/45454
10872 * sel-sched.c (moveup_expr): Don't let debug insns prevent
10873 non-debug insns from moving up.
10874
58c741a6
DK
108752011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
10876
10877 PR target/40125
10878 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
10879 t-dlldir{,-x} fragment for build and add it to tmake_file.
10880 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
10881 * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
10882 * config/i386/t-dlldir: New file.
10883 (SHLIB_DLLDIR): Define.
10884 * config/i386/t-dlldir-x: New file.
10885 (SHLIB_DLLDIR): Define.
10886 * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
10887 (SHLIB_INSTALL): Use it.
10888
bff99262
CLT
108892011-01-26 Chung-Lin Tang <cltang@codesourcery.com>
10890
10891 PR target/47246
10892 * config/arm/arm.c (thumb2_legitimate_index_p): Change the
10893 lower bound of the allowed Thumb-2 coprocessor load/store
10894 index range to -256. Add explaining comment.
10895
82c03907
ILT
108962011-01-25 Ian Lance Taylor <iant@google.com>
10897
10898 * godump.c (go_define): Improve lexing of macro expansion to only
10899 accept expressions which match Go spec.
10900
47ea1edf
DK
109012011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
10902
d4dba752 10903 PR c++/43601
47ea1edf
DK
10904 * tree.c (handle_dll_attribute): Handle it.
10905 * doc/extend.texi (@item dllexport): Mention it.
10906 * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
10907
744f0946
ILT
109082011-01-25 Ian Lance Taylor <iant@google.com>
10909
10910 PR tree-optimization/26854
10911 * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
10912 (decl_jump_unsafe): Move higher in file, with no other change.
10913 (bind): Set has_jump_unsafe_decl if appropriate.
10914 (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
10915 (check_earlier_gotos): Likewise.
10916 (c_check_switch_jump_warnings): Likewise.
10917
5734f2b3
JW
109182011-01-25 Jonathan Wakely <jwakely.gcc@gmail.com>
10919
10920 * doc/invoke.texi (Warning Options): Add missing hyphen.
10921 (-fprofile-dir): Minor grammatical fixes.
10922 (-fbranch-probabilities): Likewise.
10923
9bdbdcef
AO
109242011-01-25 Alexandre Oliva <aoliva@redhat.com>
10925
10926 PR debug/45136
10927 PR debug/45130
10928 * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
10929 debug insns.
10930 (no_real_insns_p, schedule_block, set_priorities): Drop special
10931 treatment of boundary debug insns.
38be4072 10932 * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
9bdbdcef
AO
10933 * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
10934 * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
10935 (BOUNDARY_DEBUG_INSN_P): Likewise.
10936 (SCHEDULE_DEBUG_INSN_P): Likewise.
10937 * sched-rgn.c (init_ready_list): Drop special treatment of
10938 boundary debug insns.
10939 * final.c (rest_of_clean-state): Clear notes' BB.
10940
b305e3da
SP
109412011-01-25 Sebastian Pop <sebastian.pop@amd.com>
10942
10943 * Makefile.in (LAMBDA_H): Removed.
10944 (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
10945 (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
10946 lambda-trans.o, and tree-loop-linear.o.
10947 (lto-symtab.o): Remove dependence on LAMBDA_H.
10948 (tree-loop-linear.o): Remove rule.
10949 (lambda-mat.o): Same.
10950 (lambda-trans.o): Same.
10951 (lambda-code.o): Same.
10952 (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
10953 (tree-vect-slp.o): Same.
10954 * hwint.h (gcd): Moved here.
10955 (least_common_multiple): Same.
10956 * lambda-code.c: Removed.
10957 * lambda-mat.c: Removed.
10958 * lambda-trans.c: Removed.
10959 * lambda.h: Removed.
10960 * tree-loop-linear.c: Removed.
10961 * lto-symtab.c: Do not include lambda.h.
10962 * omega.c (gcd): Removed.
10963 * passes.c (init_optimization_passes): Remove pass_linear_transform.
10964 * tree-data-ref.c (print_lambda_vector): Moved here.
10965 (lambda_vector_copy): Same.
10966 (lambda_matrix_copy): Same.
10967 (lambda_matrix_id): Same.
10968 (lambda_vector_first_nz): Same.
10969 (lambda_matrix_row_add): Same.
10970 (lambda_matrix_row_exchange): Same.
10971 (lambda_vector_mult_const): Same.
10972 (lambda_vector_negate): Same.
10973 (lambda_matrix_row_negate): Same.
10974 (lambda_vector_equal): Same.
10975 (lambda_matrix_right_hermite): Same.
10976 * tree-data-ref.h: Do not include lambda.h.
10977 (lambda_vector): Moved here.
10978 (lambda_matrix): Same.
10979 (dependence_level): Same.
10980 (lambda_transform_legal_p): Removed declaration.
10981 (lambda_collect_parameters): Same.
10982 (lambda_compute_access_matrices): Same.
10983 (lambda_vector_gcd): Same.
10984 (lambda_vector_new): Same.
10985 (lambda_vector_clear): Same.
10986 (lambda_vector_lexico_pos): Same.
10987 (lambda_vector_zerop): Same.
10988 (lambda_matrix_new): Same.
10989 * tree-flow.h (least_common_multiple): Removed declaration.
10990 * tree-parloops.c (lambda_trans_matrix): Moved here.
10991 (LTM_MATRIX): Same.
10992 (LTM_ROWSIZE): Same.
10993 (LTM_COLSIZE): Same.
10994 (LTM_DENOMINATOR): Same.
10995 (lambda_trans_matrix_new): Same.
10996 (lambda_matrix_vector_mult): Same.
10997 (lambda_transform_legal_p): Same.
10998 * tree-pass.h (pass_linear_transform): Removed declaration.
10999 * tree-ssa-loop.c (tree_linear_transform): Removed.
11000 (gate_tree_linear_transform): Removed.
11001 (pass_linear_transform): Removed.
11002 (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
11003 flag_loop_interchange.
11004
6bdfdb96
JJ
110052011-01-25 Jakub Jelinek <jakub@redhat.com>
11006
11007 PR tree-optimization/47265
11008 PR tree-optimization/47443
11009 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
11010 if name still has some uses.
11011
e4cba915
MJ
110122011-01-25 Martin Jambor <mjambor@suse.cz>
11013
11014 PR tree-optimization/47382
11015 * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
11016 (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
11017
509d65dd 110182011-01-25 Joel Sherrill <joel.sherrill@oarcorp.com>
f822b8ea
JS
11019
11020 * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
11021 sjlj_except_unwind_info.
11022
194313e2
RG
110232011-01-25 Richard Guenther <rguenther@suse.de>
11024
11025 PR tree-optimization/47426
11026 * tree-ssa-structalias.c (ipa_pta_execute): Make externally
11027 visible functions results escape.
11028
147a0bcf
JJ
110292011-01-25 Jakub Jelinek <jakub@redhat.com>
11030
11031 PR target/45701
11032 * config/arm/arm.c (any_sibcall_uses_r3): New function.
11033 (arm_get_frame_offsets): Use it.
11034
db963b52
SP
110352011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11036 Jakub Jelinek <jakub@redhat.com>
11037
11038 PR tree-optimization/47271
11039 * tree-if-conv.c (bb_postdominates_preds): New.
11040 (if_convertible_bb_p): Call bb_postdominates_preds.
11041 (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
11042 (predicate_scalar_phi): Call bb_postdominates_preds.
11043
bcddd3b9
NC
110442011-01-25 Nick Clifton <nickc@redhat.com>
11045
11046 * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
11047 * config/rx/rx.c (rx_function_value): Likewise.
11048 (rx_promote_function_mode): Likewise.
11049 (gen_safe_add): Place an outsized immediate value inside an UNSPEC
11050 in order to make it legitimate.
38be4072
UB
11051 * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
11052 make sure that the first operand is the same as the result register.
bcddd3b9
NC
11053 (addsi3_unspec): Delete.
11054 (subdi3): Do not accept immediate operands.
11055 (subdi3_internal): Likewise.
11056
7e6cb022
JL
110572011-01-25 Jeff Law <law@redhat.com>
11058
11059 PR rtl-optimization/37273
11060 * ira-costs.c (scan_one_insn): Detect constants living in memory and
11061 handle them like argument loads from stack slots. Do not double
11062 count memory for memory constants and argument loads from stack slots.
11063
9ffa621e
JJ
110642011-01-25 Jakub Jelinek <jakub@redhat.com>
11065
11066 PR tree-optimization/47427
11067 PR tree-optimization/47428
11068 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
11069 coalesce if the new root var would be TREE_READONLY.
11070
5bd6e652
RG
110712011-01-25 Richard Guenther <rguenther@suse.de>
11072
11073 PR middle-end/47414
11074 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
11075 correct type for TBAA.
11076
7c48ea69
SP
110772011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11078
11079 * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
11080 (close_phi_written_to_memory): Call for_each_index with
11081 dr_indices_valid_in_loop.
11082
38013f25
SP
110832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11084
11085 * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
11086 when it is initialized.
11087
5c640e29
SP
110882011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11089
11090 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
11091 call to graphite_find_data_references_in_stmt.
11092 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
11093 (try_generate_gimple_bb): Call outermost_loop_in_sese_1. Update
11094 call to graphite_find_data_references_in_stmt.
11095 (analyze_drs_in_stmts): Same.
11096 * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
11097 in which the scalar analysis of indices is performed.
11098 (create_data_ref): Same. Update call to dr_analyze_indices.
11099 (find_data_references_in_stmt): Update call to create_data_ref.
11100 (graphite_find_data_references_in_stmt): Same.
11101 * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
11102 declaration.
11103 (create_data_ref): Same.
11104 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
11105 call to create_data_ref.
11106
ac53c069
SP
111072011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11108
11109 * graphite-sese-to-poly.c (build_poly_scop): Move
38be4072 11110 rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
ac53c069 11111
3d17df15
SP
111122011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11113
11114 * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
11115 VAR_DECL, PARM_DECL, and RESULT_DECL.
11116
c513da01
SP
111172011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11118
11119 * graphite-dependences.c (reduction_dr_1): Allow several reductions
11120 in a reduction PBB.
11121 * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
11122 that have already been marked as PBB_IS_REDUCTION.
11123
3a292d59
SP
111242011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11125
11126 * graphite-scop-detection.c (same_close_phi_node): New.
11127 (remove_duplicate_close_phi): New.
11128 (make_close_phi_nodes_unique): New.
11129 (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
11130
ba858447
SP
111312011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11132
11133 * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
11134 * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
11135 of both data references to be the same.
11136
8d865c56
SP
111372011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11138
38be4072
UB
11139 * graphite-dependences.c (build_lexicographical_constraint): Remove
11140 the gdim parameter.
11141 (build_lexicographical_constraint): Adjust call to
11142 ppl_powerset_is_empty.
8d865c56
SP
11143 (dependence_polyhedron): Same.
11144 (graphite_legal_transform_dr): Same.
11145 (graphite_carried_dependence_level_k): Same.
38be4072
UB
11146 * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
11147 parameter.
8d865c56
SP
11148 * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
11149
50034a36
SP
111502011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11151
11152 * graphite-sese-to-poly.c
11153 (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
11154 (close_phi_written_to_memory): New.
11155 (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
11156 and unshare_expr.
11157
0deada9e
SP
111582011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11159
11160 * doc/install.texi: Update the expected version number of PPL to 0.11.
11161 * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
11162 #if PPL_VERSION_MINOR < 11.
11163
d7d3d6af
SP
111642011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11165
11166 * graphite-dependences.c: Include graphite-cloog-util.h.
11167 (new_poly_ddr): Inlined into dependence_polyhedron.
11168 (free_poly_ddr): Moved close by new_poly_ddr.
11169 (dependence_polyhedron_1): Renamed dependence_polyhedron.
11170 Early return NULL when ppl_powerset_is_empty returns true.
11171 (dependence_polyhedron): Renamed new_poly_ddr. Call only once
11172 poly_drs_may_alias_p. Avoid one call to ppl_powerset_is_empty.
11173 (graphite_legal_transform_dr): Call new_poly_ddr.
11174 (graphite_carried_dependence_level_k): Same.
11175 (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2. Use new_poly_ddr.
11176 (dot_transformed_deps_stmt_1): Removed.
11177 (dot_deps_stmt_1): Call dot_deps_stmt_2.
11178 (dot_original_deps): Renamed dot_deps_2. Call new_poly_ddr.
11179 (dot_deps_1): Call dot_deps_2.
11180 * Makefile.in (graphite-dependences.o): Add missing dependence on
11181 graphite-cloog-util.h.
11182
28c5db57
SP
111832011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11184
11185 * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
11186 (build_lexicographical_constraint): Same.
11187 (dependence_polyhedron_1): Same.
11188 (graphite_legal_transform_dr): Same.
11189 (graphite_carried_dependence_level_k): Same.
11190 * graphite-ppl.c (ppl_powerset_is_empty): New.
11191 * graphite-ppl.h (ppl_powerset_is_empty): Declared.
11192 * tree-data-ref.c (dump_data_reference): Print the basic block index.
11193
5168d98f
SP
111942011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11195
11196 * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
11197 the "a followed by b" relation and document it.
11198
4a40293a
SP
111992011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11200
11201 * graphite-dependences.c (build_lexicographical_constraint): Stop the
11202 iteration when the bag of constraints is empty.
11203
271fb6fa
SP
112042011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11205
11206 * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
11207
92d23680
SP
112082011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11209
11210 * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
11211 nest and two loop depths as parameters.
11212 (lst_try_interchange_loops): Call lst_interchange_profitable_p after
11213 lst_perfect_nestify.
11214
2f51deff
SP
112152011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11216
11217 * graphite-dependences.c (print_pddr): Call
11218 ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
11219
07f3593c
SP
112202011-01-25 Sebastian Pop <sebastian.pop@amd.com>
11221
11222 * graphite-ppl.c (debug_gmp_value): New.
11223 * graphite-ppl.h (debug_gmp_value): Declared.
11224
3fae6099
TG
112252011-01-25 Tobias Grosser <grosser@fim.uni-passau.de>
11226
11227 * doc/install.texi: Document availability of cloog-0.16.
11228
1c3ba85b
SP
112292011-01-25 Vladimir Kargov <kargov@gmail.com>
11230
11231 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
11232 invalid postdominance info.
11233
e8ba94fc
JH
112342011-01-24 Jan Hubicka <jh@suse.cz>
11235
11236 PR c/21659
11237 * doc/extend.texi (weak pragma): Drop claim that it must
11238 appear before definition.
11239 * varasm.c (merge_weak, declare_weak): Only sanity check
11240 that DECL is not output at a time it is declared weak.
11241
2b6e2d13
KZ
112422011-01-24 Kenneth Zadeck <zadeck@naturalbridge.com>
11243
11244 * machmode.def: Fixed comments.
1c3ba85b 11245
9841210f
KT
112462011-01-24 Kai Tietz <kai.tietz@onevision.com>
11247
11248 * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
11249
112502011-01-24 Paul Koning <ni1d@arrl.net>
e046112d
PK
11251
11252 * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
1c3ba85b 11253 WORDS_BIG_ENDIAN.
e046112d 11254
a6c5070a
L
112552011-01-24 H.J. Lu <hongjiu.lu@intel.com>
11256
11257 PR target/46519
11258 * config/i386/i386.c: Include sbitmap.h and fibheap.h.
11259 (block_info): Add scanned and prev.
11260 (move_or_delete_vzeroupper_2): Return if the basic block
11261 has been scanned and the upper 128bit state is unchanged
11262 from the last scan.
11263 (move_or_delete_vzeroupper_1): Return true if the exit
11264 state is changed.
11265 (move_or_delete_vzeroupper): Visit basic blocks using the
11266 work-list based algorithm based on vt_find_locations in
11267 var-tracking.c.
11268
11269 * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
11270
a40d79d7
NC
112712011-01-24 Nick Clifton <nickc@redhat.com>
11272
11273 * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
11274 * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
11275 -mv850e1 to the assembler. If -mv850e1 or -mv850es is specified
11276 then define __v850e1__.
11277 * doc/invoke.texi: Document -mv850es.
11278
440eb8de
RH
112792011-01-24 Richard Henderson <rth@redhat.com>
11280
11281 * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
11282 compound unordered comparisons.
11283 * config/rx/rx.c (rx_split_fp_compare): Remove.
11284 * config/rx/rx-protos.h: Update.
11285 * config/rx/rx.md (gcc_conds, rx_conds): Remove.
11286 (cbranchsf4): Don't call rx_split_fp_compare.
11287 (*cbranchsf4): Use rx_split_cbranch.
11288 (*cmpsf): Don't accept "i" constraint.
11289 (*conditional_branch): Only valid after reload.
11290 (cstoresf4): Merge expander with insn. Don't call rx_split_fp_compare.
11291
3ff79f99
MM
112922011-01-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11293
11294 PR target/47385
11295 * config/rs6000/altivec.md (vector constant splitters): Add
11296 support for creating vector single precision constants if -mvsx is
11297 used and we would create the constant using Altivec primitives.
11298
ff3d9d08
BS
112992011-01-23 Bernd Schmidt <bernds@codesourcery.com>
11300 Richard Sandiford <rdsandiford@googlemail.com>
11301
11302 PR rtl-optimization/47166
11303 * reload1.c (emit_reload_insns): Disable the spill_reg_store
11304 mechanism for PRE_MODIFY and POST_MODIFY.
11305 (inc_for_reload): For PRE_MODIFY, return the insn that sets the
11306 reloadreg.
11307
7fcaf152
AS
113082011-01-23 Andreas Schwab <schwab@linux-m68k.org>
11309
8788adb6 11310 * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
7fcaf152 11311
d09b58c4
JH
113122011-01-22 Jan Hubicka <jh@suse.cz>
11313
11314 PR lto/47333
11315 * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
11316
e8ff8c5a
JH
113172011-01-22 Jan Hubicka <jh@suse.cz>
11318
11319 PR tree-optimization/43884
11320 PR lto/44334
8788adb6 11321 * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
e8ff8c5a
JH
11322 * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
11323
ccaed3ba
AS
113242011-01-22 Anatoly Sokolov <aesok@post.ru>
11325
11326 * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
11327 * config/s390/s390.c (s390_register_move_cost,
11328 s390_memory_move_cost): New.
11329 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
11330
0cecee06
UW
113312011-01-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11332
11333 PR middle-end/47401
11334 * except.c (sjlj_assign_call_site_values): Move setting the
11335 crtl->uses_eh_lsda flag to ...
11336 (sjlj_mark_call_sites): ... here.
11337 (sjlj_emit_function_enter): Support NULL dispatch label.
11338 (sjlj_build_landing_pads): In a function with no landing pads
11339 that still has must-not-throw regions, generate code to register
11340 a personality function with empty LSDA.
11341
e692f276
RH
113422011-01-21 Richard Henderson <rth@redhat.com>
11343
1b7ae0b7
RH
11344 * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
11345
3843787f
RH
11346 * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
11347
e692f276
RH
11348 * compare-elim.c: New file.
11349 * Makefile.in (OBJS-common): Add it.
11350 (compare-elim.o): New.
11351 * common.opt (fcompare-elim): New.
11352 * opts.c (default_options_table): Add OPT_fcompare_elim.
11353 * tree-pass.h (pass_compare_elim_after_reload): New.
11354 * passes.c (init_optimization_passes): Add it.
11355 * recog.h: Protect against re-inclusion.
11356 * target.def (TARGET_FLAGS_REGNUM): New POD hook.
11357 * doc/invoke.texi (-fcompare-elim): Document it.
11358 * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
11359 * doc/tm.texi: Rebuild.
11360
9a7c2050
NC
113612011-01-22 Nick Clifton <nickc@redhat.com>
11362
11363 * config/rx/rx.md (cstoresf4): Pass comparison operator to
11364 rx_split_fp_compare.
11365
15ba5696
NC
113662011-01-22 Nick Clifton <nickc@redhat.com>
11367
11368 * config/rx/rx.md (UNSPEC_CONST): New.
11369 (deallocate_and_return): Wrap the amount popped off the stack in
11370 an UNSPEC_CONST in order to stop it being rejected by
11371 -mmax-constant-size.
11372 (pop_and_return): Add a "(return)" rtx.
11373 (call): Drop the immediate operand.
11374 (call_internal): Likewise.
11375 (call_value): Likewise.
11376 (call_value_internal): Likewise.
11377 (sibcall_internal): Likewise.
11378 (sibcall_value_internal): Likewise.
11379 (sibcall): Likewise. Generate an explicit call using
11380 sibcall_internal.
11381 (sibcall_value): Likewise.
11382 (mov<>): FAIL if a constant operand is not legitimate.
11383 (addsi3_unpsec): New pattern.
9a7c2050 11384
38be4072 11385 * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
15ba5696
NC
11386 (ok_for_max_constant): New function.
11387 (gen_safe_add): New function.
11388 (rx_expand_prologue): Use gen_safe_add.
11389 (rx_expand_epilogue): Likewise.
11390 (rx_is_legitimate_constant): Use ok_for_max_constant. Handle
11391 UNSPEC CONSTs.
11392
caaf13d3
JL
113932011-01-21 Jeff Law <law@redhat.com>
11394
11395 PR tree-optimization/47053
11396 * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
11397 (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
11398 statements are deleted.
11399 (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP. If NEED_EH_CLEANUP
11400 is nonempty, then purge dead edges and cleanup the CFG.
11401
12c30f2f
AO
114022011-01-21 Alexandre Oliva <aoliva@redhat.com>
11403
11404 PR debug/47402
11405 Temporarily revert:
11406 2011-01-21 Alexandre Oliva <aoliva@redhat.com>
11407 PR debug/47106
11408 * tree-dfa.c (create_var_ann): Mark variable as used.
11409
7360d2ac
JJ
114102011-01-21 Jakub Jelinek <jakub@redhat.com>
11411
aaa52a96
JJ
11412 PR middle-end/45566
11413 * except.c (convert_to_eh_region_ranges): Emit queued no-region
11414 notes from other section in hot/cold partitioning even if
11415 last_action is -3. Increment call_site_base.
11416
7360d2ac
JJ
11417 PR rtl-optimization/47366
11418 * fwprop.c (forward_propagate_into): Return bool. If
11419 any changes are made, -fnon-call-exceptions is used and
11420 REG_EH_REGION note is present, call purge_dead_edges
11421 and return true if it purged anything.
11422 (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
11423 any EH edges were purged.
11424
e90b336f
JL
114252011-01-21 Jeff Law <law@redhat.com>
11426
11427 PR rtl-optimization/41619
11428 * caller-save.c (setup_save_areas): Break out code to determine
11429 which hard regs are live across calls by examining the reload chains
11430 so that it is always used.
11431 Eliminate code which checked REG_N_CALLS_CROSSED.
11432
3ffe07e1
JJ
114332011-01-21 Jakub Jelinek <jakub@redhat.com>
11434
11435 PR tree-optimization/47355
11436 * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
11437 NOP has non-debug uses beyond PHIs in new_bb.
11438
1c7d0b34
AO
114392011-01-21 Alexandre Oliva <aoliva@redhat.com>
11440
11441 PR debug/47106
11442 * cfgexpand.c (account_used_vars_for_block): Only account vars
11443 that are annotated as used.
11444 (estimated_stack_frame_size): Don't set TREE_USED.
11445 * tree-dfa.c (create_var_ann): Mark variable as used.
11446
f99cc488
RG
114472011-01-21 Richard Guenther <rguenther@suse.de>
11448
11449 PR middle-end/47395
11450 * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
11451
3bc27de7
RG
114522011-01-21 Richard Guenther <rguenther@suse.de>
11453
11454 PR tree-optimization/47365
11455 * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
11456 (vn_reference_lookup_pieces): Adjust.
11457 (vn_reference_lookup): Likewise.
11458 * tree-ssa-sccvn.c (vn_walk_kind): New static global.
11459 (vn_reference_lookup_3): Only look through kills if in
11460 VN_WALKREWRITE mode.
11461 (vn_reference_lookup_pieces): Adjust.
11462 (vn_reference_lookup): Likewise.
11463 (visit_reference_op_load): Likewise.
11464 (visit_reference_op_store): Likewise.
11465 * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
11466 (compute_avail): Likewise.
11467 (eliminate): Likewise.
11468
d8debb1d
JJ
114692011-01-21 Jakub Jelinek <jakub@redhat.com>
11470
11471 * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
11472 DECL_IGNORED_P non-reg vars if they are used.
11473
3a2df831
JJ
11474 PR tree-optimization/47391
11475 * varpool.c (const_value_known_p): Return false if
11476 decl is volatile.
11477
1dd584a2
KT
114782011-01-21 Kai Tietz <kai.tietz@onevision.com>
11479
11480 PR bootstrap/47215
11481 * config/i386/i386.c (ix86_local_alignment): Handle
11482 case for va_list_type_node is nil.
11483 (ix86_canonical_va_list_type): Likewise.
11484
7f9f095e
AM
114852011-01-21 Alan Modra <amodra@gmail.com>
11486
11487 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
11488 builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
11489
837b01f6
RR
114902011-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11491
11492 * config/arm/arm.md (define_attr type): Rename f_load
11493 and f_store to f_fpa_load and f_fpa_store. Update.
11494 (write_conflict): Deal with rename fallout.
11495 (*push_fp_multi): Likewise.
11496 * config/arm/fpa.md (f_load): Use f_fpa_load.
11497 (f_store): Use f_fpa_store.
11498 (*movsf_fpa): Likewise.
11499 (*movdf_fpa): Likewise.
11500 (*movxf_fpa): Likewise.
11501 (*thumb2_movsf_fpa): Likewise.
11502 (*thumb2_movdf_fpa): Likewise.
11503 (*thumb2_movxf_fpa): Likewise.
11504 * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
11505 f_loadd and f_stored.
11506 (*thumb2_movdi_vfp): Likewise.
11507 (*thumb2_movsf_vfp): Fix attribute to f_loads.
11508 (*thumb2_movsi_vfp): Likewise.
11509 * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
11510 Use f_loads instead of f_load.
11511 * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
11512
a1a79768
AS
115132011-01-20 Anatoly Sokolov <aesok@post.ru>
11514
11515 * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
11516 * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
11517 * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
11518 (xtensa_mode_dependent_address_p): New function.
11519 (constantpool_address_p): Make static. Change return type to bool.
11520 Change argument type to const_rtx. Use CONST_INT_P predicate.
11521
427f6cec
AO
115222011-01-20 Alexandre Oliva <aoliva@redhat.com>
11523
11524 PR debug/46583
11525 * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
11526
583ac69c
JJ
115272011-01-20 Jakub Jelinek <jakub@redhat.com>
11528
11529 PR debug/47283
11530 * cfgexpand.c (expand_debug_expr): Instead of generating
11531 (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
11532 etc. handling.
11533
93e452ed
RG
115342011-01-20 Richard Guenther <rguenther@suse.de>
11535
11536 PR middle-end/47370
11537 * tree-inline.c (remap_gimple_op_r): Recurse manually for
11538 the pointer operand of MEM_REFs.
11539
28fc44f3
JJ
115402011-01-20 Jakub Jelinek <jakub@redhat.com>
11541
11542 PR tree-optimization/46130
11543 * ipa-split.c (consider_split): If return_bb contains non-virtual
11544 PHIs other than for retval or if split_function would not adjust it,
11545 refuse to split.
11546
ddd268f2
RG
115472011-01-20 Richard Guenther <rguenther@suse.de>
11548
11549 PR tree-optimization/47167
11550 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
11551 Revert previous change, only avoid enumeral type changes.
11552
882020aa
MS
115532011-01-19 Mike Stump <mikestump@comcast.net>
11554
11555 * doc/tm.texi.in (BRANCH_COST): Englishify.
11556 * doc/tm.texi (BRANCH_COST): Likewise.
11557
7edb6247
DS
115582011-01-19 Dodji Seketeli <dodji@redhat.com>
11559
11560 PR c++/47291
11561 * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
61052244
AM
11562 (gen_scheduled_generic_parms_dies): New functions.
11563 (gen_struct_or_union_type_die): Schedule template parameters DIEs
11564 generation for the end of CU compilation.
11565 (dwarf2out_finish): Generate template parameters DIEs here.
7edb6247 11566
23d5ed5d
AO
115672011-01-19 Alexandre Oliva <aoliva@redhat.com>
11568
11569 PR debug/46240
11570 * tree-into-ssa.c (maybe_register_def): Do not attempt to add
11571 debug bind stmt on merge edges.
11572
37d6a488
AO
115732011-01-19 Alexandre Oliva <aoliva@redhat.com>
11574
11575 PR debug/47079
11576 PR debug/46724
11577 * function.c (instantiate_expr): Instantiate incoming rtl of
11578 implicit arguments, and recurse on VALUE_EXPRs.
11579 (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
11580 * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
11581
689f2c82
AO
115822011-01-19 Alexandre Oliva <aoliva@redhat.com>
11583
11584 * c-parser.c (c_parser_for_statement): Initialize
11585 collection_expression.
11586
03029de4
JM
115872011-01-19 Joseph Myers <joseph@codesourcery.com>
11588
11589 * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
11590
3e03217e
JM
115912011-01-19 Joseph Myers <joseph@codesourcery.com>
11592
11593 * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
11594 (LINK_SHLIB_SPEC): Don't use %(link_path).
11595 (SUBTARGET_EXTRA_SPECS): Remove link_path.
11596
5bbe9b3f
JM
115972011-01-19 Joseph Myers <joseph@codesourcery.com>
11598
11599 * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
11600 (NO_SHARED_LIB_SUPPORT): Remove.
11601 (LINK_SHLIB_SPEC): Remove one conditional definition.
11602
368e0b39
JM
116032011-01-19 Joseph Myers <joseph@codesourcery.com>
11604
11605 * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
11606 %{call_shared}.
11607 * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
11608 * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
11609 * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
11610 %{call_shared} and conditionals on these options not being passed.
11611 * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
11612 %{call_shared}.
11613
ed7656f6
JJ
116142011-01-19 Jakub Jelinek <jakub@redhat.com>
11615
68457901
JJ
11616 * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
11617 simplify.
11618
ed7656f6
JJ
11619 * ipa-split.c: Spelling fixes.
11620
e0d1958f
RH
116212011-01-19 Richard Henderson <rth@redhat.com>
11622
11623 * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
11624 (*mulsi3): Likewise.
11625
27098b6b
RH
11626 * longlong.h [__mn10300__] (count_leading_zeros): New.
11627 [__mn10300__] (umul_ppmm, smul_ppmm): New.
11628 [__mn10300__] (add_ssaaaa, subddmmss): New.
11629 [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
11630 [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
11631
d6be7c36
UW
116322011-01-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11633
11634 * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
11635
b1efde2a
RH
116362011-01-19 Richard Henderson <rth@redhat.com>
11637
44217823
RH
11638 * config/mn10300/mn10300.md (addsi3_flags): New.
11639 (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
11640 (subsi3_flags, subc_internal, subdi3): New.
11641 (subdi3_internal, *subdi3_degenerate): New.
11642 * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
11643
37a185d7
RH
11644 * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
11645 (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
11646 (mn10300_expand_epilogue): Use it. Compute REG_SAVE_BYTES once.
11647 * config/mn10300/mn10300-protos.h: Update.
11648 * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
11649 (return_ret): Likewise. Rename from return_internal_regs.
11650 (return_internal): Remove.
11651
040c5757
RH
11652 * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
11653 (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
11654 (mn10300_legitimate_constant_p): Likewise.
11655 (mn10300_can_use_return_insn): Use mn10300_initial_offset.
11656 (mn10300_frame_size): New.
11657 (mn10300_expand_prologue): Use it.
11658 (mn10300_expand_epilogue): Likewise.
11659 (mn10300_initial_offset): Likewise.
11660 * config/mn10300/mn10300-protos.h: Update.
11661 * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
11662 * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
11663 (prologue, epilogue, return_internal): Tidy output code.
11664 (mn10300_store_multiple_operation, return): Likewise.
11665 (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
11666 (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
11667 (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
11668 (load_pic, am33_load_pic): New.
11669 (mn10300_load_pic0, mn10300_load_pic1): New.
11670
bad41521
RH
11671 * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
11672 * config/mn10300/mn10300.c (CC_FLAG_Z): New.
11673 (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
11674 (cc_flags_for_mode, cc_flags_for_code): New.
11675 (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
11676 overflow flag is not valid. Validate that the flags we need
11677 for the comparison are valid.
11678 (mn10300_output_cmp): Remove.
11679 (mn10300_output_add): New.
11680 (mn10300_select_cc_mode): Use cc_flags_for_code.
11681 (mn10300_split_cbranch): New.
11682 (mn10300_match_ccmode): New.
11683 (mn10300_split_and_operand_count): New.
11684 * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
11685 to the function.
11686 * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
11687 (addsi3): ... here. Use mn10300_output_add.
11688 (*addsi3_flags): New.
11689 (*am33_subsi3, *mn10300_subsi3): Merge...
11690 (subsi3): ... here. Use attribute isa.
11691 (*subsi3_flags): New.
11692 (negsi2): Rewrite from expander to insn_and_split. Use NOT+INC
11693 when possible.
11694 (*am33_andsi3, *mn10300_andsi3): Merge...
11695 (andsi3): ... here.
11696 (*andsi3_flags): New.
11697 (andsi3 splitters): New.
11698 (*am33_iorsi3, *mn10300_iorsi3): Merge...
11699 (iorsi3): ... here.
11700 (*iorsi3_flags): New.
11701 (*am33_xorsi3, *mn10300_xorsi3): Merge...
11702 (xorsi3): ... here.
11703 (*xorsi3_flags): New.
11704 (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
11705 (one_cmplsi2): ... here.
11706 (*one_cmplsi2_flags): New.
11707 (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload. Use "r"
11708 instead of "dax" in constraints. Use mn10300_split_cbranch.
11709 (*cmpsi): Rename from cmpsi. Do not use mn10300_output_cmp. Do not
11710 use matching constraints to eliminate a self-comparison.
11711 (*integer_conditional_branch): Rename from integer_conditional_branch.
11712 Use int_mode_flags to match CC_REG.
11713 (*cbranchsi4_btst, *btstsi): New.
11714 (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload. Use
11715 mn10300_split_cbranch.
11716 (*am33_cmpsf): Rename from am33_cmpsf.
11717 (*float_conditional_branch): Rename from float_conditional_branch.
11718 (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
11719 (zero_extendqisi2): ... here.
11720 (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
11721 (zero_extendhisi2): ... here.
11722 (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
11723 (extendqisi2): ... here.
11724 (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
11725 (extendhisi2): ... here.
11726 (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
11727 (ashlsi3): ... here.
11728 (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
11729 (lshrsi3): ... here.
11730 (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
11731 (ashrsi3): ... here.
11732 (consecutive add peephole): Remove.
11733 * config/mn10300/predicates.md (label_ref_operand): New.
11734 (int_mode_flags): New.
11735 (CCZN_comparison_operator): New.
11736
9efb4993
RH
11737 * config/mn10300/mn10300.md (UNSPEC_EXT): New.
11738 (throughput_42_latency_43): New reservation.
11739 (mulsidi3, umulsidi3): New expanders.
11740 (mulsidi3_internal): Rewrite from old mulsidi3 pattern. Expose
11741 the MDR register to allocation; separately allocate the low and
11742 high parts of the DImode result.
11743 (umulsidi3_internal): Similarly.
11744 (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
11745 (*mulsi3): ... here. Clobber MDR as a scratch as necessary.
11746 (udivsi3, umodsi3): Remove.
11747 (udivmodsi4, divmodsi4): New expanders.
11748 (*udivmodsi4): Rename from udivmodsi4. Expose MDR properly.
11749 (*divmodsi4): Simiarly.
11750 (ext_internal): New.
11751
c25a21f5
RH
11752 * config/mn10300/constraints.md ("z"): New constraint.
11753 * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
11754 (FIXED_REGISTERS): Don't fix MDR.
11755 (CALL_USED_REGSITERS): Reformat nicely.
11756 (REG_ALLOC_ORDER): Add MDR.
11757 (enum regclass): Add MDR_REGS.
11758 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
11759 (IRA_COVER_CLASSES): Add MDR_REGS.
11760 (REGNO_REG_CLASS): Handle MDR_REG.
11761 * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
11762 (mn10300_register_move_cost): Likewise.
11763 * config/mn10300/mn10300.md (MDR_REG): New.
11764 (*movsi_internal): Handle moves to/from MDR_REGS.
11765
36846b26
RH
11766 * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
11767 POST_MODIFY.
11768 (mn10300_secondary_reload): Tidy combination reload classes.
11769 (mn10300_legitimate_address_p): Allow post-modify and reg+reg
11770 addresses for AM33. Allow symbolic offsets for reg+imm.
11771 (mn10300_regno_in_class_p): New.
11772 (mn10300_legitimize_reload_address): New.
11773 * config/mn10300/mn10300.h (enum reg_class): Remove
11774 DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
11775 SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS. Add
11776 SP_OR_GENERAL_REGS.
11777 (REG_CLASS_NAMES): Update to match.
11778 (REG_CLASS_CONTENTS): Likewise.
11779 (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
11780 (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
11781 (REGNO_IN_RANGE_P): Remove.
11782 (REGNO_DATA_P): Use mn10300_regno_in_class_p.
11783 (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
11784 (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
11785 (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
11786 (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
11787 (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
11788 (REGNO_GENERAL_P): New.
11789 (HAVE_POST_MODIFY_DISP): New.
11790 (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
11791 (LEGITIMIZE_RELOAD_ADDRESS): New.
11792 * config/mn10300/mn10300-protos.h: Update.
11793
8b119bb6
RH
11794 * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
11795 DATA_REGS for AM33 stack-pointer destination.
11796 (mn10300_preferred_output_reload_class): Likewise.
11797 (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
11798 into a form appropriate for ...
11799 (TARGET_SECONDARY_RELOAD): New.
11800 * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
11801 * config/mn10300/mn10300-protos.h: Update.
11802 * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
11803 reload_insi; use the "A" constraint for the scratch; handle AM33
11804 moves of sp to non-address registers.
11805
b1efde2a
RH
11806 * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
11807 (*movqi_internal): ... here.
11808 (*am33_movhi, *mn10300_movhi): Merge into...
11809 (*movhi_internal): ... here.
11810 (*movsi_internal): Use "r" instead of "dax" in constraints. Use "A"
11811 as the source/destination of moves from/to SP.
11812 (movsf): Only allow for AM33-2.
1c3ba85b 11813 (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
b1efde2a
RH
11814 any integer constant constraint. Only allow for AM33-2. Tidy
11815 all of the alternative outputs.
11816 (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
11817 (udivmodsi4): Delete expander and promote *udivmodsi4. Disallow
11818 for MN103.
11819 (udivsi3, umodsi3): New patterns for MN103 only.
11820
b899fd78
JR
118212011-01-19 Joern Rennecke <amylaar@spamcop.net>
11822
11823 * doc/tm.texi.in: Spell out that a lack of register class unions
11824 can lead to ICEs.
11825 * doc/tm.texi: Regenerate.
11826
afaaa67d
JJ
118272011-01-19 Jakub Jelinek <jakub@redhat.com>
11828
2e0642cd
JJ
11829 PR rtl-optimization/47337
11830 * dce.c (check_argument_store): New function.
11831 (find_call_stack_args): Ignore debug insns. Use check_argument_store.
11832
afaaa67d
JJ
11833 PR tree-optimization/47290
11834 * tree-eh.c (infinite_empty_loop_p): New function.
11835 (cleanup_empty_eh): Use it.
11836
d2cd871f
SE
118372011-01-18 Steve Ellcey <sje@cup.hp.com>
11838
11839 PR target/46997
11840 * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
11841 (a64_expand_widen_sum): Ditto.
11842 * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
11843 (vec_extract_evenodd_help): Ditto.
11844 (vec_extract_evenv4hi): Ditto.
11845 (vec_extract_oddv4hi): Ditto.
11846 (vec_extract_evenv2si): Ditto.
11847 (vec_extract_oddv2si): Ditto.
11848 (vec_extract_evenv2sf): Ditto.
11849 (vec_extract_oddv2sf): Ditto.
11850 (vec_pack_trunc_v4hi: Ditto.
11851 (vec_pack_trunc_v2si): Ditto.
11852 (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
11853 (vec_interleave_highv8qi): Ditto.
11854 (mix1_r): Ditto.
11855 (vec_extract_oddv8qi): Ditto.
11856 (vec_interleave_lowv4hi): Ditto.
11857 (vec_interleave_highv4hi): Ditto.
11858 (vec_interleave_lowv2si): Ditto.
11859 (vec_interleave_highv2si): Ditto.
11860
41a1208a
JDA
118612011-01-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11862
11863 * doc/extend.texi: Mention __float128 support on hppa HP-UX.
11864 * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
11865 * config/pa/pa.c (pa_expand_builtin): New. Include "langhooks.h".
11866 (pa_c_mode_for_suffix): New.
11867 (TARGET_EXPAND_BUILTIN): Define.
11868 (TARGET_C_MODE_FOR_SUFFIX): Define.
11869 (pa_builtins): Define.
11870 (pa_init_builtins): Register __float128 type and init new support
11871 builtins.
11872 * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
11873 * config/pa/quadlib.c (_U_Qfcopysign): New.
11874
1ecad98e
EB
118752011-01-18 Eric Botcazou <ebotcazou@adacore.com>
11876
11877 PR middle-end/46894
11878 * explow.c (allocate_dynamic_stack_space): Do not assume more than
11879 BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
11880 are defined.
11881
d4f2460a
UW
118822011-01-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11883
11884 PR tree-optimization/47179
11885 * config/spu/spu.c (spu_ref_may_alias_errno): New function.
11886 (TARGET_REF_MAY_ALIAS_ERRNO): Define.
11887
4994da65
RG
118882011-01-18 Richard Guenther <rguenther@suse.de>
11889
11890 PR rtl-optimization/47216
11891 * emit-rtl.c: Include tree-flow.h.
11892 (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
11893 of replicating it with different semantics.
11894 * Makefile.in (emit-rtl.o): Adjust.
11895
1eb458d1
RR
118962011-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11897
38be4072 11898 * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
61052244 11899 (cortex_a9_dp): Handle neon types correctly.
1eb458d1 11900
e7ef91dc
JJ
119012011-01-18 Jakub Jelinek <jakub@redhat.com>
11902
11903 PR rtl-optimization/47299
11904 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
38be4072 11905 subtarget. Use normal multiplication if both operands are constants.
e7ef91dc
JJ
11906 * expmed.c (expand_widening_mult): Don't try to optimize constant
11907 multiplication if op0 has VOIDmode. Convert op1 constant to mode
11908 before using it.
11909
535b7874
RW
119102011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11911
11912 * doc/lto.texi (LTO): Ensure two spaces after period. Fix
11913 spacing after 'e.g.', typos, comma, hyphenation.
11914
27bf36f3
RH
119152011-01-17 Richard Henderson <rth@redhat.com>
11916
8a5b5449
RH
11917 * config/rx/predicates.md (rx_constshift_operand): Use match_test.
11918 (rx_restricted_mem_operand): New.
11919 (rx_shift_operand): Use register_operand.
11920 (rx_source_operand, rx_compare_operand): Likewise.
11921 * config/rx/rx.md (addsi3_flags): New expander.
11922 (adddi3): Rewrite as expander.
11923 (adc_internal, *adc_flags, adddi3_internal): New patterns.
11924 (subsi3_flags): New expander.
11925 (subdi3): Rewrite as expander.
11926 (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
11927
784f69be
RH
11928 * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
11929 (rx_init_builtins): Remove sat builtin.
11930 (rx_expand_builtin): Likewise.
11931 * config/rx/rx.md (ssaddsi3): New.
11932 (*sat): Rename from sat. Represent the CC_REG input.
11933
f033541c
RH
11934 * config/rx/predicates.md (rshift_operator): New.
11935 * config/rx/rx.c (rx_expand_insv): Remove.
11936 * config/rx/rx-protos.h: Update.
11937 * config/rx/rx.md (*bitset): Rename from bitset. Swap the ashift
11938 operand to the canonical position.
11939 (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
11940 (*bitclr, *bitclr_in_memory): Similarly.
11941 (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
11942 (insv): Retain the zero_extract in the expansion.
11943
34fee389
RH
11944 * config/rx/rx.md (bswapsi2): Use = not + for output reload.
11945 (bswaphi2, bitinvert, revw): Likewise.
11946
265c835f
RH
11947 * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
11948 (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
11949 * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
11950 (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
11951 (bitset, bitset_in_memory): Likewise.
11952 (bitinvert, bitinvert_in_memory): Likewise.
11953 (bitclr, bitclr_in_memory): Likewise.
11954 (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
11955 (rx_strend, rx_cmpstrn): Likewise.
11956 (rx_setmem): Likewise. Make the source BLKmode to match the dest.
11957 (bitop peep2 patterns): Remove.
11958
b4d83be3
RH
11959 * config/rx/rx.c (rx_match_ccmode): New.
11960 * config/rx/rx-protos.h: Update.
11961 * config/rx/rx.md (abssi2): Clobber, don't set flags.
11962 (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
11963 (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
11964 (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
11965 (fix_truncsfsi2, floatsisf2): Likewise.
11966 (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
11967 (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
11968 (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
11969 (*subsi3_flags, *xorsi3_flags): New.
11970
d0acb939
RH
11971 * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
11972
c06fc3d9
RH
11973 * config/rx/rx.c (rx_print_operand): Remove workaround for
11974 unsplit comparison operations.
11975
2882702b
RH
11976 * config/rx/rx.md (movsicc): Split after reload.
11977 (*movsicc): Merge *movsieq and *movsine via match_operator.
11978 (*stcc): New pattern.
11979
6f7310f2
RH
11980 * config/rx/rx.c (rx_float_compare_mode): Remove.
11981 * config/rx/rx.h (rx_float_compare_mode): Remove.
11982 * config/rx/rx.md (cstoresi4): Split after reload.
11983 (*sccc): New pattern.
11984
e963cb1a
RH
11985 * config/rx/predicates.md (label_ref_operand): New.
11986 (rx_z_comparison_operator): New.
11987 (rx_zs_comparison_operator): New.
11988 (rx_fp_comparison_operator): New.
11989 * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
11990 Validate that the flags are set properly for the comparison.
11991 (rx_gen_cond_branch_template): Remove.
11992 (rx_cc_modes_compatible): Remove.
11993 (mode_from_flags): New.
11994 (flags_from_code): Rename from flags_needed_for_conditional.
11995 (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
11996 (rx_select_cc_mode): Likewise.
11997 (rx_split_fp_compare): New.
11998 (rx_split_cbranch): New.
11999 * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
12000 (*cbranchsi4): Use match_operator and rx_split_cbranch.
12001 (*cbranchsf4): Similarly.
12002 (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>. Use
12003 match_operator and rx_split_cbranch.
12004 (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
12005 tstbranchsi4m_ne. Use match_operator and rx_split_cbranch.
12006 (*cmpsi): Rename from cmpsi.
12007 (*tstsi): Rename from tstsi.
12008 (*cmpsf): Rename from cmpsf; use CC_Fmode.
12009 (*conditional_branch): Rename from conditional_branch.
12010 (*reveresed_conditional_branch): Remove.
12011 (b<code>): Remove expander.
12012 * config/rx/rx-protos.h: Update.
12013
af530bb4
RH
12014 * config/rx/rx.c (rx_compare_redundant): Remove.
12015 * config/rx/rx.md (cmpsi): Don't use it.
12016 * config/rx/rx-protos.h: Update.
12017
27bf36f3
RH
12018 * config/rx/rx-modes.def (CC_F): New mode.
12019 * config/rx/rx.c (rx_select_cc_mode): New.
12020 * config/rx/rx.h (SELECT_CC_MODE): Use it.
12021 * config/rx/rx-protos.h: Update.
12022
d7fde127
RH
120232011-01-17 Richard Henderson <rth@redhat.com>
12024
12025 * except.c (dump_eh_tree): Fix stray ; after for statement.
12026
6ff38230
RG
120272011-01-17 Richard Guenther <rguenther@suse.de>
12028
12029 PR tree-optimization/47313
12030 * tree-inline.c (tree_function_versioning): Move DECL_RESULT
12031 handling before copying the body. Properly deal with
12032 by-reference result in SSA form.
12033
114ce554
ILT
120342011-01-17 Ian Lance Taylor <iant@google.com>
12035
bf5cd92b 12036 PR target/47219
114ce554
ILT
12037 * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
12038 (struct_value_alias_set): Don't define.
12039 (sparc_option_override): Don't set sparc_sr_alias_set and
12040 struct_value_alias_set.
12041 (save_or_restore_regs): Use gen_frame_mem rather than calling
12042 set_mem_alias_set.
12043 (sparc_struct_value_rtx): Likewise.
12044
98c6d93c
L
120452011-01-17 H.J. Lu <hongjiu.lu@intel.com>
12046
12047 PR target/47318
7a81008b 12048 * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
98c6d93c
L
12049 (_mm_maskstore_pd): Likewise.
12050 (_mm_maskload_ps): Likewise.
12051 (_mm_maskstore_ps): Likewise.
12052 (_mm256_maskload_pd): Change mask to __m256i.
12053 (_mm256_maskstore_pd): Likewise.
12054 (_mm256_maskload_ps): Likewise.
12055 (_mm256_maskstore_ps): Likewise.
12056
12057 * config/i386/i386-builtin-types.def: Updated.
12058 (ix86_expand_special_args_builtin): Likewise.
12059
12060 * config/i386/i386.c (bdesc_special_args): Update
12061 __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
12062 __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
12063 __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
12064 __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
12065
12066 * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
12067 Use <avxpermvecmode> on mask register.
12068 (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
12069
b9361af2 120702011-01-17 Olivier Hainque <hainque@adacore.com>
61052244
AM
12071 Michael Haubenwallner <michael.haubenwallner@salomon.at>
12072 Eric Botcazou <ebotcazou@adacore.com>
b9361af2
OH
12073
12074 PR target/46655
12075 * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
12076 if <= USHRT_MAX in 32-bit mode.
12077
b7ae9eb5
RW
120782011-01-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12079
12080 * doc/install.texi (Configuration, Specific): Wrap long
12081 lines in examples. Allow line wrapping in long options
12082 and URLs where beneficial for PDF output.
12083
4377fad9
RS
120842011-01-16 Richard Sandiford <rdsandiford@googlemail.com>
12085
12086 * config/mips/mips.c (mips_classify_symbol): Don't return
12087 SYMBOL_PC_RELATIVE for nonlocal labels.
12088
55959ffa 120892011-01-15 Eric Botcazou <ebotcazou@adacore.com>
be46831f 12090
55959ffa
EB
12091 * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
12092
120932011-01-15 Jan Hubicka <jh@suse.cz>
12094
12095 PR tree-optimization/47276
be46831f
JH
12096 * ipa.c (function_and_variable_visibility): Do not try to mark alias
12097 declarations as needed.
12098
05842ff5
MJ
120992011-01-15 Martin Jambor <mjambor@suse.cz>
12100
12101 * common.opt (fdevirtualize): New flag.
12102 * doc/invoke.texi (Option Summary): Document it.
12103 * opts.c (default_options_table): Add devirtualize flag.
12104 * ipa-prop.c (detect_type_change): Return immediately if
12105 devirtualize flag is not set.
12106 (detect_type_change_ssa): Likewise.
12107 (compute_known_type_jump_func): Likewise.
12108 (ipa_analyze_virtual_call_uses): Likewise.
12109
f65cf2b7
MJ
121102011-01-14 Martin Jambor <mjambor@suse.cz>
12111
12112 PR tree-optimization/45934
12113 PR tree-optimization/46302
12114 * ipa-prop.c (type_change_info): New type.
12115 (stmt_may_be_vtbl_ptr_store): New function.
12116 (check_stmt_for_type_change): Likewise.
12117 (detect_type_change): Likewise.
12118 (detect_type_change_ssa): Likewise.
12119 (compute_complex_assign_jump_func): Check for dynamic type change.
12120 (compute_complex_ancestor_jump_func): Likewise.
12121 (compute_known_type_jump_func): Likewise.
12122 (compute_scalar_jump_functions): Likewise.
12123 (ipa_analyze_virtual_call_uses): Likewise.
12124 (ipa_analyze_node): Push and pop cfun, set current_function_decl.
12125
eb5bb0fd
JM
121262011-01-14 Joseph Myers <joseph@codesourcery.com>
12127
12128 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
12129 * config/i386/i386.opt (msse5): New Alias.
12130
f2060fbe
JM
121312011-01-14 Joseph Myers <joseph@codesourcery.com>
12132
12133 * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
12134 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12135 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12136 * config/sparc/sparc.h (CC1_SPEC): Likewise.
12137
3a7b4385
JM
121382011-01-14 Joseph Myers <joseph@codesourcery.com>
12139
12140 * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
12141 -mcpu options.
12142 * config/sparc/linux64.h (CC1_SPEC): Likewise.
12143 * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
12144 * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
12145 * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
12146 Likewise.
12147 * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
12148
a7b778f8
JM
121492011-01-14 Joseph Myers <joseph@codesourcery.com>
12150
38be4072 12151 * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
a7b778f8 12152
a7edae0a
MS
121532011-01-14 Mike Stump <mikestump@comcast.net>
12154
12155 * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
12156 * config/fr30/fr30.md: Likweise
12157 (movsi_push): Likewise.
12158 (movsi_pop): Likewise.
12159 (enter_func): Likewise.
12160 * config/moxie/moxie.md (movsi_push): Likewise.
12161 (movsi_pop): Likewise.
12162
cbabf03f
JM
121632011-01-14 Joseph Myers <joseph@codesourcery.com>
12164
12165 * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
12166 %{no_archive} %{exact_version}.
12167 * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
12168 * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
12169 %{no_archive} %{exact_version}.
12170 * config/mips/openbsd.h (LINK_SPEC): Likewise.
12171 * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
12172 * config/mips/vxworks.h: Likewise.
12173
438da41a
JM
121742011-01-14 Joseph Myers <joseph@codesourcery.com>
12175
38be4072 12176 * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
438da41a 12177
da290a42
JM
121782011-01-14 Joseph Myers <joseph@codesourcery.com>
12179
12180 * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
12181 ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
12182
8989d00e
JM
121832011-01-14 Joseph Myers <joseph@codesourcery.com>
12184
12185 * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
12186 -nodefaultlib.
12187
a3010a69
JM
121882011-01-14 Joseph Myers <joseph@codesourcery.com>
12189
12190 * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
12191 for mcpu not cpu.
12192 * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
12193 CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
12194 not cpu.
12195 (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
12196 Don't handle -shlib.
12197
e7f2f537
JM
121982011-01-14 Joseph Myers <joseph@codesourcery.com>
12199
12200 * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
12201 (CC1_SPEC): Don't handle -profile.
12202
34830bfd
JM
122032011-01-14 Joseph Myers <joseph@codesourcery.com>
12204
12205 * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
12206 * config/mips/mips.h (CC1_SPEC): Likewise.
12207
b2d36e74
JM
122082011-01-14 Joseph Myers <joseph@codesourcery.com>
12209
12210 * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
12211 * config/mips/mips.h (CC1_SPEC): Likewise.
12212
dabadc52
JM
122132011-01-14 Joseph Myers <joseph@codesourcery.com>
12214
12215 * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
12216 * config/m32r/linux.h (LINK_SPEC): Likewise.
12217 * config/mips/linux.h (LINK_SPEC): Likewise.
12218 * config/mips/linux64.h (LINK_SPEC): Likewise.
12219 * config/sparc/linux.h (LINK_SPEC): Likewise.
12220 * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
12221 LINK_SPEC): Likewise.
12222 * config/xtensa/linux.h (LINK_SPEC): Likewise.
12223
43ee6785
JM
122242011-01-14 Joseph Myers <joseph@codesourcery.com>
12225
12226 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
12227 %{version:-v}.
12228 * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
12229
45e79dfd
JM
122302011-01-14 Joseph Myers <joseph@codesourcery.com>
12231
12232 * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
12233 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
12234
37e9e71d
JM
122352011-01-14 Joseph Myers <joseph@codesourcery.com>
12236
12237 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
12238
bb127cd8
RO
122392011-01-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12240
12241 * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
12242 supports -Bstatic/-Bdynamic.
12243 * configure: Regenerate.
12244
89a012ea 122452011-01-14 Jan Hubicka <jh@suse.cz>
509d65dd 12246 Jack Howarth <howarth@bromo.med.uc.edu>
89a012ea
JH
12247
12248 PR target/46037
12249 * config/darwin.c (darwin_override_options): Honor flag_gtoggle
12250 when checking debug_info_level. Test write_symbols instead of
12251 debug_hooks->var_location when setting flag_var_tracking_uninit.
12252
7352c013
RG
122532011-01-14 Richard Guenther <rguenther@suse.de>
12254
12255 PR tree-optimization/47179
12256 * target.def (ref_may_alias_errno): New target hook.
12257 * targhooks.h (default_ref_may_alias_errno): Declare.
12258 * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
12259 (default_ref_may_alias_errno): New function.
12260 * target.h (struct ao_ref_s): Declare.
12261 * tree-ssa-alias.c: Include target.h.
12262 (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
12263 * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
12264 (targhooks.o): Likewise.
12265 * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
12266 * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
12267
9a6c9288
RG
122682011-01-14 Richard Guenther <rguenther@suse.de>
12269
12270 * tree-ssa-structalias.c (new_var_info): Use DECL_HARD_REGISTER.
12271
0fdb0d27
RG
122722011-01-14 Richard Guenther <rguenther@suse.de>
12273
12274 PR tree-optimization/47280
12275 * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
12276 return CFG changes.
12277 (tree_ssa_forward_propagate_single_use_vars): Deal with
12278 CFG changes from associate_plusminus.
12279
8f66db3b
RG
122802011-01-14 Richard Guenther <rguenther@suse.de>
12281
12282 PR middle-end/47281
12283 Revert
12284 2011-01-11 Richard Guenther <rguenther@suse.de>
12285
280d9630
EB
12286 PR tree-optimization/46076
12287 * tree-ssa.c (useless_type_conversion_p): Conversions from
12288 unprototyped to empty argument list function types are useless.
8f66db3b 12289
6c0c92e6
RG
122902011-01-14 Richard Guenther <rguenther@suse.de>
12291
12292 PR tree-optimization/47286
280d9630 12293 * tree-ssa-structalias.c (new_var_info): Register variables are global.
6c0c92e6 12294
db09f943
MJ
122952011-01-14 Martin Jambor <mjambor@suse.cz>
12296
12297 PR middle-end/46823
12298 * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
12299
dde8a3a4
AS
123002011-01-13 Anatoly Sokolov <aesok@post.ru>
12301
12302 * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
12303 LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
12304 * config/xtensa/xtensa.c (xtensa_libcall_value,
12305 xtensa_function_value_regno_p): New functions.
12306 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
12307
a2b63a20
KT
123082011-01-13 Kai Tietz <kai.tietz@onevision.com>
12309
12310 PR c++/47213
12311 * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
12312 PE specific hook.
12313 * config/i386/i386-protos.h (i386_pe_assemble_visibility):
12314 New function prototype.
12315 * config/i386/winnt.c (i386_pe_assemble_visibility):
12316 Warn only if attribute was specified by user.
12317
b41f0b34
MM
123182011-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
12319
12320 PR target/47251
12321 * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
12322 floating point.
12323 (floatunsdidf2_fcfidu): Ditto.
12324
3f3c098d
AK
123252011-01-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12326
12327 * config/s390/s390.c (print_operand_address): Replace 'error' with
12328 'output_operand_lossage'.
12329 (print_operand): Likewise.
12330
29fa95ed
JL
123312011-01-13 Jeff Law <law@redhat.com>
12332
280d9630 12333 PR rtl-optimization/39077
29fa95ed
JL
12334 * doc/invoke.texi (max-gcse-insertion-ratio): Document.
12335 * params.h (MAX_GCSE_INSERTION_RATIO): Define.
12336 * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
12337 * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
12338 * gcse.c (prune_insertions_deletions): New function.
12339 (compute_pre_data): Use it.
12340
71d12276
DS
123412011-01-13 Dodji Seketeli <dodji@redhat.com>
12342
12343 PR debug/PR46973
12344 * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
12345 static function.
61052244 12346 (prune_unused_types_mark): Use it.
71d12276 12347
9b0f04e7
AB
123482011-01-13 Andrey Belevantsev <abel@ispras.ru>
12349
12350 PR rtl-optimization/45352
1c3ba85b 12351 * sel-sched.c: Update copyright years.
9b0f04e7 12352 (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1c3ba85b 12353 in the advancing loop when we have issued issue_rate insns.
9b0f04e7 12354
d6a3e264
RH
123552011-01-12 Richard Henderson <rth@redhat.com>
12356
a49b692a
RH
12357 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
12358 (TARGET_MD_ASM_CLOBBERS): New.
12359
126b1483
RH
12360 * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
12361 (TARGET_DELEGITIMIZE_ADDRESS): New.
12362
f3d9d2e0
RH
12363 * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
12364 (clzsi2, *bsch): New patterns.
12365
d84760c9
RH
12366 * config/mn10300/mn10300.md (INT): New mode iterator.
12367 (*mov<INT>_clr): New pattern, and peep2 to generate it.
12368
ec815d65
RH
12369 * config/mn10300/mn10300.c (mn10300_option_override): Force enable
12370 flag_split_wide_types.
12371
d6a3e264
RH
12372 * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
12373 (mn10300_trampoline_init): Rewrite without a template, an immediate
12374 load and a direct branch.
12375 * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
12376
0f8ab434
AS
123772011-01-12 Anatoly Sokolov <aesok@post.ru>
12378
12379 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12380 * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
12381 * config/s390/s390.c (s390_output_addr_const_extra): Make static.
12382 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12383
d8a24b65
KT
123842011-01-12 Kai Tietz <kai.tietz@onevision.com>
12385
12386 PR debug/47209
12387 * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
12388 of type.
12389
56e22cab
JH
123902011-01-12 Jan Hubicka <jh@suse.cz>
12391
12392 PR driver/47244
12393 * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
12394 (PLUGIN_COND_CLOSE): New macro.
12395 (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
12396
4b18b3c2
RG
123972011-01-12 Richard Guenther <rguenther@suse.de>
12398
12399 PR lto/47259
12400 * lto-streamer-out.c (output_gimple_stmt): Do not wrap
12401 register variables in a MEM_REF.
12402
8e38461c
JM
124032011-01-12 Joseph Myers <joseph@codesourcery.com>
12404
12405 * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
12406 crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
12407 hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
12408 i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
12409 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
12410 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
12411 ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
12412 m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
12413 mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
12414 s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
12415 sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
12416 am33_2.0-*-linux*): Use gnu-user.h before linux.h.
12417 * config/gnu-user.h: New. Copied from linux.h.
12418 (LINUX_TARGET_STARTFILE_SPEC): Rename to
12419 GNU_USER_TARGET_STARTFILE_SPEC.
12420 (LINUX_TARGET_ENDFILE_SPEC): Rename to
12421 GNU_USER_TARGET_ENDFILE_SPEC.
12422 (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
12423 (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
12424 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
12425 LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
12426 CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
12427 UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
12428 BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
12429 BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
12430 LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
12431 TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
12432 * config/arm/linux-eabi.h (CC1_SPEC): Use
12433 GNU_USER_TARGET_CC1_SPEC.
12434 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
12435 (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
12436 (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
12437 * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
12438 LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
12439 LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
12440 CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
12441 LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
12442
a570fc16
RG
124432011-01-12 Richard Guenther <rguenther@suse.de>
12444
12445 PR other/46946
12446 * doc/invoke.texi (ffast-math): Document it is turned on
12447 with -Ofast.
12448
b0223c3e
JH
124492011-01-12 Jan Hubicka <jh@suse.cz>
12450
12451 PR tree-optimization/47233
ca1e00b3
EB
12452 * opts.c (common_handle_option): Disable ipa-reference with profile
12453 feedback.
b0223c3e 12454
1c3ba85b 124552011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
d853ee42
NP
12456
12457 * c-parser.c (c_parser_objc_at_property_declaration): Improved
ca1e00b3
EB
12458 error message.
12459
d853ee42
NP
124602011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
12461
12462 * c-parser.c (c_lex_one_token): Updated and reindented some
12463 comments. No changes in code.
12464
4053a5a0
ILT
124652011-01-11 Ian Lance Taylor <iant@google.com>
12466
12467 * godump.c (go_output_var): Don't output the variable if there is
12468 already a type with the same name.
12469
fa3e04d2
ILT
124702011-01-11 Ian Lance Taylor <iant@google.com>
12471
12472 * godump.c (go_format_type): Don't generate float80.
12473
885fe07c
RH
124742011-01-11 Richard Henderson <rth@redhat.com>
12475
72d6e3c5
RH
12476 * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
12477 declaration. Rewrite for both speed and size.
12478 (mn10300_address_cost_1): Remove.
12479 (mn10300_register_move_cost): New.
12480 (mn10300_memory_move_cost): New.
12481 (mn10300_rtx_costs): Rewrite for both speed and size. Don't handle
12482 ZERO_EXTRACT. Do handle UNSPEC, arithmetic, logicals, compare,
12483 extensions, shifts, BSWAP, CLZ.
12484 (mn10300_wide_const_load_uses_clr): Remove.
12485 (TARGET_REGISTER_MOVE_COST): New.
12486 (TARGET_MEMORY_MOVE_COST): New.
12487 * config/mn10300/mn10300-protos.h: Update.
12488 * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
12489
df37c023
RH
12490 * config/mn10300/constraints.md ("R", "T"): Remove constraints.
12491 * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
12492 * config/mn10300/mn10300-protos.h: Update.
12493 * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
12494 (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
12495 (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
12496 (*test_int_bitfield, *test_byte_bitfield): Remove.
12497 (*bit_test, *subreg_bit_test): Remove.
62d3f9b2 12498 * config/mn10300/predicates.md (const_8bit_operand): Remove.
df37c023 12499
85a337b5
RH
12500 * config/mn10300/constraints.md ("c"): Rename from "A".
12501 ("A", "D"): New constraint letters.
12502 * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
12503 (fmssf4, fnmasf4, fnmssf4): Likewise.
12504
a5c727e3
RH
12505 * config/mn10300/mn10300.md (isa): New attribute.
12506 (enabled): New attribute.
12507
0d9e23f4
RH
12508 * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
12509 (abssf2, negsf2): Define only for hardware fp.
12510 (sqrtsf2): Reformat.
12511 (addsf3, subsf3, mulsf3): Merge expander and insn.
12512
c157b3f0
RH
12513 * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
12514 (DEBUGGER_AUTO_OFFSET): Remove.
12515 (DEBUGGER_ARG_OFFSET): Remove.
12516
cc909bba
RH
12517 * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
12518 Emit register stores with the same offsets as the hardware.
12519 (mn10300_store_multiple_operation): Don't check that the register
12520 save offsets are monotonic.
12521 * config/mn10300/mn10300-protos.h: Update.
12522
e3b5c2f3
RH
12523 * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
12524
885fe07c
RH
12525 * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
12526 in terms of the value on the stack, not the MDR register.
12527
6e701822
JH
125282011-01-11 Jan Hubicka <jh@suse.cz>
12529
12530 PR lto/45721
12531 PR lto/45375
12532 * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
12533 (symbol_alias_set_destroy, symbol_alias_set_contains,
12534 propagate_aliases_backward): Declare.
12535 * lto-streamer-out.c (struct sets): New sturcture.
12536 (trivally_defined_alias): New function.
12537 (output_alias_pair_p): Rewrite.
12538 (output_unreferenced_globals): Fix output of alias pairs.
12539 (produce_symtab): Likewise.
12540 * ipa.c (function_and_variable_visibility): Set weak alias destination
12541 as needed in lto.
12542 * varasm.c (symbol_alias_set_t): Remove.
12543 (symbol_alias_set_destroy): Export.
12544 (propagate_aliases_forward, propagate_aliases_backward): New functions
12545 based on ...
12546 (compute_visible_aliases): ... this one; remove.
12547 (trivially_visible_alias): New
12548 (trivially_defined_alias): New.
12549 (remove_unreachable_alias_pairs): Rewrite.
12550 (finish_aliases_1): Reorganize code checking if alias is defined.
12551 * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
12552 in LTO mode.
12553
1b248907
RG
125542011-01-11 Richard Guenther <rguenther@suse.de>
12555
12556 PR tree-optimization/46076
12557 * tree-ssa.c (useless_type_conversion_p): Conversions from
12558 unprototyped to empty argument list function types are useless.
12559
b1923f0a
RG
125602011-01-11 Richard Guenther <rguenther@suse.de>
12561
12562 PR middle-end/45235
12563 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
12564 volatile MEMs as MEM_READONLY_P.
12565
e98965af
RG
125662011-01-11 Richard Guenther <rguenther@suse.de>
12567
12568 PR tree-optimization/47239
12569 * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
12570
9f9ca914
JL
125712011-01-11 Jeff Law <law@redhat.com>
12572
1ee3ea05 12573 PR tree-optimization/47086
9f9ca914
JL
12574 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
12575 IVs from statements that might throw.
12576
345fdcb7
JH
125772011-01-10 Jan Hubicka <jh@suse.cz>
12578
12579 PR lto/45375
12580 * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
12581
c459c97b
JH
125822011-01-10 Jan Hubicka <jh@suse.cz>
12583
12584 PR lto/45375
12585 * profile.c (read_profile_edge_counts): Ignore profile inconistency
12586 when correcting profile.
12587
06c9eb51
JH
125882011-01-10 Jan Hubicka <jh@suse.cz>
12589
12590 PR lto/46083
12591 * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
12592 DECL_FINI_PRIORITY.
12593 * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
12594 Restore DECL_FINI_PRIORITY.
12595
ae9fd815
RW
125962011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12597
12598 * doc/gimple.texi: Fix quoting of multi-word return values in
12599 @deftypefn statements. Ensure presence of return value. Wrap
12600 overlong @deftypefn lines.
12601 (is_gimple_operand, is_gimple_min_invariant_address): Remove
12602 descriptions of removed functions.
12603 * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
12604 of multi-word return value in @deftypefn statement.
12605
0ecb4a7c
RW
126062011-01-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12607
12608 * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
12609 (Conditional Expressions, Logical Operators)
12610 (Statement and operand traversals): Do not indent smallexample
12611 code. Fix duplicate function argument in example.
12612
2e5e346d
JL
126132011-01-10 Jeff Law <law@redhat.com>
12614
1ee3ea05 12615 PR tree-optimization/47141
2e5e346d
JL
12616 * ipa-split.c (split_function): Handle case where we are
12617 returning a value and the return block has a virtual operand phi.
12618
cf9712cc
JH
126192011-01-10 Jan Hubicka <jh@suse.cz>
12620
1c3ba85b 12621 PR tree-optimization/47234
cf9712cc
JH
12622 * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
12623 (pass_feedback_split_functions): Declare.
12624 * passes.c (init_optimization_passes): Add ipa-split as subpass of
12625 tree-profile.
12626 * ipa-split.c (gate_split_functions): Update comments; disable
12627 split-functions for profile_arc_flag and branch_probabilities.
12628 (gate_feedback_split_functions): New function.
12629 (execute_feedback_split_functions): New function.
12630 (pass_feedback_split_functions): New global var.
12631
94cd932c
L
126322011-01-10 H.J. Lu <hongjiu.lu@intel.com>
12633
12634 PR lto/46760
12635 * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
12636 calling gimple_call_set_cannot_inline.
12637
fbbfcaf1
IS
126382011-01-10 Iain Sandoe <iains@gcc.gnu.org>
12639
12640 * config/darwin-sections.def: Remove unused section.
12641
d06865bf
DK
126422011-01-10 Dave Korn <dave.korn.cygwin@gmail.com>
12643
12644 PR c++/47218
12645 * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
12646
96bbfbac
NP
126472011-01-09 Nicola Pero <nicola.pero@meta-innovation.com>
12648
12649 PR objc/47232
12650 * c-parser.c (c_parser_declaration_or_fndef): Improved
12651 error message.
12652
1ba6516f
KT
126532011-01-09 Kai Tietz <kai.tietz@onevision.com>
12654
12655 * config/i386/winnt.c (i386_pe_start_function): Make sure
12656 to switch back to function's section.
12657
0c5d770e
IS
126582011-01-09 Iain Sandoe <iains@gcc.gnu.org>
12659
12660 PR gcc/46902
12661 PR testsuite/46912
12662 * plugin.c: Move include of dlfcn.h from here...
12663 * system.h: ... to here.
12664
126652011-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4ee1aa2a
RW
12666
12667 * doc/cpp.texi (C++ Named Operators): Fix markup for header
12668 file name.
12669 * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
12670 two extra empty pages in PDF output.
12671
046608a3
NP
126722011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
12673
12674 PR objc/47078
12675 * c-parser.c (c_parser_objc_type_name): If the type is unknown,
12676 for error recovery purposes behave as if it was not specified so
12677 that the default type is usd.
12678
8cb114b9
JH
126792011-01-07 Jan Hubicka <jh@suse.cz>
12680
12681 PR tree-optmization/46469
12682 * ipa.c (function_and_variable_visibility): Clear needed flags on
12683 nodes with external decls; handle weakrefs merging correctly.
12684
b294a75e
JM
126852011-01-07 Joseph Myers <joseph@codesourcery.com>
12686
12687 * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
12688 not false.
12689
96bdf9b4
JH
126902011-01-07 Jan Hubicka <jh@suse.cz>
12691
f60c2554 12692 * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
96bdf9b4
JH
12693 and no longer claim that gold is required for linker plugin.
12694 * configure: Regenerate.
12695 * gcc.c (PLUGIN_COND): New macro.
12696 (LINK_COMMAND_SPEC): Use it.
12697 (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
12698 * config.in (HAVE_LTO_PLUGIN): New.
12699 * configure.ac (--with-lto-plugin): New parameter; autodetect
12700 HAVE_LTO_PLUGIN.
12701
17afc0fe
JH
127022011-01-07 Jan Hubicka <jh@suse.cz>
12703
12704 PR tree-optimization/46367
12705 * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
12706 when we can update original.
12707 (cgraph_mark_inline_edge): Sanity check.
12708 * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
12709
d4c48c0f
UW
127102011-01-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12711
12712 * config/spu/spu.h (ASM_COMMENT_START): Define.
12713
96f5b137
L
127142011-01-07 H.J. Lu <hongjiu.lu@intel.com>
12715
12716 PR driver/42445
12717 * gcc.c (%>S): New.
12718 (SWITCH_KEEP_FOR_GCC): Likewise.
12719 (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
12720 (do_spec_1): Handle "%>".
12721
12722 * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
12723
c6a8f6de
JJ
127242011-01-07 Jakub Jelinek <jakub@redhat.com>
12725
c21bbd7a
JJ
12726 PR target/47201
12727 * config/i386/i386.c (ix86_delegitimize_address): If
12728 simplify_gen_subreg fails, return orig_x.
12729
c6a8f6de
JJ
12730 PR bootstrap/47187
12731 * value-prof.c (gimple_stringop_fixed_value): Handle
12732 lhs of the call properly.
12733
fe95fbf9
JH
127342011-01-07 Jan Hubicka <jh@suse.cz>
12735
12736 PR lto/45375
12737 * lto-opt.c (lto_reissue_options): Set flag_shlib.
12738
14d11d40
IS
127392011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12740
72e961c8
EB
12741 * target.def (function_switched_text_sections): New hook.
12742 * doc/tm.texi: Regenerated.
12743 * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12744 * final.c (default_function_switched_text_sections): New.
72e961c8
EB
12745 (final_scan_insn): Call function_switched_text_sections when a
12746 mid-function section change occurs.
14d11d40 12747 * output.h (default_function_switched_text_sections): Declare.
72e961c8
EB
12748 * config/darwin-protos.h (darwin_function_switched_text_sections):
12749 Likewise.
14d11d40 12750 * config/darwin.c (darwin_function_switched_text_sections): New.
72e961c8 12751 * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
14d11d40 12752
0b764288
IS
127532011-01-07 Iain Sandoe <iains@gcc.gnu.org>
12754
12755 * dwarf2out.c (gen_subprogram_die): Add pubnames with code ranges for
12756 DWARF >= 3. Add pubnames for the primary section and a reduced DIE for
12757 the secondary code fragment when outputting for DWARF == 2.
12758
2ac6bb04
AS
127592011-01-07 Anatoly Sokolov <aesok@post.ru>
12760
12761 * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
12762 * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
12763 Remove.
12764 * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
12765 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
12766
9f82de11
EB
127672011-01-06 Eric Botcazou <ebotcazou@adacore.com>
12768
12769 PR debug/46704
280d9630
EB
12770 * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
12771 when it is not empty.
9f82de11
EB
12772
127732011-01-06 Changpeng Fang <changpeng.fang@amd.com>
14b52538 12774
1ed72abf 12775 Bobcat Enablement
14b52538 12776 * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1ed72abf 12777 (case ${target}): Add btver1.
14b52538 12778 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1ed72abf 12779 -march=native recognize btver1 processors.
14b52538 12780 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1ed72abf 12781 btver1 def_and_undef
14b52538 12782 * config/i386/i386.c (struct processor_costs btver1_cost): New
1ed72abf
CF
12783 btver1 cost table.
12784 (m_BTVER1): New definition.
12785 (m_AMD_MULTIPLE): Includes m_BTVER1.
12786 (initial_ix86_tune_features): Add btver1 tune.
12787 (processor_target_table): Add btver1 entry.
12788 (static const char *const cpu_names): Add btver1 entry.
12789 (software_prefetching_beneficial_p): Add btver1.
12790 (ix86_option_override_internal): Add btver1 instruction sets.
12791 (ix86_issue_rate): Add btver1.
12792 (ix86_adjust_cost): Add btver1.
14b52538 12793 * config/i386/i386.h (TARGET_BTVER1): New definition.
1ed72abf
CF
12794 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
12795 (enum processor_type): Add PROCESSOR_BTVER1.
14b52538
CF
12796 * config/i386/i386.md (define_attr "cpu"): Add btver1.
12797
e1a973d8
RO
127982011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12799
12800 PR target/43309
12801 * config/i386/i386.c (legitimize_tls_address)
12802 <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
12803 * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
12804 (tls_initial_exec_64_sun): New pattern.
12805
c73f67c5
GP
128062011-01-06 Gerald Pfeifer <gerald@pfeifer.com>
12807
12808 * doc/invoke.texi (Overall Options): Improve wording and markup
12809 of the description of -wrapper.
12810
bc4c6f9c
JM
128112011-01-06 Joseph Myers <joseph@codesourcery.com>
12812
12813 * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
12814 rdynamic, threads): New Driver options.
12815
adb75db0
RO
128162011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12817
12818 PR target/38118
12819 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
12820 if coming from .tdata.
12821 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
12822
402c1cb4
JH
128232011-01-06 Jan Hubicka <jh@suse.cz>
12824
12825 PR lto/47188
12826 * collect2.c (main): Do not enable LTOmode when plugin is active.
12827
a4da6485
RO
128282011-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12829
12830 PR other/45915
12831 * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
12832 --version output if supported.
12833 * configure: Regenerate.
12834
028dbdf4
JM
128352011-01-06 Joseph Myers <joseph@codesourcery.com>
12836
12837 * config/linux-android.opt (tno-android-cc, tno-android-ld): New
12838 Driver options.
12839
dfe776dd
JJ
128402011-01-06 Jakub Jelinek <jakub@redhat.com>
12841
12842 PR c/47150
12843 * c-convert.c (convert): When converting a complex expression
12844 other than COMPLEX_EXPR to a different complex type, ensure
12845 c_save_expr is called instead of save_expr, unless in_late_binary_op.
12846 * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
12847 when converting COMPLEX_TYPE.
12848
210dedfe
IR
128492011-01-06 Ira Rosen <irar@il.ibm.com>
12850
12851 PR tree-optimization/47139
12852 * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
12853 only the last reduction value is used outside the loop. Update
12854 documentation.
12855
cd33a412
JM
128562011-01-05 Joseph Myers <joseph@codesourcery.com>
12857
12858 * config/rtems.opt: New.
12859 * config.gcc (*-*-rtems*): Use rtems.opt.
12860
819edd94
CF
128612011-01-05 Changpeng Fang <changpeng.fang@amd.com>
12862
12863 * config/i386/i386.c (ix86_option_override_internal): Bulldozer
12864 processors do not support 3DNow instructions.
12865
dc242c4a
UW
128662011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12867
12868 * config/spu/spu.c (spu_option_override): Set parameter
12869 PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
12870
be286227
JH
128712011-01-05 Jan Hubicka <jh@suse.cz>
12872
12873 * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
12874 at the command line.
12875
644e637f
MJ
128762011-01-05 Martin Jambor <mjambor@suse.cz>
12877
12878 PR lto/47162
12879 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
12880 deltas on streamed outgoing edges.
12881 (output_node_opt_summary): Output info for outgoing edges only when
12882 the node is in new parameter set.
12883 (output_cgraph_opt_summary): New parameter set, passed to the two
12884 aforementioned functions. Update its forward declaration and its
12885 callee too.
12886
7bd11157
TT
128872011-01-05 Tom Tromey <tromey@redhat.com>
12888
12889 * c-parser.c (c_parser_omp_atomic): Pass location of assignment
12890 operator to c_finish_omp_atomic.
12891 * c-typeck.c (lvalue_or_else): Add 'loc' argument.
12892 (build_unary_op): Update.
12893 (build_modify_expr): Update.
12894 (build_asm_expr): Update.
12895
f626b979
UW
128962011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12897
12898 * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
12899 newly inserted insns.
12900 (pad_bb): Likewise.
12901 (spu_emit_branch_hint): Likewise.
12902 (insert_hbrp_for_ilb_runout): Likewise.
12903 (spu_machine_dependent_reorg): Call df_finish_pass after
12904 schedule_insns returns.
12905
4c825c02
UW
129062011-01-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12907
12908 * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
12909
5e9fba51
EB
129102011-01-05 Eric Botcazou <ebotcazou@adacore.com>
12911
12912 PR tree-optimization/47005
12913 * tree-sra.c (struct access): Add 'non_addressable' bit.
12914 (create_access): Set it for a DECL_NONADDRESSABLE_P field.
12915 (decide_one_param_reduction): Return 0 if the parameter is passed by
12916 reference and one of the accesses in the group is non_addressable.
12917
3ebb5ca6
EB
129182011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12919
12920 PR tree-optimization/47056
12921 * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
12922 (mark_load): Likewise. Handle FUNCTION_DECL specially.
12923 (mark_store): Likewise. Pass STMT to ipa_record_reference.
12924
d5d4d14e
EB
129252011-01-04 Eric Botcazou <ebotcazou@adacore.com>
12926
12927 * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
12928 initializer. Skip view conversions from aggregate types.
12929
d996ef70
KT
129302011-01-04 Kai Tietz <kai.tietz@onevision.com>
12931
12932 PR bootstrap/47055
12933 * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
12934
509d65dd 129352011-01-04 Philipp Thomas <pth@suse.de>
017096ca
PT
12936
12937 * config/microblaze/microbalse.opt (mxl-float-convert): Fix
12938 obvious typo.
12939
55c623b5
UW
129402011-01-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12941
12942 * function.c (thread_prologue_and_epilogue_insns): Do not crash
12943 on empty epilogue sequences.
12944
b98d6b35
JM
129452011-01-04 Joseph Myers <joseph@codesourcery.com>
12946
12947 * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
12948 non-static): New Driver options.
12949
a0d43bac
JZ
129502011-01-04 Jie Zhang <jie@codesourcery.com>
12951
12952 PR driver/47137
12953 * gcc.c (default_compilers[]): Set combinable field to 0
12954 for all assembly languages.
12955
2b18eb32
MX
129562011-01-04 Mingjie Xing <mingjie.xing@gmail.com>
12957
12958 * config/mips/loongson3a.md: New file.
12959 * config/mips/mips.md: Include loongson3a.md.
12960 * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
12961 TUNE_LOONGSON_3A.
12962
42a48c4f
EB
129632011-01-03 Eric Botcazou <ebotcazou@adacore.com>
12964
12965 PR middle-end/47017
12966 * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
12967 instead of convert_memory_address_addr_space on the base expression.
12968
9c1732c4
UW
129692011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12970
12971 * config/spu/spu.c (spu_option_override): Update error text
12972 for bad -march= / -mtune= values.
12973
aa474365
UW
129742011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12975
12976 * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
12977 if branch-hint optimization will be performed.
12978
9766135b
JJ
129792011-01-03 Jakub Jelinek <jakub@redhat.com>
12980
371556ee
JJ
12981 PR tree-optimization/47148
12982 * ipa-split.c (split_function): Convert arguments to
12983 DECL_ARG_TYPE if possible.
12984
1ac12fa2
JJ
12985 PR tree-optimization/47155
12986 * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
12987 when computing uns.
12988
9766135b
JJ
12989 PR rtl-optimization/47157
12990 * combine.c (try_combine): If undobuf.other_insn becomes
12991 (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
12992 and set *new_direct_jump_p too.
12993
f4a2e571
SP
129942011-01-03 Sebastian Pop <sebastian.pop@amd.com>
12995
12996 PR tree-optimization/47021
12997 * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
12998
9f8e43c0
JJ
129992011-01-03 Jakub Jelinek <jakub@redhat.com>
13000
13001 * gcc.c (process_command): Update copyright notice dates.
13002 * gcov.c (print_version): Likewise.
13003 * gcov-dump.c (print_version): Likewise.
13004 * mips-tfile.c (main): Likewise.
13005 * mips-tdump.c (main): Likewise.
13006
1a2e38f3
MJ
130072011-01-03 Martin Jambor <mjambor@suse.cz>
13008
13009 PR tree-optimization/46801
13010 * tree-sra.c (type_internals_preclude_sra_p): Check whether
13011 aggregate fields start at byte boundary instead of the bit-field flag.
13012
56b721c5
L
130132011-01-03 H.J. Lu <hongjiu.lu@intel.com>
13014
13015 PR driver/47137
13016 * gcc.c (main): Revert revision 168407.
13017
839d549b
MJ
130182011-01-03 Martin Jambor <mjambor@suse.cz>
13019
13020 * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
13021
4ce99a20 130222011-01-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2fa6eeff
UW
13023
13024 * tree-vect-generic.c (expand_vector_operations_1): When using vector/
13025 vector optab to expand vector/scalar shift, update gimple to vector.
13026
76df0ae6
MJ
130272011-01-03 Martin Jambor <mjambor@suse.cz>
13028
13029 * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
13030 a thunk.
13031
ce47fda3
MJ
130322011-01-03 Martin Jambor <mjambor@suse.cz>
13033
13034 PR tree-optimization/46984
13035 * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
13036 HOST_WIDE_INT.
13037 (cgraph_create_indirect_edge): Fixed line length.
13038 (cgraph_indirect_call_info): Declare.
13039 (cgraph_make_edge_direct) Update declaration.
13040 * cgraph.c (cgraph_allocate_init_indirect_info): New function.
13041 (cgraph_create_indirect_edge): Use it.
13042 (cgraph_make_edge_direct): Made delta HOST_WIDE_INT. Updated all
13043 callees.
13044 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
13045 the new thunk_delta representation.
13046 * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
13047 HOST_WIDE_INT.
13048 (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
13049 (ipa_read_indirect_edge_info): Likewise.
13050 * lto-cgraph.c (output_edge_opt_summary): New function.
13051 (output_node_opt_summary): Call it on all outgoing edges.
13052 (input_edge_opt_summary): New function.
13053 (input_node_opt_summary): Call it on all outgoing edges.
13054
1e67fa1f
L
130552011-01-02 H.J. Lu <hongjiu.lu@intel.com>
13056
13057 PR driver/47137
13058 * gcc.c (main): Don't check have_o when settting combine_inputs.
13059
6656b2ac
EB
130602011-01-02 Eric Botcazou <ebotcazou@adacore.com>
13061
13062 * regrename.c: Add general comment describing the pass.
13063 (struct du_head): Remove 'length' field.
13064 (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
13065 (regrename_optimize): Do not sort chains. Rework comments, add others.
13066 Force renaming to the preferred class (if any) in the first pass and do
13067 not consider registers that belong to it in the second pass.
13068 (create_new_chain): Do not set 'length' field.
13069 (scan_rtx_reg): Likewise.
13070
bc470c24
JJ
130712011-01-02 Jakub Jelinek <jakub@redhat.com>
13072
4e996296
JJ
13073 PR tree-optimization/47140
13074 * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
13075 TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
13076 to bit_value_binop.
13077
bc470c24 13078 PR rtl-optimization/47028
6656b2ac
EB
13079 * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
13080 parm_birth_insn instead of at the beginning of first bb.
bc470c24 13081
5af62fcd 130822011-01-02 Mingjie Xing <mingjie.xing@gmail.com>
0d52f2a8
MX
13083
13084 * doc/generic.texi: Remove duplicated "@subsubsection Statements".
13085 Remove the word "see" before "@pxref".
13086 * doc/rtl.texi: Remove the word "see" before "@pxref".
13087
0e20c89f
JH
130882011-01-01 Jan Hubicka <jh@suse.cz>
13089
6656b2ac
EB
13090 * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
13091 memory.
0e20c89f 13092
220e83ca
KT
130932011-01-01 Kai Tietz <kai.tietz@onevision.com>
13094
13095 PR target/38662
6656b2ac 13096 * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
220e83ca 13097
ad41bd84 13098\f
797103eb 13099Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
13100
13101Copying and distribution of this file, with or without modification,
13102are permitted in any medium without royalty provided the copyright
13103notice and this notice are preserved.
This page took 4.027719 seconds and 5 git commands to generate.