]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
ggc-page.c (struct free_object): Pull definition out ...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
9957322d
DK
12009-12-03 Dave Korn <dave.korn.cygwin@gmail.com>
2
3 * ggc-page.c (struct free_object): Pull definition out ...
4 (struct globals): .. from here.
5
793e86a7
RG
62009-12-02 Richard Guenther <rguenther@suse.de>
7
8 * fold-const.c (div_if_zero_remainder): Honor that sizetypes
9 are sign-extending. Simplify.
10
fc81a369
RH
112009-12-02 Richard Henderson <rth@redhat.com>
12
13 PR tree-opt/42215
14 * tree-loop-distribution.c (build_size_arg_loc): Tidy.
15 (generate_memset_zero): Convert to sizetype properly. Tidy.
16
57e37d26
RG
172009-12-02 Richard Guenther <rguenther@suse.de>
18
19 * lto-streamer-out.c (pack_ts_decl_common_value_fields):
20 Do not pretend we have value exprs.
21
8e281a8d
RG
222009-12-02 Richard Guenther <rguenther@suse.de>
23
24 PR middle-end/41491
25 * fold-const.c (try_move_mult_to_index): Do not leak
26 domain types into the IL.
27
a881cad6
RG
282009-12-02 Richard Guenther <rguenther@suse.de>
29
30 PR middle-end/42088
31 * tree.c (free_lang_data): Disable if not using LTO.
32
2f697bc4
RG
332009-12-02 Richard Guenther <rguenther@suse.de>
34
35 PR middle-end/42229
36 * cfgloopmanip.c (remove_path): Avoid cancelling loops
37 twice.
38
368a05d5
UW
392009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
40
41 PR middle-end/42224
42 * tree.h (int_or_pointer_precision): Remove.
43 * tree.c (int_or_pointer_precision): Remove.
44 (integer_pow2p): Use TYPE_PRECISION instead.
45 (tree_log2): Likewise.
46 (tree_floor_log2): Likewise.
47 (signed_or_unsigned_type_for): Likewise.
48 * fold-const.c (fit_double_type): Likewise.
49 * varasm.c (initializer_constant_valid_p): Likewise.
50
ca0b0bf8
IR
512009-12-02 Ira Rosen <irar@il.ibm.com>
52
53 * doc/invoke.texi (-fdump-tree-slp): Document.
54 (-ftree-vectorizer-verbose): Update.
55 (-ftree-slp-vectorize): Document.
56
dafcb54e
NC
572009-12-02 Nick Clifton <nickc@redhat.com>
58
59 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if
60 no fixed registers are available for interrupt handlers. Do not
61 fix normal registers.
62 (MUST_SAVE_ACC_REGISTER): New macro.
63 (rx_get_stack_layout): Create a stack frame for fast interrupt
64 handlers, if necessary. Push extra registers if needed in order
65 to save the accumulator.
66 (rx_expand_prologue): Create a stack frame for fast interrupt
67 handlers, if necessary.
68 (rx_expand_builtin_mvfc): Handle the case where there is no
69 target.
70
ab0e4a35
SP
712009-12-01 Sebastian Pop <sebastian.pop@amd.com>
72
73 * config/i386/abmintrin.h (__lzcnt16): New.
74 (__lzcnt): New.
75 (__lzcnt64): New.
76 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New.
77 * config/i386/i386.c (IX86_BUILTIN_CLZS): New.
78 (bdesc_special_args): Add __builtin_clzs.
79 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16.
80
6a72cb46
SP
812009-12-01 Sebastian Pop <sebastian.pop@amd.com>
82
83 * config/i386/abmintrin.h (_mm_popcnt_u32): New.
84 (_mm_popcnt_u64): New.
85
13c0eb43
SP
862009-12-01 Sebastian Pop <sebastian.pop@amd.com>
87
88 * config/i386/abmintrin.h: New.
89 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__.
90 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined.
91
79564f1e
UB
922009-12-01 Uros Bizjak <ubizjak@gmail.com>
93
94 * config/i386/i386.md (SWI124): Rename from CRC32MODE.
95 (crc32modesuffix): Remove.
96 (crc32modeconstraint): Ditto.
97 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use
98 imodesuffix instead of crc32modesuffix and <r>m instead of
99 crc32modeconstraint.
100
4f2eb765
JJ
1012009-12-01 Jakub Jelinek <jakub@redhat.com>
102
103 PR c++/42234
104 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb
105 contains no statements.
106
090fa0ab
GF
1072009-12-01 Grigori Fursin <grigori.fursin@inria.fr>
108 Joern Rennecke <amylaar@spamcop.net>
109
110 * cgraphunit.c (plugin.h): Include.
111 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START /
112 PLUGIN_ALL_IPA_PASSES_END at start / end of processing.
113 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include.
114 (enum plugin_event): Define by including plugin.def.
115 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC.
116 (plugin_event_name): Change type to const char **.
117 (get_event_last, get_named_event_id, unregister_callback): Declare.
118 (register_callback): Change type of event argument to int.
119 (highlev-plugin-common.h): New file.
120 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and
121 $(HASHTAB_H)
122 (tree-optimize.o passes.o): Depend on $(PLUGIN_H).
123 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def.
124 (s-header-vars): New rule.
125 (install-plugin): Depend on s-header-vars. Install b-header-vars.
126 * params.c (get_num_compiler_params): New function.
127 * params.h (get_num_compiler_params): Declare.
128 * passes.c (plugin.h): Include.
129 (make_pass_instance): Invoke PLUGIN_NEW_PASS.
130 (do_per_function_toporder, pass_init_dump_file): No longer static.
131 (pass_fini_dump_file): Likewise.
132 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and
133 PLUGIN_PASS_EXECUTION.
134 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and
135 PLUGIN_EARLY_GIMPLE_PASSES_END.
136 * plugin.c (plugin_event_name_init): New array, defined by
137 including plugin.def.
138 (FMT_FOR_PLUGIN_EVENT): Update.
139 (plugin_event_name): Change type to const char ** and initialize
140 to plugin_event_name_init.
141 (event_tab, event_last, event_horizon): New variable.
142 (get_event_last): New function.
143 (plugin_callbacks_init): New array.
144 (plugin_callbacks: Change type to struct callback_info **.
145 Initialize to plugin_callbacks_init.
146 (htab_event_eq, get_named_event_id, unregister_callback): New function.
147 (invoke_plugin_va_callbacks): Likewise.
148 (register_callback): Change type of event argument to int.
149 Handle new events. Allow dynamic events.
150 (invoke_plugin_callbacks): Likewise. Return success status.
151 (plugins_active_p): Allow dynamic callbacks.
152 * plugin.def: New file.
153 * plugin.h (invoke_plugin_callbacks): Update prototype.
154 (invoke_plugin_va_callbacks): Declare.
155 * tree-optimize.c (plugin.h): Include.
156 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and
157 PLUGIN_ALL_PASSES_END.
158 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare.
159 (pass_fini_dump_file, do_per_function_toporder): Likewise.
160 * doc/plugin.texi: Document new event types.
161
d557591d
MJ
1622009-12-01 Martin Jambor <mjambor@suse.cz>
163
164 PR tree-optimization/42237
165 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments
166 in between references into two.
167
ee0192a2
RG
1682009-12-01 Richard Guenther <rguenther@suse.de>
169
170 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK
171 to the block of the call when remapping a type.
172
6009ee7b
MJ
1732009-12-01 Martin Jambor <mjambor@suse.cz>
174
79564f1e 175 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest
6009ee7b
MJ
176 unsigned short int.
177 * ipa-prop.h (struct ipa_param_call_note): Likewise.
178 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest.
179
c7ba0cfb
RG
1802009-12-01 Richard Guenther <rguenther@suse.de>
181
182 * final.c (rest_of_clean_state): If -fcompare-debug is
183 given dump final insns without UIDs.
184 * tree-ssa-live.c (remove_unused_scope_block_p): Remove
185 after_inlining checks.
186
b5290908
CF
1872009-11-30 Chao-ying Fu <fu@mips.com>
188
189 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
190
f7e413e2
DK
1912009-11-30 Dave Korn <dave.korn.cygwin@gmail.com>
192
193 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
194 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
195 * configure: Regenerate.
196 * config.in: Regenerate.
197
198 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
199 options for Cygwin DLL libstdc++ support wrappers.
200 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
201 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
202 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
203 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
204 (LINK_SPEC): Include CXX_WRAP_SPEC.
205 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
206 (i386_find_on_wrapper_list): Check if a function is found on the list
207 of libstdc++ wrapper options.
208 (i386_pe_file_end): If we are importing a wrapped function, also emit
209 an external declaration for the real version.
210 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
211 Cygwin targets. Update copyright year.
212
f7ce0951
SE
2132009-11-30 Steve Ellcey <sje@cup.hp.com>
214 Jakub Jelinek <jakub@redhat.com>
215
216 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
217 before forcing mode.
218
d64728cf
AS
2192009-11-30 Anatoly Sokolov <aesok@post.ru>
220
221 * config/sh/sh.c (sh_promote_prototypes): Make static.
222 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
223 functions.
224 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
225 * config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
226 sh_function_value_regno_p.
227 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
228 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
229 (sh_promote_prototypes) : Remove.
230
12d210d9
JB
2312009-11-30 Julian Brown <julian@codesourcery.com>
232
233 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
234 reloads to LO_REGS.
235
5e04b3b6
RH
2362009-11-30 Richard Henderson <rth@redhat.com>
237
238 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
239 (bdesc_special_args): Update insn codes.
240 (avx_vpermilp_parallel): Correct range check.
241 (ix86_rtx_costs): Handle vector permutation rtx codes.
242 (struct expand_vec_perm_d): Move earlier.
243 (get_mode_wider_vector): New.
244 (expand_vec_perm_broadcast_1): New.
245 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes.
246 (expand_vec_perm_broadcast): New.
247 (ix86_expand_vec_perm_builtin_1): Use it.
248 * config/i386/i386-protos.h: Update.
249 * config/i386/predicates.md (avx_vbroadcast_operand): New.
250 * config/i386/sse.md (AVX256MODE24P): New.
251 (ssescalarmodesuffix2s): New.
252 (avxhalfvecmode, avxscalarmode): Fill out to all modes.
253 (avxmodesuffixf2c): Add V8SI, V4DI.
254 (vec_dupv4sf): New expander.
255 (*vec_dupv4sf_avx): Add vbroadcastss alternative.
256 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
257 V4SF and V4SI. Move C alternatives to front. Add insertps and
258 pinsrd alternatives.
259 (*vec_set<mode>_0_sse2): Split out from ...
260 (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
261 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
262 destination; use ix86_vec_interleave_v2df_operator_ok, instead of
263 ix86_fixup_binary_operands.
264 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
265 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
266 (*avx_movddup, *sse3_movddup): Remove. New splitter from
267 vec_select form to vec_duplicate form.
268 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
269 ix86_vec_interleave_v2df_operator_ok.
79564f1e 270 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ...
5e04b3b6
RH
271 (*avx_unpcklpd256): ... here.
272 (*vec_dupv4si_avx): New.
273 (*vec_dupv2di_avx): Add movddup alternative.
274 (*vec_dupv2di_sse3): New.
275 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
79564f1e 276 avx_vbroadcastss256; represent with vec_duplicate instead of
5e04b3b6
RH
277 nested vec_concat operations.
278 (avx_vbroadcastf128_<mode>): Rename from
279 avx_vbroadcastf128_p<avxmodesuffixf2c>256.
280 (*avx_vperm_broadcast_v4sf): New.
281 (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
282
9fda11a2
MJ
2832009-11-30 Martin Jambor <mjambor@suse.cz>
284
285 PR middle-end/42196
286 * tree-sra.c (struct access): New field grp_different_types.
287 (dump_access): Dump grp_different_types.
288 (compare_access_positions): Prefer scalars and vectors over other
289 scalar types.
290 (sort_and_splice_var_accesses): Set grp_different_types if appropriate.
291 (sra_modify_expr): Use the original also when dealing with a complex
292 or vector group accessed as multiple types.
293
ca659f6e
RH
2942009-11-30 Richard Henderson <rth@redhat.com>
295
296 * config/i386/i386.c (avx_vperm2f128_parallel): New.
297 * config/i386/i386-protos.h: Declare it.
298 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand,
299 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New.
300 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander.
301 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3.
302 (*avx_vperm2f128<mode>_nozero): New.
303
784e5ae1
RH
3042009-11-30 Richard Henderson <rth@redhat.com>
305
306 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New.
307 (V8SF_FTYPE_V8SF_V8SF_V8SI): New.
308 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support
309 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2.
310 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New.
311 (bdesc_args): Add them.
312 (ix86_expand_builtin): Expand them.
313 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors.
314
9dd7d977
MJ
3152009-11-30 Martin Jambor <mjambor@suse.cz>
316
317 PR middle-end/42206
318 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero.
319
40513dd3
JJ
3202009-11-30 Jakub Jelinek <jakub@redhat.com>
321
322 * ipa-reference.c (propagate): Only dump bitmaps if computed.
323
0f79311b
OG
3242009-11-30 Olga Golovanevsky <olga@il.ibm.com>
325
326 PR middle-end/39806
327 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables.
328 (new_var_hash): Likewise.
329 (is_in_new_vars_htab): Likewise.
330 (add_to_new_vars_htab): Likewise.
331
f18b55bd
IR
3322009-11-30 Ira Rosen <irar@il.ibm.com>
333
334 * tree-vect-stmts.c (vectorizable_assignment): Support
335 multiple types.
336
1c6b6615
RG
3372009-11-30 Richard Guenther <rguenther@suse.de>
338
339 * doc/contrib.texi (Contributors): Add myself.
340
a8fc928d
RG
3412009-11-30 Richard Guenther <rguenther@suse.de>
342
343 * tree.c (free_lang_data): Do not set debug_info_level to
344 none if terse.
345
ffab1d07
RG
3462009-11-30 Richard Guenther <rguenther@suse.de>
347
348 PR middle-end/42119
349 PR fortran/38530
350 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer
351 of CONST_DECLs.
352
e68c7b43
RG
3532009-11-30 Richard Guenther <rguenther@suse.de>
354
355 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in
356 variable UID order.
357
831b9ef8
RG
3582009-11-30 Richard Guenther <rguenther@suse.de>
359
360 * tree-dump.c (dump_option_value_in): Add TDF_NOUID.
361 * tree-pass.h (TDF_NOUID): Likewise.
362 * print-rtl.c: Include tree-pass.h.
363 (print_mem_expr): Pass dump_flags.
364 (print_rtx): Likewise.
365 * print-tree.c: Include tree-pass.h.
366 (print_node_brief): Handle TDF_NOUID.
367 (print_node): Likewise.
368 * tree-pretty-print.c (dump_decl_name): Likewise.
369 (dump_generic_node): Likewise.
370 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H)
371 dependency.
372
0761b460
NC
3732009-11-30 Nick Clifton <nickc@redhat.com>
374
375 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete.
376 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove
377 stormy16-lib2-count-leading-zeros.c.
378 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from
379 __stormy16_count_leading_zeros() into this function.
380 (__ctzhi2): Use __builtin_clz.
381 (__ffshi2): Likewise.
382
948bf106
EB
3832009-11-30 Eric Botcazou <ebotcazou@adacore.com>
384
385 * config/sparc/sparc.c (DF_MODES): Simplify.
386 (TF_ONLY_MODES, OF_ONLY_MODES): Delete.
387 (TF_MODES, OF_MODES): Adjust for above change.
388 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise.
389 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around.
390
f8682ff6
PB
3912009-11-30 Paolo Bonzini <bonzini@gnu.org>
392
393 PR rtl-optimization/41812
394 * fwprop.c (local_md, local_lr): New globals.
395 (process_defs, process_uses): Remove local_md argument. Never
396 consider dead pseudos to have singleton def-use chains.
397 (single_def_use_enter_block): Perform LR simulation.
398 (build_single_def_use_links): Remove local_md local variable.
399 Add DF_NOTE. Allocate local_lr.
400 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore.
401 * df-problems.c (df_md_scratch): New.
402 (df_md_alloc, df_md_free): Allocate/free it.
403 (df_md_local_compute): Only include live registers in init.
404 (df_md_transfer_function): Prune the in-set computed by
405 the confluence function, and the gen-set too.
f8682ff6 406
da55c6da
HPN
4072009-11-30 Hans-Peter Nilsson <hp@axis.com>
408
409 PR rtl-optimization/40086
410 * reorg.c (relax_delay_slots): When looking for redundant insn at
411 the branch target, use next_real_insn, not next_active_insn.
412
360d4522
KG
4132009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
414
415 * doc/install.texi: Update minimum MPC version to 0.8.
416
41557b08
SB
4172009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
418
419 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove
420 HONOR_SIGNED_ZEROS final condition.
421 (fnmsubsf4_powerpc_1): Same.
422 (fnmadddf4_fpr_1): Same.
423 (fnmsubdf4_fpr_1): Same.
424
3533e503
IR
4252009-11-29 Ira Rosen <irar@il.ibm.com>
426
427 PR tree-optimization/42193
428 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor
429 to 1 in case of basic block SLP.
430 (vectorizable_load): Likewise.
431
6744a6ab
JH
4322009-11-28 Jan Hubicka <jh@suse.cz>
433
434 * cgraph.c (same_body_alias_1): Break out of
435 (same_body_alias): ... here; remove comdat check; it is handled
436 in cp already.
437 (cgraph_add_thunk): New.
438 (dump_cgraph_node): Dump aliases and thunks.
439 * cgraph.h (cgraph_thunk_info): New structure.
440 (struct cgraph_node): Add thunk info.
441 (cgraph_add_thunk): New.
442 * cgraphunit.c (cgraph_emit_thunks): Remove.
443 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks.
444 (assemble_thunk): New function.
445 (cgraph_expand_function): Handle thunks.
446 (thunk_adjust): New.
447 (init_lowered_empty_function): New.
79564f1e
UB
448 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS):
449 Remove.
6744a6ab
JH
450 * lto-cgraph.c (lto_output_node): Stream thunk info.
451 (input_node): Likewise.
452 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks.
453 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove.
454 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update.
455 * i386.c (x86_output_mi_thunk): Make output prettier.
456
f1c19648
RG
4572009-11-28 Richard Guenther <rguenther@suse.de>
458
459 PR tree-optimization/42183
460 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its
461 address taken. Merge the addressable state of the NRV
462 variable and the result instead of copying it.
463
0f900dfa
JJ
4642009-11-28 Jakub Jelinek <jakub@redhat.com>
465
466 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused
467 malloc_fname variable.
468 (check_allocation_function): Remove unused gsi and bb_level_0
469 variables.
470 (transform_access_sites): Remove unused d_type_size and d_type_size_k
471 variables.
472 * omega.c (resurrect_subs): Remove unused n variable.
473 (omega_solve_geq): Remove unused neweqns variable.
474 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable.
475 * tree-inline.c (declare_return_variable): Remove USE_P argument,
476 return use instead of var.
477 (remap_decl, remap_block): Remove unused fn variable.
478 (expand_call_inline): Remove unused retvar variable, adjust
479 declare_return_variable caller.
480 (optimize_inline_calls): Remove unused prev_fn variable.
481 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies
482 variable.
483 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size
484 variables.
485 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR
486 properly.
487 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge
488 variable.
489 (vect_create_epilog_for_reduction): Remove unused bytesize variable.
490 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb
491 parameter. Remove unused par_stmt variable.
492 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller.
493 (expand_omp_sections): Remove unused l1 variable.
494 (lower_omp_for): Remove unused ilist variable.
495 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes):
496 Remove unused has_upstream_mem_write_p variable.
497 * recog.c (decode_asm_operands): Remove unused noperands variable.
498 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and
499 size2 variable.
500 * libgcov.c (__gcov_merge_delta): Remove unused last variable.
501 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused
502 base_nm variable.
503 (gen_conditions_for_pow): Remove unused ec variable.
504 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size
505 variable.
506 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused
507 fndecl variable.
508 * tree-ssa-sink.c (statement_sink_location): Remove unused code
509 variable.
510 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid
511 variables.
512 * tree-complex.c (create_one_component_var): Remove unused inner_type
513 variable.
514 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size)
515 unnecessarily when GEN_*CALL omits that argument.
516 * regrename.c (regrename_optimize): Remove unused regs_seen variable.
517 (build_def_use): Remove unused icode variable.
518 * ipa-pure-const.c (check_call): Remove unused callee and avail
519 variables.
520 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable.
521 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type
522 variable.
523 (vect_pattern_recog): Remove unused stmt variable.
524 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused
525 new_regions variable.
526 * postreload.c (reload_cse_simplify_operands): Remove unused mode
527 variable.
528 * tree-parloops.c (create_call_for_reduction_1): Remove unused
529 addr_type variable.
530 (create_parallel_loop): Remove unused res variable.
531 (gen_parallel_loop): Remove unused nloop variable.
532 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
533 * value-prof.c (gimple_mod_subtract_transform,
534 gimple_stringops_transform): Remove unused value variable.
535 (gimple_stringops_values_to_profile): Remove unused fcode variable.
536 * tree-vrp.c (register_new_assert_for): Remove unused found variable.
537 (vrp_visit_switch_stmt): Remove unused n variable.
538 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr
539 variable.
540 (vectorizable_operation): Remove unused shift_p variable.
541 (vectorizable_store): Remove unused first_stmt_vinfo variable.
542 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable.
543 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb
544 variable.
545 (vect_permute_store_chain): Remove unused scalar_dest variable.
546 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop
547 variable.
548 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused
549 local_info variable.
550 * tree-optimize.c (tree_rest_of_compilation): Remove unused node
551 variable.
552 * optabs.c (expand_binop): Remove unused equiv_value variable.
553 (emit_libcall_block): Remove unused prev variable.
554 (init_optabs): Remove unused int_mode variable.
555 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node
556 variable.
557 (do_structure_copy): Remove unused lhsbase and rhsbase variables.
558 (find_func_aliases): Remove unused rhstype variable.
559 (ipa_pta_execute): Remove unused varid variable.
560
e86b4c03
AH
5612009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
562
79564f1e 563 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add.
e86b4c03 564
11895e28
DB
5652009-11-28 David Binderman <dcb314@hotmail.com>
566
567 * ira-color.c (put_allocno_into_bucket): Remove set but not used
568 local variable hard_regs_num.
569 * ira-lives.c (process_single_reg_class_operands): Remove cover_class.
570 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap.
571 * lower-subreg.c (decompose_multiword_subregs): Remove next.
572
c4ea5200
MJ
5732009-11-27 Martin Jambor <mjambor@suse.cz>
574
575 PR middle-end/42006
576 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
577 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually
578 for vector and complex types.
579 (get_adjustment_for_base): Describe return value in the comment.
580
ba964383
NC
5812009-11-27 Nick Clifton <nickc@redhat.com>
582
79564f1e
UB
583 * longlong.h (count_leading_zeros): Define macro for stormy16 target.
584 (COUNT_LEADING_ZEROS_0): Likewise.
ba964383
NC
585 * config/stormy16/stormy16-lib2.c: Arrange for separate
586 compilation of each function.
587 (__ffshi2): New function.
588 (__stormy16_count_leading_zeros): New function.
589 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
590 compile each function into its own object file.
591 (stormy16-lib2-ashlsi3.c): New stub file.
592 (stormy16-lib2-ashrsi3.c): New stub file.
593 (stormy16-lib2-clzhi2.c): New stub file.
594 (stormy16-lib2-count-leading-zeros.c): New stub file.
595 (stormy16-lib2-ctzhi2.c): New stub file.
596 (stormy16-lib2-divsi3.c): New stub file.
597 (stormy16-lib2-ffshi2.c): New stub file.
598 (stormy16-lib2-lshrsi3.c): New stub file.
599 (stormy16-lib2-modsi3.c): New stub file.
600 (stormy16-lib2-parityhi2.c): New stub file.
601 (stormy16-lib2-popcounthi2.c): New stub file.
602 (stormy16-lib2-udivmodsi4.c): New stub file.
603 (stormy16-lib2-udivsi3.c): New stub file.
604 (stormy16-lib2-umodsi3.c): New stub file.
605
b0d49a6e
RH
6062009-11-27 Richard Henderson <rth@redhat.com>
607
608 * config/i386/sse.md (vec_interleave_highv16qi,
609 vec_interleave_lowv16qi, vec_interleave_highv8hi,
610 vec_interleave_lowv8hi, vec_interleave_highv4si,
611 vec_interleave_lowv4si, vec_interleave_highv2di,
612 vec_interleave_lowv2di, vec_interleave_highv4sf,
613 vec_interleave_lowv4sf, vec_interleave_highv2df,
614 vec_interleave_lowv2df): Remove expanders.
615 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
616 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
617 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
618 Rename to their proper vec_interleave equivalent. Update all users
619 to the new name.
620 * config/i386/i386.c, config/i386/i386.md: Update all users.
621
315adeda
MM
6222009-11-27 Michael Matz <matz@suse.de>
623
624 PR rtl-optimization/42084
625 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
626 use it to stop walking.
627 (expand_gimple_cond): Adjust call to above.
628
67c330ae
RO
6292009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
630
631 PR target/41810
632 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
633 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
634 __extension__ to allow cast from function pointer to object
635 pointer in C++.
79564f1e 636 * doc/install.texi (--enable-threads): Clarify use of Solaris threads.
67c330ae 637
7400e46b
SB
6382009-11-27 Steven Bosscher <steven@gcc.gnu.org>
639
640 * config/ia64/itanium1.md: Remove.
641 * config/ia64/ia64.md: Do not include it.
642 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
643 "itanium1", and "merced" from the processor alias table.
644 (clocks, add_cycles): Remove global variables.
645 (ia64_sched_reorder2): Don't set/use them.
646 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
647 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
648
3a892e44
AK
6492009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
650
651 * config/s390/s390.c (last_scheduled_insn): New variable.
652 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
653 functions.
654 (s390_sched_reorder, s390_sched_variable_issue): New functions.
655 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
656 defined.
657
d815d34e
MM
6582009-11-27 Michael Matz <matz@suse.de>
659
660 PR c++/41906
661 * tree-eh.c (lower_catch): Stop after expanding a catch-all.
662
b56ae8c7
RG
6632009-11-27 Richard Guenther <rguenther@suse.de>
664
665 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
666 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
667 * loop-init.c (pass_rtl_move_loop_invariants): Use
668 TV_LOOP_MOVE_INVARIANTS.
669 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
670 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
671 (pass_rtl_doloop): Use TV_LOOP_DOLOOP.
672
9c517bf3
AK
6732009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
674
79564f1e 675 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment.
9c517bf3 676
e96fee3e
JJ
6772009-11-27 Jakub Jelinek <jakub@redhat.com>
678
f1ed99cd
JJ
679 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
680 unused insn variable.
681 * genemit.c (output_peephole2_scratches): Only declare and initialize
682 _regs_allocated if it will be ever used.
683 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
684 succ_bb variable.
685 (create_empty_loop_on_edge): Remove unused freq and cnt variables.
686 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
687 variable.
688
e96fee3e
JJ
689 * opts.c (decode_options): If optimize is bigger than 255,
690 set it to 255.
691
08f3084b
RH
6922009-11-26 Richard Henderson <rth@redhat.com>
693
694 * config/i386/sse.md (mulv16qi3): Change back from an expander
695 to an insn-and-split.
696 (mulv4si): Mention AVX not XOP for AVX exception.
697 (*sse2_mulv4si3): Likewise.
698 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy.
699
6bda9bdf
BS
7002009-11-26 Bernd Schmidt <bernd.schmidt@analog.com>
701
15b83b0f
BS
702 * cfgexpand (n_stack_vars_conflict): New static variable.
703 (triangular_index): Reduce likelyhood of overflow by performing
704 the division before the multiplication.
705 (resize_stack_vars_conflict): Call fatal_error if overflow
706 occurred in triangular_index. Update n_stack_vars_conflict.
707
6bda9bdf
BS
708 PR rtl-opt/38582
709 * regrename.c (struct du_chain): Remove member earlyclobber.
710 (scan_rtx_reg): Don't set it. Remove argument earlyclobber,
711 all callers changed.
712 (scan_rtx): Remove argument earlyclobber, all callers changed.
713 (hide_operands, restore_operands, record_out_operands): New functions,
714 broken out of build_def_use.
715 (build_def_use): Call them as necessary.
716
a96caf80
BS
717 * regrename.c (struct du_head): New members id, conflicts,
718 hard_conflicts and cannot_rename.
719 (enum scan_actions): Remove terminate_all_read and
720 terminate_overlapping_read; add mark_all_read.
721 (scan_actions_name): Likewise.
722 (du_head_p): New typedef. Define a vector type for it.
723 (id_to_chain): New static variable.
724 (note_sets, clear_dead_regs): Delete functions.
725 (free_chain_data): New function.
726 (merge_overlapping_regs): Simply walk the conflicts bitmap.
727 Remove argument B, all callers changed.
728 (regrename_optimize): Allocate id_to_chain. Ignore chains that have
729 the cannot_rename bit set. Update regno and nregs of a renamed chain.
730 Call free_chain_data when done.
731 (do_replace): Remove death notes when the renamed reg is set in the
732 last insn; add them if not.
733 (mark_conflict, note_sets_clobbers): New static function.
734 (fail_current_block, current_id, open_chains_set, live_hard_regs): New
735 static variables.
736 (scan_rtx_reg): Keep track of conflicts between chains, and between
737 chains and hard regs. Don't terminate chains when we find a read we
738 can't handle, mark it unrenameable instead. For terminate_write,
739 terminate chains that are written with an exact match or a superset
740 of registers. Set fail_current_block if multi-word lifetimes are too
741 complex to handle.
742 (scan_rtx_address): Use mark_all_read instead of terminate_all_read.
743 (build_def_use): Initialize current_id, live_chains and live_hard_regs;
744 free memory for them when done.
745 Rearrange the steps so that earlyclobbers are noted before reads
746 are processed. Add new steps to keep track of hard register lifetimes
747 outside insn operands.
748
a61f9cc0
RG
7492009-11-26 Richard Guenther <rguenther@suse.de>
750
751 * tree-ssa-dce.c (nr_walks): New variable.
752 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
753 (perform_tree_ssa_dce): Init nr_walks.
754
87cd4259
MM
7552009-11-26 Michael Matz <matz@suse.de>
756
757 PR tree-optimization/41905
758 * tree-eh.c (lower_eh_constructs_2): Don't add assignments
759 below statements that can't fall thru.
760
6dc3bf56
MM
7612009-11-26 Michael Matz <matz@suse.de>
762
763 * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
764 expand_builtin_sprintf): Remove.
765 (expand_builtin): Don't call them.
766
d9b99b4c
RG
7672009-11-26 Richard Guenther <rguenther@suse.de>
768
769 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
770
0d8f38d3
NC
7712009-11-26 Nick Clifton <nickc@redhat.com>
772
773 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
774 being used incorrectly.
775 (rx_function_ok_for_sibcall): New function. Do not allow indirect
776 sibcalls, or sibcalls from interrupt functions.
777 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
778 * config/rx/rx.md (sibcall): Convert to a define_expand. Check
779 for a MEM inside a MEM.
780 (sibcall_value): Likewise.
781 (sibcall_internal): New pattern containing old sibcall pattern.
782 (sibcall_value_internal): Likewise.
783
0fac5151
RH
7842009-11-25 Richard Henderson <rth@redhat.com>
785
786 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
787 optional 3rd argument to define the mode.
788 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
789 (V2UDI, V4USI, V8UHI, V16UQI): New.
790 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
791 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
792 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
793 * config/i386/i386-modes.def: Rearrange for double-wide AVX.
794 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
795 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
796 (bdesc_args): Add the builtin definitions to match.
797 (ix86_expand_builtin): Expand them.
798 (ix86_builtin_vectorization_cost): Rename from
799 x86_builtin_vectorization_cost.
800 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
801 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
802 expand_vec_perm_blend, expand_vec_perm_vpermil,
803 expand_vec_perm_pshufb, expand_vec_perm_1,
804 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
805 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
806 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
807 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
808 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
809 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
810 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
811 * sse.md (SSEMODE_EO): New.
812 (vec_extract_even<mode>): Use SSEMODE_EO and
813 ix86_expand_vec_extract_even_odd.
814 (vec_extract_odd<mode>): Likewise.
815 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
816 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
817
faf63e39
RH
8182009-11-25 Richard Henderson <rth@redhat.com>
819
820 * target.h (targetm.vectorize.builtin_vec_perm_ok): New.
821 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
822 * hooks.h, hooks.c (hook_bool_tree_tree_true): New.
823 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create
824 the vector constant here...
825 (vect_transform_slp_perm_load): ... do it here instead. Validate
826 that the permutation vector is implementable by the target.
827
8a2bbeef
JJ
8282009-11-25 Jakub Jelinek <jakub@redhat.com>
829
fc07d9e3
JJ
830 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames.
831 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define.
832
8a2bbeef
JJ
833 * print-rtl.c (print_rtx): When printing newline, append
834 print_rtx_head and indentation after the newline.
835
72b2bc46
JJ
836 PR target/42165
837 * config/i386/i386.c (print_operand): For 32-byte memory use
838 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD.
839 * config/i386/i386.md (crc32modesuffix): Expand to nothing
840 in -masm=intel mode.
841 (sse4_2_crc32di): Print just crc32 instead of crc32q in
842 -masm=intel mode.
843 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of
844 memory operand in -masm=intel mode.
845 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb,
846 *sse2_pinsrw): Likewise.
847 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print
848 q suffix in -masm=intel mode.
849
42da303a
EB
8502009-11-25 Eric Botcazou <ebotcazou@adacore.com>
851
852 PR target/10127
853 PR ada/20548
854 PR middle-end/42004
855 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to...
856 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for
857 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to...
858 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming.
859 (dwarf2out_frame_debug_expr): Revert previous change and adjust for
860 above renaming.
861 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming.
862
85b1d1bd
UB
8632009-11-25 Uros Bizjak <ubizjak@gmail.com>
864
865 * config/i386/predicates.md (emms_operation): New predicate.
866 (vzeroupper_operation): Ditto.
867 (vzeroall_operation): Improve pattern recognition.
868 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern.
869 (avx_vzeroupper): Change insn pattern to expander.
870 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation
871 predicate.
872 (*avx_vzeroall): Remove operands 1 and 2.
873 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander.
874 (mmx_femms): Ditto.
875 (*mmx_emms): New insn pattern. Use emms_operation predicate.
876 (*mmx_femms): Ditto.
877 * config/i386/i386.c (enum ix86_builtins)
878 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove.
879 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>:
880 Remove initailization.
881 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here.
79564f1e 882
5115f061
PB
8832009-11-25 Paul Brook <paul@codesourcery.com>
884
885 * config/arm/arm.md (consttable_4): Handle (high ...).
886
70dd156a
RN
8872009-11-25 Robert Nelson <robert.nelson@digikey.com>
888 Richard Earnshaw <rearnsha@arm.com>
889
890 * arm.h (enum vfp_reg_type): Add VFP_NONE.
891 * arm.c (all_fpus): Use it for floating point units that aren't based
892 on the VFP architecture.
893 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to
894 enum machine_mode.
895
b8698a0f
L
8962009-11-25 H.J. Lu <hongjiu.lu@intel.com>
897
898 * alias.c: Remove trailing white spaces.
899 * alloc-pool.c: Likewise.
900 * alloc-pool.h: Likewise.
901 * attribs.c: Likewise.
902 * auto-inc-dec.c: Likewise.
903 * basic-block.h: Likewise.
904 * bb-reorder.c: Likewise.
905 * bt-load.c: Likewise.
906 * builtins.c: Likewise.
907 * builtins.def: Likewise.
908 * c-common.c: Likewise.
909 * c-common.h: Likewise.
910 * c-cppbuiltin.c: Likewise.
911 * c-decl.c: Likewise.
912 * c-format.c: Likewise.
913 * c-lex.c: Likewise.
914 * c-omp.c: Likewise.
915 * c-opts.c: Likewise.
916 * c-parser.c: Likewise.
917 * c-pretty-print.c: Likewise.
918 * c-tree.h: Likewise.
919 * c-typeck.c: Likewise.
920 * caller-save.c: Likewise.
921 * calls.c: Likewise.
922 * cfg.c: Likewise.
923 * cfganal.c: Likewise.
924 * cfgexpand.c: Likewise.
925 * cfghooks.c: Likewise.
926 * cfghooks.h: Likewise.
927 * cfglayout.c: Likewise.
928 * cfgloop.c: Likewise.
929 * cfgloop.h: Likewise.
930 * cfgloopmanip.c: Likewise.
931 * cfgrtl.c: Likewise.
932 * cgraph.c: Likewise.
933 * cgraph.h: Likewise.
934 * cgraphbuild.c: Likewise.
935 * cgraphunit.c: Likewise.
936 * cif-code.def: Likewise.
937 * collect2.c: Likewise.
938 * combine.c: Likewise.
939 * convert.c: Likewise.
940 * coverage.c: Likewise.
941 * crtstuff.c: Likewise.
942 * cse.c: Likewise.
943 * cselib.c: Likewise.
944 * dbgcnt.c: Likewise.
945 * dbgcnt.def: Likewise.
946 * dbgcnt.h: Likewise.
947 * dbxout.c: Likewise.
948 * dce.c: Likewise.
949 * ddg.c: Likewise.
950 * ddg.h: Likewise.
951 * defaults.h: Likewise.
952 * df-byte-scan.c: Likewise.
953 * df-core.c: Likewise.
954 * df-problems.c: Likewise.
955 * df-scan.c: Likewise.
956 * df.h: Likewise.
957 * dfp.c: Likewise.
958 * diagnostic.c: Likewise.
959 * diagnostic.h: Likewise.
960 * dominance.c: Likewise.
961 * domwalk.c: Likewise.
962 * double-int.c: Likewise.
963 * double-int.h: Likewise.
964 * dse.c: Likewise.
965 * dwarf2asm.c: Likewise.
966 * dwarf2asm.h: Likewise.
967 * dwarf2out.c: Likewise.
968 * ebitmap.c: Likewise.
969 * ebitmap.h: Likewise.
970 * emit-rtl.c: Likewise.
971 * et-forest.c: Likewise.
972 * except.c: Likewise.
973 * except.h: Likewise.
974 * expmed.c: Likewise.
975 * expr.c: Likewise.
976 * expr.h: Likewise.
977 * final.c: Likewise.
978 * flags.h: Likewise.
979 * fold-const.c: Likewise.
980 * function.c: Likewise.
981 * function.h: Likewise.
982 * fwprop.c: Likewise.
983 * gcc.c: Likewise.
984 * gcov-dump.c: Likewise.
985 * gcov-io.c: Likewise.
986 * gcov-io.h: Likewise.
987 * gcov.c: Likewise.
988 * gcse.c: Likewise.
989 * genattr.c: Likewise.
990 * genattrtab.c: Likewise.
991 * genautomata.c: Likewise.
992 * genchecksum.c: Likewise.
993 * genconfig.c: Likewise.
994 * genflags.c: Likewise.
995 * gengtype-parse.c: Likewise.
996 * gengtype.c: Likewise.
997 * gengtype.h: Likewise.
998 * genmddeps.c: Likewise.
999 * genmodes.c: Likewise.
1000 * genopinit.c: Likewise.
1001 * genpreds.c: Likewise.
1002 * gensupport.c: Likewise.
1003 * ggc-common.c: Likewise.
1004 * ggc-page.c: Likewise.
1005 * ggc-zone.c: Likewise.
1006 * ggc.h: Likewise.
1007 * gimple-iterator.c: Likewise.
1008 * gimple-low.c: Likewise.
1009 * gimple-pretty-print.c: Likewise.
1010 * gimple.c: Likewise.
1011 * gimple.def: Likewise.
1012 * gimple.h: Likewise.
1013 * gimplify.c: Likewise.
1014 * graphds.c: Likewise.
1015 * graphite-clast-to-gimple.c: Likewise.
1016 * gthr-nks.h: Likewise.
1017 * gthr-posix.c: Likewise.
1018 * gthr-posix.h: Likewise.
1019 * gthr-posix95.h: Likewise.
1020 * gthr-single.h: Likewise.
1021 * gthr-tpf.h: Likewise.
1022 * gthr-vxworks.h: Likewise.
1023 * gthr.h: Likewise.
1024 * haifa-sched.c: Likewise.
1025 * hard-reg-set.h: Likewise.
1026 * hooks.c: Likewise.
1027 * hooks.h: Likewise.
1028 * hosthooks.h: Likewise.
1029 * hwint.h: Likewise.
1030 * ifcvt.c: Likewise.
1031 * incpath.c: Likewise.
1032 * init-regs.c: Likewise.
1033 * integrate.c: Likewise.
1034 * ipa-cp.c: Likewise.
1035 * ipa-inline.c: Likewise.
1036 * ipa-prop.c: Likewise.
1037 * ipa-pure-const.c: Likewise.
1038 * ipa-reference.c: Likewise.
1039 * ipa-struct-reorg.c: Likewise.
1040 * ipa-struct-reorg.h: Likewise.
1041 * ipa-type-escape.c: Likewise.
1042 * ipa-type-escape.h: Likewise.
1043 * ipa-utils.c: Likewise.
1044 * ipa-utils.h: Likewise.
1045 * ipa.c: Likewise.
1046 * ira-build.c: Likewise.
1047 * ira-color.c: Likewise.
1048 * ira-conflicts.c: Likewise.
1049 * ira-costs.c: Likewise.
1050 * ira-emit.c: Likewise.
1051 * ira-int.h: Likewise.
1052 * ira-lives.c: Likewise.
1053 * ira.c: Likewise.
1054 * jump.c: Likewise.
1055 * lambda-code.c: Likewise.
1056 * lambda-mat.c: Likewise.
1057 * lambda-trans.c: Likewise.
1058 * lambda.h: Likewise.
1059 * langhooks.c: Likewise.
1060 * lcm.c: Likewise.
1061 * libgcov.c: Likewise.
1062 * lists.c: Likewise.
1063 * loop-doloop.c: Likewise.
1064 * loop-init.c: Likewise.
1065 * loop-invariant.c: Likewise.
1066 * loop-iv.c: Likewise.
1067 * loop-unroll.c: Likewise.
1068 * lower-subreg.c: Likewise.
1069 * lto-cgraph.c: Likewise.
1070 * lto-compress.c: Likewise.
1071 * lto-opts.c: Likewise.
1072 * lto-section-in.c: Likewise.
1073 * lto-section-out.c: Likewise.
1074 * lto-streamer-in.c: Likewise.
1075 * lto-streamer-out.c: Likewise.
1076 * lto-streamer.c: Likewise.
1077 * lto-streamer.h: Likewise.
1078 * lto-symtab.c: Likewise.
1079 * lto-wpa-fixup.c: Likewise.
1080 * matrix-reorg.c: Likewise.
1081 * mcf.c: Likewise.
1082 * mode-switching.c: Likewise.
1083 * modulo-sched.c: Likewise.
1084 * omega.c: Likewise.
1085 * omega.h: Likewise.
1086 * omp-low.c: Likewise.
1087 * optabs.c: Likewise.
1088 * optabs.h: Likewise.
1089 * opts-common.c: Likewise.
1090 * opts.c: Likewise.
1091 * params.def: Likewise.
1092 * params.h: Likewise.
1093 * passes.c: Likewise.
1094 * plugin.c: Likewise.
1095 * postreload-gcse.c: Likewise.
1096 * postreload.c: Likewise.
1097 * predict.c: Likewise.
1098 * predict.def: Likewise.
1099 * pretty-print.c: Likewise.
1100 * pretty-print.h: Likewise.
1101 * print-rtl.c: Likewise.
1102 * print-tree.c: Likewise.
1103 * profile.c: Likewise.
1104 * read-rtl.c: Likewise.
1105 * real.c: Likewise.
1106 * recog.c: Likewise.
1107 * reg-stack.c: Likewise.
1108 * regcprop.c: Likewise.
1109 * reginfo.c: Likewise.
1110 * regmove.c: Likewise.
1111 * regrename.c: Likewise.
1112 * regs.h: Likewise.
1113 * regstat.c: Likewise.
1114 * reload.c: Likewise.
1115 * reload1.c: Likewise.
1116 * resource.c: Likewise.
1117 * rtl.c: Likewise.
1118 * rtl.def: Likewise.
1119 * rtl.h: Likewise.
1120 * rtlanal.c: Likewise.
1121 * sbitmap.c: Likewise.
1122 * sched-deps.c: Likewise.
1123 * sched-ebb.c: Likewise.
1124 * sched-int.h: Likewise.
1125 * sched-rgn.c: Likewise.
1126 * sched-vis.c: Likewise.
1127 * sdbout.c: Likewise.
1128 * sel-sched-dump.c: Likewise.
1129 * sel-sched-dump.h: Likewise.
1130 * sel-sched-ir.c: Likewise.
1131 * sel-sched-ir.h: Likewise.
1132 * sel-sched.c: Likewise.
1133 * sel-sched.h: Likewise.
1134 * sese.c: Likewise.
1135 * sese.h: Likewise.
1136 * simplify-rtx.c: Likewise.
1137 * stack-ptr-mod.c: Likewise.
1138 * stmt.c: Likewise.
1139 * stor-layout.c: Likewise.
1140 * store-motion.c: Likewise.
1141 * stringpool.c: Likewise.
1142 * stub-objc.c: Likewise.
1143 * sync-builtins.def: Likewise.
1144 * target-def.h: Likewise.
1145 * target.h: Likewise.
1146 * targhooks.c: Likewise.
1147 * targhooks.h: Likewise.
1148 * timevar.c: Likewise.
1149 * tlink.c: Likewise.
1150 * toplev.c: Likewise.
1151 * toplev.h: Likewise.
1152 * tracer.c: Likewise.
1153 * tree-affine.c: Likewise.
1154 * tree-affine.h: Likewise.
1155 * tree-browser.def: Likewise.
1156 * tree-call-cdce.c: Likewise.
1157 * tree-cfg.c: Likewise.
1158 * tree-cfgcleanup.c: Likewise.
1159 * tree-chrec.c: Likewise.
1160 * tree-chrec.h: Likewise.
1161 * tree-complex.c: Likewise.
1162 * tree-data-ref.c: Likewise.
1163 * tree-data-ref.h: Likewise.
1164 * tree-dfa.c: Likewise.
1165 * tree-dump.c: Likewise.
1166 * tree-dump.h: Likewise.
1167 * tree-eh.c: Likewise.
1168 * tree-flow-inline.h: Likewise.
1169 * tree-flow.h: Likewise.
1170 * tree-if-conv.c: Likewise.
1171 * tree-inline.c: Likewise.
1172 * tree-into-ssa.c: Likewise.
1173 * tree-loop-distribution.c: Likewise.
1174 * tree-loop-linear.c: Likewise.
1175 * tree-mudflap.c: Likewise.
1176 * tree-nested.c: Likewise.
1177 * tree-nomudflap.c: Likewise.
1178 * tree-nrv.c: Likewise.
1179 * tree-object-size.c: Likewise.
1180 * tree-optimize.c: Likewise.
1181 * tree-outof-ssa.c: Likewise.
1182 * tree-parloops.c: Likewise.
1183 * tree-pass.h: Likewise.
1184 * tree-phinodes.c: Likewise.
1185 * tree-predcom.c: Likewise.
1186 * tree-pretty-print.c: Likewise.
1187 * tree-profile.c: Likewise.
1188 * tree-scalar-evolution.c: Likewise.
1189 * tree-ssa-address.c: Likewise.
1190 * tree-ssa-alias.c: Likewise.
1191 * tree-ssa-ccp.c: Likewise.
1192 * tree-ssa-coalesce.c: Likewise.
1193 * tree-ssa-copy.c: Likewise.
1194 * tree-ssa-copyrename.c: Likewise.
1195 * tree-ssa-dce.c: Likewise.
1196 * tree-ssa-dom.c: Likewise.
1197 * tree-ssa-dse.c: Likewise.
1198 * tree-ssa-forwprop.c: Likewise.
1199 * tree-ssa-ifcombine.c: Likewise.
1200 * tree-ssa-live.c: Likewise.
1201 * tree-ssa-live.h: Likewise.
1202 * tree-ssa-loop-ch.c: Likewise.
1203 * tree-ssa-loop-im.c: Likewise.
1204 * tree-ssa-loop-ivcanon.c: Likewise.
1205 * tree-ssa-loop-ivopts.c: Likewise.
1206 * tree-ssa-loop-manip.c: Likewise.
1207 * tree-ssa-loop-niter.c: Likewise.
1208 * tree-ssa-loop-prefetch.c: Likewise.
1209 * tree-ssa-loop-unswitch.c: Likewise.
1210 * tree-ssa-loop.c: Likewise.
1211 * tree-ssa-math-opts.c: Likewise.
1212 * tree-ssa-operands.c: Likewise.
1213 * tree-ssa-operands.h: Likewise.
1214 * tree-ssa-phiopt.c: Likewise.
1215 * tree-ssa-phiprop.c: Likewise.
1216 * tree-ssa-pre.c: Likewise.
1217 * tree-ssa-propagate.c: Likewise.
1218 * tree-ssa-reassoc.c: Likewise.
1219 * tree-ssa-sccvn.c: Likewise.
1220 * tree-ssa-sink.c: Likewise.
1221 * tree-ssa-structalias.c: Likewise.
1222 * tree-ssa-ter.c: Likewise.
1223 * tree-ssa-threadedge.c: Likewise.
1224 * tree-ssa-threadupdate.c: Likewise.
1225 * tree-ssa-uncprop.c: Likewise.
1226 * tree-ssa.c: Likewise.
1227 * tree-ssanames.c: Likewise.
1228 * tree-switch-conversion.c: Likewise.
1229 * tree-tailcall.c: Likewise.
1230 * tree-vect-data-refs.c: Likewise.
1231 * tree-vect-generic.c: Likewise.
1232 * tree-vect-loop-manip.c: Likewise.
1233 * tree-vect-loop.c: Likewise.
1234 * tree-vect-patterns.c: Likewise.
1235 * tree-vect-slp.c: Likewise.
1236 * tree-vect-stmts.c: Likewise.
1237 * tree-vectorizer.c: Likewise.
1238 * tree-vectorizer.h: Likewise.
1239 * tree-vrp.c: Likewise.
1240 * tree.c: Likewise.
1241 * tree.def: Likewise.
1242 * tree.h: Likewise.
1243 * treestruct.def: Likewise.
1244 * unwind-compat.c: Likewise.
1245 * unwind-dw2-fde-glibc.c: Likewise.
1246 * unwind-dw2.c: Likewise.
1247 * value-prof.c: Likewise.
1248 * value-prof.h: Likewise.
1249 * var-tracking.c: Likewise.
1250 * varasm.c: Likewise.
1251 * varpool.c: Likewise.
1252 * vec.c: Likewise.
1253 * vec.h: Likewise.
1254 * vmsdbgout.c: Likewise.
1255 * web.c: Likewise.
1256 * xcoffout.c: Likewise.
1257
0831e1d1
JDA
12582009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1259
1260 * pa.c (output_call): Only use sr4 for long interspace calls if
1261 call binds local and generating non PIC code.
1262 (attr_length_call): Adjust length calculation for above.
1263
14c27152
UB
12642009-11-25 Uros Bizjak <ubizjak@gmail.com>
1265
1266 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute.
1267 (add<mode>3_carry): Change operand order of plus RTX.
1268 (*add<mode>3_carry): Ditto.
1269 (*addsi3_carry_zext): Ditto.
1270 (*add<dwi>3_doubleword): Update for changed operand order.
1271 (*negti2_1 splitter): Ditto.
1272 (*negdi2_1 splitter): Ditto.
1273 (<plusminus_insn><mode>3_carry): Macroize expander from
1274 {add,sub}<mode>3_carry patterns using plusminus code iterator.
1275 (*<plusminus_insn><mode>3_carry): Macroize insn from
1276 *{add,sub}<mode>3_carry patetrns using plusminus code iterator.
1277 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2
1278 patterns using SDWIM mode iterator.
1279 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize
1280 pattern from *neg{di,ti}2_1 patterns and corresponding splitters
1281 using DWIH mode iterator.
1282 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns
1283 using SWI mode iterator.
1284 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns.
1285 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2
1286 patterns using SWIM mode iterator.
1287 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1
1288 patterns using SWI248 mode iterator.
1289 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2
1290 patterns using SWI mode iterator.
1291 (*one_cmpl<mode>2_2 splitter): Macroize splitter from
1292 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator.
1293
038dc49a
PC
12942009-11-24 Michael Matz <matz@suse.de>
1295
1296 * expr.c (set_storage_via_libcall): Fix build_call_expr call.
1297
12982009-11-24 David Binderman <dcb314@hotmail.com>
1299
1300 * expr.c (store_field): Remove set but not used local variable
1301 width_mask.
1302 (expand_expr_real_2): Remove treeop2.
1303 * gcse.c (update_ld_motion_stores): Remove new_rtx.
1304 * haifa-sched.c (max_issue): Remove points.
1305 (sched_create_recovery_edges): Remove e.
1306 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode.
1307
356aaf8b
NC
13082009-11-24 Nick Clifton <nickc@redhat.com>
1309
1310 * config/v850/v850.c (function_arg): Fix handling of zero-length
1311 function arguments.
1312
a5883ba0
MM
13132009-11-24 Michael Matz <matz@suse.de>
1314
1315 * tree.h (union tree_ann_d): Don't declare.
1316 (tree_base): Remove ann field.
1317 (struct var_ann_d): Declare forward.
1318 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field.
1319 (DECL_VAR_ANN_PTR): New macro.
1320 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro,
1321 accept only VAR, PARM or RESULT decls.
1322 (create_tree_common_ann): Remove.
1323 (remove_referenced_var): Use DECL_VAR_ANN_PTR.
1324 * tree-eh.c (lookup_expr_eh_lp): Remove.
1325 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of
1326 DECL_VAR_ANN_PTR.
1327 (ann_type, tree_common_ann, get_tree_common_ann): Remove.
1328 * tree-flow.h (enum tree_ann_type): Remove.
1329 (struct tree_ann_common_d): Remove.
1330 (struct var_ann_d): Remove common field.
1331 (union tree_ann_d): Remove.
1332 (tree_ann_t, tree_ann_common_t): Remove typedefs.
1333 (tree_common_ann, get_tree_common_ann, ann_type,
1334 create_tree_common_ann, lookup_expr_eh_lp): Don't declare.
1335 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR.
1336 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR.
1337 * builtins.c (expand_builtin_memcpy): Use
1338 currently_expanding_gimple_stmt instead of tree annotation.
1339 (expand_builtin_memset_args): Ditto.
1340 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable.
1341 (expand_call_stmt): Don't set tree annotation.
1342 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt.
1343 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp.
1344 * gimple.h (currently_expanding_gimple_stmt): Declare.
1345
6e0b03f5
PC
13462009-11-24 Paolo Carlini <paolo.carlini@oracle.com>
1347
1348 * dwarf2out.c (add_location_or_const_value_attribute): Remove
1349 useless NOTE_VAR_LOCATION_STATUS call.
1350 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy.
1351
8aea79e6
RAE
13522009-11-24 Rafael Avila de Espindola <espindola@google.com>
1353
1354 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if
1355 being called recursively.
1356
33887751
BS
13572009-11-24 Basile Starynkevitch <basile@starynkevitch.net>
1358
a5883ba0 1359 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h
33887751
BS
1360 $(MD5_H) params.def params.h prefix.h tree-inline.h.
1361
3ed04dbd
PB
13622009-11-24 Paul Brook <paul@codesourcery.com>
1363
3ed04dbd
PB
1364 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment
1365 typo.
1366
854b8a40
JB
13672009-11-24 Julian Brown <julian@codesourcery.com>
1368 Paul Brook <paul@codesourcery.com>
1369
1370 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define.
1371 (arm_dwarf_register_span): New function.
1372 (arm_dbx_register_number): Add VFPv3 dwarf numbering.
1373
6e0b03f5 13742009-11-24 David Binderman <dcb314@hotmail.com>
2d888286
DB
1375
1376 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used
1377 local variable bb_note.
a5883ba0
MM
1378 * dominance.c (get_dominated_by): Likewise local var n.
1379 (output_file_names): Likewise local var idx.
1380 (add_location_or_const_value_attribute): Likewise local var status.
1381 * dwarf2out.c (gen_variable_die): Likewise local var field.
1382 * emit-rtl.c (no_line_numbers): Remove.
2d888286 1383 (init_emit_once): Remove line_numbers parameter.
a5883ba0
MM
1384 * rtl.h (init_emit_once): Adjust prototype.
1385 * toplev.c (backend_init): Adjust init_emit_once call.
2d888286 1386
1415abc0
RG
13872009-11-24 Richard Guenther <rguenther@suse.de>
1388
1389 PR tree-optimization/42142
1390 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
1391 Handle iv-dependent (non-)kills properly.
1392 (mark_aliased_reaching_defs_necessary): Pass the basic-block
1393 of the reference statement to mark_aliased_reaching_defs_necessary_1.
1394
09f0dc45
MJ
13952009-11-24 Martin Jambor <mjambor@suse.cz>
1396
1397 PR tree-optimization/42154
1398 * tree-sra.c (struct access): Added comments.
1399 (sra_modify_expr): Build references to the old aggregate with
1400 build_ref_for_offset instead of reusing access->expr.
1401 (load_assign_lhs_subreplacements): Likewise.
1402
c84f4042
UB
14032009-11-24 Uros Bizjak <ubizjak@gmail.com>
1404
1405 * config/i386/i386.md (add<mode>3_carry): Change insn pattern
1406 to expander.
1407 (sub<mode>3_carry): Ditto.
1408 (x86_mov<mode>cc_0_m1): Ditto.
1409 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator
1410 for ix86_carry_flag_operator operator predicate.
1411 (*sub<mode>3_carry): Ditto.
1412 (*x86_mov<mode>cc_0_m1): Ditto.
1413 (*addsi3_carry_zext): Use VOIDmode match_operator for
1414 ix86_carry_flag_operator operator predicate.
1415 (*subsi3_carry_zext): Ditto.
1416 (*x86_mov<mode>cc_0_m1_s): Ditto.
1417 (*x86_mov<mode>cc_0_m1_neg): Ditto.
1418 * config/i386/predocates.md (ix86_carry_flag_operator): Do not
1419 check operator sub-expressions for FLAGS_REG and const0_rtx.
1420 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype.
1421 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1.
1422 (ix86_expand_int_addcc): Update calls to
1423 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op.
1424 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry.
1425 Do not set mode of compare operation.
1426
cefdbe2f
JH
14272009-11-23 Jan Hubicka <jh@suse.cz>
1428
1429 PR middle-end/42151
1430 * ipa-inline.c (inline_transform): Avoid ICE when transform is called
1431 twice.
1432
43558bcc
JH
14332009-11-23 Jan Hubicka <jh@suse.cz>
1434
1435 * ipa-cp.c (ipcp_compute_node_scale): Work around completely
1436 wrong profile updates.
1437 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block
1438 having largest frequency.
1439 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne
1440 used uninitalized warning.
1441 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block
1442 frequencies.
1443
e0d909db
UB
14442009-11-23 Uros Bizjak <ubizjak@gmail.com>
1445
1446 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead
1447 of gen_rtx_REG to generate operand 5.
1448 (*cmp_ssub_sidi): Ditto.
1449
2f951ef4
RH
14502009-11-23 Richard Henderson <rth@redhat.com>
1451
1452 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare
1453 mismatch.
1454
1586899e
PB
14552009-11-23 Paul Brook <paul@codesourcery.com>
1456
1457 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special
1458 case for noreturn functions.
1459 (arm_compute_save_reg_mask): Remove special noreturn handling.
1460
0230277c
RG
14612009-11-23 Richard Guenther <rguenther@suse.de>
1462
1463 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access
1464 size for DECL bases.
1465
8a67ca92
RH
14662009-11-22 Richard Henderson <rth@redhat.com>
1467
1468 * i386.c (avx_vpermilp_parallel): New function.
1469 * i386-protos.h: Declare it.
1470 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand,
1471 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New.
1472 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators.
1473 (ssescalarnum, ssedoublesizemode): Add AVX modes.
1474 (vpermilbits): Remove.
1475 (avx_vpermil<mode>): Change insns to expanders.
1476 (*avx_vpermil<mode>): New. Use vec_select.
1477
4de29d8f
RE
14782009-11-22 Richard Earnshaw <rearnsha@arm.com>
1479
e0d909db 1480 * opts.c (decode_options): Don't enable flag_schedule_insns
4de29d8f
RE
1481 when optimizing for size.
1482 * doc/invoke.texi: Document change.
1483
7e82354a
UB
14842009-11-22 Uros Bizjak <ubizjak@gmail.com>
1485
1486 PR target/42113
1487 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
1488 of scratch register to SImode.
1489 (*cmp_sadd_sidi): Ditto.
1490 (*cmp_ssub_si): Ditto.
1491 (*cmp_ssub_sidi): Ditto.
1492
ed2eaa9f
ILT
14932009-11-21 Ian Lance Taylor <iant@google.com>
1494
1495 * Makefile.in (HOST_LIBS): Move higher in file.
1496 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS)
1497 is not empty, set to $(CC) and $(CFLAGS).
1498
cc12e760
MJ
14992009-11-22 Martin Jambor <mjambor@suse.cz>
1500
1501 * tree-cfg.c (verify_types_in_gimple_reference): Error out on
1502 V_C_E of an SSA_NAME or an invariant if lvalue is required.
1503 (verify_gimple_call): Verify LHS also with with
1504 verify_types_in_gimple_reference.
1505
c6a2c25d
MJ
15062009-11-21 Martin Jambor <mjambor@suse.cz>
1507
1508 PR middle-end/42025
1509 * tree-sra.c (access_precludes_ipa_sra_p): New function.
1510 (splice_param_accesses): Check all accesses by calling
1511 access_precludes_ipa_sra_p.
1512 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do
1513 not convert types if it is true.
1514 (sra_ipa_modify_assign): Convert types in case of mismatch.
1515
bcd9e00d
KP
15162009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
1517
1518 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate
1519 for operand 1.
1520
a3c7bb26
AN
15212009-11-21 Adam Nemet <adambnemet@gmail.com>
1522
1523 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef.
1524 (mips_mulsidi3_gen_fn): Declare new function.
1525 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function.
1526 * config/mips/mips.md (<u>mulsidi3): Change condition to use
c84f4042 1527 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn.
a3c7bb26
AN
1528 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3.
1529 (mulsidi3_64bit_dmul): New define_insn.
1530
e81f2ecf
BE
15312009-11-21 Ben Elliston <bje@au.ibm.com>
1532
1533 * gengtype-lex.l: Enable noinput flex option.
1534 (YY_NO_INPUT): Remove define.
1535
42a06e46
AO
15362009-11-21 Alexandre Oliva <aoliva@redhat.com>
1537
1538 * tree-ssa.c (find_released_ssa_name): Handle NULL wi.
1539 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes.
1540 (insert_debug_temps_for_defs): Handle PHI nodes.
1541 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released
1542 SSA names.
1543
b70fdfe4
AO
15442009-11-21 Alexandre Oliva <aoliva@redhat.com>
1545
1546 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs
1547 after remove_phi_node.
1548
21cf7180
AO
15492009-11-21 Alexandre Oliva <aoliva@redhat.com>
1550
1551 PR tree-optimization/42078
1552 * gimple.h (gimple_replace_lhs): New declaration.
1553 * gimple.c (gimple_replace_lhs): New function.
1554 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before
1555 modifying the call.
1556
04482dd1
SP
15572009-11-20 Sebastian Pop <sebastian.pop@amd.com>
1558
1559 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p.
1560 (xop_mulv2div2di3_low): Same.
1561 (*xop_pmacsdqh_mem): Same.
1562
fe40daa0
RH
15632009-11-20 Richard Henderson <rth@redhat.com>
1564
1565 * config/i386/i386-builtin-types.awk: New file.
1566 * config/i386/i386-builtin-types.def: New file.
1567 * config/i386/t-i386: Use them to build i386-builtin-types.inc.
1568 * config/i386/i386.c: Include it.
1569 (ix86_builtin_type_tab, ix86_get_builtin_type): New.
1570 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New.
1571 (struct builtin_isa): Remove GTY marker. Replace tree type with
1572 ix86_builtin_func_type; add set_and_not_built_p.
1573 (def_builtin): Change type parameter to tcode; use
1574 ix86_get_builtin_func_type; update all callers. Accept zero mask
1575 to mean the builtin is unconditionally available.
1576 (ix86_add_new_builtins): Use set_and_not_built_p instead of type
1577 being set to NULL.
1578 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove.
1579 Update some users to rationalized enumeration codes from new include.
1580 (enum multi_arg_type): Remove. Replace all enumeration values
1581 with defines to new ix86_builtin_func_type.
1582 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer
1583 all type resolution to def_builtin.
1584 (ix86_init_builtin_types): Split out from ...
1585 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type.
1586
497d3834
MM
15872009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1588
1589 PR target/41787
1590 * config/rs6000/rs6000.c (struct machine_function): Revert
1591 2009-10-23 change to set VRSAVE to non-0 if we use VSX.
1592 (rs6000_expand_to_rtl_hook): Ditto.
1593 (rs6000_check_vector_mode): Ditto.
1594 (compute_vrsave_mask): Ditto.
1595
d5473643
PB
15962009-11-20 Paul Brook <paul@codesourcery.com>
1597
1598 * doc/invoke.texi: Document ARM -mcpu=cortex-a5.
1599 * config/arm/arm-cores.def: Add cortex-a5.
1600 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5.
1601 * config/arm/arm-tune.md: Regenerate.
1602
eed8fcad
OG
16032009-11-20 Olga Golovanevsky <olga@il.ibm.com>
1604
1605 PR middle-end/39960
1606 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
1607 (ref_pos): New field in structure.
1608 (insert_new_var_in_stmt): New function.
1609
1610
25bcd7ea
RO
16112009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1612
1613 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint.
1614 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define.
1615 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define.
1616 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
1617 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
c84f4042 1618 INT_LEAST64_TYPE): Define.
25bcd7ea
RO
1619 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
1620 UINT_LEAST64_TYPE): Define.
1621 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
1622 INT_FAST64_TYPE): Define.
1623 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1624 UINT_FAST64_TYPE): Define.
1625 (INTPTR_TYPE, UINTPTR_TYPE): Define.
1626
2ee67fbb
JB
16272009-11-20 Julian Brown <julian@codesourcery.com>
1628
1629 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM
1630 specially for Thumb-1.
1631 (ASM_OUTPUT_REG_POP): Likewise.
1632
98fba7f7
JM
16332009-11-19 Jason Merrill <jason@redhat.com>
1634
1635 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT.
1636
e4d5031c 16372009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
c84f4042 1638 Rafael Avila de Espindola <espindola@google.com>
e4d5031c
RE
1639
1640 * doc/plugins.texi (Plugin initialization): Added advices for
c84f4042 1641 retrieving the version of GCC at plugin compilation and loading times.
e4d5031c 1642
fdabb520
BS
16432009-11-19 Basile Starynkevitch <basile@starynkevitch.net>
1644
1645 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition.
1646 (dump_active_plugins): output to file everything. Use
1647 internationalized dump & FMT_FOR_PLUGIN_EVENT.
1648
b66a1bac
RG
16492009-11-19 Richard Guenther <rguenther@suse.de>
1650
1651 * gimple.c (canonicalize_cond_expr_cond): Strip conversions
1652 around truth-valued expressions.
1653 * tree.c (free_lang_data): Untangle check for LTO frontend.
1654
986ad133
JJ
16552009-11-19 Jakub Jelinek <jakub@redhat.com>
1656
1657 * tree.c (need_assembler_name_p): Use cgraph_get_node instead
1658 of cgraph_node_for_decl.
1659 * cgraph.h (cgraph_node_for_decl): Remove prototype.
1660 * cgraph.c (cgraph_node_for_decl): Remove.
1661 (cgraph_get_node): Just return NULL if !cgraph_hash.
1662
1abed66b
PB
16632009-11-19 Paul Brook <paul@codesourcery.com>
1664
1665 * config.gcc: Add new ARM --with-fpu options.
1666 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16.
1667 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16.
1668
bb4efb4d
RG
16692009-11-18 Richard Guenther <rguenther@suse.de>
1670
1671 * gimple.h (union gimple_statement_d): Add gsmembase member.
1672 (gimple_vuse_op): Use gsmembase for access.
1673 (gimple_vdef_op): Likewise.
1674 (gimple_vuse): Likewise.
1675 (gimple_vdef): Likewise.
1676 (gimple_vuse_ptr): Likewise.
1677 (gimple_vdef_ptr): Likewise.
1678 (gimple_set_vuse): Likewise.
1679 (gimple_set_vdef): Likewise.
1680 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add.
1681
573282f8
DJ
16822009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1683
1684 * doc/arm-neon-intrinsics.texi: Regenerated.
1685
31d1afde
DJ
16862009-11-18 Daniel Jacobowitz <dan@codesourcery.com>
1687
c84f4042 1688 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives.
31d1afde 1689
60bd3528 16902009-11-18 Paul Brook <paul@codesourcery.com>
c84f4042 1691 Daniel Jacobowitz <dan@codesourcery.com>
60bd3528
PB
1692
1693 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define.
1694 (arm_arch7em): New variable.
1695 (all_architectures): Add armv7e-m.
1696 (arm_override_options): Set arm_arch7em.
1697 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD):
1698 Include arm_arch7em.
1699 (arm_arch7em): Declare.
1700
7caa21fc
RG
17012009-11-18 Richard Guenther <rguenther@suse.de>
1702
1703 * lto-streamer-in.c (input_gimple_stmt): Assert that we find
1704 a valid field decl if checking is enabled.
1705
661e7330
MJ
17062009-11-18 Martin Jambor <mjambor@suse.cz>
1707
1708 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid.
1709 (lto_ipa_fixup_call_notes): Declare.
1710 * ipa-prop.c (ipa_note_param_call): Store gimple uid.
1711 (update_call_notes_after_inlining): Copy call stmt uid to the new
1712 edge.
1713 (ipa_write_param_call_note): New function.
1714 (ipa_read_param_call_note): New function
1715 (ipa_write_node_info): Write also param call notes. Removed a bogus
1716 comment, reformatted to fit 80 columns.
1717 (ipa_read_node_info): Read also param call notes. Removed a bogus
1718 comment. Remove ipa_edge_args_vector growth.
1719 (lto_ipa_fixup_call_notes): New function.
1720 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook.
1721 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect
1722 inlining regardless of flag_wpa.
1723 (cgraph_decide_inlining_of_small_functions): Likewise.
1724 (cgraph_decide_inlining): Likewise.
1725 (inline_read_summary): Likewise.
1726
965b98d0
JH
17272009-11-18 Jan Hubicka <jh@suse.cz>
1728
1729 * predict.c (compute_function_frequency): Export.
1730 * predict.h (compute_function_frequency): Declare.
1731 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies.
1732
8b220502
MJ
17332009-11-18 Martin Jambor <mjambor@suse.cz>
1734
1735 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids
1736 on all nodes we write summaries for.
1737
7b98c16f 17382009-11-18 Shujing Zhao <pearly.zhao@oracle.com>
14c27152 1739
7b98c16f 1740 PR middle-end/22201
c84f4042 1741 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH)
7b98c16f
SZ
1742 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM)
1743 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE)
1744 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP)
1745 (PARAM_MIN_INSN_TO_PREFETCH_RATIO)
1746 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO)
c84f4042 1747 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the
7b98c16f
SZ
1748 description string.
1749
b2583345
JJ
17502009-11-18 Jakub Jelinek <jakub@redhat.com>
1751
4f517dce
JJ
1752 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location
1753 unnecessarily.
1754 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars.
1755
b2583345
JJ
1756 PR c++/3187
1757 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
1758 fields.
1759 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1760 prototypes.
1761 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
1762 cgraph_materialize_all_clones): Handle same_body aliases.
1763 * cgraph.c (cgraph_allocate_node): New function.
1764 (cgraph_create_node): Use it.
1765 (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
1766 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
1767 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
1768 functions.
1769 * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
1770 (input_node): Stream in same_body aliases.
1771 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
1772 for same_body aliases.
1773 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.
1774
a64333b7
IS
17752009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
1776
1777 PR other/39888
1778 * config/darwin.h: Use the extension stub libraries to access
1779 current libgcc_s features.
1780
a83452e9
AO
17812009-11-18 Alexandre Oliva <aoliva@redhat.com>
1782
1783 PR debug/41926
1784 * tree-vect-loop.c (vect_loop_kill_debug_uses): New.
1785 (vect_transform_loop): Call it.
1786
462b701b
AO
17872009-11-18 Alexandre Oliva <aoliva@redhat.com>
1788
1789 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of
1790 released SSA names.
1791
a3201927
AO
17922009-11-18 Alexandre Oliva <aoliva@redhat.com>
1793
1794 PR debug/41888
1795 PR debug/41886
1796 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts
1797 are ok.
1798 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise.
1799 (try_generate_gimple_bb): Skip debug stmts when finding data refs.
1800 * sese.c (sese_build_liveouts_bb): Skip debug stmts.
1801 (sese_bad_liveouts_use): New.
1802 (sese_reset_debug_liveouts_bb): New.
1803 (sese_build_liveouts): Use it.
1804 (rename_variables_in_stmt): Reset debug stmts rather than creating
1805 new vars for them.
1806 (expand_scalar_variable_stmt): Likewise.
1807
d785e46f
AO
18082009-11-18 Alexandre Oliva <aoliva@redhat.com>
1809
1810 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns.
1811 (df_ref_remove): Likewise.
1812
d1725344
JH
18132009-11-17 Jan Hubicka <jh@suse.cz>
1814
1815 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile
1816 info.
1817
37740cd3
EB
18182009-11-17 Eric Botcazou <ebotcazou@adacore.com>
1819
1820 * toplev.c (process_options): Remove dead code.
1821 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops.
1822
a5ac2cdf
RAE
18232009-11-17 Rafael Avila de Espindola <espindola@google.com>
1824
1825 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the
1826 nodes.
1827
5456cefc
UW
18282009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1829
1830 PR tree-optimization/41857
1831 * tree-ssa-address.c (move_hint_to_base): Use void pointer to
1832 TYPE's address space instead of pointer to TYPE.
1833
263839d3
UW
18342009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1835
1836 * reload.c (find_reloads_address): Fix typo.
1837
6ca19a97
UW
18382009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1839
1840 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC
1841 registers in leaf functions if possible.
1842
73d2e138
MK
18432009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com>
1844
1845 * config/m68k/m68k-devices.def: Add MCF5441x family.
1846
f8754107
JH
18472009-11-17 Jan Hubicka <jh@suse.cz>
1848
1849 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access
1850 removed node.
1851 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match.
1852
aaf5d6c0
UB
18532009-11-17 Uros Bizjak <ubizjak@gmail.com>
1854
1855 * config/i386/predicates.md (x86_64_szext_general_operand): Do not
1856 nest ior expressions.
1857 (x86_64_szext_nonmemory_operand): Ditto.
1858 (call_insn_operand): Ditto.
1859
efd0b0d3
AO
18602009-11-16 Alexandre Oliva <aoliva@redhat.com>
1861
1862 * stmt.c (expand_asm_stmt): Get locus from stmt.
1863
f8981d1c
AO
18642009-11-16 Alexandre Oliva <aoliva@redhat.com>
1865
1866 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>:
1867 Create the decl label for the new dest block on demand. Require
1868 a fallthrough edge if no asm labels were redirected.
1869
a81f2330
UB
18702009-11-16 Uros Bizjak <ubizjak@gmail.com>
1871
1872 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for
1873 operand 1 predicate.
1874 (cstoresi4): Ditto for operand 2.
1875 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4
1876 patterns using SDWIM mode iterator.
1877 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns
1878 using SWIM mode iterator.
1879 (cmpdi_1): Rename from cmpdi_1_rex64.
1880 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using
1881 SWI48 mode iterator.
14c27152
UB
1882 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns
1883 using SWI mode iterator.
a81f2330
UB
1884 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1.
1885 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1.
1886 (*cmpqi_ext_3_insn): Make private.
1887 (*cmpqi_ext_3_insn_rex64): Make private.
1888 (cmpstrnsi): Update for renamed cmpdi_1_rex64.
1889 * config/i386/predicates.md (cmpsi_operand): Remove.
1890
6ed126e6
PB
18912009-11-16 Paul Brook <paul@codesourcery.com>
1892
1893 * doc/invoke.texi: Document ARM VFPv4 based FPUs.
1894 * config/arm/arm.c (all_fpus): Add VFPv4 entries.
1895
0d63a740
JH
18962009-11-14 Jan Hubicka <jh@suse.cz>
1897
a81f2330
UB
1898 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper
1899 ENTRY_BLOCK_PTR.
1900 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely
1901 zero out all callees.
1902 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for
1903 frequency and count match.
0d63a740
JH
1904 * ipa-inline.c (update_noncloned_frequencies): New function.
1905 (cgraph_clone_inlined_nodes): Use it.
1906 * tree-inline.c (copy_bb): Fix frequency scaling; output
1907 diagnostic on frequency mismatches to dump file.
1908 (initialize_cfun): Do not scale frequency; fix count scaling;
a81f2330
UB
1909 initialize entry and exit block frequencies; copy profile info.
1910 (copy_cfg_body): Use frequency_scale as argument; fix count scaling.
0d63a740
JH
1911 (copy_body): Use frequency_scale as argument.
1912 (expand_call_inline): Compute frequency scale and output diagnostic
1913 to dump file.
1914 (delete_unreachable_blocks_update_callgrah): Remove checking that
1915 has to be done after edge redirection.
1916 (tree_function_versioning): Update initialize_cfun and copy_body call.
1917
0e3776db
JH
19182009-11-14 Jan Hubicka <jh@suse.cz>
1919
1920 * cgraph.c (cgraph_release_function_body): Update use of
1921 ipa_transforms_to_apply.
1922 (cgraph_remove_node): Remove ipa_transforms_to_apply.
1923 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply.
1924 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for
1925 copied body.
1926 (cgraph_materialize_clone): Remove original if dead.
1927 * lto-streamer-in.c (lto_read_body): Remove FIXME and
1928 ipa_transforms_to_apply hack.
1929 * function.h (struct function): Add ipa_transforms_to_apply.
1930 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals.
1931 * tree-inline.c (copy_bb): Update sanity check.
1932 (initialize_cfun): Do not copy ipa_transforms_to_apply.
1933 (expand_call_inline): remove dead clone originals.
1934 (tree_function_versioning): Merge transformation queues.
1935 * passes.c (add_ipa_transform_pass): Remove.
1936 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply
1937 tracking.
1938 (execute_all_ipa_transforms): Update.
1939 (execute_one_pass): Update.
1940
aaf5d6c0 19412009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
a212a5d4
AH
1942
1943 PR target/21078, 21080
1944 * config/avr/avr.c (avr_return_addr_rtx): New function for
1945 builtin_return_address.
1946 (expand_prologue): Calculate stack usage.
1947 (avr_asm_function_end_prologue): Output stack size and offset label.
1948 * config/avr/avr.h (RETURN_ADDR_RTX): Replace.
1949 (machine_function): Add stack_usage.
1950 * config/avr/avr-protos.h (avr_return_addr_rtx): New function.
1951
7ae62237
AS
19522009-11-14 Anatoly Sokolov <aesok@post.ru>
1953
1954 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add
1955 new 'outgoing' argument.
1956 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions.
1957 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
a81f2330 1958 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use
7ae62237
AS
1959 iq2000_function_value_regno_p.
1960 (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
1961 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p):
1962 Declare.
1963
cfc25c74
RE
19642009-11-14 Richard Earnshaw <rearnsha@arm.com>
1965
282cac16 1966 PR target/42031
cfc25c74
RE
1967 * arm.md (adddi_sesidi_di): Place tied contraint first.
1968 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise
1969 (subdi_zesidi_di, subdi_sesidi_di): Likewise.
1970 (mulsi3_compare0, mulsi_compare0_scratch): Likewise.
1971 (mulsi3addsi, mulsi3addsi_compare0): Likewise.
1972 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise.
1973 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise.
1974 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise.
1975 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise.
1976 (arm_lshrdi3_1bit, one_cmpldi2): Likewise.
1977
618cc62e
UB
19782009-11-14 Uros Bizjak <ubizjak@gmail.com>
1979
1980 * config/i386/predicates.md (call_register_no_elim_operand):
1981 New predicate. Reject stack register as valid call operand
1982 for 32bit targets.
1983 (call_insn_operand): Use call_register_no_elim_operand.
1984
08d4cc33
RH
19852009-11-13 Richard Henderson <rth@redhat.com>
1986
1987 * function.c (stack_protect_prologue): Don't bypass expand_expr
1988 for stack_protect_guard and guard_decl.
1989 (stack_protect_epilogue): Likewise.
1990
589520b6
JH
19912009-11-13 Jan Hubicka <jh@suse.cz>
1992
1993 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
1994 when to PUBLIC is set.
1995
2b32c27d
JJ
19962009-11-13 Jakub Jelinek <jakub@redhat.com>
1997
1998 PR middle-end/42029
1999 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on
2000 tmp_load if needed.
2001
8410737a
UB
20022009-11-13 Uros Bizjak <ubizjak@gmail.com>
2003
2004 PR target/41900
2b32c27d
JJ
2005 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1,
2006 *call_value_1): Use "lsm" as operand 1 constraint.
8410737a
UB
2007 * config/i386/predicates.md (call_insn_operand): Depend on
2008 index_register_operand to avoid %esp register.
2009
20102009-11-13 Uros Bizjak <ubizjak@gmail.com>
2011
2012 Revert:
2013 2009-11-03 Uros Bizjak <ubizjak@gmail.com>
2014
2015 PR target/41900
2016 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
2017 (TARGET_CALL_ESP): New define.
2018 * config/i386/i386.c (initial_ix86_tune_features): Initialize
2019 X86_ARCH_CALL_ESP.
2020 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
2021 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
2022 *call_1, *call_value_pop_1 and *call_value_1. Depend on
2023 TARGET_CALL_ESP.
2024 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
2025 New patterns, use "lsm" as operand 1 constraint.
2026 * config/i386/predicates.md (call_insn_operand): Depend on
2027 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
2028
d7f1df66
JM
20292009-11-13 Jason Merrill <jason@redhat.com>
2030
2031 PR debug/26965
2032 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT.
2033 Don't emit a second declaration at any scope.
2034
268bab85
AB
20352009-11-13 Andrey Belevantsev <abel@ispras.ru>
2036
8410737a
UB
2037 PR rtl-optimization/41697
2038 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
2039 a conditional jump has a single successor.
268bab85 2040
bcf33775
AB
20412009-11-13 Andrey Belevantsev <abel@ispras.ru>
2042
2043 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't
2044 allocate reg_last when in case lazy_reg_last is true.
2045 (init_deps_reg_last): New.
2046 (free_deps): When max_reg is 0, this context is already freed.
2047 * sched-int.h (init_deps_reg_last): Export.
2048 (init_deps): Update prototype.
2049 * sched-ebb.c (schedule_ebb): Update the call to init_deps.
2050 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise.
2051 * ddg.c (build_intra_loop_deps): Likewise.
2052 * sel-sched-ir.c (copy_deps_context, create_deps_context,
2053 reset_deps_context, deps_init_id): Likewise.
2054 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT.
2055 (free_data_for_scheduled_insn): New, break down from ...
2056 (free_first_time_insn_data): ... here.
2057 (has_dependence_p): Allocate reg_last now, when it is needed.
2058 (extend_insn_data): When maximal LUID is big enough, allocate
2059 per-insn data in smaller chunks.
2060 * sel-sched-ir.h (free_data_for_scheduled_insn): Export.
2061 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT
8410737a
UB
2062 in scheduled insn.
2063
0f032845
UB
20642009-11-13 Uros Bizjak <ubizjak@gmail.com>
2065
2066 * config/i386/i386.md (call_value): Fix comment.
2067 (sibcall_value): Ditto.
2068
eca9d807
EB
20692009-11-13 Eric Botcazou <ebotcazou@adacore.com>
2070
2071 * config/i386/linux-unwind.h (x86_frob_update_context): New function.
2072 (MD_FROB_UPDATE_CONTEXT): Define.
2073
3a2f6fac 20742009-11-12 Eric Botcazou <ebotcazou@adacore.com>
0f032845 2075 Laurent GUERBY <laurent@guerby.net>
3a2f6fac
EB
2076
2077 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy.
2078 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET.
2079 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET.
2080
c8f59bc8
JH
20812009-11-12 Jan Hubicka <jh@suse.cz>
2082
3a2f6fac
EB
2083 * ipa.c (function_and_variable_visibility): Fix my accidentail commit
2084 and clear DECL_COMMON on localized declarations.
c8f59bc8 2085
9d324dde
BS
20862009-11-12 Bernd Schmidt <bernd.schmidt@analog.com>
2087
2088 PR rtl-opt/38582
2089 * regrename.c (struct du_head): New structure; some elements moved
2090 from...
2091 (struct du_chain): ... this one.
2092 (open_chains, closed_chains): Now of type struct du_head *.
2093 (do_replace): Accept du_head argument, not du_chain. All callers
2094 changed. Modified code to match new data structures.
2095 (build_def_use): Return a list of du_head structures. Modified code
2096 to match new data structures.
2097 (dump_def_use_chain): Accept du_head argument, not du_chain. All
2098 callers changed. Modified code to match new data structures.
2099 (merge_overlapping_regs): Accept du_head argument, not du_chain. All
2100 callers changed. Modified code to match new data structures.
2101 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned.
2102 Allocate a du_head structure as well as a du_chain when creating a
2103 new chain. Modified other code to match new data structures.
2104
9feed216 21052009-11-12 Jan Hubicka <jh@suse.cz>
a8289259
JH
2106
2107 * cgraph.h (varpool_node_name): Declare.
9feed216
EB
2108 * cgraphunit.c (process_function_and_variable_attributes): Set
2109 force_output flag on used variables.
0f032845
UB
2110 * ipa.c (function_and_variable_visibility): Dump externally visible
2111 and needed variables.
a8289259
JH
2112 * varpool.c (varpool_node_name): Export.
2113 (decide_is_variable_needed): Check COMDAT for externally visible vars;
2114 ignore needed flag.
2115
9feed216 21162009-11-12 Uros Bizjak <ubizjak@gmail.com>
8a1eb57b
UB
2117
2118 PR middle-end/41930
2119 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip
2120 processing if XEXP (x, i) is NULL.
2121
fcc993f6
JH
21222009-11-12 Jan Hubicka <jh@suse.cz>
2123
2124 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON
2125 imply PUBLIC || EXTERNAL.
2126
ae761c45
AH
21272009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
2128
2129 PR middle-end/41440
2130 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru,
2131 single successor block, ending with jump created by RTL expander.
8410737a 2132
62a0a52e
JH
21332009-11-11 Jan Hubicka <jh@suse.cz>
2134
2135 PR middle-end/41729
2136 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT
2137 and WEAK variables at -fwhole-program.
2138
2139 PR middle-end/41735
2140 * ipa.c (whole_program_function_and_variable_visility): COMDAT
2141 functions/variables are not needed even if they are externally visible.
2142
811232fe
JH
21432009-11-11 Jan Hubicka <jh@suse.cz>
2144
2145 (patch by Richard Guenther)
2146 * lto-streamer-out.c (output_function): Output head of argument list
2147 earlier.
2148 * lto-streamer-in.c (input_function): Re-map arguments into merged
2149 declaration.
2150
0bc1b77f
JH
21512009-11-11 Jan Hubicka <jh@suse.cz>
2152
2153 * lto-cgraph.c: Include gcov-io.h
2154 (output_profile_summary): New function.
2155 (output_cgraph): Use it.
2156 (input_profile_summary): New function.
2157 (input_cgraph): Use it.
2158 * coverage.c (build_ctr_info_value): Use varpool; initalize
2159 DECL_ASSEMBLER_NAME.
2160 (create_coverage): Likewise.
2161 * tree-profile.c (tree_init_ic_make_global_vars): Likewise.
2162 (tree_init_edge_profiler): Likewise.
2163 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h.
2164
17e7cb85
KT
21652009-11-11 Kai Tietz <kai.tietz@onevision.com>
2166
8a1eb57b 2167 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
17e7cb85
KT
2168 * c-pragma.c (def_pragma_macro_value): Likewise.
2169 (def_pragma_macro): Likewise.
2170 (pushed_macro_table): Likewise.
8a1eb57b
UB
2171 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code.
2172 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed.
17e7cb85 2173
110532c8 21742009-11-11 Basile Starynkevitch <basile@starynkevitch.net>
8a1eb57b 2175
110532c8
BS
2176 * doc/plugins.texi (Registering custom attributes): section
2177 renamed as (Registering custom attributes or pragmas).
2178 Mentions custom attributes & pragmas, and c_register_pragma, with
2179 a small example.
2180 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their
2181 pragmas.
2182 * doc/extend.texi (Function Attributes): Mentions that plugin can
2183 provide their attributes.
2184
9feed216 21852009-11-11 Jon Beniston <jon@beniston.com>
aa4945c1 2186
8a1eb57b
UB
2187 * config.gcc: Add lm32 elf and uclinux targets.
2188 * config/lm32: New directory.
2189 * config/lm32/lm32.c: New file.
2190 * config/lm32/lm32.h: New file.
2191 * config/lm32/lm32.md: New file.
2192 * config/lm32/lm32.opt: New file.
2193 * config/lm32/lm32-protos.h: New file.
2194 * config/lm32/constraints.md: New file.
2195 * config/lm32/predicates.md: New file.
2196 * config/lm32/sfp-machine.h: New file.
2197 * config/lm32/t-fprules-softfp: New file.
2198 * config/lm32/uclinux-elf.h: New file.
2199 * doc/invoke.texi: Document lm32 options.
2200 * doc/contrib.texi: Document lm32 porter.
2201 * doc/install.texi: Document lm32 targets.
aa4945c1 2202
05d3aa37
MJ
22032009-11-11 Martin Jambor <mjambor@suse.cz>
2204
2205 PR lto/41932
2206 * ipa-prop.c (ipa_update_after_lto_read): Call
2207 ipa_check_create_node_params and ipa_check_create_edge_args. Also
2208 call ipa_initialize_node_params instead of ipa_populate_param_decls.
2209
814a4c3b
DJ
22102009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2211
2212 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New.
2213 (neon_expand_vector_init): Use them. Also handle non-constant
2214 vectors with identical elements and vectors with only one
2215 non-constant element.
2216 (arm_print_operand): Handle 'y' modifier.
2217 * config/arm/arm-protos.h (neon_make_constant): Declare.
2218 * config/arm/neon.md (neon_vdup_n<mode>): Split into two
2219 patterns. Use VX instead of VDQW for the first one. Allow
2220 a VFP alternative and V32 modes for the second one.
2221 * config/arm/neon.ml (shape_elt): Add Alternatives.
2222 (ops): Use Alternatives for vdup lane instructions.
2223 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives.
2224 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant.
2225
40f73786
DJ
22262009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2227
2228 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register
2229 operands.
2230 (movti, mov<mode>): Call force_reg on one operand if required.
2231 * config/arm/vec-common.md (mov<mode>): Likewise.
2232
4aef21c8
DJ
22332009-11-11 Daniel Jacobowitz <dan@codesourcery.com>
2234
2235 * config/arm/arm.c (arm_override_options): Enable scheduling for
2236 Thumb-2.
2237
c35af30f
EB
22382009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2239
2240 PR target/10127
2241 PR ada/20548
2242 * expr.h (anti_adjust_stack_and_probe): Declare.
2243 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK
2244 parameter and rewrite head comment.
2245 (allocate_dynamic_stack_space): Adjust call to above function.
2246 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP.
2247
2248 * tree.h (dwarf2out_args_size): Delete.
2249 * dwarf2out.c (dwarf2out_args_size): Make static and move around.
2250 (dwarf2out_args_size_adjust): Delete prototype and move around.
2251 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for
2252 ACCUMULATE_OUTGOING_ARGS targets.
2253
66695571
EB
22542009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2255
2256 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null
2257 DECL_SIZE of DECL_RESULT before evaluating it.
2258
08d19889
KG
22592009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2260
2261 PR tree-optimization/41987
2262 * fold-const.c (const_binop): Avoid using fold_buildN().
2263
2c5721d9
MJ
22642009-11-10 Martin Jambor <mjambor@suse.cz>
2265
2266 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field.
2267 (execute_all_ipa_stmt_fixups): Declare.
2268 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value.
2269 * ipa-inline.c (pass_ipa_inline): Likewise.
2270 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise.
2271 * ipa-reference.c (pass_ipa_reference): Likewise.
2272 * ipa.c (pass_ipa_whole_program_visibility): Likewise.
2273 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise.
2274 (pass_ipa_lto_finish_out): Likewise.
2275 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise.
2276 * passes.c (execute_ipa_stmt_fixups): New function.
2277 (execute_all_ipa_stmt_fixups): New function.
2278 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups.
2279
949fa04c
EB
22802009-11-10 Eric Botcazou <ebotcazou@adacore.com>
2281
2282 PR ada/20548
2283 * explow.c (probe_stack_range): Fix typo.
2284 * config/sparc/sparc.md (probe_stack): New expander.
2285
633f54d0
DK
22862009-11-09 Dave Korn <dave.korn.cygwin@gmail.com>
2287
2288 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin.
2289
6e7e763e
JM
22902009-11-09 Jason Merrill <jason@redhat.com>
2291
2292 * gdbinit.in (pgq): New function for printing gimple sequence.
2293
e0dc3601 22942009-11-09 Paul Brook <paul@codesourcery.com>
8a1eb57b
UB
2295 Daniel Jacobowitz <dan@codesourcery.com>
2296 Sandra Loosemore <sandra@codesourcery.com>
e0dc3601
PB
2297
2298 * doc/extend.texi (Half-Precision): Update wording to reflect
2299 that there are now multiple -mfpu options that enable fp16
2300 hardware support.
2301 * doc/invoke.texi: Update list of ARM -mfpu= options.
2302 * config.gcc: Update ARM --with-fpu option list.
2303 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16,
2304 vfpv3xd and vfpv3xd-fp16.
2305 (use_vfp_abi): New function.
2306 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs
2307 when undesirable.
2308 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate,
2309 aapcs_vfp_allocate_return_reg): Use use_vfp_abi.
8a1eb57b
UB
2310 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs,
2311 arm_9e_rtx_costs): Only expect double-precision operations if the FPU
2312 provides them.
e0dc3601
PB
2313 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no
2314 NEON.
2315 (arm_print_operand): Handle 'p' modifier.
2316 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if
2317 TARGET_FP16.
2318 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define.
2319 (TARGET_FP16): Define.
2320 * config/arm/vfp.md: Disable double-precision patterns if the FPU
2321 does not provide them.
2322 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move
2323 double-precision values on a single-precision FPU.
8a1eb57b
UB
2324 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for
2325 double-precision constants.
e0dc3601
PB
2326 (movhf_vfp_neon): New pattern (was movhf_vfp).
2327 (movhf_vfp): Remove NEON instructions.
2328 * config/arm/constraints.md: Add new "Dy" constraint for
2329 double-precision constants. Update description of "Dv".
2330 * config/arm/arm.md: Disable double-precision patterns if the FPU
2331 does not provide them
2332
2bf17308
JJ
23332009-11-09 Jakub Jelinek <jakub@redhat.com>
2334
2335 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting.
2336 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage
2337 diagnostics.
2338
5938f74d
L
23392009-11-08 H.J. Lu <hongjiu.lu@intel.com>
2340
2341 * collect2.c (main): Search PLUGIN_LD for plugin linker.
2342
2343 * configure.ac (--with-plugin-ld): New. Default to ld.
2344 * configure: Regenerated.
2345 * config.in: Likewise.
2346
2347 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New.
2348 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin.
2349
9feed216 23502009-11-08 Jonathan Gray <jsg@openbsd.org>
f8535154
JG
2351
2352 * config/openbsd-stdint.h: Change to reflect what
2353 c_common_nodes_and_builtins expects.
2354
3ab084fa
PC
23552009-11-08 Paolo Carlini <paolo.carlini@oracle.com>
2356
2357 * builtins.c (apply_args_reg_offset): Remove commented out delaration.
2358
2eea716d
JJ
23592009-11-08 Jakub Jelinek <jakub@redhat.com>
2360
2361 PR target/41985
2362 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert
2363 function contains at least one local dynamic name.
2364 (print_operand) <case '&'>: Instead output operand lossage diagnostics
2365 here if that happens.
2366
e0a42b0f
ZC
23672009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com>
2368 Joern Rennecke <amylaar@spamcop.net>
2369
2370 * cfgrtl.c (pass_free_cfg): Add pass name.
2371 * cgraphbuild.c (pass_build_cgraph_edges): Likewise.
2372 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise.
2373 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name.
2374 * df-core.c (pass_df_initialize_no_opt): Likewise.
2375 * except.c (pass_rtl_eh): Likewise.
2376 * function.c (pass_init_function, pass_leaf_regs): Likewise.
2377 * gcse.c (pass_rtl_pre): Change pass name.
2378 * passes.c (pass_postreload): Add pass name.
2379 (make_pass_instance): Don't use duplicate-tracking logic for
2380 names starting with '*'.
2381 (next_pass_1): Assert that pass has a name.
2382 (register_one_dump_file): If there is an space in the name,
2383 skip past it.
2384 * predict.c (pass_strip_predict_hints): Add pass name.
2385 * reg-stack.c (pass_stack_regs): Likewise.
2386 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2387 * tree-cfg.c (pass_warn_function_return,
2388 pass_warn_function_noreturn): Add pass name.
2389 * tree-dfa.c (pass_referenced_vars): Likewise.
2390 * tree-optimize.c (pass_cleanup_cfg_post_optimizing):
2391 Fix whitespace before comment.
2392 (pass_fixup_cfg): Add pass name, fix whitespace before comment.
2393 (pass_init_datastructures): Add pass name.
2394 * tree-ssa-loop.c (pass_record_bounds): Likewise.
2395 * tree-ssa.c (pass_early_warn_uninitialized,
2396 pass_late_warn_uninitialized): Likewise.
2397 * tree.c (pass_ipa_free_lang_data): Likewise.
2398 * doc/passes.texi (pass manager): Document how to disambiguate
2399 pass names.
2400
64274683
PB
24012009-11-08 Paolo Bonzini <bonzini@gnu.org>
2402
2403 * df-problems.c: Fix documentation for forward simulation of LR.
2404 (df_simulate_one_insn_forwards): Use df_simulate_find_defs.
2405 (df_simulate_finalize_forwards): Remove.
2406 * df.h (df_simulate_finalize_forwards): Remove.
2407
379c6f48
RG
24082009-11-08 Richard Guenther <rguenther@suse.de>
2409
2410 * tree-ssa-structalias.c (build_succ_graph): Properly make
2411 variables escape if they are stored to anything.
2412
eb149440
RG
24132009-11-08 Richard Guenther <rguenther@suse.de>
2414
2415 PR rtl-optimization/41928
2416 * loop-invariant.c (free_loop_data): If we didn't allocate
2417 loop data do not try to free it.
2418
b5fcfe89
JM
24192009-11-07 Jason Merrill <jason@redhat.com>
2420
2421 * tree.c (reconstruct_complex_type): Preserve attributes.
2422
de925a03
RG
24232009-11-07 Richard Guenther <rguenther@suse.de>
2424
2425 * tree-ssa-structalias.c (build_succ_graph): Feed stores
2426 to anything only to variables that can take pointers.
2427 (get_constraint_for_ssa_var): Properly exclude full
2428 variables from expanding.
2429 (first_vi_for_offset): Avoid overflow in arithmetic.
2430 (first_or_preceding_vi_for_offset): Likewise.
2431 (count_num_arguments): Fix implementation.
2432 (gate_ipa_pta): Do not run when not optimizing.
2433
451409e4
DB
24342009-11-07 David Binderman <dcb314@hotmail.com>
2435
2436 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi,
2437 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some
2438 set but not used variables.
3ab084fa 2439 (apply_args_reg_offset): Comment out as unused.
451409e4
DB
2440 * calls.c (flags_from_decl_or_type): Likewise.
2441 * genautomata.c (check_regexp_units_distribution): Likewise.
2442
1a62cb3b
UB
24432009-11-07 Uros Bizjak <ubizjak@gmail.com>
2444
2445 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd,
2446 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql,
2447 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd,
2448 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>,
2449 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si,
2450 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress
2451 operand alternatives.
2452
79af7c1f
MM
24532009-11-06 Michael Matz <matz@suse.de>
2454
2455 PR middle-end/41963
2456 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses
2457 of a potential reciprocal to really be reciprocals.
2458
d32599a6
JJ
24592009-11-06 Jakub Jelinek <jakub@redhat.com>
2460
b169fe9d
JJ
2461 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and
2462 lwpintrin.h after immintrin.h.
2463 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove
2464 typedefs.
2465
d32599a6
JJ
2466 PR middle-end/41935
2467 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs
2468 or non-constant index, allow index one past the last element and
2469 allow exceeding array bound in arrays that might be used as flexible
2470 array members.
2471
7a14a9da
RH
24722009-11-05 Richard Henderson <rth@redhat.com>
2473
2474 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__.
2475
d79f3032
PB
24762009-11-05 Paul Brook <paul@codesourcery.com>
2477
2478 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove.
2479 (arm_fpu_desc): New.
2480 (all_fpus): Add FPU details.
2481 (fp_model_for_fpu): Remove.
2482 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr.
2483 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2.
2484 (arm_file_start): Use arm_fpu_desc.
2485 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP,
2486 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use
2487 arm_fpu_desc.
2488 (TARGET_FPA_EMU2): Define.
2489 (arm_fp_model, fputype, arm_fpu_tune): Remove.
2490 (vfp_reg_type, arm_fpu_desc): New.
2491 * config/arm/arm.md (attr fpu): Simplify.
2492 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2.
2493 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value.
2494 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value.
2495 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value.
2496 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value.
2497
79e22ff8
MM
24982009-11-05 Michael Matz <matz@suse.de>
2499
2500 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
2501 on TARGET_RECIP.
2502 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
2503 for 1/sqrtf.
2504
5ab8b6b5
JM
25052009-11-04 Jason Merrill <jason@redhat.com>
2506
2507 PR c++/36912
2508 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR
2509 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer.
2510 (output_constant): Avoid crash after error.
2511
30a20e97
MJ
25122009-11-05 Martin Jambor <mjambor@suse.cz>
2513
2514 * tree-sra.c (struct access): Changed comment of next_sibling field.
2515 (analyze_modified_params): Loop over accesses of a group rather than
2516 over all with the ame base, pass a common bitmap to
2517 walk_aliased_vdefs.
2518 (unmodified_by_ref_scalar_representative): Build link lists of
2519 accesses of a group.
2520 (splice_param_accesses): Likewise.
2521
4f2da32b
KZ
25222009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com>
2523
2524 * df-scan.c (df-uses-record): Add case zero_extract of mem.
8a1eb57b 2525
35a07c37
EB
25262009-11-04 Eric Botcazou <ebotcazou@adacore.com>
2527
2528 PR target/10127
2529 PR ada/20548
f96b1895 2530 * config/i386/i386.md (probe_stack): New expander.
35a07c37
EB
2531 (logical operation peepholes): Do not split stack checking probes.
2532
3e901069
HJ
25332009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2534 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
2535
2536 * doc/invoke.texi (-mlwp): Add documentation.
2537 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics.
2538 * config.gcc (i[34567]86-*-*): Include lwpintrin.h.
2539 (x86_64-*-*): Ditto.
2540 * config/i386/lwpintrin.h: New file, provide x86 compiler
2541 intrinisics for LWP.
2542 * config/i386/cpuid.h (bit_LWP): Define LWP bit.
2543 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h.
2544 * config/i386/i386-c.c (ix86_target_macros_internal): Check
8a1eb57b 2545 ISA_FLAG for LWP.
3e901069
HJ
2546 * config/i386/i386.h (TARGET_LWP): New macro for LWP.
2547 * config/i386/i386.opt (-mlwp): New switch for LWP support.
2548 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New.
8a1eb57b 2549 (OPTION_MASK_ISA_LWP_UNSET): New.
3e901069
HJ
2550 (ix86_handle_option): Handle -mlwp.
2551 (isa_opts): Handle -mlwp.
2552 (enum pta_flags): Add PTA_LWP.
2553 (override_options): Add LWP support.
2554 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic.
2555 (IX86_BUILTIN_LLWPCB32): Ditto.
2556 (IX86_BUILTIN_LLWPCB64): Ditto.
2557 (IX86_BUILTIN_SLWPCB16): Ditto.
2558 (IX86_BUILTIN_SLWPCB32): Ditto.
2559 (IX86_BUILTIN_SLWPCB64): Ditto.
2560 (IX86_BUILTIN_LWPVAL16): Ditto.
2561 (IX86_BUILTIN_LWPVAL32): Ditto.
2562 (IX86_BUILTIN_LWPVAL64): Ditto.
2563 (IX86_BUILTIN_LWPINS16): Ditto.
2564 (IX86_BUILTIN_LWPINS32): Ditto.
2565 (IX86_BUILTIN_LWPINS64): Ditto.
2566 (enum ix86_special_builtin_type): Add LWP intrinsic support.
2567 (builtin_description): Ditto.
2568 (ix86_init_mmx_sse_builtins): Ditto.
2569 (ix86_expand_special_args_builtin): Ditto.
8a1eb57b 2570 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for
3e901069
HJ
2571 LWP support.
2572 (UNSPEC_SLWP_INTRINSIC): Ditto.
2573 (UNSPECV_LWPVAL_INTRINSIC): Ditto.
2574 (UNSPECV_LWPINS_INTRINSIC): Ditto.
2575 (lwp_llwpcbhi1): New lwp pattern.
2576 (lwp_llwpcbsi1): Ditto.
2577 (lwp_llwpcbdi1): Ditto.
2578 (lwp_slwpcbhi1): Ditto.
2579 (lwp_slwpcbsi1): Ditto.
2580 (lwp_slwpcbdi1): Ditto.
2581 (lwp_lwpvalhi3): Ditto.
2582 (lwp_lwpvalsi3): Ditto.
2583 (lwp_lwpvaldi3): Ditto.
2584 (lwp_lwpinshi3): Ditto.
2585 (lwp_lwpinssi3): Ditto.
2586 (lwp_lwpinsdi3): Ditto.
8a1eb57b 2587
0e159e0f 25882009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com>
8a1eb57b 2589 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
0e159e0f
AP
2590
2591 PR rtl-opt/41833
2592 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of
2593 a vec_duplicate.
2594
7e9dc421 25952009-11-04 Richard Guenther <rguenther@suse.de>
8a1eb57b
UB
2596 Rafael Avila de Espindola <espindola@google.com>
2597
7e9dc421 2598 * gcc.c (process_command): Handle arguments name@offset.
0e159e0f 2599
43a8b705
HJ
26002009-11-04 Harsha Jagasia <harsha.jagasia@amd.com>
2601 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
8a1eb57b 2602
43a8b705
HJ
2603 * config.gcc (i[34567]86-*-*): Include xopintrin.h.
2604 (x86_64-*-*): Ditto.
2605 * config/i386/xopintrin.h: New file, provide common x86 compiler
2606 intrinisics for XOP.
2607 * config/i386/cpuid.h (bit_XOP): Define XOP bit.
2608 * config/i386/x86intrin.h: Add XOP check and xopintrin.h.
2609 * config/i386/i386-c.c(ix86_target_macros_internal): Check
8a1eb57b 2610 ISA_FLAG for XOP.
43a8b705
HJ
2611 * config/i386/i386.h(TARGET_XOP): New macro for XOP.
2612 * config/i386/i386.opt (-mxop): New switch for XOP support.
2613 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP)
2614 (UNSPEC_XOP_TRUEFALSE)
2615 (UNSPEC_XOP_PERMUTE)
2616 (UNSPEC_FRCZ): Add new UNSPEC for XOP support.
2617 (PPERM_*): New constants for vpperm instruction.
2618 (xop_pcmov_<mode>): Add XOP conditional mov instructions.
2619 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New.
8a1eb57b 2620 (OPTION_MASK_ISA_XOP_UNSET): New.
1a62cb3b 2621 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP.
43a8b705
HJ
2622 (ix86_handle_option): Handle -mxop.
2623 (isa_opts): Handle -mxop.
2624 (enum pta_flags): Add PTA_XOP.
2625 (override_options): Add XOP support.
2626 (print_operand): Add code for XOP compare instructions.
2627 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction.
2628 (ix86_expand_int_vcond): Extend for XOP compare instruction.
2629
2630 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic.
2631 (IX86_BUILTIN_VPCMOV_V2DI): Ditto.
2632 (IX86_BUILTIN_VPCMOV_V4SI): Ditto.
2633 (IX86_BUILTIN_VPCMOV_V8HI): Ditto.
2634 (IX86_BUILTIN_VPCMOV_V16QI): Ditto.
2635 (IX86_BUILTIN_VPCMOV_V4SF): Ditto.
2636 (IX86_BUILTIN_VPCMOV_V2DF): Ditto.
2637
2638 (IX86_BUILTIN_VPCMOV256): Ditto.
2639 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto.
2640 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto.
2641 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto.
2642 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto.
2643 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto.
2644 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto.
2645
2646 (IX86_BUILTIN_VPPERM): Ditto.
2647
2648 (IX86_BUILTIN_VPMACSSWW): Ditto.
2649 (IX86_BUILTIN_VPMACSWW): Ditto.
2650 (IX86_BUILTIN_VPMACSSWD): Ditto.
2651 (IX86_BUILTIN_VPMACSWD): Ditto.
2652 (IX86_BUILTIN_VPMACSSDD): Ditto.
2653 (IX86_BUILTIN_VPMACSDD): Ditto.
2654 (IX86_BUILTIN_VPMACSSDQL): Ditto.
2655 (IX86_BUILTIN_VPMACSSDQH): Ditto.
2656 (IX86_BUILTIN_VPMACSDQL): Ditto.
2657 (IX86_BUILTIN_VPMACSDQH): Ditto.
2658 (IX86_BUILTIN_VPMADCSSWD): Ditto.
2659 (IX86_BUILTIN_VPMADCSWD): Ditto.
2660
2661 (IX86_BUILTIN_VPHADDBW): Ditto.
2662 (IX86_BUILTIN_VPHADDBD): Ditto.
2663 (IX86_BUILTIN_VPHADDBQ): Ditto.
2664 (IX86_BUILTIN_VPHADDWD): Ditto.
2665 (IX86_BUILTIN_VPHADDWQ): Ditto.
2666 (IX86_BUILTIN_VPHADDDQ): Ditto.
2667 (IX86_BUILTIN_VPHADDUBW): Ditto.
2668 (IX86_BUILTIN_VPHADDUBD): Ditto.
2669 (IX86_BUILTIN_VPHADDUBQ): Ditto.
2670 (IX86_BUILTIN_VPHADDUWD): Ditto.
2671 (IX86_BUILTIN_VPHADDUWQ): Ditto.
2672 (IX86_BUILTIN_VPHADDUDQ): Ditto.
2673 (IX86_BUILTIN_VPHSUBBW): Ditto.
2674 (IX86_BUILTIN_VPHSUBWD): Ditto.
2675 (IX86_BUILTIN_VPHSUBDQ): Ditto.
2676
2677 (IX86_BUILTIN_VPROTB): Ditto.
2678 (IX86_BUILTIN_VPROTW): Ditto.
2679 (IX86_BUILTIN_VPROTD): Ditto.
2680 (IX86_BUILTIN_VPROTQ): Ditto.
2681 (IX86_BUILTIN_VPROTB_IMM): Ditto.
2682 (IX86_BUILTIN_VPROTW_IMM): Ditto.
2683 (IX86_BUILTIN_VPROTD_IMM): Ditto.
2684 (IX86_BUILTIN_VPROTQ_IMM): Ditto.
2685
2686 (IX86_BUILTIN_VPSHLB): Ditto.
2687 (IX86_BUILTIN_VPSHLW): Ditto.
2688 (IX86_BUILTIN_VPSHLD): Ditto.
2689 (IX86_BUILTIN_VPSHLQ): Ditto.
2690 (IX86_BUILTIN_VPSHAB): Ditto.
2691 (IX86_BUILTIN_VPSHAW): Ditto.
2692 (IX86_BUILTIN_VPSHAD): Ditto.
2693 (IX86_BUILTIN_VPSHAQ): Ditto.
2694
2695 (IX86_BUILTIN_VFRCZSS): Ditto.
2696 (IX86_BUILTIN_VFRCZSD): Ditto.
2697 (IX86_BUILTIN_VFRCZPS): Ditto.
2698 (IX86_BUILTIN_VFRCZPD): Ditto.
2699 (IX86_BUILTIN_VFRCZPS256): Ditto.
2700 (IX86_BUILTIN_VFRCZPD256): Ditto.
2701
2702 (IX86_BUILTIN_VPCOMEQUB): Ditto.
2703 (IX86_BUILTIN_VPCOMNEUB): Ditto.
2704 (IX86_BUILTIN_VPCOMLTUB): Ditto.
2705 (IX86_BUILTIN_VPCOMLEUB): Ditto.
2706 (IX86_BUILTIN_VPCOMGTUB): Ditto.
2707 (IX86_BUILTIN_VPCOMGEUB): Ditto.
2708 (IX86_BUILTIN_VPCOMFALSEUB): Ditto.
2709 (IX86_BUILTIN_VPCOMTRUEUB): Ditto.
2710
2711 (IX86_BUILTIN_VPCOMEQUW): Ditto.
2712 (IX86_BUILTIN_VPCOMNEUW): Ditto.
2713 (IX86_BUILTIN_VPCOMLTUW): Ditto.
2714 (IX86_BUILTIN_VPCOMLEUW): Ditto.
2715 (IX86_BUILTIN_VPCOMGTUW): Ditto.
2716 (IX86_BUILTIN_VPCOMGEUW): Ditto.
2717 (IX86_BUILTIN_VPCOMFALSEUW): Ditto.
2718 (IX86_BUILTIN_VPCOMTRUEUW): Ditto.
2719
2720 (IX86_BUILTIN_VPCOMEQUD): Ditto.
2721 (IX86_BUILTIN_VPCOMNEUD): Ditto.
2722 (IX86_BUILTIN_VPCOMLTUD): Ditto.
2723 (IX86_BUILTIN_VPCOMLEUD): Ditto.
2724 (IX86_BUILTIN_VPCOMGTUD): Ditto.
2725 (IX86_BUILTIN_VPCOMGEUD): Ditto.
2726 (IX86_BUILTIN_VPCOMFALSEUD): Ditto.
2727 (IX86_BUILTIN_VPCOMTRUEUD): Ditto.
2728
2729 (IX86_BUILTIN_VPCOMEQUQ): Ditto.
2730 (IX86_BUILTIN_VPCOMNEUQ): Ditto.
2731 (IX86_BUILTIN_VPCOMLTUQ): Ditto.
2732 (IX86_BUILTIN_VPCOMLEUQ): Ditto.
2733 (IX86_BUILTIN_VPCOMGTUQ): Ditto.
2734 (IX86_BUILTIN_VPCOMGEUQ): Ditto.
2735 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto.
2736 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto.
2737
2738 (IX86_BUILTIN_VPCOMEQB): Ditto.
2739 (IX86_BUILTIN_VPCOMNEB): Ditto.
2740 (IX86_BUILTIN_VPCOMLTB): Ditto.
2741 (IX86_BUILTIN_VPCOMLEB): Ditto.
2742 (IX86_BUILTIN_VPCOMGTB): Ditto.
2743 (IX86_BUILTIN_VPCOMGEB): Ditto.
2744 (IX86_BUILTIN_VPCOMFALSEB): Ditto.
2745 (IX86_BUILTIN_VPCOMTRUEB): Ditto.
2746
2747 (IX86_BUILTIN_VPCOMEQW): Ditto.
2748 (IX86_BUILTIN_VPCOMNEW): Ditto.
2749 (IX86_BUILTIN_VPCOMLTW): Ditto.
2750 (IX86_BUILTIN_VPCOMLEW): Ditto.
2751 (IX86_BUILTIN_VPCOMGTW): Ditto.
2752 (IX86_BUILTIN_VPCOMGEW): Ditto.
2753 (IX86_BUILTIN_VPCOMFALSEW): Ditto.
2754 (IX86_BUILTIN_VPCOMTRUEW): Ditto.
2755
2756 (IX86_BUILTIN_VPCOMEQD): Ditto.
2757 (IX86_BUILTIN_VPCOMNED): Ditto.
2758 (IX86_BUILTIN_VPCOMLTD): Ditto.
2759 (IX86_BUILTIN_VPCOMLED): Ditto.
2760 (IX86_BUILTIN_VPCOMGTD): Ditto.
2761 (IX86_BUILTIN_VPCOMGED): Ditto.
2762 (IX86_BUILTIN_VPCOMFALSED): Ditto.
2763 (IX86_BUILTIN_VPCOMTRUED): Ditto.
2764
2765 (IX86_BUILTIN_VPCOMEQQ): Ditto.
2766 (IX86_BUILTIN_VPCOMNEQ): Ditto.
2767 (IX86_BUILTIN_VPCOMLTQ): Ditto.
2768 (IX86_BUILTIN_VPCOMLEQ): Ditto.
2769 (IX86_BUILTIN_VPCOMGTQ): Ditto.
2770 (IX86_BUILTIN_VPCOMGEQ): Ditto.
2771 (IX86_BUILTIN_VPCOMFALSEQ): Ditto.
2772 (IX86_BUILTIN_VPCOMTRUEQ): Ditto.
2773
2774 (enum multi_arg_type): New enum for describing the various XOP
2775 intrinsic argument types.
2776 (bdesc_multi_arg): New table for XOP intrinsics.
2777 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support.
2778 (ix86_expand_multi_arg_builtin): New function for creating XOP
2779 intrinsics.
2780
2781 * config/i386/sse.md (sserotatemax): New mode attribute for XOP.
2782 (xop_pmacsww): Ditto.
2783 (xop_pmacssww): Ditto.
2784 (xop_pmacsdd): Ditto.
2785 (xop_pmacssdd): Ditto.
2786 (xop_pmacssdql): Ditto.
2787 (xop_pmacssdqh): Ditto.
2788 (xop_pmacsdql): Ditto.
2789 (xop_pmacsdql_mem): Ditto.
2790 (xop_mulv2div2di3_low): Ditto.
2791 (xop_pmacsdqh): Ditto.
2792 (xop_pmacsdqh_mem): Ditto.
2793 (xop_mulv2div2di3_high): Ditto.
2794 (xop_pmacsswd): Ditto.
2795 (xop_pmacswd): Ditto.
2796 (xop_pmadcsswd): Ditto.
2797 (xop_pmadcswd): Ditto.
2798 (xop_pcmov_<mode>): Ditto.
8a1eb57b 2799 (xop_pcmov_<mode>256): Ditto.
43a8b705
HJ
2800 (xop_phaddbw): Ditto.
2801 (xop_phaddbd): Ditto.
2802 (xop_phaddbq): Ditto.
2803 (xop_phaddwd): Ditto.
2804 (xop_phaddwq): Ditto.
2805 (xop_phadddq): Ditto.
2806 (xop_phaddubw): Ditto.
2807 (xop_phaddubd): Ditto.
2808 (xop_phaddubq): Ditto.
2809 (xop_phadduwd): Ditto.
2810 (xop_phadduwq): Ditto.
2811 (xop_phaddudq): Ditto.
2812 (xop_phsubbw): Ditto.
2813 (xop_phsubwd): Ditto.
2814 (xop_phsubdq): Ditto.
2815 (xop_pperm): Ditto.
2816 (rotl<mode>3): Ditto.
2817 (rotr<mode>3): Ditto.
2818 (xop_rotl<mode>3): Ditto.
2819 (xop_rotr<mode>3): Ditto.
2820 (vrotr<mode>3): Ditto.
2821 (vrotl<mode>3): Ditto.
2822 (xop_vrotl<mode>3): Ditto.
2823 (vlshr<mode>3): Ditto.
2824 (vashr<mode>3): Ditto.
2825 (vashl<mode>3
2826 (xop_ashl<mode>3): Ditto.
2827 (xop_lshl<mode>3): Ditto.
2828 (ashlv16qi3): Ditto.
2829 (lshlv16qi3): Ditto.
2830 (ashrv16qi3): Ditto.
2831 (ashrv2di3): Ditto.
2832 (xop_frcz<mode>2): Ditto.
2833 (xop_vmfrcz<mode>2): Ditto.
8a1eb57b 2834 (xop_frcz<mode>2256): Ditto.
43a8b705
HJ
2835 (xop_maskcmp<mode>3): Ditto.
2836 (xop_maskcmp_uns<mode>3): Ditto.
2837 (xop_maskcmp_uns2<mode>3): Ditto.
2838 (xop_pcom_tf<mode>3): Ditto.
2839
2840 * doc/invoke.texi (-mxop): Add documentation.
2841 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics.
8a1eb57b 2842
7d6ce94a
MM
28432009-11-03 Mark Mitchell <mark@codesourcery.com>
2844
2845 PR driver/11810
2846 * gcc.c (SWITCHES_NEED_SPACES): Define to "o".
2847 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here.
2848 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here.
2849
57f5eef0
RE
28502009-11-04 Richard Earnshaw <rearnsha@arm.com>
2851
2852 PR target/40835
2853 * arm.md (peephole2 patterns for move and compare): New.
2854
4003023f
NC
28552009-11-04 Nick Clifton <nickc@redhat.com>
2856
2857 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition.
2858 Make sure that it does not allow CONST_DOUBLEs.
2859 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description.
2860 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete.
2861 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete.
2862 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete.
2863 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete.
2864 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete.
2865 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete.
2866 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete.
2867 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete.
2868 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete.
2869 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete.
2870 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete.
2871 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete.
2872 * config/score/score.h (CONSTANT_ADDRESS_P): Delete.
2873 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete.
2874
92fcbf95
RB
28752009-11-04 Richard Guenther <rguenther@suse.de>
2876
2877 PR tree-optimization/41919
2878 * tree-vrp.c (test_for_singularity): Properly compare values.
2879
0cf7986c
RE
28802009-11-04 Revital Eres <eres@il.ibm.com>
2881
2882 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
2883 Consider peeling for alignment only for stores and remove
2884 redundant assignment.
2885
db5e2d51
MK
28862009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com>
2887
2888 PR target/41302
2889 * config/m68k/m68k.c (m68k_reg_present_p): New static function.
2890 (m68k_ok_for_sibcall_p): Handle different result return locations.
2891
e3b8749b
RG
28922009-11-04 Richard Guenther <rguenther@suse.de>
2893
2894 * c-opts.c (c_common_post_options): Move LTO option processing
2895 code ...
2896 * opts.c (decode_options): ... here.
2897
00ffc97d
JJ
28982009-11-04 Jakub Jelinek <jakub@redhat.com>
2899
2900 * c-common.c (fold_offsetof_1): Use %wd instead of
2901 HOST_WIDE_INT_PRINT_DEC.
2902
bfd47963
MR
29032009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
2904
2905 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define
2906 __pic__ or __PIC__.
2907
45f68150
MR
29082009-11-04 Maciej W. Rozycki <macro@linux-mips.org>
2909
2910 * config.gcc (vax-*-linux*): Keep the original contents of
2911 tmake_file while adding vax/t-linux.
2912
d809253a
EB
29132009-11-03 Eric Botcazou <ebotcazou@adacore.com>
2914
2915 PR target/10127
2916 PR ada/20548
2917 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete.
2918 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro.
2919 (STACK_CHECK_MOVING_SP): Likewise.
2920 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it.
2921 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL.
2922 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP.
2923 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK.
2924 Document PROBE_STACK.
2925 * explow.c (anti_adjust_stack_and_probe): New function.
2926 (allocate_dynamic_stack_space): Do not directly allocate space if
2927 STACK_CHECK_MOVING_SP, instead invoke above function.
2928 (emit_stack_probe): Handle probe_stack insn.
2929 (PROBE_INTERVAL): New macro.
2930 (STACK_GROW_OPTAB): Likewise.
2931 (STACK_GROW_OFF): Likewise.
2932 (probe_stack_range): Use Pmode and memory_address consistently. Fix
2933 loop condition in the small constant case. Rewrite in the general
2934 case to be immune to wraparounds. Make sure the address of probes
2935 is valid. Try to use [base + disp] addressing mode if possible.
2936 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack
2937 checking is enabled and STACK_CHECK_MOVING_SP.
2938 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled,
2939 return 1 for volatile references to the stack pointer.
2940 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on
2941 __builtin_alloca if stack checking is enabled.
2942 * unwind-dw2.c (uw_identify_context): Take into account whether the
2943 context is that of a signal frame or not.
2944 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1.
2945 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise.
2946
24d179b4
JJ
29472009-11-03 Jakub Jelinek <jakub@redhat.com>
2948
2949 PR rtl-optimization/41917
2950 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second
2951 operand isn't known to be 0, return 1.
2952
791c344b
RS
29532009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2954
2955 * config/mips/mips.md: Fix typos.
2956
8d023933
RS
29572009-11-03 Richard Sandiford <rdsandiford@googlemail.com>
2958
2959 * doc/invoke.texi: Fix typo.
2960
156e4236
PB
29612009-11-03 Paul Brook <paul@codesourcery.com>
2962
2963 * config/arm/neon.ml (vectype): Add T_floatSF.
2964 (string_of_vectype): Ditto.
2965 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF.
2966 (deftypes): Use float for float32_t.
2967 * config/arm/arm_neon.h: Regenerate.
2968
9595a419
NC
29692009-11-03 Nick Clifton <nickc@redhat.com>
2970 Kevin Buettner <kevinb@redhat.com>
2971
2972 * config/rx/predicates.md (rx_store_multiple_vector): Reverse
2973 order of expected registers.
2974 (rx_load_multiple_vector): Likewise.
2975 (rx_rtsd_vector): Likewise.
2976 * config/rx/rx.c (rx_cpu_type): New variable.
2977 (rx_print_operand): Fix bug printing 64-bit constant values.
2978 (rx_emit_stack_pushm): Reverse order of pushed registers.
2979 (gen_rx_store_vector): Likewise.
2980 (is_fast_interrupt_func): Only accept "fast_interrupt" as the
2981 attribute name.
2982 (is_exception_func): Rename to is_interrupt_func and only accept
2983 "interrupt" as the attribute name.
2984 (rx_get_stack_layout): Use new function name.
2985 (rx_func_attr_inlinable): Likewise.
2986 (rx_attribute_table): Remove "exception".
2987 (rx_expand_prologue): If necessary push the accumulator register
2988 in the prologue of interrupt functions.
2989 (rx_expand_epilogue): If necessary pop the accumulator.
2990 (rx_builtins): Add RX_BUILTIN_MVTIPL.
2991 (rx_expand_builtin_stz): Remove.
2992 (rx_expand_builtin_mvtipl): New function.
2993 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL.
2994 (rx_expand_builtin): Likewise.
2995 (rx_enable_fpu): New variable.
2996 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch.
2997 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based
2998 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed.
2999 (enum rx_cpu_types): Define.
3000 (ASM_SPEC): Pass -m32bit-doubles on to assembler.
3001 (INCOMING_FRAME_SP_OFFSET): Define.
3002 (ARG_POINTER_CFA_OFFSET): Define.
3003 (FRAME_POINTER_CFA_OFFSET): Define.
3004 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled.
3005 (ALLOW_RX_FPU_INSNS): Define.
3006 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of
3007 fast_math_flags_set_p.
3008 (UNSPEC_BUILTIN_MVTIPL): Define.
3009 (revl): Rename to bswapsi2.
3010 (bswaphi2): New pattern.
0b94d8b2 3011 (mvtachi): Mark as volatile because it uses a register unknown to GCC.
9595a419
NC
3012 (mvtaclo): Likewise.
3013 (racw): Likewise.
3014 (mvtc): Remove clobber of cc0.
3015 (mvtcp): Delete.
3016 (opecp): Delete.
3017 * config/rx/rx.opt (mieee): Remove.
3018 (fpu): Add.
3019 (nofpu): Add.
3020 (mcpu=): Add.
3021 (patch=): Add.
3022 (msave-acc-in-interrupts): Add.
0b94d8b2 3023 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles.
9595a419
NC
3024 (MULTILIB_DIRS): Likewise.
3025 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles.
3026 * doc/extend.texi: Remove description of "exception" function
3027 attribute.
3028 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and
3029 -msave-acc-in-interrupts options.
3030
b56973d1
RG
30312009-11-03 Richard Guenther <rguenther@suse.de>
3032
3033 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC.
3034
61c3c490
DS
30352009-11-03 Dodji Seketeli <dodji@redhat.com>
3036
3037 PR c++/38699
1a62cb3b
UB
3038 * c-common.c (fold_offsetof_1): Issue errors when the member
3039 designator of the offsetof expression is not legitimate.
61c3c490 3040
9d1a9845
UB
30412009-11-03 Uros Bizjak <ubizjak@gmail.com>
3042
3043 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register
3044 names instead of numerical constants.
3045 (sse_prologue_save): Ditto.
3046 (*sse_prologue_save_insn): Ditto.
3047
55a19d49
UB
30482009-11-03 Uros Bizjak <ubizjak@gmail.com>
3049
3050 PR target/41900
3051 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New.
3052 (TARGET_CALL_ESP): New define.
3053 * config/i386/i386.c (initial_ix86_tune_features): Initialize
3054 X86_ARCH_CALL_ESP.
9d1a9845
UB
3055 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp,
3056 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1,
3057 *call_1, *call_value_pop_1 and *call_value_1. Depend on
3058 TARGET_CALL_ESP.
55a19d49
UB
3059 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1):
3060 New patterns, use "lsm" as operand 1 constraint.
0b94d8b2 3061 * config/i386/predicates.md (call_insn_operand): Depend on
55a19d49
UB
3062 index_register_operand for !TARGET_CALL_ESP to avoid %esp register.
3063
d7c0c068
UW
30642009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3065
3066 PR tree-optimization/41857
3067 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument.
3068 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint
3069 to create_mem_ref.
3070 * tree-ssa-address.c (move_hint_to_base): New function.
3071 (most_expensive_mult_to_index): Add TYPE argument. Use mode and
3072 address space associated with TYPE.
3073 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to
3074 most_expensive_mult_to_index. Call move_hint_to_base.
3075 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and
3076 TYPE to addr_to_parts.
3077
2b93f88d
MJ
30782009-11-02 Martin Jambor <mjambor@suse.cz>
3079
3080 PR tree-optimization/41750
3081 * tree-sra.c (analyze_modified_params): Loop over all
3082 representatives of components of a parameter.
3083
9789ba46
JJ
30842009-11-02 Jakub Jelinek <jakub@redhat.com>
3085
68052d59
JJ
3086 PR tree-optimization/41841
3087 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at
3088 local variables of not yet materialized clones.
3089
0fba566c
JJ
3090 PR debug/41893
3091 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL
3092 for a VOIDmode variable.
3093
9789ba46
JJ
3094 PR c++/41774
3095 * c-pragma.c (visstack): Change into vector of ints rather than
3096 enum symbol_visibility.
3097 (push_visibility): Add kind argument, push default_visibility together
3098 with kind.
3099 (pop_visibility): Add kind argument, return true if successful, fail
3100 if visibility stack is empty or if stack top is of different kind.
3101 (handle_pragma_visibility): Don't check length of visstack, instead
3102 call pop_visibility and issue diagnostics if it failed. Pass 0
3103 as last argument to push_visibility and pop_visibility.
3104 * c-pragma.h (push_visibility): Add kind argument.
3105 (pop_visibility): Likewise. Return bool instead of void.
3106
ebcc3d93
EB
31072009-11-01 Eric Botcazou <ebotcazou@adacore.com>
3108
3109 * tree.def (TARGET_MEM_REF): Update comment.
3110 * alias.c (get_alias_set): Retrieve the original memory reference for
3111 a TARGET_MEM_REF before proceeding.
3112
219d92a4
AS
31132009-10-31 Anatoly Sokolov <aesok@post.ru>
3114
3115 * config/frv/frv.c (frv_function_value, frv_libcall_value,
3116 frv_function_value_regno_p): New functions.
3117 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
8a1eb57b 3118 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
219d92a4
AS
3119 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p.
3120 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare.
3121
34732b0a
AS
31222009-10-31 Anatoly Sokolov <aesok@post.ru>
3123
3124 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add
3125 new 'outgoing' argument.
0b94d8b2 3126 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions.
34732b0a 3127 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
8a1eb57b 3128 * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
34732b0a
AS
3129 LIBCALL_VALUE): Remove.
3130 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p.
3131 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove.
3132 (mh10300_function_value_regno_p): Declare.
3133
46527cc8
RR
31342009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3135
8a1eb57b 3136 * config/arm/cortex-a9.md: New - integer pipeline description.
46527cc8 3137
03472fdd
EB
31382009-10-31 Eric Botcazou <ebotcazou@adacore.com>
3139
3140 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of
3141 aborting if the sizes of the two references don't match.
3142
2e57e853
TM
31432009-10-31 Toon Moene <toon@moene.org>
3144
3145 * ipa-inline.c (cgraph_decide_inlining):
3146 Include reason for not inlining called-once functions in dump file.
3147
7664c548
DG
31482009-10-30 Daniel Gutson <dgutson@codesourcery.com>
3149
3150 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added.
3151 * config/arm/bpapi.h (BE8_LINK_SPEC): New define.
3152 (LINK_SPEC): BE_LINK_SPEC added.
3153
b207f900
RG
31542009-10-30 Richard Guenther <rguenther@suse.de>
3155
3156 PR lto/41858
3157 * lto-streamer.h (struct lto_file_decl_data): Remove fd member.
3158
8c686cf5
NS
31592009-10-30 Nathan Sidwell <nathan@codesourcery.com>
3160
3161 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE.
3162 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused
3163 label.
3164
3d158124
MJ
31652009-10-30 Martin Jambor <mjambor@suse.cz>
3166
3167 * tree-sra.c (build_ref_for_offset_1): Remove a comment.
3168
890b9b96
L
31692009-10-30 H.J. Lu <hongjiu.lu@intel.com>
3170
e15f1ff6 3171 PR target/40838
890b9b96
L
3172 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary
3173 first. Move assert on stack_alignment_estimated just before
3174 setting stack_realign_needed.
3175 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0.
3176 Don't call update_stack_boundary.
3177
3178 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New.
3179 (verride_options): Don't check ix86_force_align_arg_pointer here.
3180 (ix86_function_ok_for_sibcall): Use it.
3181 (ix86_update_stack_boundary): Likewise.
3182
3183 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments.
3184
953a18fb
RE
31852009-10-30 Richard Earnshaw <rearnsha@arm.com>
3186
3187 * arm.md (QHSI): New mode iterator.
3188 (movqi): If generating for thumb, then truncate any immediate to
3189 8 bits.
3190 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace
3191 with...
3192 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based
3193 version.
3194
d0539838
CC
31952009-10-29 Cary Coutant <ccoutant@google.com>
3196
3197 PR debug/41700
3198 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two
3199 locations in the source).
890b9b96
L
3200 (store_vcall_insn): New function.
3201 (lookup_vcall_insn): New function.
3202 (dwarf2out_virtual_call_token): Use store_vcall_insn.
d0539838
CC
3203 (dwarf2out_copy_call_info): New function.
3204 (dwarf2out_virtual_call): Use lookup_vcall_insn.
3205 * emit-rtl.c (try_split): Call copy_call_info debug hook.
3206 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook.
3207 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook.
3208 (debug_nothing_rtx_rtx): New dummy hook.
3209 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook.
3210 (xcoff_debug_hooks): Likewise.
3211 * sdbout.c (sdb_debug_hooks): Likewise.
3212 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3213
c376dbfb
DD
32142009-10-29 David Daney <ddaney@caviumnetworks.com>
3215
3216 * doc/invoke.texi (mmcount-ra-address): Document new command line
3217 option.
3218 * config/mips/mips.opt (mmcount-ra-address): New option.
3219 * config/mips/mips-protos.h (mips_function_profiler): Declare new
3220 function.
3221 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset
3222 member.
3223 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset.
3224 (mips_function_profiler): Moved from FUNCTION_PROFILER, and
3225 rewritten.
3226 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to
3227 mips_function_profiler.
3228
2b7e2984
SE
32292009-10-29 Steve Ellcey <sje@cup.hp.com>
3230
3231 PR middle-end/37565
3232 PR target/38018
3233 * doc/tm.texi (OVERRIDE_OPTIONS): Update.
3234 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
0b94d8b2 3235 * optc-gen.awk (cl_target_option_restore): Include call to
2b7e2984
SE
3236 targetm.override_options_after_change.
3237 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3238 * target.h (override_options_after_change): New.
3239 * c-common.c (parse_optimize_options): Call
3240 targetm.override_options_after_change.
3241 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3242 (ia64_override_options_after_change): New.
3243 (ia64_override_options) Add call to above.
3244
44e82499
MM
32452009-10-29 Michael Matz <matz@suse.de>
3246
3247 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove.
3248 (gate_convert_to_rsqrt): Ditto.
3249 (pass_convert_to_rsqrt): Ditto.
3250 * tree-pass.h (pass_convert_to_rsqrt): Don't declare.
3251 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt
3252 to pass list.
3253
3254 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order.
3255
90e77553
RR
32562009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3257
3258 * config/arm/arm.c (find_best_start): Fix type of remainder to be
0b94d8b2 3259 unsigned.
90e77553 3260
8a1326b3
MJ
32612009-10-29 Martin Jambor <mjambor@suse.cz>
3262
3263 PR tree-optimization/41775
3264 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL.
3265 (generate_subtree_copies): Do not unshare agg.
3266 (load_assign_lhs_subreplacements): Do not unshare rhs.
3267 (sra_modify_assign): Do not unshare exprs.
3268 (propagate_subacesses_accross_link): Renamed to
3269 propagate_subaccesses_across_link.
3270
162e4591
RE
32712009-10-29 Richard Earnshaw <rearnsha@arm.com>
3272
3273 * arm.c (count_insns_for_constant): Rework to support counting for
3274 thumb2 immediates as well.
3275 (find_best_start): Split out from arm_gen_constant.
3276 (arm_gen_constant): Rework to support XOR with immediate.
3277
d48a3196
CF
32782009-10-29 Chao-ying Fu <fu@mips.com>
3279
3280 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New
3281 functions.
3282 (mips_expand_synci_loop): Use the length rtx to control the
3283 synci loop from the begin rtx that points to the first byte of
3284 the cache line.
3285
180a2539
RAE
32862009-10-28 Rafael Avila de Espindola <espindola@google.com>
3287
3288 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin.
55a19d49 3289
4d62b56a
RAE
32902009-10-28 Rafael Avila de Espindola <espindola@google.com>
3291
3292 * dbxout.c (dbxout_common_check): Accept non public trees.
3293 * dwarf2out.c (fortran_common): Accept non public trees.
3294
da18ea94
RAE
32952009-10-28 Rafael Avila de Espindola <espindola@google.com>
3296
3297 * common.opt (fuse-linker-plugin): New option.
3298 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
3299 fuse-linker-plugin.
3300 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin.
3301
c4bb78e9
PB
33022009-10-28 Paolo Bonzini <bonzini@gnu.org>
3303
3304 PR rtl-optimization/39715
3305 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1.
3306 (gen_cstoresi_ltu_thumb1): New splitter.
3307
cfee9aa4
RG
33082009-10-28 Richard Guenther <rguenther@suse.de>
3309
3310 PR lto/41808
3311 PR lto/41839
3312 * tree-ssa.c (useless_type_conversion_p): Do not treat
3313 conversions to pointers to incomplete types as useless.
3314 * gimple.c (gimple_types_compatible_p): Compare struct tags,
3315 not typedef names.
3316
7cf72011
JJ
33172009-10-28 Jakub Jelinek <jakub@redhat.com>
3318
3319 * var-tracking.c (emit_note_insn_var_location): Don't call the second
3320 vt_expand_loc unnecessarily when location is not a register nor
3321 memory.
3322
a1c65695
JJ
3323 PR middle-end/41837
3324 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if
3325 fields don't have DECL_NAME.
3326
f46835f5
JJ
3327 PR debug/41801
3328 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode,
3329 call convert_memory_address on addr.
3330
6ac719d3
JJ
3331 PR target/41762
3332 * config/i386/i386.c (ix86_pic_register_p): Don't call
3333 rtx_equal_for_cselib_p for VALUEs discarded as useless.
3334
e70545b0
RS
33352009-10-28 Richard Sandiford <rdsandiford@googlemail.com>
3336
3337 * var-tracking.c (emit_note_insn_var_location): Get the mode of
3338 a variable part from its REG, MEM or VALUE.
3339
f883d997
RG
33402009-10-28 Richard Guenther <rguenther@suse.de>
3341
3342 * gimple.c (gimple_get_alias_set): Fix comment typo.
3343
14cf68d9
RG
33442009-10-28 Richard Guenther <rguenther@suse.de>
3345
3346 * tree.c (free_lang_data_in_type): Do not call get_alias_set.
3347 (free_lang_data): Unconditionally compute alias sets for all
3348 standard integer types. Bail out if gate bailed out previously.
3349 Do not reset the types_compatible_p langhook.
3350 (gate_free_lang_data): Remove.
3351 (struct pass_ipa_free_lang_data): Enable unconditionally.
3352 * gimple.c (gimple_get_alias_set): Use the same alias-set for
3353 all pointer types.
3354
1307c758
RG
33552009-10-28 Richard Guenther <rguenther@suse.de>
3356
3357 PR middle-end/41855
3358 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs
3359 (ref_maybe_used_by_call_p_1): Fix bcopy handling.
3360 (call_may_clobber_ref_p_1): Likewise.
3361 * tree-ssa-structalias.c (find_func_aliases): Likewise.
3362 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs.
3363
e5bb5009
PB
33642009-10-28 Paolo Bonzini <bonzini@gnu.org>
3365
3366 PR rtl-optimization/41812
3367
3368 Revert:
3369 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3370
3371 * df-problems.c (df_md_scratch): New.
3372 (df_md_alloc, df_md_free): Allocate/free it.
3373 (df_md_local_compute): Only include live registers in init.
3374 (df_md_transfer_function): Prune the in-set computed by
3375 the confluence function, and the gen-set too.
3376
5d49d0ea
PB
33772009-10-28 Paolo Bonzini <bonzini@gnu.org>
3378
3379 PR rtl-optimization/39715
3380 * combine.c (simplify_comparison): Use extensions to
3381 widen comparisons. Try an ANDing first.
3382
582021ba
PB
33832009-10-28 Paolo Bonzini <bonzini@gnu.org>
3384
3385 PR rtl-optimization/40741
3386 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with
3387 a small constant is cheap.
3388 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of
3389 force_reg on the LHS.
3390 (xorsi3): Likewise, and split the XOR if the constant is complex
3391 and not in Thumb mode.
3392
533d4b99
PB
33932009-10-28 Paolo Bonzini <bonzini@gnu.org>
3394
3395 * expmed.c (emit_store_flag): Check costs before
3396 transforming to the opposite representation.
3397
42663bf1
PB
33982009-10-28 Paolo Bonzini <bonzini@gnu.org>
3399
3400 * config/sh/sh.md (cbranchfp4_media): Remove hack extending
3401 cstore result to DImode.
3402
f60e5a20
KK
34032009-10-28 Kaz Kojima <kkojima@gcc.gnu.org>
3404
3405 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern
3406 inside the unspec vector.
3407
9ba0399e
RH
34082009-10-27 Richard Henderson <rth@redhat.com>
3409
3410 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly.
3411
b7da9fd4
RH
34122009-10-27 Richard Henderson <rth@redhat.com>
3413
3414 PR c++/41819
3415 * tree-eh.c (eh_region_may_contain_throw_map): Rename from
3416 eh_region_may_contain_throw; update users.
3417 (eh_region_may_contain_throw): New function.
3418 (lower_catch): Check flag_exceptions before creating exception region.
3419 (lower_eh_filter, lower_eh_must_not_throw): Likewise.
3420 (lower_cleanup): Tidy existing flag_exceptions check to match.
3421
41ca8d08
KT
34222009-10-27 Kai Tietz <kai.tietz@onevision.com>
3423
3424 PR/41799
3425 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro.
3426 * config/i386/mingw.opt: Add fset-stack-executable.
3427 * config/i386/i386.c (ix86_trampoline_init): Make call to
3428 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is
3429 defined and its value is not zero.
3430 * doc/invoke.texi
3431
5c245b95
RG
34322009-10-27 Richard Guenther <rguenther@suse.de>
3433
3434 * tree-ssa-structalias.c (find_func_aliases): In IPA mode
3435 handle calls to externally visible functions like in regular mode.
3436 (create_variable_info_for): Do not create function infos here.
3437 (have_alias_info): Remove write-only variable.
3438 (solve_constraints): New function split out from common code
3439 in compute_points_to_sets and ipa_pta_execute.
3440 (compute_points_to_sets): Adjust.
3441 (ipa_pta_execute): Likewise. Handle clones and externally visible
3442 functions like in non-IPA mode.
3443
06302a02
JJ
34442009-10-27 Jakub Jelinek <jakub@redhat.com>
3445
3446 PR c/41842
3447 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is
3448 error_mark_node.
3449
b57d8e6f
RG
34502009-10-27 Richard Guenther <rguenther@suse.de>
3451
3452 * tree-complex.c (expand_complex_div_wide): Check for
3453 INTEGER_CST, not TREE_CONSTANT on comparison folding result.
3454
673beced
RE
34552009-10-27 Revital Eres <eres@il.ibm.com>
3456
3457 PR tree-optimization/40648
3458 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3459 Change decision of when to peel for alignment.
3460
b23dc2c0
RG
34612009-10-27 Richard Guenther <rguenther@suse.de>
3462
3463 PR lto/41821
3464 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE.
3465
b8b39401
AH
34662009-10-27 Aldy Hernandez <aldyh@redhat.com>
3467
3468 PR bootstrap/41451
3469 * fold-const.c (fold_binary_loc): Do not call
3470 protected_set_expr_location.
3471
2929029c
WG
34722009-10-27 Wei Guozhi <carrot@google.com>
3473
3474 PR target/41705
2c9062e2
UB
3475 * target.h (have_conditional_execution): Add a new target hook
3476 function.
2929029c
WG
3477 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise.
3478 * targhooks.h (default_have_conditional_execution): Likewise.
3479 * targhooks.c (default_have_conditional_execution): Likewise.
3480 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it.
3481 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it.
3482 (arm_have_conditional_execution): New function.
3483 * ifcvt.c (noce_process_if_block, find_if_header,
2c9062e2
UB
3484 cond_exec_find_if_block, dead_or_predicable): Change the usage of
3485 macro HAVE_conditional_execution to a target hook call.
2929029c
WG
3486 * recog.c (peephole2_optimize): Likewise.
3487 * sched-rgn.c (add_branch_dependences): Likewise.
3488 * final.c (asm_insn_count, final_scan_insn): Likewise.
3489 * bb-reorder.c (HAVE_conditional_execution): Remove it.
3490
299456f3
BE
34912009-10-26 Ben Elliston <bje@au.ibm.com>
3492 Michael Meissner <meissner@linux.vnet.ibm.com>
3493 Ulrich Weigand <uweigand@de.ibm.com>
3494
3495 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers.
3496 * config/spu/spu_cache.h: New file.
3497
3498 * config/spu/cachemgr.c: New file.
3499 * config/spu/cache.S: New file.
3500
3501 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define.
3502 (ADDR_SPACE_EA): Define.
3503 (TARGET_ADDR_SPACE_KEYWORDS): Define.
3504 * config/spu/spu.c (EAmode): New macro.
3505 (TARGET_ADDR_SPACE_POINTER_MODE): Define.
3506 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3507 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
3508 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3509 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3510 (TARGET_ADDR_SPACE_CONVERT): Likewise.
3511 (TARGET_ASM_SELECT_SECTION): Likewise.
3512 (TARGET_ASM_UNIQUE_SECTION): Likewise.
3513 (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
3514 (TARGET_ASM_ALIGNED_DI_OP): Likewise.
3515 (ea_symbol_ref): New function.
3516 (spu_legitimate_constant_p): Handle __ea qualified addresses.
3517 (spu_addr_space_legitimate_address_p): New function.
3518 (spu_addr_space_legitimize_address): Likewise.
3519 (cache_fetch): New global.
3520 (cache_fetch_dirty): Likewise.
3521 (ea_alias_set): Likewise.
3522 (ea_load_store): New function.
3523 (ea_load_store_inline): Likewise.
3524 (expand_ea_mem): Likewise.
3525 (spu_expand_mov): Handle __ea qualified memory references.
3526 (spu_addr_space_pointer_mode): New function.
3527 (spu_addr_space_address_mode): Likewise.
3528 (spu_addr_space_subset_p): Likewise.
3529 (spu_addr_space_convert): Likewise.
3530 (spu_section_type_flags): Handle "._ea" section.
3531 (spu_select_section): New function.
3532 (spu_unique_section): Likewise.
3533 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__
3534 and __EA64__ predefined macros.
3535 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and
3536 -matomic-updates switches.
3537
3538 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define.
3539 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a,
3540 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a,
3541 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a.
3542 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target.
3543 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o,
3544 $(T)cache128k.o): Likewise.
3545 ($(T)libgcc_%.a): Likewise.
3546
3547 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION.
3548 * config/spu/spu.opt (-mea32/-mea64): Add switches.
3549 (-maddress-space-conversion): Likewise.
3550 (-mcache-size=): Likewise.
3551 (-matomic-updates): Likewise.
3552 * doc/invoke.texi (-mea32/-mea64): Document.
3553 (-maddress-space-conversion): Likewise.
3554 (-mcache-size=): Likewise.
3555 (-matomic-updates): Likewise.
3556
36c5e70a
BE
35572009-10-26 Ben Elliston <bje@au.ibm.com>
3558 Michael Meissner <meissner@linux.vnet.ibm.com>
3559 Ulrich Weigand <uweigand@de.ibm.com>
3560
3561 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document.
3562
3563 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is
3564 defined, add the named address space keywords.
3565 (c_addr_space_name): New function.
3566 (complete_array_type): Preserve named address space.
3567 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode
3568 instead of targetm.valid_pointer_mode.
3569
3570 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15,
3571 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE.
3572 (ADDR_SPACE_KEYWORD): New macro.
3573 (c_addr_space_name): Add prototype.
3574
3575 * c-tree.h (struct c_declspecs): Add address_space member.
3576 (declspecs_add_addrspace): Add prototype.
3577
3578 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces.
3579
3580 * c-parser.c (c_parse_init): Add assertion.
3581 (typedef enum c_id_kind): Add C_ID_ADDRSPACE.
3582 (c_lex_one_token): Handle address space keywords.
3583 (c_token_starts_typename): Likewise.
3584 (c_token_starts_declspecs): Likewise.
3585 (c_parser_declspecs): Likewise.
3586 (c_parser_postfix_expression_after_paren_type): Diagnose compound
3587 literal within function qualified with named address space.
3588
3589 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named
3590 address space qualifiers.
3591 (shadow_tag_warned): Warn about useless address space qualifiers.
3592 (quals_from_declspecs): Handle address space qualifiers.
3593 (grokdeclarator): Likewise.
3594 (build_null_declspecs): Likewise.
3595 (declspecs_add_addrspace): New function.
3596
3597 * c-typeck.c (addr_space_superset): New function.
3598 (qualify_type): Handle named address spaces.
3599 (composite_type): Likewise.
3600 (common_pointer_type): Likewise.
3601 (comp_target_types): Likewise.
3602 (build_conditional_expr): Likewise.
3603 (handle_warn_cast_qual): Likewise.
3604 (build_c_cast): Likewise.
3605 (convert_for_assignment): Likewise.
3606 (build_binary_op): Likewise.
3607 (pointer_diff): Handle named address spaces. Use intermediate
3608 integer type of sufficient size if required.
3609
d4ebfa65
BE
36102009-10-26 Ben Elliston <bje@au.ibm.com>
3611 Michael Meissner <meissner@linux.vnet.ibm.com>
3612 Ulrich Weigand <uweigand@de.ibm.com>
3613
3614 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document.
3615 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3616 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
3617
3618 * target.h (struct target_def): Add pointer_mode, address_mode,
3619 and valid_pointer_mode to addr_space substructure.
3620 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define.
3621 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise.
3622 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise.
3623 (TARGET_ADDR_SPACE_HOOKS): Add them.
3624 * targhooks.c (target_default_pointer_address_modes_p): New function.
3625 * target.h (target_default_pointer_address_modes_p): Add prototype.
3626 * targhooks.c (default_addr_space_pointer_mode): New function.
3627 (default_addr_space_address_mode): Likewise.
3628 (default_addr_space_valid_pointer_mode): Likewise.
3629 * targhooks.h (default_addr_space_pointer_mode): Add prototype.
3630 (default_addr_space_address_mode): Likewise.
3631 (default_addr_space_valid_pointer_mode): Likewise.
3632 * output.h (default_valid_pointer_mode): Move to ...
3633 * targhooks.h (default_valid_pointer_mode): ... here.
3634 * varasm.c (default_valid_pointer_mode): Move to ...
3635 * targhooks.c (default_valid_pointer_mode): ... here.
3636
3637 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode
3638 instead of targetm.valid_pointer_mode.
3639
3640 * fold-const.c (fit_double_type): Use int_or_pointer_precision.
3641 * tree.c (integer_pow2p): Likewise.
3642 (tree_log2): Likewise.
3643 (tree_floor_log2): Likewise.
3644 (signed_or_unsigned_type_for): Support pointer type of different size.
3645 (int_or_pointer_precision): New function.
3646 * tree.h (int_or_pointer_precision): Add prototype.
3647 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types.
3648 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of
3649 incoming pointer type instead of POINTER_SIZE.
3650
3651 * tree.c (build_pointer_type): Use appropriate pointer mode
3652 instead of ptr_mode.
3653 (build_reference_type): Likewise.
3654 * expr.c (store_expr): Likewise.
3655 (expand_expr_addr_expr): Likewise.
3656 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
3657 * cfgexpand.c (expand_debug_expr): Likewise.
2c9062e2 3658
d4ebfa65
BE
3659 * auto-inc-dec.c: Include "target.h".
3660 (try_merge): Use appropriate address mode instead of Pmode.
3661 (find_inc): Likewise.
3662 * combine.c (find_split_point): Likewise.
3663 * cselib.c (cselib_record_sets): Likewise.
3664 * dse.c (replace_inc_dec): Likewise.
3665 (canon_address): Likewise.
3666 * var-tracking.c (replace_expr_with_values): Likewise.
3667 (count_uses): Likewise.
3668 (add_uses): Likewise.
3669 (add_stores): Likewise.
3670 * emit-rtl.c: Include "target.h".
3671 (adjust_address_1): Use appropriate address mode instead of Pmode.
3672 (offset_address): Likewise.
3673 * explow.c (break_out_memory_refs): Likewise.
3674 (memory_address_addr_space): Likewise.
3675 (promote_mode): Likewise.
3676 * expr.c (move_by_pieces): Likewise.
3677 (emit_block_move_via_loop): Likewise.
3678 (store_by_pieces): Likewise.
3679 (store_by_pieces_1): Likewise.
3680 (expand_assignment): Likewise.
3681 (store_constructor): Likewise.
3682 (expand_expr_addr_expr): Likewise.
3683 (expand_expr_real_1): Likewise.
3684 * cfgexpand.c (expand_debug_expr): Likewise.
3685 * ifcvt.c (noce_try_cmove_arith): Likewise.
3686 * regcprop.c (kill_autoinc_value): Likewise.
3687 * regmove.c (try_auto_increment): Likewise.
3688 * reload.c (find_reloads): Likewise.
3689 (find_reloads_address): Likewise.
3690 (find_reloads_address_1): Likewise.
3691 * sched-deps.c: Include "target.h".
3692 (sched_analyze_1): Use appropriate address mode instead of Pmode.
3693 (sched_analyze_2): Likewise.
3694 * sel-sched-dump.c: Include "target.h".
3695 (debug_mem_addr_value): Use appropriate address mode instead of Pmode.
3696 * stor-layout.c (layout_type): Likewise.
3697 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3698 (multiplier_allowed_in_address_p): Likewise.
3699 (get_address_cost): Likewise.
3700 * varasm.c (make_decl_rtl): Likewise.
2c9062e2 3701
d4ebfa65
BE
3702 * expr.c (expand_assignment): Always convert offsets to appropriate
3703 address mode.
3704 (store_expr): Likewise.
3705 (store_constructor): Likewise.
3706 (expand_expr_real_1): Likewise.
3707
3708 * reload.h (form_sum): Add MODE argument.
3709 * reload.c (form_sum): Add MODE argument, use it instead of Pmode.
3710 Update recursive calls.
3711 (subst_indexed_address): Update calls to form_sum.
2c9062e2 3712
d4ebfa65
BE
3713 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument.
3714 * tree-ssa-address.c: Include "target.h".
3715 (templates): Replace by ...
3716 (mem_addr_template_list): ... this new vector.
3717 (TEMPL_IDX): Handle address space numbers.
3718 (gen_addr_rtx): Add address mode argument, use it instead of Pmode.
3719 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space
3720 instead of global cache. Update call to gen_addr_rtx.
3721 (valid_mem_ref_p): Update call to addr_for_mem_ref.
3722 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref.
2c9062e2 3723
d4ebfa65
BE
3724 * rtl.h (convert_memory_address_addr_space): Add prototype.
3725 (convert_memory_address): Define as macro.
3726 * explow.c (convert_memory_address): Rename to ...
3727 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument.
3728 Use appropriate pointer and address modes instead of ptr_mode / Pmode.
3729 Update recursive calls.
3730 (memory_address_addr_space): Call convert_memory_address_addr_space.
3731 * expmed.c (make_tree): Likewise.
3732 * expr.c (expand_assignment): Likewise.
3733 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument.
3734 (expand_expr_addr_expr): Likewise. Also, update call.
3735
3736 * alias.c (find_base_value): Guard pointer size optimizations.
3737 (find_base_term): Likewise.
3738 * rtlanal.c (nonzero_bits1): Likewise.
3739 (num_sign_bit_copies1): Likewise.
3740 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
3741
3742 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency.
3743 (emit-rtl.o): Likewise.
3744 (auto-inc-dec.o): Likewise.
3745 (sched-deps.o): Likewise.
3746
09e881c9
BE
37472009-10-26 Ben Elliston <bje@au.ibm.com>
3748 Michael Meissner <meissner@linux.vnet.ibm.com>
3749 Ulrich Weigand <uweigand@de.ibm.com>
3750
3751 * doc/extend.texi (Named Address Spaces): New section.
3752 * coretypes.h (addr_space_t): New type.
3753 (ADDR_SPACE_GENERIC): New define.
3754 (ADDR_SPACE_GENERIC_P): New macro.
3755
3756 * doc/tm.texi (Named Address Spaces): New section.
3757 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document.
3758 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document.
3759 (TARGET_ADDR_SPACE_SUBSET_P): Document.
3760 (TARGET_ADDR_SPACE_CONVERT): Document.
3761 * target.h (struct gcc_target): Add addr_space substructure.
3762 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3763 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise.
3764 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
3765 (TARGET_ADDR_SPACE_CONVERT): Likewise.
3766 (TARGET_ADDR_SPACE_HOOKS): Likewise.
3767 (TARGET_INITIALIZER): Initialize addr_space hooks.
3768 * targhooks.c (default_addr_space_legitimate_address_p): New function.
3769 (default_addr_space_legitimize_address): Likewise.
3770 (default_addr_space_subset_p): Likewise.
3771 (default_addr_space_convert): Likewise.
3772 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype.
3773 (default_addr_space_legitimize_address): Likewise.
3774 (default_addr_space_subset_p): Likewise.
3775 (default_addr_space_convert): Likewise.
3776
3777 * doc/rtl.texi (MEM_ADDR_SPACE): Document.
3778 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute.
3779 (MEM_ADDR_SPACE): New macro.
3780 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set
3781 address space memory attribute.
3782 (mem_attrs_htab_hash): Handle address space memory attribute.
3783 (mem_attrs_htab_eq): Likewise.
3784 (set_mem_attributes_minus_bitpos): Likewise.
3785 (set_mem_alias_set): Likewise.
3786 (set_mem_align): Likewise.
3787 (set_mem_expr): Likewise.
3788 (set_mem_offset): Likewise.
3789 (set_mem_size): Likewise.
3790 (adjust_address_1): Likewise.
3791 (offset_address): Likewise.
3792 (widen_memoy_address): Likewise.
3793 (get_spill_slot_decl): Likewise.
3794 (set_mem_attrs_for_spill): Likewise.
3795 (set_mem_addr_space): New function.
3796 * emit-rtl.h (set_mem_addr_space): Add prototype.
3797 * print-rtl.c (print_rtx): Print address space memory attribute.
3798 * expr.c (expand_assignment): Set address space memory attribute
3799 of generated MEM RTXes as appropriate.
3800 (expand_expr_real_1): Likewise.
3801 * cfgexpand.c (expand_debug_expr): Likewise.
3802 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
3803
3804 * tree.h (struct tree_base): Add address_space bitfield. Reduce
3805 size of "spare" bitfield.
3806 (TYPE_ADDR_SPACE): New macro.
3807 (ENCODE_QUAL_ADDR_SPACE): Likewise.
3808 (DECODE_QUAL_ADDR_SPACE): Likewise.
3809 (CLEAR_QUAL_ADDR_SPACE): Likewise.
3810 (KEEP_QUAL_ADDR_SPACE): Likewise.
3811 (TYPE_QUALS): Encode type address space.
3812 (TYPE_QUALS_NO_ADDR_SPACE): New macro.
3813 * tree.c (set_type_quals): Set type address space.
3814 (build_array_type): Inherit array address space from element type.
3815 * print-tree.c (print_node_brief): Print type address space.
3816 (print_node): Likewise.
3817 * tree-pretty-print.c (dump_generic_node): Likewise.
3818
3819 * explow.c (memory_address): Rename to ...
3820 (memory_address_addr_space): ... this. Add ADDRSPACE argument.
3821 Use address-space aware variants of memory address routines.
3822 * recog.c (memory_address_p): Rename to ...
3823 (memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3824 Use address-space aware variants of memory address routines.
3825 (offsettable_address_p): Rename to ...
3826 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument.
3827 Use address-space aware variants of memory address routines.
3828 * reload.c (strict_memory_address_p): Rename to ...
3829 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3830 Use address-space aware variants of memory address routines.
3831 (maybe_memory_address_p): Rename to ...
3832 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument.
3833 Use address-space aware variants of memory address routines.
3834 * expr.h (memory_address_addr_space): Add prototype.
3835 (memory_address): Define as macro.
3836 * recog.h (memory_address_addr_space_p): Add prototype.
3837 (memory_address_p): Define as macro.
3838 (offsettable_address_addr_space_p): Add prototype.
3839 (offsettable_address_p): Define as macro.
3840 (strict_memory_address_addr_space_p): Add prototype.
3841 (strict_memory_address_p): Define as macro.
3842
3843 * combine.c (find_split_point): Use address-space aware variants
3844 of memory address routines.
3845 * emit-rtl.c (operand_subword): Likewise.
3846 (change_address_1): Likewise.
3847 (adjust_address_1): Likewise.
3848 (offset_address): Likewise.
3849 * expr.c (emit_move_insn): Likewise.
3850 (expand_assignment): Likewise.
3851 (expand_expr_real_1): Likewise.
3852 * recog.c (verify_changes): Likewise.
3853 (general_operand): Likewise.
3854 (offsettable_memref_p): Likewise.
3855 (offsettable_nonstrict_memref_p): Likewise.
3856 (constrain_operands): Likewise.
3857 * reload.c (get_secondary_mem): Likewise.
3858 (find_reloads_toplev): Likewise.
3859 (find_reloads_address): Likewise.
3860 (find_reloads_subreg_address): Likewise.
3861 * reload1.c (reload): Likewise.
3862 * rtlhooks.c (gen_lowpart_if_possible): Likewise.
3863 * rtl.h (address_cost): Add ADDRSPACE argument.
3864 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space
3865 aware variant of memory address routines.
3866 * loop-invariant.c (create_new_invariant): Update address_cost call.
3867 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
3868 * fwprop.c (should_replace_address): Add ADDRSPACE argument.
3869 Use address-space aware variant of memory address routines.
3870 (propagate_rtx_1): Update call to should_replace_address.
3871 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE
3872 argument.
3873 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add
3874 ADDRSPACE argument. Use per-address-space instead of global cache.
3875 Use address-space aware variant of memory address routines.
3876 (get_address_cost): Likewise.
3877 (get_computation_cost_at): Update calls.
3878 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument.
3879 Use address-space aware variant of memory address routines.
3880 (create_mem_ref_raw): Update call to valid_mem_ref_p.
3881 (most_expensive_mult_to_index): Update call to
3882 multiplier_allowed_in_address_p.
3883
3884 * dwarf2out.c (modified_type_die): Output DW_AT_address_class
3885 attribute to indicate named address spaces.
3886
3887 * varasm.c (get_variable_section): DECLs in named address spaces
3888 cannot be "common".
3889
3890 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS
3891 for addresses in a non-generic address space.
3892
3893 * expr.c (emit_block_move_hints): Do not use libcalls for
3894 memory in non-generic address spaces.
3895 (clear_storage_hints): Likewise.
3896 (expand_assignment): Likewise.
3897
3898 * fold-const.c (operand_equal_p): Expressions refering to different
3899 address spaces are not equivalent.
3900
3901 * rtl.c (rtx_equal_p_cb): MEMs refering to different address
3902 spaces are not equivalent.
3903 (rtx_equal_p): Likewise.
3904 * cse.c (exp_equiv_p): Likewise.
3905 * jump.c (rtx_renumbered_equal_p): Likewise.
3906 * reload.c (operands_match_p): Likewise.
3907
3908 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different
3909 address spaces may alias.
3910 (true_dependence): Likewise.
3911 (canon_true_dependence): Likewise.
3912 (write_dependence_p): Likewise.
3913
3914 * dse.c (canon_address): Handle named address spaces.
3915 * ifcvt.c (noce_try_cmove_arith): Likewise.
3916
3917 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code.
3918 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR.
3919 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR
3920 to handle conversions between different address spaces.
3921 * fold-const.c (fold_convert_loc): Likewise.
3922 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR.
3923 * tree-pretty-print.c (dump_generic_node): Likewise.
3924 * gimple-pretty-print.c (dump_unary_rhs): Likewise.
3925 * tree-cfg.c (verify_gimple_assign_unary): Likewise.
3926 * tree-inline.c (estimate_operator_cost): Likewise.
3927 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers
3928 to different address spaces are not useless.
3929
bde2d108
JJ
39302009-10-26 Jakub Jelinek <jakub@redhat.com>
3931
7752e522
JJ
3932 PR bootstrap/41345
3933 * cfgcleanup.c (trivially_empty_bb_p): New function.
3934 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END.
3935
bde2d108
JJ
3936 PR debug/41828
3937 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die,
3938 add_name_and_src_coords_attributes, gen_namespace_die,
3939 dwarf2out_set_name): Handle dwarf2_name returning NULL.
3940
65a324b4
NC
39412009-10-26 Nick Clifton <nickc@redhat.com>
3942
3943 * config.gcc: Add support for RX target.
3944 * config/rx: New directory.
3945 * config/rx/constraints.md: New file.
3946 * config/rx/predicates.md: New file.
3947 * config/rx/rx.c: New file.
3948 * config/rx/rx.h: New file.
3949 * config/rx/rx.md: New file.
3950 * config/rx/rx.opt: New file.
3951 * config/rx/rx-protos.h: New file.
3952 * config/rx/t-rx: New file.
3953 * doc/extend.texi: Document RX function attributes.
3954 * doc/invoke.texi: Document RX specific command line options.
3955 * doc/contrib.texi: Document RX contribution.
3956 * doc/md.texi: Document RX constraints.
3957 * doc/install.texi: Document RX support.
3958
84280917
MM
39592009-10-26 Michael Matz <matz@suse.de>
3960
3961 PR tree-optimization/41783
3962 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special
3963 case for simple diamonds.
3964 * tree-ssa-alias.h (get_continuation_for_phi): Declare.
3965 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid
3966 argument, use alias oracle to skip some vdefs.
3967 (phi_translate_1): Change call to above, don't allocate new
3968 value ids if they can stay the same.
3969 (compute_avail): Allow vuse walking when looking up references.
3970
bd02b3a0
RG
39712009-10-26 Richard Guenther <rguenther@suse.de>
3972
3973 PR tree-optimization/41826
3974 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid
3975 access to re-allocated vector fields.
3976
b77a0698
RG
39772009-10-26 Richard Guenther <rguenther@suse.de>
3978
3979 * graphite-sese-to-poly.c (check_poly_representation): Fix
3980 compile without checking.
3981
60f5ed26
JW
39822009-10-26 Janus Weil <janus@gcc.gnu.org>
3983
3984 PR fortran/41714
3985 * gimple.h (tree_annotate_all_with_location): Remove prototype.
3986 * gimplify.c (tree_should_carry_location_p,
3987 tree_annotate_one_with_location,tree_annotate_all_with_location):
3988 Remove obsolete functions.
3989
38d547aa
KK
39902009-10-25 Kaz Kojima <kkojima@gcc.gnu.org>
3991
3992 PR target/41813
3993 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern.
3994
a1d9c4fb
RG
39952009-10-25 Richard Guenther <rguenther@suse.de>
3996
3997 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
3998 Stream DECL_RESTRICTED_P.
3999 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4000
c870c233
RS
40012009-10-25 Richard Sandiford <rdsandiford@googlemail.com>
4002
4003 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit
4004 a note when expanding to nothing.
4005
22dfb60e
RG
40062009-10-25 Richard Guenther <rguenther@suse.de>
4007
4008 PR middle-end/41814
4009 * tree.c (find_decls_types_r): Deal with Java overloading
4010 BINFO_VIRTUALS for its own purpose.
4011
8af9d17f
AN
40122009-10-24 Adam Nemet <anemet@caviumnetworks.com>
4013
4014 * config/mips/predicates.md (hilo_operand): New predicate.
4015 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a
4016 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move
4017 splitter part from here ...:
4018 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap
4019 op0 and op4 to match the DINS case.
4020 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter.
4021
40222009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
e1a84153
AH
4023
4024 PR middle-end/19154
4025 * avr.md (QIDI): Add new mode iterator.
4026 (sbrx_branch<mode>): Create new zero extract bit, test and jump
4027 patterns for all QI thru DI modes combinations.
4028 (sbrx_and_branch<mode>): Create new and based bit test and jump
4029 patterns for QI thru SI modes.
4030 avr.c (avr_out_sbxx_branch): Use only bit number.
4031
8b583a06
JH
40322009-10-24 Jan Hubicka <jh@suse.cz>
4033
4034 * ipa-reference.c (check_call): Noreturn notrhow calls do not write
4035 to memory.
7e06c3d6
EB
4036 (analyze_function): When analyzing noreturn nothrow call, do not
4037 compute written stats; free bitmaps of vars early if possible.
8b583a06
JH
4038 (generate_summary): Only update bitmaps if computed.
4039 (propagate): Only dump bitmaps if computed.
4040 (ipa_reference_read_summary): Fix pasto.
4041
72580319
EB
40422009-10-24 Eric Botcazou <ebotcazou@adacore.com>
4043
4044 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into...
4045 (aliasing_component_refs_p): ...this. Return true if there is no
4046 common base and the base access types have the same alias set.
4047 (indirect_ref_may_alias_decl_p): Adjust for above renaming.
4048 (indirect_refs_may_alias_p): Likewise.
4049
26d8af35
JM
40502009-10-23 Joseph Myers <joseph@codesourcery.com>
4051
4052 PR c/40033
4053 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in
4054 a C_MAYBE_CONST_EXPR.
4055
3fc841c8
MM
40562009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4057
4058 PR target/41787
4059 * config/rs6000/rs6000.c (struct machine_function): Add
4060 vsx_or_altivec_used_p to record if vector types are used.
4061 (rs6000_expand_to_rtl_hook): Rename from
4062 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are
4063 any vector operations, so if there are, we can set VRSAVE to
4064 non-zero when only floating point vector registers are used.
4065 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook.
4066 (rs6000_check_vector_mode): Inner function to check if vector
4067 types are used in the code.
4068 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if
4069 vector instructions are used.
4070
4071 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED):
4072 Indicate that VSX registers which overlap floating point
4073 registers, can't be used across a call, since the ABI only states
4074 the scalar part of the register will be saved and restored.
4075
cb9c2485
JM
40762009-10-23 Joseph Myers <joseph@codesourcery.com>
4077
4078 PR c/41673
4079 * alias.c (get_alias_set): Call langhook before returning 0 for
4080 types with structural equality.
4081 * c-common.c (c_common_get_alias_set): Use alias set of element
4082 type for arrays with structural comparison.
4083
93f28ca7
RG
40842009-10-23 Richard Guenther <rguenther@suse.de>
4085
4086 PR middle-end/41805
4087 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and
4088 gimple_call_nothrow_p.
4089
5813994e
RG
40902009-10-23 Richard Guenther <rguenther@suse.de>
4091
4092 PR tree-optimization/41778
4093 * tree-ssa-pre.c (do_regular_insertion): Only insert if a
4094 redundancy along a path in the CFG we want to optimize for speed
4095 is going to be removed.
4096 (execute_pre): Do partial-PRE only if the function is to be
4097 optimized for speed.
4098 (gate_pre): Do not turn off all of PRE when not optimizing a
4099 function for speed.
4100
376da68e
KG
41012009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4102
4103 * builtins.c (fold_builtin_cabs): Use validate_arg().
4104 (fold_builtin_cexp): Fix if-logic.
4105 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG.
4106
d5b5b6bc
JL
41072009-10-22 Jeff Law <law@redhat.com>
4108
7da77407 4109 * ira-lives.c (process_single_reg_class_operands): Update the
d5b5b6bc
JL
4110 hard reg costs for all the hard registers desired by the
4111 single reg class operand.
4112
4fb296d9
RS
41132009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
4114
4115 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case
4116 for rtxes that aren't handled specially.
4117
bd7960b1
RS
41182009-10-22 Richard Sandiford <rdsandiford@googlemail.com>
4119
4120 * rtl.h (shallow_copy_rtvec): Declare.
4121 * rtl.c (shallow_copy_rtvec): New function.
4122 * cselib.c (cselib_subst_to_values): Use it. Only modify an
4123 rtx field if the subrtx has changed.
4124
2a31793e
AS
41252009-10-22 Anatoly Sokolov <aesok@post.ru>
4126
4127 * config/m32c/m32c.c (m32c_function_value_regno_p): New function.
4128 (m32c_function_value): Make static, add new 'outgoing' argument.
4129 (m32c_libcall_value): Make static, add new 'fun' argument.
4130 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
2c9062e2 4131 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
2a31793e
AS
4132 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p.
4133 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare.
4134 (m32c_function_value, m32c_libcall_value): Delete declaration.
4135
062eee1e
DN
41362009-10-22 Diego Novillo <dnovillo@google.com>
4137
7da77407 4138 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H.
062eee1e 4139
6d8752c4 41402009-10-22 Razya Ladelsky <razya@il.ibm.com>
7e06c3d6 4141
7da77407
EB
4142 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white
4143 space.
6d8752c4 4144
2c928155
RG
41452009-10-22 Richard Guenther <rguenther@suse.de>
4146
4147 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare.
4148 * lto-symtab.c (struct lto_symtab_entry_def): Add node member.
4149 (lto_symtab_merge): Do not merge cgraph nodes here.
4150 (lto_symtab_resolve_can_prevail_p): Simplify.
4151 (lto_symtab_resolve_symbols): Store cgraph node.
4152 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing
4153 functions from the symtab.
4154 (lto_symtab_merge_cgraph_nodes_1): New function.
4155 (lto_symtab_merge_cgraph_nodes): Likewise.
4156
ea989a1f
RG
41572009-10-22 Richard Guenther <rguenther@suse.de>
4158
4159 PR lto/41791
4160 * lto-streamer-out.c (lto_output_location): Stream the
4161 system header flag.
4162 * lto-streamer-in.c (lto_input_location): Likewise.
4163
48710229 41642009-10-22 Razya Ladelsky <razya@il.ibm.com>
2c9062e2
UB
4165
4166 * cfgloopmanip.c (duplicate_subloops): Export.
48710229 4167 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost.
2c9062e2 4168 (transform_to_exit_first_loop): Duplicate bbs starting from
48710229
RL
4169 header up to loop->latch instead of exit->src.
4170 Initialize control variable to the correct number of iterations.
4171 (gather_scalar_reductions): Do not register double reductions.
2c9062e2
UB
4172 (parallelize_loops): Dump which loop is tested.
4173 Indicate whether the parallelized loop is inner or not.
48710229 4174 Remove the innermost-loop requirement.
2c9062e2 4175 * cfgloop.h (duplicate_subloops): Export.
48710229
RL
4176 * tree-cfg.c (add_phi_args_after_redirect): New function.
4177 (gimple_duplicate_sese_tail): Remove the no-subloops constraint.
4178 Call duplicate_subloops.
4179 Update number of iterations at the exit condition.
4180 Don't redirect nexits always to the loop exit.
4181 Redirect copied edges from latch to the loop exit.
48710229 4182
0d4958d0
JH
41832009-10-22 Jan Hubicka <jh@suse.cz>
4184
4185 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and
4186 flag_ltrans check.
4187 * ipa-inline.c (cgraph_mark_inline_edge,
4188 cgraph_decide_inlining_of_small_function,
2c9062e2
UB
4189 cgraph_decide_inlining, inline_read_summary): Disable indirect
4190 inlining for WPA for time being.
0d4958d0 4191
7e06c3d6 4192 PR tree-optimize/40556
0d4958d0
JH
4193 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition.
4194
f9c91f8a
RB
41952009-10-22 Richard Guenther <rguenther@suse.de>
4196
4197 * lto-streamer.h (lto_symtab_clear_resolution): Remove.
4198 * lto-symtab.c (lto_symtab_clear_resolution): Likewise.
4199
c59f5d1b
JH
42002009-10-22 Jan Hubicka <jh@suse.cz>
4201
0d4958d0 4202 PR lto/41730
f9c91f8a
RB
4203 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about
4204 global vars.
4205 (check_call): Handle only indirect calls.
4206 (propagate_bits): Update comment.
4207 (write_node_summary_p): Turn bogus check to assert.
4208 (ipa_reference_write_summary): Stream calls_read_all properly.
4209 (ipa_reference_read_summary): Stream in calls_read_all properly.
4210 (read_write_all_from_decl): New function.
4211 (propagate): Handle OVERWRITABLE nodes and external calls here.
2c9062e2
UB
4212 * ipa-pre-const.c (check_call): In IPA mode handle indirect
4213 calls only.
f9c91f8a
RB
4214 (analyze_function): Do not check visibility here.
4215 (add_new_function): We summary OVERWRITABLE too.
4216 (generate_summary): Stream OVERWRITABLE nodes too.
4217 (propagate): Handle external calls and OVERWRITABLE nodes here.
4218 (local_pure_const): Check visibility here.
c59f5d1b 4219
fb3f88cc
JH
42202009-10-22 Jan Hubicka <jh@suse.cz>
4221
4222 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions.
4223 (pass_ipa_cp): Register them.
4224 (ipcp_init_stage): Analyze all functions for whopr/lto.
4225 (ipcp_propagate_stage): Skip external calls.
4226 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed.
2c9062e2
UB
4227 * ipa-reference.c (write_node_summary_p): Fix thinko about
4228 availability.
fb3f88cc 4229 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries;
2c9062e2
UB
4230 when in ltrans, skip executing of ipa passes since everything
4231 should've been done.
fb3f88cc
JH
4232 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs.
4233 (inline_generate_summary): Likewise.
4234 (inline_read_summary): New function.
4235 (inline_write_summary): New function.
4236 (pass_ipa_inline): Register new hooks.
4237 * ipa-prop.c: Inlcude lto-streamer.h
4238 (ipa_edge_args_vector): Update declaration.
4239 (ipa_count_arguments, ipa_compute_jump_functions,
4240 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc.
4241 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info,
4242 ipa_read_node_info): New static functions.
4243 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update.
4244 (duplicate_array): Use xmalloc.
4245 (duplicate_ggc_array): New.
4246 (ipa_edge_duplication_hook): Use it.
4247 (ipa_update_after_lto_read): New function.
4248 * ipa-prop.h (ipa_prop_write_jump_functions,
4249 ipa_prop_read_jump_functions): Declare.
4250 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst,
4251 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers.
4252 (ipa_edge_args_vector): Move into GGC.
4253 (ipa_check_create_edge_args): Update.
4254 (ipa_update_after_lto_read): New.
2c9062e2
UB
4255 * passes.c (ipa_write_summaries_1): When in wpa, do not write
4256 summaries.
fb3f88cc 4257 (ipa_read_summaries): When in ltrans, so not read summaries.
2c9062e2
UB
4258 * lto-streamer.c (lto_get_section_name): Add
4259 LTO_section_jump_functions.
fb3f88cc
JH
4260 * lto-streamer.h (LTO_section_jump_functions): New section.
4261 (produce_asm): Declare.
4262 * lto-cgraph.c (output_cgraph): Output edges in reverse order.
4263 * lto-streamer-out.c (produce_asm): Export.
4264 * lto-streamer-in.c: Include tree-pass.h
4265 (input_function): Free dominance info when done.
4266 (lto_read_body): Push ipa_inline in ltrans stage.
4267 * gengtype.c (open_base_files): Add ipa-prop.h into includes.
4268 * Makefile.in (GTFILES): Add ipa-prop.h
4269
34677bae
MK
42702009-10-22 Matthias Klose <doko@ubuntu.com>
4271
4272 * doc/install.texi: Document --enable-browser-plugin.
4273
7e1e7d4c
VM
42742009-10-21 Vladimir Makarov <vmakarov@redhat.com>
4275
4276 * doc/invoke.texi (fira-loop-pressure): Update default value.
4277 * opts.c (decode_options): Remove default value setting for
4278 flag_ira_loop_pressure.
4279 * config/ia64/ia64.c (ia64_override_options): Set
4280 flag_ira_loop_pressure up for -O3.
4281 * config/rs6000/rs6000.c (rs6000_override_options): Ditto.
2c9062e2 4282
f29deac9
SP
42832009-10-21 Sebastian Pop <sebastian.pop@amd.com>
4284
4285 PR tree-optimization/41497
4286 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return
4287 chrec_dont_know if the evolution function returned by follow_ssa_edge
4288 is constant in the analyzed loop and is not compatible with the
4289 initial value before the loop.
4290 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS.
4291
58f451f0
JM
42922009-10-21 Joseph Myers <joseph@codesourcery.com>
4293
4294 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF.
4295
de55f03a
JJ
42962009-10-21 Jakub Jelinek <jakub@redhat.com>
4297
4298 PR other/25507
4299 * doc/invoke.texi: Document -print-multi-os-directory.
4300
47f447b1
JH
43012009-10-21 Jack Howarth <howarth@bromo.med.uc.edu>
4302
4303 PR c++/41313
4304 * gcc/config/darwin10.h: Use default_emit_unwind_label.
4305 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition
4306 when darwin_emit_unwind_label is used.
4307
59a05b0c
EB
43082009-10-21 Eric Botcazou <ebotcazou@adacore.com>
4309
4310 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak
4311 order of checks.
4312
288f5b2e
RH
43132009-10-20 Richard Henderson <rth@redhat.com>
4314
4315 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1
4316 before emit_post_landing_pad.
4317
53d66977
AN
43182009-10-20 Adam Nemet <anemet@caviumnetworks.com>
4319
4320 * config/mips/mips.c (mips_binary_cost): Add new argument speed.
4321 Use when calling rtx_costs.
4322 (mips_rtx_costs): Fix formatting. Use argument speed rather than the
4323 global optimize_size. Pass speed to mips_binary_cost.
4324
ddd0c781
JJ
43252009-10-20 Jakub Jelinek <jakub@redhat.com>
4326
4327 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead
4328 of TREE_CONSTANT.
4329
3af4ba41
RS
43302009-10-20 Richard Sandiford <rdsandiford@googlemail.com>
4331
4332 * rtl.h (simplify_replace_fn_rtx): Declare.
4333 (wrap_constant, unwrap_constant): Delete.
4334 * cfgexpand.c (unwrap_constant, wrap_constant): Delete.
4335 (expand_debug_expr): Don't call wrap_constant.
4336 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
4337 (auto_adjust_pair): Fold into...
4338 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
4339 Just return a new value.
4340 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
4341 otherwise use simplify_replace_rtx.
4342 * cselib.c (wrap_constant): Reinstate old definition.
4343 (cselib_expand_value_rtx_1): Don't wrap constants.
4344 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to
4345 simplify_replace_rtx.
4346 (bypass_block): Fix formatting in calls to simplify_replace_rtx.
4347 * reload1.c (reload): Skip all uses for an insn before adjusting it.
4348 Use simplify_replace_rtx.
4349 * simplify-rtx.c (simplify_replace_fn_rtx): New function,
4350 adapted from...
4351 (simplify_replace_rtx): ...here. Turn into a wrapper for
4352 simplify_replace_fn_rtx.
4353 (simplify_unary_operation): Don't unwrap CONSTs.
4354 * var-tracking.c (check_wrap_constant): Delete.
4355 (vt_expand_loc_callback): Don't call it.
4356 (vt_expand_loc): Likewise.
4357
5c9ffc86
PO
43582009-10-20 Pascal Obry <obry@adacore.com>
4359 Eric Botcazou <ebotcazou@adacore.com>
4360
4361 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens.
4362
1578e910
MM
43632009-10-20 Michael Matz <matz@suse.de>
4364
4365 * loop-invariant.c (create_new_invariant): Use different magic number.
4366
70041f8a
RE
43672009-10-20 Richard Earnshaw <rearnsha@arm.com>
4368
4369 PR target/39247
4370 * arm.c (arm_override_options): Forcibly disable hot/cold block
4371 partitioning.
4372
8ee2bec9
AO
43732009-10-20 Alexandre Oliva <aoliva@redhat.com>
4374
4375 PR debug/41739
4376 * haifa-sched.c (try_ready): Skip debug deps updating speculation
4377 status.
4378
b78cd885
RG
43792009-10-20 Richard Guenther <rguenther@suse.de>
4380
4381 * ggc-page.c: Include cfgloop.h.
4382 (struct max_alignment): Drop long double, add void *.
4383 (extra_order_size_table): Add low non-power-of-two multiples
4384 of MAX_ALIGNMENT. Drop small type-based entries, add
4385 tree_type, cgraph_node and loop.
4386 * alloc-pool.c (struct allocation_object_def): Drop long double
4387 aligning element.
4388
dd8c071d
JJ
43892009-10-20 Jakub Jelinek <jakub@redhat.com>
4390
4391 PR debug/41340
4392 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs
4393 referenced just in DEBUG_INSNs.
4394
20d36f0e
RG
43952009-10-20 Richard Guenther <rguenther@suse.de>
4396
4397 PR lto/41761
4398 * gimple.c (gimple_register_type): Make sure we register
4399 the types main variant first.
4400
b0cc341f
RG
44012009-10-20 Richard Guenther <rguenther@suse.de>
4402
4403 * gimple.c (gimple_types_compatible_p): Simplify. Move
4404 cheap checks before hashtable queries. Add checks for
4405 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P.
4406
a1aa1701
EB
44072009-10-20 Eric Botcazou <ebotcazou@adacore.com>
4408
4409 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
4410 without size or with size that can't be represented as a host integer.
4411
717f4048
AO
44122009-10-20 Alexandre Oliva <aoliva@redhat.com>
4413
4414 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard
4415 the removal of a debug stmt as a significant change.
4416
421b1e6b
WG
44172009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
4418
4419 * config/s390/s390.md: Added agen condition to operand
2c9062e2
UB
4420 forwarding bypasses. Added bypass for early address generation
4421 use of int results. Updated comments.
421b1e6b 4422
bd62d832
SD
44232009-10-20 Stefan Dösinger <stefan@codeweavers.com>
4424
4425 * config/i386/i386.c: Remove signal.h #include.
4426
91c29f68
JZ
44272009-10-20 Jie Zhang <jie.zhang@analog.com>
4428
bd62d832 4429 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS.
91c29f68
JZ
4430 * doc/rtl.texi: Document ss_abs.
4431
2c6e3f55
JJ
44322009-10-19 Jakub Jelinek <jakub@redhat.com>
4433
4434 * c-common.c (c_parse_error): Handle CPP_UTF8STRING.
4435 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN
4436 instead of C_LEX_RAW_STRINGS.
4437 (lex_string): Handle CPP_UTF8STRING.
4438 * c-parser.c (c_parser_postfix_expression): Likewise.
4439 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ...
4440 (C_LEX_STRING_NO_JOIN): ... this.
4441
4d696ad0
AS
44422009-10-19 Anatoly Sokolov <aesok@post.ru>
4443
4444 * config/cris/cris.c (cris_function_value, cris_libcall_value,
4445 cris_function_value_regno_p): New functions.
4446 (cris_promote_function_mode): Update comment.
4447 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
bd62d832 4448 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
4d696ad0
AS
4449 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p.
4450 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare.
4451
4793ad6b
JJ
44522009-10-19 Jakub Jelinek <jakub@redhat.com>
4453
4454 * unwind-dw2.c (execute_stack_op): Fix operand order for
4455 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt.
4456
a141816c
EB
44572009-10-19 Eric Botcazou <ebotcazou@adacore.com>
4458
4459 * gimple-low.c (struct lower_data): Add cannot_fallthru field.
4460 (lower_stmt) <GIMPLE_BIND>: Add comment.
4461 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
4462 and return.
4463 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
4464 Otherwise lower it and set cannot_fallthru to true.
4465 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
bd62d832 4466 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false.
a141816c
EB
4467 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
4468 to true for a noreturn call. Do not remove statements.
4469 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
4470 Set cannot_fallthru to false on function exit.
4471 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
4472 <GIMPLE_ASSIGN>: Remove.
4473
2dfdbf2b
AK
44742009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4475
4476 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares.
4477
33ab2bd4
AK
44782009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4479
4480 * config/s390/s390.c (s390_z10_optimize_cmp): Use
4481 next/prev_active_insn to skip DEBUG_INSNs as well.
4482
5728868b
JM
44832009-10-19 Joseph Myers <joseph@codesourcery.com>
4484
4485 * config/arm/arm.c (output_move_neon): Use DImode in call to
4486 adjust_address.
4487
d23a7734
MK
44882009-10-19 Matthias Klose <doko@ubuntu.com>
4489
4490 PR target/40134
4491 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc.
4492
2d3fc6aa
JJ
44932009-10-19 Jakub Jelinek <jakub@redhat.com>
4494
bd62d832 4495 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0.
2d3fc6aa
JJ
4496
44972009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
db826dae
AH
4498
4499 PR middle-end/41738
4500 * optabs.c (expand_binop): Make mode of shift count expression mode
4501 of shift count not target.
4502 Remove indent nit.
4503
d79c2936
EB
45042009-10-17 Eric Botcazou <ebotcazou@adacore.com>
4505
4506 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
4507 case. Force using values to replace references within the statement.
4508 (convert_local_reference_stmt): Likewise.
4509
79ddec02
EB
45102009-10-17 Eric Botcazou <ebotcazou@adacore.com>
4511
4512 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn,
4513 remove a subsequent GOTO or RETURN statement.
4514
7e90b362
AH
45152009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
4516
4517 * config/avr.md (*movqi): Add zero as equally preferable constraint
4518 as general register.
79ddec02 4519 (*movhi): Ditto.
7e90b362 4520
79ddec02 45212009-10-17 Eric Botcazou <ebotcazou@adacore.com>
1ee41d43
EB
4522
4523 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION.
4524
b7dae211
RG
45252009-10-17 Richard Guenther <rguenther@suse.de>
4526
bd62d832 4527 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps.
b7dae211 4528
57e4ba84
RG
45292009-10-17 Richard Guenther <rguenther@suse.de>
4530
4531 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL
4532 operands in COMPONENT_REFs.
4533
7fc6a96b
AS
45342009-10-17 Anatoly Sokolov <aesok@post.ru>
4535
4536 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro
4537 if not defined. Change type of second argument to const_rtx.
4538 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE
4539 macro not defined.
4540 * targhooks.h (default_libcall_value): Update prototype.
4541 * target.h (struct gcc_target): Change type of second argument of
4542 libcall_value to const_rtx.
4543 * config/arm/arm.c (arm_libcall_value): Change type of second argument
4544 to const_rtx.
4545 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx.
4546 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation.
4547
3df9609a
JJ
45482009-10-17 Jakub Jelinek <jakub@redhat.com>
4549
4550 PR debug/40521
4551 * debug.h (struct gcc_debug_hooks): Add assembly_start hook.
4552 * cgraphunit.c (cgraph_optimize): Call it.
4553 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into...
4554 (dwarf2out_assembly_start): ... here. New hook.
4555 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start.
4556 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start
4557 hook.
4558 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
4559 * sdbout.c (sdb_debug_hooks): Likewise.
4560 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start.
4561 (vmsdbgout_assembly_start): New hook.
4562
15f01e4a
AO
45632009-10-17 Alexandre Oliva <aoliva@redhat.com>
4564
4565 * rtl.h (RTL_LOCATION): Fix typo.
4566
da1e1503
AO
45672009-10-17 Alexandre Oliva <aoliva@redhat.com>
4568
4569 * print-rtl.c (print_rtx): Print locators in asm_operands
4570 and asm_input.
4571
f49b295a
AO
45722009-10-17 Alexandre Oliva <aoliva@redhat.com>
4573
4574 PR debug/41535
4575 * sched-deps.c (depl_on_debug_p): New.
4576 (attach_dep_link): Reject debug deps before nondebug deps.
4577 (add_to_deps_list): Insert debug deps after nondebug deps.
4578 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug
4579 deps.
4580 (sd_add_dep): Do not reject debug deps.
4581 (add_insn_mem_dependence): Don't count debug deps.
4582 (remove_from_deps): Likewise.
4583 (sched_analyze_2): Set up mem deps on debug insns.
4584 (sched_analyze_insn): Record reg uses for deps on debug insns.
4585 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't
4586 try_ready nondebug insn after debug insn.
4587 * ddg.c (create_ddg_dep_from_intra_loop_link,
4588 create_ddg_dep_no_link): Don't reject debug deps.
4589
e575382e
RG
45902009-10-16 Richard Guenther <rguenther@suse.de>
4591
4592 * lto-symtab.c (merge_incomplete_and_complete_type): Remove.
4593 (maybe_merge_incomplete_and_complete_type): Likewise.
4594 (lto_symtab_merge): Do not call them. Do not warn for
4595 complete vs. incomplete compatible types.
4596 (lto_symtab_merge_decls_2): Simplify.
4597 * gimple.c (gimple_force_type_merge): Remove.
4598 (gimple_types_compatible_p): Make it static.
4599 * gimple.h (gimple_force_type_merge): Remove.
4600 (gimple_types_compatible_p): Likewise.
4601
3b24c708
JJ
46022009-10-16 Jakub Jelinek <jakub@redhat.com>
4603
4604 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast
4605 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings.
4606
076ba157
RG
46072009-10-16 Richard Guenther <rguenther@suse.de>
4608
4609 PR tree-optimization/41728
4610 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified
4611 if fold_stmt did anything.
4612
35f1e9f4
RG
46132009-10-16 Richard Guenther <rguenther@suse.de>
4614
4615 PR lto/41715
4616 * lto-streamer-in.c (lto_input_tree_ref): Revert last change.
4617 (maybe_fixup_handled_component): New function.
4618 (input_gimple_stmt): Fixup mismatched decl replacements.
4619
775dc670
RG
46202009-10-16 Richard Guenther <rguenther@suse.de>
4621
4622 PR lto/41713
4623 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL
4624 the same as VAR_DECL.
4625
f798226d
RG
46262009-10-16 Richard Guenther <rguenther@suse.de>
4627
4628 * gimple.c (iterative_hash_gimple_type): For integer types
4629 also hash their minimum and maximum values and the string flag.
4630 For array types hash their domain and the string flag.
4631
021ed367
RG
46322009-10-16 Richard Guenther <rguenther@suse.de>
4633
4634 * gimple.c (gimple_types_compatible_p): Restrict completing
4635 types to record or unions. Simplify completion.
4636 Do not merge records or unions with different
4637 TYPE_STRUCTURAL_EQUALITY_P tag.
4638 (iterative_hash_gimple_type): Restrict non-recursing into
4639 pointer targets for records and unions.
4640
d02a5a4b
JJ
46412009-10-15 Jakub Jelinek <jakub@redhat.com>
4642
4643 PR debug/41717
4644 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR.
4645 * dwarf2out.c (mem_loc_descriptor): Don't handle
4646 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG
4647 punt if it is not lowpart subreg or if inner mode isn't
4648 MODE_INT.
4649
200ab6fd
AK
46502009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4651
4652 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when
4653 investigating previous or next insns.
4654
d7c79c4d
EB
46552009-10-16 Eric Botcazou <ebotcazou@adacore.com>
4656
4657 * tree-sra.c (build_ref_for_offset_1): Update comment.
4658
c68e7b86
WG
46592009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com>
4660
4661 * config/s390/s390.md (atype): Added missing values.
4662
b1978a90
JDA
46632009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4664
4665 PR target/41702
bd62d832 4666 * pa.md (casesi): Use sign extended index in call to gen_casesi64p.
b1978a90
JDA
4667 (casesi64p): Update pattern to reflect above.
4668
4b2e464e
SE
46692009-10-15 Steve Ellcey <sje@cup.hp.com>
4670
4671 PR rtl-optimization/41697
4672 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count.
4673
1c9df37c
MM
46742009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com>
4675
4676 PR target/23983
4677 * config/rs6000/predicates.md: Update copyright year.
4678 * config/rs6000/altivec.md: Ditto.
2c9062e2 4679
1c9df37c
MM
4680 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def.
4681 (MD_INCLUDES): Add a2.md.
2c9062e2 4682
1c9df37c
MM
4683 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change
4684 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS.
4685 (builtin_classify): New static vector to classify various builtins
4686 to get the tree attributes correct.
4687 (def_builtin): Set the attributes of builtins based on what the
4688 builtin does (i.e. memory operation, floating point, saturation
4689 need special attributes, others are pure functions).
4690
4691 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify
4692 the builtins.
4693 (enum rs6000_builtins): Include rs6000-builtin.def to define the
4694 builtins. Change the end marker to MAX_RS6000_BUILTINS from
4695 RS6000_BUILTIN_COUNT.
4696 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to
4697 MAX_RS6000_BUILTINS.
4698
4699 * config/rs6000/rs6000-builtin.def: New file that combines the
4700 builtin enumeration name and attributes.
4701
9017096f
L
47022009-10-15 H.J. Lu <hongjiu.lu@intel.com>
4703
4704 * config/i386/linux.h (ASM_SPEC): Add --32.
4705
7613143b
JJ
47062009-10-15 Jakub Jelinek <jakub@redhat.com>
4707
4708 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type
4709 and DW_TAG_template_alias.
4710 (dwarf_attr_name): Handle DW_AT_main_subprogram,
4711 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class,
4712 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by,
4713 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded,
4714 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required
4715 and DW_AT_GNU_odr_signature.
4716 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc,
4717 DW_FORM_flag_present and DW_FORM_ref_sig8.
4718 (output_signature): Only print name on the first byte.
4719 (output_die): Likewise for dw_val_class_data8.
4720
83bb5ce3
AM
47212009-10-15 Alexander Monakov <amonakov@ispras.ru>
4722
4723 * doc/invoke.texi: Clarify that most optimizations are not enabled
4724 without -O.
4725
77785f4f
RG
47262009-10-15 Richard Guenther <rguenther@suse.de>
4727
4728 PR lto/41668
4729 * gimple.c (compare_type_names_p): Handle anonymous names
4730 differently based on new mode argument.
4731 (gimple_types_compatible_p): For structs also compare the tags.
4732 (iterative_hash_type_name): Rename to ...
4733 (iterative_hash_name): ... this. Hash all names.
4734 (iterative_hash_gimple_type): Fix hashing the struct tag of
4735 pointer targets. Hash field decl names.
4736
4c8160e7
RG
47372009-10-15 Richard Guenther <rguenther@suse.de>
4738
4739 PR lto/41669
4740 * gimple.c (gimple_get_alias_set): Avoid recursing on
4741 invalid type topology.
4742
3f254607
AP
47432009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
4744
4745 * config/spu/spu.c (get_branch_target): Use extract_asm_operands.
4746
23503efc
RG
47472009-10-15 Richard Guenther <rguenther@suse.de>
4748
4749 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT.
4750
b44dd043
JJ
47512009-10-15 Jakub Jelinek <jakub@redhat.com>
4752
4753 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't
4754 add --with-tune{,-32,-64} configured default for -mtune if explicit
4755 -mcpu is used.
4756
f67c7a8f
DG
47572009-10-14 Daniel Gutson <dgutson@codesourcery.com>
4758
bd62d832 4759 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed.
f67c7a8f 4760
18674659 47612009-10-14 DJ Delorie <dj@redhat.com>
2c9062e2 4762
18674659
DD
4763 * config/h8300/h8300.c (F): New.
4764 (Fpa): New.
4765 (h8300_emit_stack_adjustment): Call them.
4766 (push): Likewise.
4767 (h8300_push_pop): Likewise.
4768 (h8300_expand_prologue): Likewise.
4769 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define.
4770 (MUST_USE_SJLJ_EXCEPTIONS): Define.
4771 (INCOMING_RETURN_ADDR_RTX): Define.
4772 (INCOMING_FRAME_SP_OFFSET): Define.
4773 (DWARF_CIE_DATA_ALIGNMENT): Define.
4774
4c0a0455
JJ
47752009-10-14 Jakub Jelinek <jakub@redhat.com>
4776
4777 * stor-layout.c (place_field): Don't emit -Wpadded warnings for
4778 fields in builtin structs.
4779 (finalize_record_size): Likewise.
4780
88ca1146
RG
47812009-10-14 Richard Guenther <rguenther@suse.de>
4782
4783 * gimple.c (gtc_ob): New global.
4784 (struct type_pair_d): Replace pointers with type UIDs.
4785 (type_pair_hash): Adjust.
4786 (type_pair_eq): Likewise.
4787 (lookup_type_pair): Likewise. Allocate from an obstack.
4788 (gimple_force_type_merge): Adjust.
4789 (gimple_types_compatible_p): Likewise.
4790 (free_gimple_type_tables): Free the obstack.
4791
4f2a9af8
JJ
47922009-10-14 Jakub Jelinek <jakub@redhat.com>
4793
4794 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug
4795 stmts setting DEBUG_EXPR_DECLs.
4796
4797 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields.
4798 Don't crash if mode1 is VOIDmode.
4799
1833192f
VM
48002009-09-26 Vladimir Makarov <vmakarov@redhat.com>
4801
4802 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New.
bd62d832 4803 * params.h (IRA_LOOP_RESERVED_REGS): New.
1833192f
VM
4804 * tree-pass.h (pass_subregs_of_mode_init,
4805 pass_subregs_of_mode_finish): Remove.
4806 * passes.c (pass_subregs_of_mode_init,
4807 pass_subregs_of_mode_finish): Remove.
4808 (pass_reginfo_init): Move before loop optimizations.
4809 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define.
4810 * common.opt (fira-loop-pressure): New.
4811 * toplev.h (flag_ira_loop_pressure): New.
bd62d832 4812 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals.
1833192f
VM
4813 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode):
4814 Make external and void type functions.
4815 (gate_subregs_of_mode_init, pass_subregs_of_mode_init,
4816 pass_subregs_of_mode_finish): Remove.
4817 * ira-costs.c (init_costs): Call init_subregs_of_mode.
4818 * regmove.c: Include ira.h.
4819 (regmove_optimize): Call ira_set_pseudo_classes after IRA based
4820 register pressure calculation in loops.
4821 * loop-invariant.c: Include REGS_H and ira.h.
4822 (struct loop_data): New members max_reg_pressure, regs_ref, and
4823 regs_live.
4824 (struct invariant): New member orig_regno.
4825 (curr_loop): New variable.
4826 (find_exits): Initialize regs_ref and regs_live.
4827 (create_new_invariant): Initialize orig_regno.
4828 (get_cover_class_and_nregs): New.
4829 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an
4830 array. Add code for flag_ira_loop_pressure.
4831 (gain_for_invariant): Make new_regs an array. Add code for
4832 flag_ira_loop_pressure.
4833 (best_gain_for_invariant): Ditto.
4834 (set_move_mark): New parameter gain. Use it for debugging output.
4835 (find_invariants_to_move): Make regs_needed and new_regs an array.
4836 Add code for flag_ira_loop_pressure.
4837 (move_invariant_reg): Set up orig_regno.
4838 (move_invariants): Set up reg classes for pseudos for
4839 flag_ira_loop_pressure.
4840 (free_loop_data): Clear regs_ref and regs_live.
4841 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set,
4842 get_regno_cover_class, change_pressure, mark_regno_live,
4843 mark_regno_death, mark_reg_store, mark_reg_clobber,
4844 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New.
4845 (move_loop_invariants): Calculate pressure. Initialize curr_loop.
4846 * ira.c (ira): Call ira_set_pseudo_classes after IRA based
4847 register pressure calculation in loops if new regs were added.
4848 Call finish_subregs_of_mode.
4849 * opts.c (decode_options): Set up flag_ira_loop_pressure.
4850 * Makefile.in (loop-invariant.o): Add ira.h.
4851 (regmove.o): Ditto.
4852 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs):
4853 Describe.
4854 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe.
2c9062e2 4855
200c8750
RG
48562009-10-14 Richard Guenther <rguenther@suse.de>
4857
4858 * lto-symtab.c (lto_symtab_compatible): Fold in ...
4859 (lto_symtab_merge): ... here. Rewrite both to take the
bd62d832 4860 prevailing and a to-be-merged entry and to queue diagnostics properly.
200c8750
RG
4861 (lto_symtab_resolve_replaceable_p): New predicate for
4862 symbol resolution.
4863 (lto_symtab_resolve_can_prevail_p): Likewise.
4864 (lto_symtab_resolve_symbols): Rewrite. Fold in code that
4865 handles merging commons by choosing the largest decl. Fold
4866 in code that gives ODR errors.
4867 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued
4868 diagnostics here.
4869 (lto_symtab_merge_decls_1): Re-structure. Deal with the
4870 case of no prevailing decl here. Diagnose mismatches
4871 in object types here. Drop all but the prevailing decls.
4872 (lto_symtab_prevailing_decl): Return the single prevailing decl.
4873 * lto-streamer-in.c (lto_input_tree_ref): Deal with
4874 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case.
4875
77ce724c
RG
48762009-10-14 Richard Guenther <rguenther@suse.de>
4877
4878 PR lto/41521
4879 * lto-streamer-in.c (input_bb): Replace debug stmts with
4880 nops instead of dropping them.
4881
8ad1dde7
NC
48822009-10-14 Nick Clifton <nickc@redhat.com>
4883
bd62d832
SD
4884 * gcc/doc/extended.texi: Replace the dash character with @minus{}
4885 in situations where it is being used as a minus symbol.
8ad1dde7
NC
4886 * gcc/doc/tm.texi: Likewise.
4887 * gcc/doc/md.texi: Likewise.
4888
b29ee46c
JJ
48892009-10-14 Jakub Jelinek <jakub@redhat.com>
4890
96c169e1
JJ
4891 PR preprocessor/41543
4892 * input.h (BUILTINS_LOCATION): Change to 1 from 2.
4893 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT.
4894 * tree.c: Include intl.h.
4895 (expand_location): Handle BUILTINS_LOCATION.
4896 * Makefile.in (tree.o): Depend on intl.h.
4897
b29ee46c
JJ
4898 PR debug/41695
4899 * dwarf2out.c (dwarf2out_var_location): Always clear
4900 last_postcall_label when changing last_label.
4901
1b5bc8e9
PO
49022009-10-14 Pascal Obry <obry@adacore.com>
4903
4904 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
4905 (process_command): Handle -E as done with -c and -S. Do not add
4906 the target executable suffix to the output file when -E is used.
4907 (main): Adjust error message accordingly.
4908
a83f5409
AO
49092009-10-14 Alexandre Oliva <aoliva@redhat.com>
4910
4911 PR debug/41343
4912 PR debug/41447
4913 PR debug/41264
4914 PR debug/41338
4915 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses
4916 decl with rtl.
4917 (tree_code_size): Likewise.
4918
7610abd8
KG
49192009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4920
4921 * builtins.c (fold_builtin_1): Support complex "arc" functions.
4922 * real.h (HAVE_mpc_arc): Define.
4923
1cc24576
KK
49242009-10-14 Kaz Kojima <kkojima@gcc.gnu.org>
4925
4926 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define.
4927 (struct builtin_description): Add fndecl field.
4928 (bdesc): Remove const qualifier. Update initializer.
4929 (sh_media_init_builtins): Remove const qualifier for d. Record
4930 the result of add_builtin_function to the fndecl field.
4931 (sh_builtin_decl): New.
4932 (sh_media_builtin_decl): New.
4933
83907fdd
HPN
49342009-10-14 Hans-Peter Nilsson <hp@axis.com>
4935
4936 PR target/38948
4937 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload
4938 requests between special registers.
4939
0e081833
EB
49402009-10-13 Eric Botcazou <ebotcazou@adacore.com>
4941
4942 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well.
4943
d6063d7f
RH
49442009-10-13 Richard Henderson <rth@redhat.com>
4945
4946 PR tree-optimization/41377
4947 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs.
4948 (cleanup_empty_eh_merge_phis): New change_region parameter;
4949 pass it on to redirect_eh_edge_1. Update callers.
4950 (cleanup_empty_eh_unsplit): Don't require an existing EH label
4951 at the destination block.
b9e467a2
BS
4952
49532009-10-13 Basile Starynkevitch <basile@starynkevitch.net>
d6063d7f
RH
4954
4955 * passes.c (register_pass): Replaced gcc_unreachable by
4956 fatal_error on failure. Mentions plugins in comments & messages.
b9e467a2 4957
e4fb38bd
JJ
49582009-10-13 Jakub Jelinek <jakub@redhat.com>
4959
4960 PR target/41693
4961 * rtl.h (DEBUG_EXPR_TREE_DECL): Define.
4962 * sched-vis.c (print_value): Use it.
4963 * cselib.c (cselib_hash_rtx): Likewise.
4964 * print-rtl.c (print_rtx): Likewise.
4965 * cfgexpand.c (expand_debug_rtx): Likewise.
4966 * var-tracking.c (vt_expand_loc_callback): Likewise.
4967
ab6218f1
RG
49682009-10-13 Richard Guenther <rguenther@suse.de>
4969
4970 PR lto/41565
4971 * opts.c (handle_option): Split out code to handle setting
4972 the options flag var ...
4973 (set_option): ... here.
4974 * opts.h (set_option): Declare.
4975 * lto-opts.c (register_user_option_p): Include -fexceptions
4976 and all position independent code variants.
4977 (handle_common_option): Remove.
4978 (lto_reissue_options): Use set_option.
4979
c4e5fe4b
MJ
49802009-10-13 Martin Jambor <mjambor@suse.cz>
4981
4982 PR tree-optimization/41661
4983 * ipa-prop.c (compute_complex_pass_through): Allow only operations
4984 that are tcc_comparisons or do not change the type in any
4985 un-usleless way.
4986 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
4987 folding tcc_comparison operations.
4988
35fcb6ba
AK
49892009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4990
4991 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode
4992 properly.
4993
0ca5af51
AO
49942009-10-12 Alexandre Oliva <aoliva@redhat.com>
4995
4996 PR debug/41343
4997 PR debug/41447
4998 PR debug/41264
4999 PR debug/41338
5000 * tree.def (DEBUG_EXPR_DECL): New.
5001 * rtl.def (DEBUG_EXPR): New.
5002 * gengtype.c (adjust_field_rtx_def): Handle it.
5003 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
5004 (insert_debug_temp_for_var_def): ... this. Drop support for
5005 moving. Take iterator for def stmt; insert debug stmt before it.
5006 Scan early for use count and kind in debug stmts.
5007 (propagate_defs_into_debug_stmts): Rename to...
5008 (insert_debug_temps_for_defs): ... this. Likewise.
5009 * tree.h (DEBUG_TEMP_UID): New.
5010 * tree.c (next_debug_decl_uid): New.
5011 (make_node_stat): Count debug decls separately.
5012 (copy_node_stat): Likewise.
5013 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
5014 * var-tracking.c (dv_is_decl_p): Recognize it.
5015 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
5016 (track_expr_p): Track expanded DEBUG_EXPR_DECLs.
5017 (vt_expand_loc_callback): Expand DEBUG_EXPRs.
5018 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
5019 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
5020 (cselib_hash_rtx): Likewise.
5021 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
5022 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
5023 debug bind stmts.
5024 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
5025 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
5026 * rtl.c (copy_rtx): Likewise.
5027 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
5028 * print-rtl.c (print_rtx): Likewise.
5029 * sched-vis.c (print_value): Likewise.
5030 (print_insn): Handle DEBUG_EXPR_DECL.
5031 * tree-dump.c (dequeue_and_dump): Likewise.
5032 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
5033 * gimple-iterator (gsi_replace): Check for same lhs.
5034 (gsi_remove): Insert debug temps.
5035 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
5036 (move_computations_stmt): Drop explicit propagation into debug stmts.
5037 (rewrite_bittest): Likewise. Use gsi_remove for propagation.
5038 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
5039 * tree-ssa-sink.c (statement_sink_location): Likewise.
5040 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
5041 * tree-ssanames.c (release_ssa_name): Adjust for rename.
5042 * tree-flow.h: Likewise.
5043 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
5044 debug temps without values.
5045 (eliminate_unnecessary_stmts): Don't discard just-inserted
5046 debug stmts.
5047
365cacbf
HPN
50482009-10-12 Hans-Peter Nilsson <hp@axis.com>
5049
5050 PR target/26515
5051 * config/cris/cris.md (andu): Check that operand 1 is one of the
5052 general registers. Fix typo in head comment.
5053
afd2c302 50542009-10-12 Stefan Dösinger <stefan@codeweavers.com>
4c769036 5055
afd2c302
SD
5056 * config/i386/i386.md (vswapmov): New.
5057 * config/i386/i386.c (ix86_handle_fndecl_attribute): New.
5058 (ix86_function_ms_hook_prologue): New.
5059 (ix86_expand_prologue): Handle ms_hook_prologue attribute.
5060 * configure.ac: Test for swap suffix support in as.
5061 * configure: Rebuild.
5062
821bdb23
JJ
50632009-10-12 Jakub Jelinek <jakub@redhat.com>
5064
5065 PR target/41680
5066 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
5067 paradoxical subregs to prevent partial register stalls if the inner
5068 mode is integer mode.
5069
aeaf114b
UB
50702009-10-12 Uros Bizjak <ubizjak@gmail.com>
5071
4c769036 5072 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.
aeaf114b 5073
9ef3dbcd
DS
50742009-10-12 Dodji Seketeli <dodji@redhat.com>
5075
5076 PR c++/41570
5077 * gcc/dwarf2out.c (template_parameter_pack_die,
5078 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.
5079
3a56edc7
AO
50802009-10-12 Alexandre Oliva <aoliva@redhat.com>
5081
5082 PR debug/41616
5083 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
5084 on updates too.
5085 (maybe_register_def): Likewise. Take stmt iterator.
5086 (rewrite_update_stmt): Take stmt iterator and pass it on.
5087 (rewrite_update_enter_block): Pass stmt iterator.
5088
2c93399f
AP
50892009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
5090
5091 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
5092 (spu_builtin_decl): New function.
5093
bfb59746
UB
50942009-10-12 Uros Bizjak <ubizjak@gmail.com>
5095
5096 * config/i386/i386.md (SWIM): New mode iterator.
5097 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
5098 using SWIM mode iterator.
5099 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
5100 patterns using SWI48 mode iterator.
5101 (*x86_mov<mode>cc_0_m1_se): Macroize insn from
5102 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
5103 (*x86_mov<mode>cc_0_m1_neg): New insn pattern.
5104 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
5105 patterns using SWI248 mode iterator.
5106 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to
5107 gen_x86_movdicc_0_m1_rex64 for renamed function
5108
cb7d60a6 51092009-10-11 Jose Ruiz <ruiz@adacore.com>
aeaf114b 5110 Eric Botcazou <ebotcazou@adacore.com>
cb7d60a6
JR
5111
5112 PR target/33743
5113 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
5114 * config/sparc/sol2-unwind.h: New file.
5115
8d232178 51162009-10-11 Olivier Hainque <hainque@adacore.com>
aeaf114b 5117 Eric Botcazou <ebotcazou@adacore.com>
8d232178
OH
5118
5119 PR target/33743
5120 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
5121 * config/i386/sol2-unwind.h: New file.
5122
e1d4f419
L
51232009-10-11 H.J. Lu <hongjiu.lu@intel.com>
5124
5125 PR target/41665
5126 * config/i386/i386.md (addsi_1_zext): Get the proper second
5127 operand for lea.
5128
c47d1dba
RS
51292009-10-11 Richard Sandiford <rdsandiford@googlemail.com>
5130
5131 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
5132 all OLD_RTXes, not just REGs. Use copy_rtx to create the
5133 replacement value.
5134
652a8c1c
RG
51352009-10-11 Richard Guenther <rguenther@suse.de>
5136
5137 * gimple.c (iterative_hash_type_name): Do not handle special
5138 anonymous names.
5139
b09ee6aa
UB
51402009-10-11 Uros Bizjak <ubizjak@gmail.com>
5141
5142 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
5143 (*setcc_si_1_and): Ditto.
5144 (*setcc_si_1_movzbl): Ditto.
5145 (*setcc_<mode>_2): Ditto.
5146 (*setcc_qi): Rename from *setcc_1.
5147 (*setcc_qi_slp): Rename from *setcc_2.
5148
5149 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
5150 (*zero_extendqisi2_movzbw_and splitter): Ditto.
5151
5152 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
5153 "if" condition, there is already assert with reload_completed present.
5154
57703d27
GP
51552009-10-11 Gerald Pfeifer <gerald@pfeifer.com>
5156
b09ee6aa 5157 * plugin.c (try_init_one_plugin): Improve constness of variable err.
c08766bc 5158
57703d27 51592009-10-10 Gerald Pfeifer <gerald@pfeifer.com>
b09ee6aa 5160
c08766bc
GP
5161 * doc/install.texi (Final install): Refer to
5162 http://gcc.gnu.org/bugs/ for bug reporting.
5163
47f67e51
PB
51642009-10-10 Peter Bergner <bergner@vnet.ibm.com>
5165
5166 * configure.ac: Add test for dci instruction.
5167 * configure: Regenerate.
5168 * config.in: Likewise.
5169 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp.
5170 * doc/invoke.texi: Add cpu_type 476 and 476fp.
5171 (-mmulhw): Add 476 to description.
5172 (-mdlmzb): Likewise.
5173 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476.
5174 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost.
5175 (processor_target_table): Add 476 and 476fp entries.
5176 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476.
5177 (rs6000_issue_rate): Add CPU_PPC476.
5178 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define.
5179 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp.
5180 (processor_type): Add PROCESSOR_PPC476.
5181 (EXTRA_SPECS): Add asm_cpu_476 string.
bd62d832 5182 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute.
47f67e51
PB
5183 (define_attr "cpu"): Add ppc476.
5184 Include 476.md.
5185 Update comments for 476.
5186 (isel_signed, isel_unsigned): Change to use "isel" type attribute.
5187 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476.
5188 Update copyright year.
5189 * config/rs6000/476.md: New file.
5190 * config/rs6000/40x.md: Add description for "isel" attribute.
5191 Update copyright year.
5192 * config/rs6000/440.md: Likewise.
5193 * config/rs6000/603.md: Likewise.
5194 * config/rs6000/6xx.md: Likewise.
5195 * config/rs6000/7450.md: Likewise.
5196 * config/rs6000/7xx.md: Likewise.
5197 * config/rs6000/8540.md: Likewise.
5198 * config/rs6000/cell.md: Likewise.
5199 * config/rs6000/e300c2c3.md: Likewise.
5200 * config/rs6000/e500mc.md: Likewise.
5201 * config/rs6000/mpc.md: Likewise.
5202 * config/rs6000/power4.md: Likewise.
5203 * config/rs6000/power5.md: Likewise.
5204 * config/rs6000/power6.md: Likewise.
5205 * config/rs6000/power7.md: Likewise.
5206 * config/rs6000/rios1.md: Likewise.
5207 * config/rs6000/rios2.md: Likewise.
5208 * config/rs6000/rs64.md: Likewise.
5209
740bb6ad
RG
52102009-10-10 Richard Guenther <rguenther@suse.de>
5211
5212 PR tree-optimization/41654
5213 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize
5214 a cond expr before calling gimple_cond_set_condition_from_tree.
5215 (ifcombine_iforif): Likewise.
5216
0c2edd9f
ILT
52172009-10-09 Ian Lance Taylor <iant@google.com>
5218
5219 * configure.ac: Use AC_SEARCH_LIBS to find dlopen.
5220 * configure: Rebuild.
5221
2214382c
NV
52222009-10-09 Neil Vachharajani <nvachhar@google.com>
5223
5224 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as
5225 deprecated.
5226
e9e4b3a8
RG
52272009-10-09 Richard Guenther <rguenther@suse.de>
5228
5229 PR lto/41638
5230 * target-def.h (TARGET_BUILTIN_DECL): Define.
5231 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL.
5232 * target.h (struct gcc_target): Add builtin_decl target hook.
5233 * doc/tm.texi (TARGET_BUILTIN_DECL): Document.
5234 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of
5235 target builtins.
5236 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry,
5237 not gcc_unreachable.
5238 (lto_output_builtin_tree): Sorry if the target does not support
5239 streaming target builtins.
5240 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define.
5241 (rs6000_builtin_decl): New function.
5242 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define.
5243 (ix86_builtin_decl): New function.
5244
78441afb
JJ
52452009-10-09 Jakub Jelinek <jakub@redhat.com>
5246
21ece9b2
JJ
5247 PR preprocessor/41445
5248 * c-ppoutput.c (do_line_change): New function.
5249 (cb_line_change): Use it.
5250 (scan_translation_unit): Call do_line_change if
5251 avoid_paste or PREV_WHITE and token location is on a different line
5252 than print.src_line.
5253
9c1e641a
JJ
5254 PR debug/40521
5255 * dwarf2out.c (dwarf2out_init): Test whether
5256 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking
5257 it is defined.
5258
78441afb
JJ
5259 PR rtl-optimization/41646
5260 * calls.c (expand_call): For BLKmode types returned in registers
5261 avoid likely spilled hard regs in copy_blkmode_from_reg generated
5262 insns.
5263
aabf6a03
RG
52642009-10-09 Richard Guenther <rguenther@suse.de>
5265
5266 PR tree-optimization/41634
5267 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert
5268 we remove the correct elements.
5269 (optimize_stmt): Make sure to update stmt operands before
5270 optimizing redundancies.
5271
22d72dbc
AK
52722009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5273
5274 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching.
5275
b1b07c92
RG
52762009-10-09 Richard Guenther <rguenther@suse.de>
5277
5278 PR driver/41637
5279 * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New
5280 globals.
5281 (lto_wrapper_exit): New function.
5282 (fatal): Use it.
5283 (fatal_perror): Likewise.
5284 (fork_execute): Use global args_name, do not free it.
5285 (run_gcc): Use global ltrans_output_file, flto_out, do not free them.
5286 * lto-streamer.h: Remove duplicate prototypes.
5287
9f3f7d13
RG
52882009-10-09 Richard Guenther <rguenther@suse.de>
5289
5290 * cgraph.c (cgraph_create_edge): Check for NULL call_stmt
5291 before calling stmt_can_throw_external.
5292
3f49ba3f
EB
52932009-10-09 Eric Botcazou <ebotcazou@adacore.com>
5294
5295 PR tree-optimization/40071
5296 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all
5297 pointer if the original data reference doesn't conflict with the
5298 created vector data reference. Fix long line.
5299
85760734
UB
53002009-10-09 Uros Bizjak <ubizjak@gmail.com>
5301
5302 * config/i386/i386.md (any_div): New code iterator.
5303 (u): Handle div and udiv.
5304 (sgnprefix): Ditto.
af2efb2b 5305 (<u>divqi3): Macroize insn from {,u}divqi3 using any_div
85760734
UB
5306 code iterator.
5307 (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from
5308 lfloor<mode>{si,di}2 patterns using SWI48 mode iterator.
5309 (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from
5310 lceil<mode>{si,di}2 patterns using SWI48 mode iterator.
5311
23cd46a1
JM
53122009-10-08 Joseph Myers <joseph@codesourcery.com>
5313
5314 * gcc.c (main): Remove trailing "." from diagnostics.
5315
77831620
CC
53162009-10-08 Cary Coutant <ccoutant@google.com>
5317
5318 Add support for debugging with ICF (Identical Code Folding).
5319 * calls.c (debug.h): New #include.
5320 (emit_call_1): Call virtual_call_token debug hook.
5321 * common.opt (-fenable-icf-debug): New option.
5322 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two
5323 locations in the source).
5324 (poc_label_num): New variable.
5325 (dcall_entry, vcall_entry): New typedefs.
5326 (dcall_table, vcall_table): New variables.
5327 (struct vcall_insn): New type.
5328 (vcall_insn_table): New variable.
5329 (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros.
5330 (size_of_dcall_table): New function.
5331 (output_dcall_table): New function.
5332 (size_of_vcall_table): New function.
5333 (output_vcall_table): New function.
5334 (dwarf2out_direct_call): New function.
5335 (vcall_insn_table_hash): New function.
5336 (vcall_insn_table_eq): New function.
5337 (dwarf2out_virtual_call_token): New function.
5338 (dwarf2out_virtual_call): New function.
5339 (dwarf2out_init): Allocate new tables and sections.
5340 (prune_unused_types): Mark DIEs referenced from direct call table.
5341 (dwarf2out_finish): Output direct and virtual call tables.
5342 * final.c (final_scan_insn): Call direct_call and virtual_call
5343 debug hooks.
5344 * debug.h (struct gcc_debug_hooks): Add direct_call,
5345 virtual_call_token, virtual_call hooks.
5346 (debug_nothing_uid): New function.
5347 * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks.
5348 (debug_nothing_uid): New function.
5349 * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks.
38265b74 5350 (xcoff_debug_hooks): Likewise.
77831620
CC
5351 * sdbout.c (sdb_debug_hooks): Likewise.
5352 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
5353 * doc/invoke.texi (-fenable-icf-debug): New option.
5354
968e5728
AO
53552009-10-08 Alexandre Oliva <aoliva@redhat.com>
5356
5357 PR debug/41353
5358 * regmove.c (regmove_backward_pass): Replace src with dst in the
5359 debug insn, and check for dst before rather than after.
5360
42ccb890
JJ
53612009-10-08 Janis Johnson <janis187@us.ibm.com>
5362
5363 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove.
5364 (TARGET_DELEGITIMIZE_ADDRESS): Likewise.
5365
625f802c
JH
53662009-10-08 Jan Hubicka <jh@suse.cz>
5367
5368 PR middle-end/41626
5369 * cgraphbuild.c (record_reference): When parameter DATA is NULL,
5370 do not mark cgraph nodes as needed.
5371 (record_references_in_initializer): Add new only_vars parameter.
5372 * cgraph.h (record_references_in_initializer): New parameter.
5373 * varasm.c (assemble_variable): Update call.
5374 * varpool.c (varpool_analyze_pending_decls): Always look for
5375 referenced vars.
5376
007a178c
AS
53772009-10-08 Anatoly Sokolov <aesok@post.ru>
5378
5379 * config/avr/avr.c (last_insn_address) Remove variable.
5380 (expand_prologue): Don't initialise last_insn_address variable.
5381 (final_prescan_insn): Don't output insn size.
5382 * config/avr/avr.opt (msize): Remove switch.
5383 * doc/invoke.texi (AVR Options): Remove documentation of -msize
5384 switch.
5385
e3104f55
AN
53862009-10-08 Adam Nemet <anemet@caviumnetworks.com>
5387
5388 * combine.c (label_tick_ebb_start): Fix comment.
5389 (combine_instructions): Set label_tick and label_tick_ebb_start before
5390 calling setup_incoming_promotions. Start them from 1. Increment
5391 label_tick instead of deriving it from the BB index. Rather than
5392 comparing ticks use the block from the previous iteration to decide
5393 whether to start a new EBB. Remove empty lines before function.
5394
6728ee79
MM
53952009-10-08 Michael Matz <matz@suse.de>
5396
5397 PR middle-end/41573
5398 * builtins.c (fold_builtin_isascii): Use fold_build2.
5399 (fold_builtin_isdigit): Ditto.
5400 * except.c (duplicate_eh_regions_1): Tolerate NULL labels.
5401 * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached,
5402 remove_useless_stmts_cond, remove_useless_stmts_tf,
5403 remove_useless_stmts_tc, remove_useless_stmts_bind,
5404 remove_useless_stmts_goto, remove_useless_stmts_label,
5405 remove_useless_stmts_1, remove_useless_stmts,
5406 pass_remove_useless_stmts): Remove.
5407 * tree-pass.h (pass_remove_useless_stmts): Don't declare.
5408 * passes.c (init_optimization_passes): Don't add
5409 pass_remove_useless_stmts.
5410 * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups.
5411 * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of
5412 static constants.
5413 * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL
5414 for static constants.
5415 * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP.
5416 * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP.
5417
0d0bfe17
RG
54182009-10-08 Richard Guenther <rguenther@suse.de>
5419
5420 * gimple.c (free_gimple_type_tables): New function.
5421 * gimple.h (free_gimple_type_tables): Declare.
5422
90e1a349
MH
54232009-10-07 Mark Heffernan <meheff@google.com>
5424
5425 * ipa-prop.c (ipa_print_node_params) Only print
5426 names of named arguments.
5427
d520c7fb
RAE
54282009-10-08 Rafael Avila de Espindola <espindola@google.com>
5429
5430 * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is
5431 being statically linked.
5432
d72ff618
RO
54332009-10-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5434
5435 * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE.
5436
b820a2f9
JH
54372009-10-08 Jan Hubicka <jh@suse.cz>
5438
5439 PR bootstrap/41620
5440 * ipa.c (cgraph_externally_visible_p,
5441 function_and_variable_visibility,
5442 whole_program_function_and_variable_visibility): Skip non-finalized
5443 nodes.
5444
611b7b5a
NC
54452009-10-08 Nick Clifton <nickc@redhat.com>
5446
5447 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow
5448 CONST_DOUBLEs.
5449
4c93ed23
AT
54502009-10-08 Andreas Tobler <a.tobler@schweiz.org>
5451
5452 PR bootstrap/37739
5453 * config.host: Use config/x-cflags-O1 for powerpc FreeBSD.
5454
e5a94231
JM
54552009-10-07 Joseph Myers <joseph@codesourcery.com>
5456
5457 PR c/41182
5458 * c-common.c (c_fully_fold_internal): Strip nops from the result
5459 of recursive calls to c_fully_fold_internal.
5460 (c_wrap_maybe_const): New.
5461 (c_save_expr): Use c_wrap_maybe_const.
5462 * c-common.h (c_wrap_maybe_const): Declare.
5463 * c-typeck.c (build_conditional_expr, c_finish_stmt_expr,
5464 build_binary_op): Use c_wrap_maybe_const.
5465
7190c775
KG
54662009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5467
5468 * real.c: Fix comment to reflect actual exponent size.
5469
033016fa
BE
54702009-10-08 Ben Elliston <bje@au.ibm.com>
5471
5472 * config/rs6000/a2.md: Add FSF comment header.
5473
68bc0874
UB
54742009-10-07 Uros Bizjak <ubizjak@gmail.com>
5475
5476 * config/i386/i386.md (any_extend): New code iterator.
5477 (u, s): New code attributes.
5478 (sgnprefix): Ditto.
5479 (DWIH): Rewrite as code iterator for SI and DI modes.
5480 (DWI): Rewrite as mode attribute.
5481 (dwi): New mode attribute.
5482 (di): Depend on SI mode and DI mode.
5483 (doubleint_general_operand): Remove mode attribute.
5484
5485 (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using
5486 DWIH mode iterator.
5487
5488 (*add<mode>3_doubleword): Use DWIH as the base mode iterator.
5489 (*sub<mode>3_doubleword): Ditto.
5490
5491 (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns
5492 using SWIM248 mode iterator.
5493 (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns
5494 using SWI48 mode iterator.
5495 (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3
5496 patterns using DWIH mode iterator and any_extend code iterator.
5497 (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns
5498 using any_extend code iterator.
5499 (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1
5500 patterns using DWIH mode iterator and any_extend code iterator.
5501 (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns
5502 using any_extend code iterator.
5503 (<s>mul<mode>3_highpart): Macroize expander from
5504 {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator
5505 and any_extend code iterator.
5506 (*<s>muldi3_highpart_1): Macroize insn from
5507 *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator.
5508 (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1
5509 patterns using any_extend code iterator.
5510 (*<s>mulsi3_highpart_zext): Macroize insn from
5511 *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator.
5512
95a28767
JJ
55132009-10-07 Jakub Jelinek <jakub@redhat.com>
5514
5515 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add
5516 DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin
5517 refering to a DIE with DW_AT_const_value.
5518
7ba06dee
VM
55192009-10-07 Vladimir Makarov <vmakarov@redhat.com>
5520
5521 PR middle-end/22072
5522 * ira-lives.c (check_and_make_def_conflict): Process all operands.
5523
3621d5ec
JH
55242009-10-06 Jan Hubicka <jh@suse.cz>
5525
5526 * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes
5527 correctly.
5528
f8921d7d
UB
55292009-10-06 Uros Bizjak <ubizjak@gmail.com>
5530
5531 * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext,
5532 *lea_2_rex64): Move before *add<mode>_1 pattern.
5533
13291c16
JH
55342009-10-07 Jan Hubicka <jh@suse.cz>
5535
5536 * collect2.c (main): Add -fno-whole-program.
5537 * gcc.c (set_collect_gcc_options): Do not remove whole program here.
5538
b20996ff
JH
55392009-10-07 Jan Hubicka <jh@suse.cz>
5540
85760734
UB
5541 * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones
5542 has no address taken.
b20996ff
JH
5543 * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are
5544 never needed.
5545 (cgraph_clone_node): Clear externally_visible flag for clones.
5546 * cgraph.h (cgraph_only_called_directly_p,
5547 cgraph_can_remove_if_no_direct_calls_p): New predicates.
5548 * tree-pass.h (pass_ipa_whole_program_visibility): Declare.
5549 * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate.
5550 (ipcp_initialize_node_lattices, ipcp_estimate_growth,
5551 ipcp_insert_stage): Likwise.
5552 * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute
5553 externally_visible flag.
5554 (verify_cgraph_node): Verify that inline clones look right.
5555 (process_function_and_variable_attributes): Do not set
5556 externally_visible flags.
5557 (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've
5558 been already run.
5559 * lto-cgraph.c (lto_output_node): Assert that inline clones are not
5560 boundaries.
5561 * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates;
5562 clear externally_visible when turning into inline clones
5563 (cgraph_mark_inline_edge): Use new predicates.
5564 (cgraph_estimate_growth): Likewise.
5565 (cgraph_decide_inlining): Likewise.
5566 * ipa.c (cgraph_postorder): Likewise.
5567 (cgraph_remove_unreachable_nodes): Likewise; sanity check
5568 that inline clones are not needed.
5569 (cgraph_externally_visible_p): New predicate.
5570 (function_and_variable_visibility): Add whole_program parameter;
5571 always set externally_visible flag; handle COMDAT function
5572 privatization.
5573 (local_function_and_variable_visibility): New function.
5574 (gate_whole_program_function_and_variable_visibility): New function.
5575 (whole_program_function_and_variable_visibility): New function.
5576 (pass_ipa_whole_program_visibility): New function.
5577 * passes.c (init_optimization_passes): Add whole program visibility
5578 pass.
5579 (do_per_function_toporder, function_called_by_processed_nodes_p): Do
5580 not care about needed/reachable flags.
5581 * varpool.c: Include flags.h
5582 (decide_is_variable_needed): When doing LTO assume whole-program mode.
5583 (varpool_finalize_decl): When we are in LTO read-back, all variables
5584 are analyzed.
5585 (varpool_analyze_pending_decls): Skip analyzis of analyzed vars.
5586
4e7d730d
AK
55872009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5588
5589 * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and
5590 add MASK_HARD_DFP.
5591
81dd9fd7
AK
55922009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5593
5594 * config.gcc: Don't include the makefile fragments intended for
5595 libgcc.
5596 * config/s390/fixdfdi.h: File removed.
5597 * config/s390/libgcc-glibc.ver: File removed.
5598 * config/s390/s390.h: Remove the fixdfdi.h hack.
5599 * config/s390/t-crtstuff: File moved to libgcc dir.
5600 * config/s390/t-linux: Likewise.
5601 * config/s390/t-tpf: libgcc specific parts removed.
5602 * config/s390/t-linux64: Likewise.
5603
66af4187
JQ
56042009-10-06 Jerry Quinn <jlquinn@optonline.net>
5605
5606 * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS.
5607 (lto-compress.o): Likewise.
09a6b8a4
DS
5608
56092009-10-07 Danny Smith <dannysmith@users.sourceforge.net>
5610
5611 PR target/41512
5612 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate
5613 dllexport to class members here.
5614 (i386_pe_determine_dllimport_p): Only check static class data for
5615 definition.
5616 (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P.
5617 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check
5618 functions for vague linkage.
5619 (i386_pe_type_dllexport_p): Fix formatting.
5620 (maybe_add_dllexport) New function.
5621 (i386_pe_adjust_class_at_definition): Use it to propagate dllexport
5622 to class members.
f8921d7d 5623
0b9036f4 56242009-10-07 Ben Elliston <bje@au.ibm.com>
a5617632
BE
5625
5626 * config/rs6000/a2.md: Remove duplicated lines.
5627
ebde32fd
BE
56282009-10-07 Ben Elliston <bje@au.ibm.com>
5629
5630 * config.gcc (powerpc*-*-*): Handle a2.
5631 * config/rs6000/rs6000.md (cpu): Add ppca2. Include "a2.md".
5632 * config/rs6000/a2.md: New file.
5633 * config/rs6000/rs6000.opt (mno-update): New.
5634 (mupdate): Return to using a mask, not a var.
5635 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2.
5636 (enum processor_type): Add PROCESSOR_PPCA2.
5637 * config/rs6000/rs6000.c (ppca2_cost): New costs.
5638 (rs6000_override_options): Add "a2" to processor_target_table.
68bc0874
UB
5639 Update rs6000_always_hint logic. Correctly set rs6000_cost for a2.
5640 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2.
ebde32fd 5641
d2407a7a
UB
56422009-10-06 Uros Bizjak <ubizjak@gmail.com>
5643
458c00ff
UB
5644 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5645 Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid
5646 reference to nonexistent gen_truncxfxf2 function.
5647
56482009-10-06 Uros Bizjak <ubizjak@gmail.com>
5649
5650 * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators.
d2407a7a
UB
5651 (DWIH, g, di, doubleint_general_operand): New mode attributes.
5652 (general_operand): Handle TI mode.
5653 (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns
458c00ff 5654 using SDWIM mode iterator.
d2407a7a
UB
5655 (*add<mode>3_doubleword): New insn_and_split pattern. Macroize
5656 pattern from *add{di,ti}3_1 patterns and corresponding splitters
458c00ff 5657 using DWI mode iterator.
d2407a7a
UB
5658 (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry
5659 patterns using SWI mode iterator.
5660 (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns
5661 using SWI48 mode iterator.
5662 (*add<mode>_1): Ditto from add{si,di}_1 patterns.
5663 (*add<mode>_2): Ditto from add{si,di}_2 patterns.
5664 (*add<mode>_3): Ditto from add{si,di}_3 patterns.
5665 (*add<mode>_5): Ditto from add{si,di}_5 patterns.
5666 (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns
458c00ff 5667 using SDWIM mode iterator.
d2407a7a
UB
5668 (*sub<mode>3_doubleword): New insn_and_split pattern. Macroize
5669 pattern from *sub{di,ti}3_1 patterns and corresponding splitters
458c00ff 5670 using DWI mode iterator.
d2407a7a
UB
5671 (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry
5672 patterns using SWI mode iterator.
5673 (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns.
5674 (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns.
5675 (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns.
5676 (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3
5677 patterns using plusminus code iterator.
5678 (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and
5679 sub<mode>3 patterns using plusminus code iterator.
bfb59746 5680 * config/i386/i386.c (override_options): Update the call to
d2407a7a
UB
5681 gen_subdi_carry_rex64 for renamed function.
5682 (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64
5683 and gen_adddi3_carry_rex64 for renamed functions. Use indirect
5684 calls to instruction expanders.
5685
7b7c01e7
MJ
56862009-10-06 Martin Jambor <mjambor@suse.cz>
5687
5688 PR bootstrap/41395
5689 * opts.c (decode_options): Run IPA-SRA at -O2.
5690
66cc270e
RG
56912009-10-06 Richard Guenther <rguenther@suse.de>
5692
5693 * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers.
5694
05927e0d
TB
56952009-10-06 Tobias Burnus <burnus@net-b.de>
5696
5697 PR lto/41591
5698 * doc/invoke.texi (-flto,-fwhole-program): Make clear that the
5699 -flto and -fwhole-program flags can be combined.
5700
9ef3b476
RM
57012009-10-06 Ryan Mansfield <rmansfield@qnx.com>
5702
5703 PR driver/41217
5704 * gcc.c (process_command): Check that -o argument was specified.
5705
ddd4d0e1
JQ
57062009-10-06 Jerry Quinn <jlquinn@optonline.net>
5707
85760734 5708 * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation.
ddd4d0e1 5709
da667743
RW
57102009-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5711
5712 * c.opt (Wjump-misses-init): Fix typo to enable for ObjC.
5713 * doc/invoke.texi (Warning Options): Annotate allowed languages
5714 for -Wunsuffixed-float-constants.
5715
7555009a
JJ
57162009-10-05 Jakub Jelinek <jakub@redhat.com>
5717
4a24ddb9
JJ
5718 * dwarf2out.c (modified_type_die): Don't add DW_AT_name to
5719 DW_TAG_{const,volatile}_type if its DW_AT_type already has the
5720 same name and isn't the main variant.
5721
7555009a
JJ
5722 PR debug/41558
5723 * dwarf2out.c (loc_by_reference): Removed.
5724 (dw_loc_list_1): New function.
5725 (dw_loc_list): Remove toplev argument, add want_address argument.
5726 Don't look at decl_by_reference_p at all. Use dw_loc_list_1.
5727 (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than
5728 want_address == 2 to dw_loc_list. For successful dw_loc_list
5729 set have_address to 1 only if want_address is not 0.
5730
c640a3bd
RS
57312009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
5732
5733 * config/mips/mips-protos.h (mips_trampoline_code_size): Declare.
5734 * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of
5735 a code block followed by two pointers.
5736 (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too.
5737 * config/mips/mips.c (MIPS_LOAD_PTR): New macro.
5738 (MIPS_MOVE): Likewise.
5739 (MIPS_LUI): Likewise.
5740 (MIPS_JR): Likewise.
5741 (MIPS_BAL): Likewise.
5742 (MIPS_NOP): Likewise.
5743 (mips_asm_trampoline_template): Delete.
5744 (mips_trampoline_code_size): New function.
5745 (mips_trampoline_init): Add shorter sequences for all cases
5746 except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG.
5747 Calculate the opcodes directly, rather than copying from a template.
5748 Only flush the code part of the trampoline.
5749 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete.
5750
293593b1
RS
57512009-10-05 Richard Sandiford <rdsandiford@googlemail.com>
5752
5753 * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace
5754 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM.
5755 (INCOMING_RETURN_ADDR_RTX): Likewise.
5756 (FUNCTION_PROFILER): Likewise. Replace GP_REG_FIRST + 1
5757 with AT_REGNUM.
5758 * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31
5759 with RETURN_ADDR_REGNUM.
5760 (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise.
5761 * config/mips/mips.c (mips16_build_call_stub): Replace
5762 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1
5763 with AT_REGNUM and 31 with RETURN_ADDR_REGNUM.
5764 (mips_print_operand_punctuation): Likewise.
5765 (mips_frame_set): Likewise.
5766 (mips16e_output_save_restore): Likewise.
5767 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
5768 (mips_save_reg_p): Likewise.
5769 (mips_return_addr): Likewise.
5770 (mips_set_return_address): Likewise.
5771 (mips_direct_save_slot_move_p): Likewise.
5772 (mips_output_function_prologue): Likewise.
5773 (mips_restore_reg): Likewise.
5774 (mips_expand_epilogue): Likewise.
5775 (mips_epilogue_uses): Likewise.
5776 * config/mips/mips.md (RETURN_ADD_REGNUM): Define.
5777 (*mov<mode>_ra): Use it instead of a hard-coded 31.
5778 (clear_hazard_<mode>): Likewise.
5779 (call_internal): Likewise.
5780 (call_internal_direct): Likewise.
5781 (call_direct_split): Likewise.
5782 (call_value_internal): Likewise.
5783 (call_value_split): Likewise.
5784 (call_value_internal_direct): Likewise.
5785 (call_value_direct_split): Likewise.
5786 (call_value_multiple_internal): Likewise.
5787 (call_value_multiple_split): Likewise.
5788
9baea66c
EB
57892009-10-05 Eric Botcazou <ebotcazou@adacore.com>
5790 Jakub Jelinek <jakub@redhat.com>
5791
5792 PR rtl-optimization/41511
5793 * combine.c (record_value_for_reg): Pass explicit values as argument
5794 to get_last_value_validate.
5795 (get_last_value_validate): Document INSN parameter.
5796 For non-readonly MEMs, assume they might have been modified if INSN
5797 was in another basic block.
5798 (get_last_value): Minor reformatting.
5799
2bd1d2c8
AP
58002009-10-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
5801
5802 PR tree-opt/40992
5803 * final.c (asm_str_count): Split out from asm_insn_count.
5804 * rtl.h (asm_str_count): New prototype.
5805 * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call
5806 asm_str_count.
5807
8fc7e474
ST
58082009-10-05 Sriraman Tallam <tmsriram@google.com>
5809
5810 * doc/plugins.texi: Change plugin_pass to register_pass_info.
c802b1cf
BS
5811
58122009-10-05 Basile Starynkevitch <basile@starynkevitch.net>
5813 Rafael Espindola <espindola@google.com>
5814
5815 * gengtype.c (write_types): Moved call to write_func_for_structure
5816 into seperate loops.
5817
a9cc4458
RG
58182009-10-05 Richard Guenther <rguenther@suse.de>
5819
5820 PR lto/41281
5821 * lto-cgraph.c (output_cgraph): Output toplevel asms.
5822 (input_cgraph_1): Input toplevel asms.
5823
fd7588bc
RG
58242009-10-05 Richard Guenther <rguenther@suse.de>
5825
5826 PR lto/40902
5827 * lto-symtab.c (lto_compatible_attributes_p): Remove.
5828 (external_aggregate_decl_p): Likewise.
5829 (lto_symtab_compatible): Re-structure. Remove dead code.
5830 For variables ignore toplevel qualifiers when comparing types.
5831 Issue warnings, not errors for mismatched user-alignment.
5832
1a735925
RG
58332009-10-05 Richard Guenther <rguenther@suse.de>
5834
5835 PR lto/41552
5836 PR lto/41487
5837 * lto-symtab.c (struct lto_symtab_base_def): Remove.
5838 (struct lto_symtab_identifier_def): Likewise.
5839 (struct lto_symtab_decl_def): Likewise.
5840 (struct lto_symtab_entry_def): New.
5841 (lto_symtab_identifier_t): Rename to ...
5842 (lto_symtab_entry_t): ... this.
5843 (lto_symtab_decls): Remove.
5844 (lto_symtab_base_hash): Rename to ...
5845 (lto_symtab_entry_hash): ... this.
5846 (lto_symtab_base_eq): Rename to ...
5847 (lto_symtab_entry_eq): ... this.
5848 (lto_symtab_base_marked_p): Rename to ...
5849 (lto_symtab_entry_marked_p): ... this.
5850 (lto_symtab_identifier_marked_p): Remove.
5851 (lto_symtab_decl_marked_p): Likewise.
5852 (lto_symtab_maybe_init_hash_tables): Rename to ...
5853 (lto_symtab_maybe_init_hash_table): ... this.
5854 (lto_symtab_set_resolution_and_file_data): Remove.
5855 (lto_symtab_register_decl): New function.
5856 (lto_symtab_get_identifier): Remove.
5857 (lto_symtab_get): New function.
5858 (lto_symtab_get_resolution): Adjust.
5859 (lto_symtab_get_identifier_decl): Remove.
5860 (lto_symtab_set_identifier_decl): Likewise.
5861 (lto_symtab_merge_decl): Rename to ...
5862 (lto_symtab_merge): ... this. Rewrite.
5863 (lto_symtab_merge_var): Remove.
5864 (lto_symtab_merge_fn): Likewise.
5865 (lto_symtab_prevailing_decl): Adjust.
5866 (lto_cgraph_replace_node): New function.
5867 (lto_symtab_merge_decls_2): Likewise.
5868 (lto_symtab_merge_decls_1): Likewise.
5869 (lto_symtab_fixup_var_decls): Likewise.
5870 (lto_symtab_resolve_symbols): Likewise.
5871 (lto_symtab_merge_decls): Likewise.
5872 (lto_symtab_prevailing_decl): Adjust.
5873 (lto_symtab_get_symtab_def): Remove.
5874 (lto_symtab_get_file_data): Likewise.
5875 (lto_symtab_clear_resolution): Adjust.
5876 (lto_symtab_clear_resolution): Likewise.
5877 * lto-cgraph.c (input_edge): Do not merge cgraph nodes here.
5878 (input_cgraph_1): Likewise.
5879 * lto-streamer-in.c (get_resolution): Do not provide fake
5880 symbol resolutions here.
5881 (deferred_global_decls): Remove.
5882 (lto_register_deferred_decls_in_symtab): Likewise.
5883 (lto_register_var_decl_in_symtab): Change signature, register
5884 variable via lto_symtab_register_decl.
5885 (lto_register_function_decl_in_symtab): Likewise.
5886 (lto_read_tree): Adjust.
5887 * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove.
5888 (lto_symtab_merge_var): Likewise.
5889 (lto_symtab_merge_fn): Likewise.
5890 (lto_symtab_register_decl): Declare.
5891 (lto_symtab_merge_decls): Likewise.
5892
e9d85fa6
RG
58932009-10-05 Richard Guenther <rguenther@suse.de>
5894
5895 PR tree-optimization/23821
5896 * tree-vrp.c (vrp_finalize): Do not perform copy propagation.
5897 * tree-ssa-dom.c (cprop_operand): Do not propagate copies into
5898 simple IV increments.
5899
114bbac6
RR
59002009-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5901
d2407a7a
UB
5902 * config/arm/arm.c (arm_override_options): Really initialize
5903 flag_dwarf2_cfi_asm to 0.
114bbac6 5904
56fe3eff
DK
59052009-10-05 Doug Kwan <dougkwan@google.com>
5906
5907 PR rtl-optimization/41574
114bbac6 5908 * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is
56fe3eff
DK
5909 floating point and we are not doing unsafe math optimizations.
5910
d7f09764
DN
59112009-10-03 Simon Baldwin <simonb@google.com>
5912 Cary Coutant <ccoutant@google.com>
5913 Rafael Espindola <espindola@google.com>
5914 Richard Guenther <rguenther@suse.de>
5915 Jan Hubicka <jh@suse.cz>
5916 Doug Kwan <dougkwan@google.com>
458c00ff 5917 H.J. Lu <hongjiu.lu@intel.com>
d7f09764
DN
5918 Bill Maddox <maddox@google.com>
5919 Ryan Mansfield <rmansfield@qnx.com>
5920 Diego Novillo <dnovillo@google.com>
5921 Ollie Wild <aaw@google.com>
5922 Kenneth Zadeck <zadeck@naturalbridge.com>
5923
5924 * lto-cgraph.c: New file.
5925 * lto-compress.c: New file.
5926 * lto-compress.h: New file.
5927 * lto-opts.c: New file.
5928 * lto-section-in.c: New file.
5929 * lto-section-out.c: New file.
5930 * lto-streamer-in.c: New file.
5931 * lto-streamer-out.c: New file.
5932 * lto-streamer.c: New file.
5933 * lto-streamer.h: New file.
5934 * lto-symtab.c: New file.
5935 * lto-wpa-fixup.c: New file.
5936 * lto-wrapper.c: New file.
5937
59382009-10-03 Simon Baldwin <baldwin@google.com>
5939 Ben Elliston <bje@au.ibm.com>
5940 Rafael Espindola <espindola@google.com>
5941 Nathan Froyd <froydnj@codesourcery.com>
5942 Jan Hubicka <jh@suse.cz>
5943 Doug Kwan <dougkwan@google.com>
5944 Diego Novillo <dnovillo@google.com>
5945 Kenneth Zadeck <zadeck@naturalbridge.com>
5946
5947 * Makefile.in (enable_lto): New.
85760734 5948 (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO.
d7f09764
DN
5949 (LINKER_PLUGIN_API_H): Define.
5950 (LTO_SYMTAB_H): Define.
5951 (LTO_STREAMER_H): Define.
5952 (TREE_VECTORIZER_H): Define.
5953 (INCLUDES): Add LIBELFINC.
5954 (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o,
85760734
UB
5955 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o,
5956 lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o.
d7f09764
DN
5957 (MOSTLYCLEANFILES): Add lto-wrapper$(exeext)
5958 (native): Add lto-wrapper$(exeext)
5959 (lto-compress.o, lto-cgraph.o, lto-streamer-in.o,
5960 lto-streamer-out.o, lto-section-in.o, lto-section-out.o,
85760734
UB
5961 lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules.
5962 (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H.
d7f09764
DN
5963 (varasm.o): Add dependency on tree-iterator.h.
5964 (cgraph.o): Add dependency on cif-code.def.
5965 (ipa-reference.o): Add dependency on LTO_STREAMER_H.
5966 (ipa-pure-const.o): Likewise.
5967 (GTFILES): Add lto-symtab.c.
5968 (install-lto-wrapper): New.
85760734
UB
5969 * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO
5970 and enable_lto. If LIBELFLIBS is set, define HAVE_libelf.
d7f09764
DN
5971 * config.in: Regenerate.
5972
59732009-10-03 Rafael Espindola <espindola@google.com>
5974 Diego Novillo <dnovillo@google.com>
5975
5976 * cgraphunit.c (ipa_passes): Prevent lto1 from calling
5977 ipa_write_summaries.
5978 Call execute_ipa_summary_passes for all_regular_ipa_passes and
5979 all_lto_gen_passes.
5980 (cgraph_optimize): Make extern.
5981
59822009-10-03 Nathan Froyd <froydnj@codesourcery.com>
5983 Kenneth Zadeck <zadeck@naturalbridge.com>
5984
5985 * toplev.c (in_lto_p): Declare.
5986 * collect2.c (scan_prog_file): Read all the output when reading
5987 information for LTO.
5988 (enum lto_mode_d): Declare.
5989
59902009-10-03 Richard Guenther <rguenther@suse.de>
5991 Diego Novillo <dnovillo@google.com>
5992
5993 * gimple.c: Include target.h and alias.h.
5994 (gimple_types): Declare.
5995 (type_hash_cache): Declare.
5996 (gimple_alloc_stat): Make extern.
5997 (gimple_build_eh_must_not_throw): Call
5998 gimple_eh_must_not_throw_set_fndecl.
5999 (struct type_pair_d): Declare.
6000 (type_pair_t): Declare.
6001 (type_pair_hash): New.
6002 (type_pair_eq): New.
6003 (lookup_type_pair): New.
6004 (gimple_force_type_merge): New.
6005 (compare_type_names_p): New.
6006 (compare_field_offset): New.
6007 (gimple_types_compatible_p): New.
6008 (struct sccs): Declare.
6009 (next_dfs_num): Declare.
6010 (iterative_hash_gimple_type): New.
6011 (visit): New.
6012 (iterative_hash_type_name): New.
6013 (iterative_hash_gimple_type): New.
6014 (gimple_type_hash): New.
6015 (gimple_type_eq): New.
6016 (gimple_register_type): New.
6017 (print_gimple_types_stats): New.
6018 (gimple_signed_or_unsigned_type): New.
6019 (gimple_unsigned_type): New.
6020 (gimple_signed_type): New.
6021 (gimple_get_alias_set): New.
6022 (gimple_decl_printable_name): Do not use DMGL_TYPES.
6023 * gimple.h (gimple_alloc, gimple_alloc_stat): Declare.
6024 (gimple_force_type_merge): Declare.
6025 (gimple_types_compatible_p): Declare.
6026 (gimple_register_type): Declare.
6027 (print_gimple_types_stats): Declare.
6028 (gimple_unsigned_type): Declare.
6029 (gimple_signed_type): Declare.
6030 (gimple_get_alias_set): Declare.
6031 (gimple_eh_must_not_throw_set_fndecl): New.
6032
60332009-10-03 Jan Hubicka <jh@suse.cz>
6034 Kenneth Zadeck <zadeck@naturalbridge.com>
6035
6036 * ipa-pure-const.c: Include lto-streamer.h.
6037 (register_hooks): Factor out of ...
6038 (generate_summary): ... here.
6039 (pure_const_write_summary): New.
6040 (pure_const_read_summary): New.
6041 (pass_ipa_pure_const): Add pure_const_write_summary and
6042 pure_const_read_summary.
6043 * ipa-reference.c: Include lto-streamer.h.
6044 (add_new_function): New.
6045 (remove_node_data): New.
6046 (duplicate_node_data): New.
6047 (ipa_init): Guard against multiple calls.
6048 Move hook setup from analyze_function.
6049 (write_node_summary_p): New.
6050 (ipa_reference_write_summary): New.
6051 (ipa_reference_read_summary): New.
6052 (pass_ipa_reference): Add ipa_reference_write_summary and
6053 ipa_reference_read_summary.
6054 * cgraph.h (cgraph_local_info): Add field lto_file_data.
6055 (struct cgraph_edge): Add fields lto_stmt_uid and
6056 call_stmt_cannot_inline_p.
6057 (cgraph_optimize): Declare.
6058 (cgraph_decide_is_function_needed): Declare.
6059 (reset_inline_failed): Declare.
6060 (enum LTO_cgraph_tags): Declare.
6061 (LTO_cgraph_tag_names): Declare.
6062 (LCC_NOT_FOUND): Define.
6063
60642009-10-03 Doug Kwan <dougkwan@google.com>
6065 Rafael Espindola <espindola@google.com>
6066 Jan Hubicka <jh@suse.cz>
6067 Diego Novillo <dnovillo@google.com>
6068 Kenneth Zadeck <zadeck@naturalbridge.com>
6069
6070 * passes.c (all_regular_ipa_passes): New.
6071 (all_ipa_passes): Rename to all_small_ipa_passes.
6072 (init_optimization_passes): Init all_regular_ipa_passes.
6073 * tree-pass.h (all_regular_ipa_passes): New.
6074 (all_ipa_passes): Rename to all_small_ipa_passes.
6075 * passes.c (all_lto_gen_passes): New.
6076 (init_optimization_passes): Initialize all_lto_gen_passes.
6077 (execute_ipa_summary_passes): Make non-static.
6078 (ipa_write_summaries_1): New.
6079 (ipa_write_summaries_2): New.
6080 (ipa_write_summaries): New.
6081 (ipa_write_summaries_of_cgraph_node_set): New.
6082 (ipa_read_summaries_1): New.
6083 (ipa_read_summaries): New.
6084 (execute_ipa_pass_list): Call cgraph_process_new_functions.
6085 (execute_regular_ipa_pass_list): Remove.
6086 (init_optimization_passes): Schedule
6087 pass_rebuild_cgraph_edges and pass_early_inline outside
6088 of pass_all_early_optimizations. Document reason.
6089 (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup,
6090 pass_ipa_lto_finish_out): New pass.
85760734 6091 (pass_ipa_summary_passes): Start and stop timers if the pass has them.
d7f09764
DN
6092 (execute_all_ipa_transforms): New.
6093 (execute_one_pass): Don't call execute_one_ipa_transform_pass.
6094 (dump_properties, debug_properties): New.
6095 * tree-optimize.c (gate_all_early_local_passes): Return
6096 false if we are in lto1.
6097 (tree_rest_of_compilation): Call execute_all_ipa_transforms.
6098 * tree-pass.h (execute_all_ipa_transforms): Declare.
6099 (pass_ipa_function_and_variable_visibility): Declare.
6100 (pass_ipa_early_inline): Declare.
6101 (pass_ipa_lto_gimple_out): Declare.
6102 (pass_ipa_lto_wpa_fixup): Declare.
6103 (pass_ipa_lto_finish_out): Declare.
6104 (all_small_ipa_passes, all_regular_ipa_passes,
6105 all_lto_gen_passes): Declare.
6106 (execute_ipa_summary_passes): Declare.
6107 (execute_all_ipa_transforms): Declare.
6108 (ipa_write_summaries): Declare
6109 (ipa_write_summaries_of_cgraph_node_set): Declare.
6110 (ipa_read_summaries): Declare.
6111
61122009-10-03 Doug Kwan <dougkwan@google.com>
6113 Ollie Wild <aaw@google.com>
6114
85760734 6115 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA.
d7f09764
DN
6116
6117 * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums.
6118 (lto_mode): New variable.
6119 (maybe_run_lto_and_relink): Handle the -fwpa option.
6120 (main): Handle the -fwpa option.
6121 (maybe_unlink_list): New function.
6122 * gcc.c (link_lto_options): Replace -flto with -fwpa.
6123 * common.opt (flto): New flag.
6124 * toplev.c (flag_generate_lto): Declare.
6125
61262009-10-03 Simon Baldwin <simonb@google.com>
6127
6128 * common.opt (flto-compression-level): New flag.
6129
6130 * opts.c: Include lto-opts.h.
6131 (handle_option): Call lto_register_user_option for each
6132 valid option handled.
85760734 6133 (decode_options): Clear registered options before the options
d7f09764
DN
6134 handling loop.
6135
61362009-10-03 Cary Coutant <ccoutant@google.com>
6137
6138 * collect2.c (is_elf): New function.
6139 (scan_prog_file): Require LTO object to be in ELF format.
6140
61412009-10-03 Rafael Espindola <espindola@google.com>
6142
6143 * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass
6144 libgcc to the linker.
6145
85760734 6146 * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running.
d7f09764
DN
6147
6148 * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper.
6149 (collect_execute): Add flags argument. Pass flags to pex_run. Update
6150 all callers.
6151 * collect2.h (collect_execute): Add flags argument.
6152 * tlink.c (tlink_execute): Update call to collect_execute.
6153 * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable.
6154 (use_linker_plugin): New.
6155 (use_linker_plugin_spec_function): New.
6156 (LINK_COMMAND_SPEC): Pass plugin options to the linker.
6157 (linker_plugin_file_spec): New.
6158 (lto_wrapper_spec): New.
6159 (lto_gcc_spec): New.
6160 (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc.
6161 (static_spec_functions): Add use-linker-plugin.
6162 (process_command): Handle -use-linker-plugin.
6163 (main): Use lto_wrapper_spec instead of lto_wrapper. Set
6164 linker_plugin_file_spec and lto_gcc_spec.
6165 (use_linker_plugin_spec_function): New.
6166
61672009-10-03 Richard Guenther <rguenther@suse.de>
6168
6169 PR lto/41547
6170 PR lto/41548
6171 * tree.h (is_lang_specific): Include LANG_TYPE.
6172 * tree.c (find_decls_types_r): Manually add interesting parts
6173 of TYPE_FIELDS. Walk BINFO_VIRTUALS. Do not walk TYPE_METHODS.
6174
6175 * gimple.c (type_pair_hash): Make symmetric.
6176 (type_pair_eq): Likewise.
6177 (lookup_type_pair): Increase initial hashtable size.
6178 (gimple_force_type_merge): Rely on type-pair symmetry.
6179 (visit): Remove excessive checking code.
85760734 6180 (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions.
d7f09764
DN
6181 (gimple_register_type): Remove getenv calls, shrink initial
6182 hashtable size.
6183
6184 PR middle-end/41502
6185 * cgraphunit.c (ipa_passes): Do not remove bodies of extern
6186 inline functions if not generating lto output.
6187
6188 PR lto/41379
6189 * toplev.c (finalize): In WPA mode remove the asm file.
6190
61912009-10-03 Doug Kwan <dougkwan@google.com>
6192
6193 * ipa-inline.c (cgraph_mark_inline): Check
6194 edge->call_stmt_cannot_inline_p instead of calling
6195 gimple_call_cannot_inline_p.
6196 (cgraph_decide_inlining): Do nothing in WPA and LTRANS.
85760734 6197 (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set.
d7f09764 6198 (inline_generate_summary): Do nothing in LTRANS.
85760734
UB
6199 * cgraph.c (initialize_inline_failed): Make sure e->call_stmt
6200 exists before calling gimple_call_cannot_inline_p.
d7f09764 6201 (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p.
85760734 6202 (cgraph_clone_edge): Add argument STMT_UID. Modify all callers.
d7f09764
DN
6203 Update new_edge->lto_stmt_uid.
6204 * cgraphbuild.c (reset_inline_failed): New.
6205
6206 * common.opt (fwpa): New flag.
6207 (fltrans): New option.
6208 * gcc.c (gcc_lto_option_t): New type.
6209 (current_lto_option): New variable.
6210 (lto_single_spec_function): Remove and is replaced by ..
6211 (lto_option_spec_function): New function.
6212 (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just
6213 passing the -flto flag.
6214 (cc1_options): Separate non-LTO related parts into ..
6215 (cc1_non_lto_options): Non-LTO related options shared by all FEs.
6216 (lto1_options): New spec for lto FE.
6217 (link_lto_options): New spec for handling LTO flags in linker.
6218 (invoke_lto_single): Re-format to fit in 80 column. Replace
6219 lto-single with lto-option.
6220 (static_specs): Add cc1_non_lto_options, lto1_options and
6221 link_lto_options.
6222 (static_spec_function): Replace lto-single with lto-option.
85760734
UB
6223 (process_command): Handle -flto, -fwpa and -fltran by setting
6224 current_lto_option and not passing it to subprocess unconditionally.
d7f09764
DN
6225
62262009-10-03 Bill Maddox <maddox@google.com>
6227
6228 Add `gcc' driver support for link-time code generation (LTO).
6229
6230 * collect2.c (enum pass): Add new literal PASS_LTOINFO.
6231 (lto_flag, lto_objects, lto_o_file): New variables.
6232 (struct lto_object, struct lto_object_list): New structures.
6233 (collect_exit, handler): Remove LTO temporary output file on exit.
6234 (add_lto_object): New function.
6235 (maybe_run_lto_and_relink): New function. Perform link time code
6236 generation and relinking for object files containing LTO information.
6237 (main): Invoke maybe_run_lto_and_relink().
6238 (dump_argv): New function. For debugging, currently disabled.
6239 (scan_prog_file): Add LTO information pass.
6240 * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e.,
6241 collect2.
6242 * toplev.c (compile_file): Emit assembler directive to create
6243 the `gnu_lto_v1' marker symbol when compiling with `-flto'.
6244
62452009-10-03 Diego Novillo <dnovillo@google.com>
6246
6247 * c.opt: Add LTO to warn_abi and warn_psabi.
6248
85760734
UB
6249 * tree.c (fld_worklist_push): Rename from PUSH. Convert to static
6250 inline function. Ignore language-specific nodes. Update all users.
d7f09764 6251 (find_decls_types_r): Do not traverse the subtrees of
85760734 6252 language-specific nodes. Do not traverse DECL_INITIAL for TYPE_DECLs.
d7f09764
DN
6253 * tree.h (is_lang_specific): New.
6254 * langhooks.h (struct lang_hooks_for_decls): Remove
6255 may_need_assembler_name_p. Update all users.
6256
6257 * c-common.c (set_builtin_user_assembler_name): Move ...
6258 * builtins.c (set_builtin_user_assembler_name): ... here.
6259 (is_builtin_name): Add comment
6260 (is_builtin_fn): New.
6261 * except.c (output_ttype): Only call
6262 lookup_type_for_runtime if TYPE is not a runtime type.
6263
6264 * passes.c (register_pass): Call position_pass on
85760734 6265 all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes.
d7f09764
DN
6266 * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define.
6267 (TV_IPA_LTO_DECL_IO): Define.
6268 (TV_IPA_LTO_CGRAPH_IO): Define.
6269 (TV_LTO): Define.
6270 (TV_WHOPR_WPA): Define.
6271 (TV_WHOPR_WPA_IO): Define.
6272 (TV_WHOPR_LTRANS): Define.
6273 (TV_WHOPR_WPA_FIXUP): Define.
6274 (TV_WHOPR_WPA_LTRANS_EXEC): Define.
6275 * tree-cfg.c (tree_node_can_be_shared): Make extern.
6276 * tree-flow.h (tree_node_can_be_shared): Declare.
6277 * tree-inline.c (tree_can_inline_p): Check that E has a
6278 statement associated with it.
6279 * tree.c (free_lang_data_in_binf): Factor out of ...
6280 (free_lang_data_in_type): ... here.
6281 Call RECORD_OR_UNION_TYPE_P.
85760734
UB
6282 (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC
6283 set. Call lang_hooks.decls.may_need_assembler_name_p if set.
6284 (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs.
6285 (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE. Set
6286 write_symbols to NO_DEBUG. Set debug_hooks to do_nothing_debug_hooks.
6287 (gate_free_lang_data): Return true if flag_generate_lto is set.
d7f09764
DN
6288 (walk_tree_1): Call RECORD_OR_UNION_TYPE_P.
6289 * c-common.h (set_builtin_user_assembler_name): Move ...
6290 * tree.h (set_builtin_user_assembler_name): ... here.
6291
6292 * common.opt (flto-report): New flag.
85760734 6293 * opts.c (complain_wrong_lang): Do not complain if running lto1.
d7f09764
DN
6294 * collect2.c (scan_prog_file): Send the error output of
6295 'nm' to HOST_BIT_BUCKET.
6296
62972009-10-03 Ollie Wild <aaw@google.com>
6298
6299 * langhooks-def.h (lhd_begin_section): New function declaration.
6300 (lhd_write_section): New function declaration.
6301 (lhd_end_section): New function declaration.
6302 (LANG_HOOKS_BEGIN_SECTION): New macro.
6303 (LANG_HOOKS_WRITE_SECTION_DATA): New macro.
6304 (LANG_HOOKS_END_SECTION): New macro.
6305 (LANG_HOOKS_LTO): New macro.
6306 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO.
6307 * langhooks.c (output.h): Add include.
6308 (saved_section): New static variable.
6309 (lhd_begin_section): New function.
6310 (lhd_write_section_data): New function.
6311 (lhd_end_section): New function.
6312 * langhooks.h (struct lang_hooks_for_lto): New structure.
6313 (struct lang_hooks): Add member lto.
6314 * Makefile.in (langhooks.o): Add dependency on output.h.
6315
6316 * c-opts.c (c_common_post_options): Handle -flto and -fwhopr.
6317
63182009-10-03 Richard Guenther <rguenther@suse.de>
6319
6320 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
6321 Handle LTO.
6322
63232009-10-03 Simon Baldwin <simonb@google.com>
6324 Richard Guenther <rguenther@suse.de>
6325 Janis Johnson <janis187@us.ibm.com>
6326 Doug Kwan <dougkwan@google.com>
6327 Diego Novillo <dnovillo@google.com>
6328 Ramana Radhakrishnan <ramana.r@gmail.com>
6329 Ollie Wild <aaw@google.com>
6330
6331 * doc/install.texi: Add documentation for libelf and --enable-lto.
85760734
UB
6332 * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans,
6333 -flto-report, -flto-compression-level and -use-linker-plugin.
6334 * doc/sourcebuild.texi: Document use of zlib. Document lto-plugin.
d7f09764
DN
6335 Add section for LTO Testing.
6336
15b3fbeb
CC
63372009-10-02 Cary Coutant <ccoutant@google.com>
6338
85760734
UB
6339 Add support for comdat type sections for DWARF v4.
6340 Merge from dwarf4 branch.
6341
15b3fbeb
CC
6342 * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant.
6343 (dw_die_ref): Define vector type.
6344 (enum dw_val_class): Add dw_val_class_data8.
6345 (struct dw_val_struct): Add v.val_data8.
6346 (comdat_type_node_ref): New type.
6347 (struct die_struct): Move die_symbol into a union; add new field
6348 die_type_node. Change all uses.
6349 (comdat_type_node): New type.
6350 (skeleton_chain_node): New type.
6351 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant.
6352 (comdat_type_list): New variable.
6353 (dwarf_tag_name): Add DW_TAG_type_unit.
6354 (dwarf_attr_name): Add DW_AT_signature.
6355 (add_AT_data8): New function.
6356 (replace_child): New function.
6357 (move_all_children): New function.
6358 (print_signature): New function.
6359 (print_die): Print signature information; add dw_val_class_data8.
6360 (attr_checksum): Support dw_val_class_data8.
85760734 6361 (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte.
15b3fbeb
CC
6362 (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros.
6363 (checksum_sleb128, checksum_uleb128): New functions.
6364 (checksum_die_context): New function.
6365 (loc_checksum_ordered): New function.
6366 (attr_checksum_ordered): New function.
6367 (struct checksum_attributes): New structure.
6368 (collect_checksum_attributes): New function.
6369 (die_checksum_ordered): New function.
6370 (generate_type_signature): New function.
6371 (same_dw_val_p): Add dw_val_class_data8.
6372 (is_symbol_die): Use new is_declaration_die function.
6373 (is_declaration_die): New function.
6374 (should_move_die_to_comdat): New function.
6375 (clone_die): New function.
6376 (clone_tree): New function.
6377 (clone_as_declaration): New function.
6378 (copy_declaration_context): New function.
6379 (generate_skeleton_ancestor_tree): New function.
6380 (generate_skeleton_bottom_up): New function.
6381 (generate_skeleton): New function.
6382 (remove_child_or_replace_with_skeleton): New function.
6383 (break_out_comdat_types): New function.
6384 (struct decl_table_entry): New type.
6385 (htab_decl_hash): New function.
6386 (htab_decl_eq): New function.
6387 (htab_decl_del): New function.
6388 (copy_ancestor_tree): New function.
6389 (copy_decls_walk): New function.
6390 (copy_decls_for_unworthy_types): New function.
6391 (build_abbrev_table): Don't assert on missing die_symbol when doing
6392 comdat type sections.
85760734 6393 (size_of_die): Use DW_FORM_sig8 for external references. Add
15b3fbeb
CC
6394 dw_val_class_data8.
6395 (unmark_dies): Don't assert for unmarked dies when doing comdat
6396 type sections.
6397 (value_format): Support DW_FORM_sig8 and dw_val_class_data8.
6398 (output_signature): New function.
6399 (output_die): Likewise.
6400 (output_compilation_unit_header): Mark output as DWARF version 3
6401 even if generating DWARF 4.
6402 (output_comdat_type_unit): New function.
6403 (output_line_info): Mark output as DWARF version 3 even if generating
6404 DWARF 4.
6405 (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with
6406 DWARF-4.
6407 (dwarf2out_end_source_file): Likewise.
6408 (prune_unused_types_walk_attribs): Don't follow references into
6409 comdat type sections.
6410 (prune_unused_types_mark): When generating type units, do not mark
6411 children of non-defining declarations of types; do mark children of
6412 type entries.
6413 (prune_unused_types): Process comdat type sections.
6414 (htab_ct_hash): New function.
6415 (htab_ct_eq): New function.
6416 (dwarf2out_finish): Move types to comdat sections when using DWARF-4.
6417 Add a pointer to the line table from type unit entries so
6418 DW_AT_decl_file has meaning.
6419 * varasm.c (default_elf_asm_named_section): Use identifier name as
6420 comdat key instead of lang hook.
6421
ad467730
NV
64222009-10-02 Neil Vachharajani <nvachhar@google.com>
6423
85760734 6424 * gcov-io.c (gcov_open): Open files read-only when MODE < 0.
ad467730 6425
9e51149d
UB
64262009-10-02 Uros Bizjak <ubizjak@gmail.com>
6427
458c00ff
UB
6428 * config/i386/i386.md (SWIM248): New mode iterator.
6429 (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and
6430 divmodhi4 patterns using SWIM248 macro.
9e51149d
UB
6431 (*divmod<mode>4): Macroize insn_and_split pattern from
6432 *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns
458c00ff 6433 and their corresponding splitters usign SWIM248 macro. Split SImode
9e51149d
UB
6434 insn to generate cltd and DImode insn to generate cqto instead of
6435 move+shift when optimizing for size or TARGET_USE_CLTD is in effect.
6436 (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns.
6437 (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and
458c00ff 6438 *divmodsi_noext patterns using SWIM248 macro.
9e51149d 6439 (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and
458c00ff 6440 udivmodhi4 patterns using SWIM248 macro.
9e51149d
UB
6441 (*udivmod<mode>4): Macroize insn_and_split pattern from
6442 *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their
458c00ff 6443 corresponding splitters using SWIM248 macro.
9e51149d 6444 (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext,
458c00ff 6445 *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro.
9e51149d 6446
c2ce8cdc
EB
64472009-10-02 Eric Botcazou <ebotcazou@adacore.com>
6448
6449 * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array
6450 of zero-sized element is zero-sized regardless of its extent.
6451
e1b243a8
JJ
64522009-10-02 Jakub Jelinek <jakub@redhat.com>
6453
7d45fb94
JJ
6454 PR debug/40521
6455 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test.
6456 * configure: Regenerated.
6457 * config.in: Regenerated.
6458 * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if
6459 !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame.
6460 (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and
6461 not emitting .eh_frame, emit .cfi_sections .debug_frame
6462 directive.
6463
e1b243a8
JJ
6464 PR debug/41404
6465 PR debug/41353
6466 * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create
85760734
UB
6467 CONST_STRING if STRING_CST contains embedded '\0's or doesn't end
6468 with '\0'.
e1b243a8
JJ
6469 (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL
6470 vars use DECL_RTL with resetting it back to NULL afterwards.
6471 * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with
6472 rtx_equal_p instead of asserting it is a SYMBOL_REF.
6473 (value_format): For dw_val_class_addr only use DW_FORM_addr if
6474 the attribute type allows it, otherwise use DW_FORM_dataN.
6475 (mem_loc_descriptor): Handle CONST_STRING.
6476 (add_const_value_attribute): Handle CONST_STRING using add_AT_addr.
6477 Handle MEM with CONST_STRING address using add_AT_string.
6478 (rtl_for_decl_init): Return MEM with CONST_STRING address instead of
6479 CONST_STRING for const arrays initialized with a string literal.
6480 (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions.
6481 (dwarf2out_finish): Call resolve_addr.
6482
74d174c6
AS
64832009-10-02 Andreas Schwab <schwab@linux-m68k.org>
6484 Maxim Kuvyrkov <maxim@codesourcery.com>
9e51149d 6485
74d174c6
AS
6486 * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch.
6487
33561817
NC
64882009-10-02 Nick Clifton <nickc@redhat.com>
6489
6490 * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define.
6491 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
6492
03ec7d01
JH
64932009-10-01 Jan Hubicka <jh@suse.cz>
6494
6495 * cgraph.c (cgraph_clone_node): Add redirect_callers parameter.
6496 (cgraph_create_virtual_clone): Just pass redirect_callers
6497 around.
6498 * cgraph.h (cgraph_clone_node): Update prototype.
6499 * ipa-pure-const.c (self_recursive_p): New function.
6500 (propagate): Use it.
6501 * ipa-inline.c (cgraph_clone_inlined_nodes,
6502 cgraph_decide_recursive_inlining): Update.
6503
916e9b31
DD
65042009-10-01 David Daney <ddaney@caviumnetworks.com>
6505
6506 * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw
6507 instructions for TARGET_OCTEON.
6508
3a303360
RR
65092009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6510
6511 * config/arm/arm.c (arm_override_options): Turn off
6512 flag_dwarf2_cfi_asm for AAPCS variants.
6513
6096017e
MJ
65142009-10-01 Martin Jambor <mjambor@suse.cz>
6515
6516 PR middle-end/12392
6517 * tree-sra.c (convert_callers): Do not call
6518 compute_inline_parameters on one caller more than once.
6519
34f9cdb5
NC
65202009-10-01 Nick Clifton <nickc@redhat.com>
6521
6522 * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as
6523 an empty string if not already defined.
6524
1e9fb3de
MJ
65252009-10-01 Martin Jambor <mjambor@suse.cz>
6526
6527 PR bootstrap/41395
6528 * tree-sra.c (is_va_list_type): New function.
6529 (find_var_candidates): Call is_va_list_type.
6530 (find_param_candidates): Check that the type or the type pointed
6531 to are not va_list types.
6532
ed9fa133
MJ
65332009-10-01 Martin Jambor <mjambor@suse.cz>
6534
6535 PR c++/41503
6536 * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if
6537 DECL_ARTIFICIAL (param_decl) is true.
9e51149d 6538
7ecbca9d
GDR
65392009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu>
6540
6541 * tree.h (tree_decl_common::lang_flag_8): New.
6542 * c-common.c (c_common_reswords): Include "constexpr" as C++0x
9e51149d 6543 keyword.
7ecbca9d
GDR
6544 * c-common.h (RID_CONSTEXPR): New.
6545
1f063d10
UB
65462009-09-30 Uros Bizjak <ubizjak@gmail.com>
6547
6548 * config/alpha/alpha.c (alpha_gimplify_va_arg_1):
6549 Use ref-all pointers.
6550 (alpha_gimplify_va_arg): Ditto.
6551
53a51cef
JJ
65522009-09-30 Jakub Jelinek <jakub@redhat.com>
6553
6554 PR target/41279
6555 * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
6556 before insn counting loop now that BB_END (bb) is counted. Ensure
6557 the return value isn't zero.
6558
3c8348d3
NC
65592009-09-30 Nick Clifton <nickc@redhat.com>
6560
6561 * config.gcc (sh-symbianelf): Replace definition of extra_objs
6562 with separate definitions of c_target_objs and cxx_target_objs.
6563 * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o
6564 and symbian-base.o.
6565 * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use
6566 sh_symbian_import_export_class.
6567 * config/sh/sh-protos.h: Fix names of exported symbian functions.
6568 * config/sh/symbian.c: Delete, moving code into...
6569 * config/sh/symbian-base.c: ... here
6570 * config/sh/symbian-c.c: ... and here
6571 * config/sh/symbian-cxx.c: ... and here.
6572
08a4a761
UB
65732009-09-30 Uros Bizjak <ubizjak@gmail.com>
6574
6575 PR target/22093
6576 * config/alpha/alpha.md (unaligned_storehi_be): Force operand
6577 of plus RTX into register.
6578
0b70519f
RW
65792009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6580
6581 * doc/install.texi: Linguistic and markup fixes.
6582 (Configuration) <--disable-cpp>: Remove description.
6583 <--enable-maintainer-mode>: Autotools files are affected, too.
6584 <--with-sysroot>: Improve description.
6585 (Building): Bump required GNU make version.
6586
cbf2e4d4
HJ
65872009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
6588
6589 * config.gcc (i[34567]86-*-*): Include fma4intrin.h.
6590 (x86_64-*-*): Ditto.
1f063d10 6591
cbf2e4d4
HJ
6592 * config/i386/fma4intrin.h: New file, provide common x86 compiler
6593 intrinisics for FMA4.
6594 * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit.
6595 * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a.
6596 Add FMA4 check and fma4intrin.h.
6597 * config/i386/i386-c.c(ix86_target_macros_internal): Check
1f063d10 6598 ISA_FLAG for FMA4.
cbf2e4d4
HJ
6599 * config/i386/i386.h(TARGET_FMA4): New macro for FMA4.
6600 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC
6601 constant for FMA4 support.
6602 (UNSPEC_FMA4_FMADDSUB): Ditto.
6603 (UNSPEC_FMA4_FMSUBADD): Ditto.
6604 * config/i386/i386.opt (-mfma4): New switch for FMA4 support.
1f063d10 6605 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration.
cbf2e4d4
HJ
6606 (ix86_expand_fma4_multiple_memory): Ditto.
6607 * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New.
1f063d10
UB
6608 (OPTION_MASK_ISA_FMA4_UNSET): New.
6609 (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4.
6610 (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4.
cbf2e4d4
HJ
6611 (ix86_handle_option): Handle -mfma4.
6612 (isa_opts): Handle -mfma4.
6613 (enum pta_flags): Add PTA_FMA4.
1f063d10 6614 (override_options): Add FMA4 support.
cbf2e4d4
HJ
6615 (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic.
6616 (IX86_BUILTIN_VFMADDSD): Ditto.
6617 (IX86_BUILTIN_VFMADDPS): Ditto.
6618 (IX86_BUILTIN_VFMADDPD): Ditto.
6619 (IX86_BUILTIN_VFMSUBSS): Ditto.
6620 (IX86_BUILTIN_VFMSUBSD): Ditto.
6621 (IX86_BUILTIN_VFMSUBPS): Ditto.
6622 (IX86_BUILTIN_VFMSUBPD): Ditto.
6623 (IX86_BUILTIN_VFMADDSUBPS): Ditto.
6624 (IX86_BUILTIN_VFMADDSUBPD): Ditto.
6625 (IX86_BUILTIN_VFMSUBADDPS): Ditto.
6626 (IX86_BUILTIN_VFMSUBADDPD): Ditto.
6627 (IX86_BUILTIN_VFNMADDSS): Ditto.
6628 (IX86_BUILTIN_VFNMADDSD): Ditto.
6629 (IX86_BUILTIN_VFNMADDPS): Ditto.
6630 (IX86_BUILTIN_VFNMADDPD): Ditto.
6631 (IX86_BUILTIN_VFNMSUBSS): Ditto.
6632 (IX86_BUILTIN_VFNMSUBSD): Ditto.
6633 (IX86_BUILTIN_VFNMSUBPS): Ditto.
6634 (IX86_BUILTIN_VFNMSUBPD): Ditto.
6635 (IX86_BUILTIN_VFMADDPS256): Ditto.
6636 (IX86_BUILTIN_VFMADDPD256): Ditto.
6637 (IX86_BUILTIN_VFMSUBPS256): Ditto.
6638 (IX86_BUILTIN_VFMSUBPD256): Ditto.
6639 (IX86_BUILTIN_VFMADDSUBPS256): Ditto.
6640 (IX86_BUILTIN_VFMADDSUBPD256): Ditto.
6641 (IX86_BUILTIN_VFMSUBADDPS256): Ditto.
6642 (IX86_BUILTIN_VFMSUBADDPD256): Ditto.
6643 (IX86_BUILTIN_VFNMADDPS256): Ditto.
6644 (IX86_BUILTIN_VFNMADDPD256): Ditto.
6645 (IX86_BUILTIN_VFNMSUBPS256): Ditto.
6646 (IX86_BUILTIN_VFNMSUBPD256): Ditto.
6647 (enum multi_arg_type): New enum for describing the various FMA4
6648 intrinsic argument types.
6649 (bdesc_multi_arg): New table for FMA4 intrinsics.
6650 (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support.
6651 (ix86_expand_multi_arg_builtin): New function for creating FMA4
6652 intrinsics.
6653 (ix86_expand_builtin): Add FMA4 intrinsic support.
6654 (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4
6655 operand instructions.
6656 (ix86_expand_fma4_multiple_memory): New function to split the
6657 second memory reference from FMA4 instructions.
6658 * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4.
6659 (ssemodesuffixf2s): Ditto.
6660 (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add
6661 instructions.
6662 (fma4_fmsub<mode>4): Ditto.
6663 (fma4_fnmadd<mode>4): Ditto.
6664 (fma4_fnmsub<mode>4): Ditto.
6665 (fma4_vmfmadd<mode>4): Ditto.
6666 (fma4_vmfmsub<mode>4): Ditto.
6667 (fma4_vmfnmadd<mode>4): Ditto.
6668 (fma4_vmfnmsub<mode>4): Ditto.
6669 (fma4_fmadd<mode>4256): Ditto.
6670 (fma4_fmsub<mode>4256): Ditto.
6671 (fma4_fnmadd<mode>4256): Ditto.
6672 (fma4_fnmsub<mode>4256): Ditto.
6673 (fma4_fmaddsubv8sf4): Ditto.
6674 (fma4_fmaddsubv4sf4): Ditto.
6675 (fma4_fmaddsubv4df4): Ditto.
6676 (fma4_fmaddsubv2df4): Ditto.
6677 (fma4_fmsubaddv8sf4): Ditto.
6678 (fma4_fmsubaddv4sf4): Ditto.
6679 (fma4_fmsubaddv4df4): Ditto.
6680 (fma4_fmsubaddv2df4): Ditto.
6681 (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add
6682 instructions for intrinsics.
6683 (fma4i_fmsub<mode>4): Ditto.
6684 (fma4i_fnmadd<mode>4): Ditto.
6685 (fma4i_fnmsub<mode>4): Ditto.
6686 (fma4i_vmfmadd<mode>4): Ditto.
6687 (fma4i_vmfmsub<mode>4): Ditto.
6688 (fma4i_vmfnmadd<mode>4): Ditto.
6689 (fma4i_vmfnmsub<mode>4): Ditto.
6690 (fma4i_fmadd<mode>4256): Ditto.
6691 (fma4i_fmsub<mode>4256): Ditto.
6692 (fma4i_fnmadd<mode>4256): Ditto.
6693 (fma4i_fnmsub<mode>4256): Ditto.
6694 (fma4i_fmaddsubv8sf4): Ditto.
6695 (fma4i_fmaddsubv4sf4): Ditto.
6696 (fma4i_fmaddsubv4df4): Ditto.
6697 (fma4i_fmaddsubv2df4): Ditto.
6698 (fma4i_fmsubaddv8sf4): Ditto.
6699 (fma4i_fmsubaddv4sf4): Ditto.
6700 (fma4i_fmsubaddv4df4): Ditto.
6701 (fma4i_fmsubaddv2df4): Ditto.
6702
6703 * doc/invoke.texi (-mfma4): Add documentation.
6704 * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics.
6705
f8fd49b5
RH
67062009-09-29 Richard Henderson <rth@redhat.com>
6707
6708 * tree-eh.c (unsplit_eh): Do not unsplit if there's already
6709 an edge to the new destination block.
6710
062a5fd1
JDA
67112009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6712
6713 PR target/41393
6714 * pa.c (hppa_profile_hook): Use
6715 make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note.
6716
cd17b213
SE
67172009-09-29 Steve Ellcey <sje@cup.hp.com>
6718 Alexander Monakov <amonakov@ispras.ru>
6719
1f063d10 6720 PR target/41365
cd17b213
SE
6721 * config/ia64/predicates.md (not_postinc_destination_operand): New.
6722 (not_postinc_memory_operand): New.
6723 (not_postinc_move_operand): New.
6724 * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement.
6725 (*cmovsi_internal): Ditto.
6726
e7ada00d
PH
67272009-09-29 Pat Haugen <pthaugen@us.ibm.com>
6728
6729 * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
6730 restrict issue_rate in first pass when scheduling for register
6731 pressure.
6732
9b39cba9 67332009-09-29 Basile Starynkevitch <basile@starynkevitch.net>
aeaf114b 6734 Rafael Avila de Espindola <espindola@google.com>
9b39cba9
BS
6735
6736 * gengtype.c (plugin_output): New.
6737 (get_output_file_with_visibility): Return plugin_output for plugins.
6738 (main): Parse and use the -P option.
6739 * gty.texi: Update the command line format.
6740
08cc1e7f
JJ
67412009-09-29 Jakub Jelinek <jakub@redhat.com>
6742
6743 PR debug/41438
6744 * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New
6745 functions.
6746 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail
6747 out if !const_ok_for_output.
6748
6749 PR debug/41474
6750 * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN,
6751 case VAR_LOCATION>: Remove gcc_unreachable ().
6752
a795ca6e
HJ
67532009-09-29 Harsha Jagasia <harsha.jagasia@amd.com>
6754
6755 * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h.
1f063d10 6756 (x86_64-*-*): Ditto.
a795ca6e
HJ
6757 * config/i386/smmintrin.h: Move instructions in mmintrin-common.h
6758 back to smmintrin.h.
bd62d832 6759 * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit.
a795ca6e 6760 * config/i386/x86intrin.h: Remove SSE5.
1f063d10
UB
6761 * config/i386/mmintrin-common.h: Delete file.
6762 * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins.
a795ca6e 6763
b0e96404
RG
67642009-09-29 Richard Guenther <rguenther@suse.de>
6765
6766 * alias.c (ao_ref_from_mem): Properly deal with off decl accesses
6767 resulting from stack temporaries on STRICT_ALIGNMENT targets.
6768
c7ac4fb5
NC
67692009-09-29 Nick Clifton <nickc@redhat.com>
6770
6771 * function.c (current_function_name): If there is no current
6772 function just return "<none>".
6773
b80b0fd9
ST
67742009-09-28 Sriraman Tallam <tmsriram@google.com>
6775
1f063d10 6776 * tree-pass.h (register_pass_info): New structure.
b80b0fd9
ST
6777 (pass_positioning_ops): Move enum from gcc-plugin.h.
6778 (register_pass): New function.
6779 * gcc-plugin.h (plugin_pass): Delete structure.
6780 (pass_positioning_ops): Delete enum.
6781 * plugin.c (regsiter_pass): Delete function.
6782 (position_pass): Delete function.
6783 (added_pass_nodes): Delete variable.
6784 (prev_added_pass_nodes): Delete variable.
6785 (pass_list_node): Delete structure.
6786 * passes.c (make_pass_instance): New function.
6787 (next_pass_1): Change to call make_pass_instance.
6788 (pass_list_node): Move structure from gcc-plugin.h.
6789 (added_pass_nodes): Move variable from plugin.c.
6790 (prev_added_pass_nodes): Move variable from plugin.c.
6791 (position_pass): New function.
6792 (register_pass): New function.
6793
65026047
ER
67942009-09-28 Easwaran Raman <eraman@google.com>
6795
6796 * ifcvt.c (noce_try_abs): Recognize pattern and call
6797 expand_one_cmpl_abs_nojump.
6798 * optabs.c (expand_one_cmpl_abs_nojump): New function.
6799 * optabs.h (expand_one_cmpl_abs_nojump): Declare.
6800
13ebf17b
ILT
68012009-09-28 Ian Lance Taylor <iant@google.com>
6802
6803 PR middle-end/40500
6804 * c-opts.c (c_common_handle_option): Don't set
6805 warn_jump_misses_init for -Wall.
6806 * doc/invoke.texi (Warning Options): Update documentation.
6807
2bc98066
RW
68082009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6809
6810 * Makefile.in ($(out_object_file)): Depend on
6811 gt-$(basename $(notdir $(out_file))).h.
6812
384c400a
RH
68132009-09-28 Richard Henderson <rth@redhat.com>
6814
6815 * except.h (struct eh_region_d): Add use_cxa_end_cleanup.
6816 * except.c (gen_eh_region): Set it.
6817 (duplicate_eh_regions_1): Copy it.
6818 * tree-eh.c (lower_resx): Use it to determine which function
6819 to call to resume.
6820
6821 * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup.
6822 * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New.
6823 * builtins.def (BUILT_IN_CXA_END_CLEANUP): New.
6824 * tree.c (build_common_builtin_nodes): Remove parameter. Build
6825 BUILT_IN_CXA_END_CLEANUP if necessary.
6826
6827 * c-common.c (c_define_builtins): Update call to
6828 build_common_builtin_nodes.
6829
aa633255
AP
68302009-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
6831
6832 * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns.
6833
44e10129
MM
68342009-09-28 Michael Matz <matz@suse.de>
6835
6836 * builtins.c (interclass_mathfn_icode): New helper.
6837 (expand_builtin_interclass_mathfn): Use it here, and split folding
6838 into ...
6839 (fold_builtin_interclass_mathfn): ... this new folder.
6840 (build_call_nofold_loc): New static helper.
6841 (build_call_nofold): New wrapper macro for above.
6842 (expand_builtin_int_roundingfn): Use it instead of build_call_expr.
6843 (expand_builtin_pow): Ditto.
6844 (expand_builtin_memset_args): Ditto.
6845 (expand_builtin_printf): Ditto.
6846 (expand_builtin_fprintf): Ditto.
6847 (expand_builtin_sprintf): Ditto.
6848 (expand_builtin_memory_chk): Ditto.
6849 (expand_builtin_mempcpy_args): Ditto and don't call folders.
6850 (expand_builtin_stpcpy): Ditto.
6851 (expand_builtin_strcmp): Ditto.
6852 (expand_builtin_strncmp): Ditto.
6853 (expand_builtin_strcpy): Remove FNDECL and MODE arguments.
6854 (expand_builtin_strcpy_args): Don't call folders.
6855 (expand_builtin_memcmp): Ditto.
6856 (expand_builtin_strncpy): Ditto, and use target.
6857 (expand_builtin_memcpy): Ditto.
6858 (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
6859 expand_builtin_strpbrk, expand_builtin_memmove,
6860 expand_builtin_memmove_args, expand_builtin_bcopy,
6861 expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat,
6862 expand_builtin_strspn, expand_builtin_strcspn,
6863 expand_builtin_fputs): Remove these.
6864 (expand_builtin): Don't call the above, change calls to other
6865 expanders that changed prototype.
6866 (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy.
6867 (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call
6868 fold_builtin_interclass_mathfn.
6869 (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy.
6870 (fold_builtin_strcat): Add folding split from expand_builtin_strcat.
6871
6872 * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp.
6873 * passes.c (init_optimization_passes): Move pass_fold_builtins
6874 after last phiopt pass.
6875 * tree-inline.c (fold_marked_statements): When folding builtins
6876 iterate over all instruction potentially generated.
6877 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare
6878 earlier.
6879 (fold_gimple_call): Use it to always fold calls (into potentially
6880 multiple instructions).
6881 * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p
6882 calls into zero at this time.
1f063d10 6883 * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple
44e10129
MM
6884 statements generated by builtin folding.
6885
d813aaba
NC
68862009-09-28 Nick Clifton <nickc@redhat.com>
6887
85760734 6888 * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns.
d813aaba 6889
1d7d659d 68902009-09-28 Duncan Sands <baldrick@free.fr>
32c9b4e9
DS
6891
6892 * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event.
6893 * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES.
6894 (register_callback): Dispatch it.
6895 (invoke_plugin_callbacks): Incorporate in sanity check.
6896 * ggc.h (ggc_register_cache_tab): Add declaration.
6897 * ggc-common.c (ggc_register_root_tab): Simplify.
6898 (const_ggc_cache_tab_t): New typedef.
6899 (extra_cache_vec): New vector of dynamically added cache tables.
6900 (ggc_register_cache_tab): New function.
6901 (ggc_scan_cache_tab): New function.
6902 (ggc_mark_roots): Simplify dynamic roots. Handle dynamic caches.
6903 * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES.
6904
ff9d1adc
RH
69052009-09-27 Richard Henderson <rth@redhat.com>
6906
6907 * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under
6908 which we remove __builtin_stack_restore.
6909
cdf1bf8b
BS
69102009-09-27 Bernd Schmidt <bernd.schmidt@analog.com>
6911
6912 * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P,
6913 to test for GRD_INVARIANT.
6914 (simple_rhs_p): Anything that's function_invariant_p is fine.
6915
ea2ca633
RE
69162009-09-27 Rafael Avila de Espindola <espindola@google.com>
6917
6918 * gengtype.c (main): Use plunge_files instead of plugin_output.
6919
99be7084
BS
69202009-09-27 Basile Starynkevitch <basile@starynkevitch.net>
6921 Rafael Avila de Espindola <espindola@google.com>
6922
6923 * gengtype.c (write_root, write_roots): Add a emit_pch argument.
6924 Don't print pch related info if it is false.
6925 (main): Don't print pch info in plugin mode.
6926
4c0ce3c9 69272009-09-27 Eric Botcazou <ebotcazou@adacore.com>
afbd0665 6928
4c0ce3c9
EB
6929 * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long
6930 with dw_val_class_const_double.
6931 (struct dw_val_struct): Replace val_long_long with val_double and
6932 adjust for above change.
6933 (output_loc_operands): Likewise.
6934 (add_AT_long_long): Rename into...
6935 (add_AT_double): ...this.
6936 (print_die): Replace dw_val_class_long_long with
6937 dw_val_class_const_double and adjust.
6938 (attr_checksum): Likewise.
6939 (same_dw_val_p): Likewise.
6940 (size_of_die): Likewise.
6941 (value_format): Likewise.
6942 (output_die): Likewise.
6943 (loc_descriptor) <CONST_DOUBLE>: Likewise.
6944 (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double
6945 instead of add_AT_long_long.
6946 (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned
6947 value with the precision of its type.
6948
69492009-09-27 Andreas Schwab <schwab@linux-m68k.org>
6950
6951 PR c/41476
afbd0665
AS
6952 * c-typeck.c (build_conditional_expr): Use the readonly and
6953 volatile flags of the operand types, not of the operands itself.
6954
4c0ce3c9 69552009-09-27 Peter O'Gorman <pogma@thewrittenword.com>
88febe35 6956
85760734 6957 * collect2.c (main): Look for -brtl before adding libraries.
88febe35 6958
4c0ce3c9 69592009-09-27 Jonathan Gray <jsg@openbsd.org>
aa58f943
JG
6960
6961 * config.gcc: Update OpenBSD targets.
6962 * config/openbsd-stdint.h: New file.
6963 * config/openbsd-libpthread.h: New file.
6964 * config/openbsd.h: Update and break out LIB_SPEC definition.
6965 * config/alpha/openbsd.h: Overhaul to reflect ELF migration.
6966 * config/i386/openbsdelf.h: Correct types.
6967 * config/m68k/openbsd.h: Likewise.
6968 * config/mips/openbsd.h: Likewise.
6969 * config/vax/openbsd.h: Likewise.
6970
ffaf6f25
EB
69712009-09-27 Eric Botcazou <ebotcazou@adacore.com>
6972
6973 * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR.
6974 (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary.
6975 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum
6976 of the length and zero.
6977
c829a888
RW
69782009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6979
464778c0
RW
6980 * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h.
6981 (FLAGS_H): Add options.h $(REAL_H).
6982 (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H).
6983 (TREE_VECTORIZER_H): New.
6984 (EBITMAP_H): Renamed from EBIMAP_H.
6985 (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o)
6986 (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o)
6987 (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o)
6988 (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o)
6989 (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o)
6990 (graphite-clast-to-gimple.o, graphite-dependences.o)
6991 (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o)
6992 (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o)
6993 (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o)
6994 (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o)
6995 (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o)
6996 (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o)
6997 (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o)
6998 (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o)
6999 (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies
7000 updated and fixed as per above changes and per
7001 check_makefile_deps.sh output.
7002
c829a888
RW
7003 PR bootstrap/40928
7004 * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS.
7005 * configure: Regenerate.
7006
3e661154
KG
70072009-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7008
7009 * doc/install.texi: Update minimum MPC version to 0.7.
7010
39088c66
GP
70112009-09-26 Gerald Pfeifer <gerald@pfeifer.com>
7012
7013 * doc/install.texi (Binaries): Remove reference to the binary
7014 distribution CD-ROM from the FSF.
7015
0ffd2048
MM
70162009-09-26 Michael Matz <matz@suse.de>
7017
7018 PR lto/40758
7019 PR middle-end/41470
7020 * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names
7021 that are mentioned in the body.
7022
87c93592
MM
70232009-09-26 Michael Matz <matz@suse.de>
7024
7025 PR tree-optimization/41454
7026 * tree-ssa-dom (stmts_to_rescan): Remove variable.
7027 (tree_ssa_dominator_optimize): Don't allocate and free it.
7028 (dom_opt_leave_block): Don't iterate over it.
7029 (eliminate_redundant_computations): Don't return a value.
7030 (cprop_operand, cprop_into_stmt): Ditto.
7031 (optimize_stmt): Don't defer updating stmts.
7032
7653f273 70332009-09-25 Dodji Seketeli <dodji@redhat.com>
072c87d1 7034
7653f273
DS
7035 * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies,
7036 generic_parameter_die, template_parameter_pack_die,
85760734
UB
7037 gen_formal_parameter_die, gen_subprogram_die): Adjust after
7038 renaming DW_TAG_formal_parameter_pack and
7039 DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack
7040 and DW_TAG_GNU_template_parameter_pack.
072c87d1 7041
14a878f3
AS
70422009-09-25 Anatoly Sokolov <aesok@post.ru>
7043
7044 * config/v850/v850.h (FUNCTION_VALUE): Remove.
7045 * config/v850/v850.c (v850_function_value): New function.
7046 (TARGET_FUNCTION_VALUE): Define.
7047
94c08201
JJ
70482009-09-25 Jakub Jelinek <jakub@redhat.com>
7049
7411b8f0
JJ
7050 * tree-vect-stmts.c (vectorizable_call): Call
7051 mark_symbols_for_renaming after vect_finish_stmt_generation.
7052
94c08201
JJ
7053 * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2
7054 to loc_descriptor_from_tree.
7055 (add_location_or_const_value_attribute): Pass 0 instead of 2
7056 for decl_by_reference_p decls.
7057
79441eca
RG
70582009-09-25 Richard Guenther <rguenther@suse.de>
7059
7060 PR middle-end/41463
7061 * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing
7062 arrays again.
7063
7930dab0
BE
70642009-09-25 Ben Elliston <bje@au.ibm.com>
7065
7066 * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma
7067 after `power7'.
7068
3025dff8
AM
70692009-09-25 Alan Modra <amodra@bigpond.net.au>
7070
7071 * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER
7072 form of instruction.
7073
e3d5405d
KG
70742009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7075
7076 PR middle-end/41435
7077 * fold-const.c (const_binop): Handle complex int division.
7078 * tree-complex.c (expand_complex_div_straight,
7079 expand_complex_div_wide): Update comments.
7080
18b80268
DD
70812009-09-24 DJ Delorie <dj@redhat.com>
7082
7083 PR target/41456
7084 * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
7085 (reg_class): Likewise.
7086 (REG_CLASS_NAMES): Likewise.
7087 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
85760734 7088 (m32c_override_options): Disable -fivopts for M32C.
18b80268 7089
368908d8
MM
70902009-09-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7091
7092 * config/rs6000/predicates.md (indexed_or_indirect_operand):
7093 Delete VSX load/store with update support.
7094 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto.
7095 * config/rs6000/vsx.md (vsx_mov<mode>): Ditto.
7096 (vsx_movti): Ditto.
7097 (VSX_U): Delete.
7098 (VSbit): Ditto.
7099 (VStype_load_update): Ditto.
7100 (VStype_store_update): Ditto.
7101 (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto.
7102 (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto.
7103
7104 * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX
7105 load/store with update builtins.
7106
0a38153f
KT
71072009-09-24 Kai Tietz <kai.tietz@onevision.com>
7108
7109 * libgcc2.c (L_trampoline): Prototype for getpagesize
7110 and mprotect in WINNT case.
7111
3faa6313
AS
71122009-09-24 Anatoly Sokolov <aesok@post.ru>
7113
7114 * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro.
7115 * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove.
7116 * config/rs6000/rs6000.c (rs6000_function_value): Make static, add
7117 'outgoing' argument.
7118 (TARGET_FUNCTION_VALUE): Define.
7119
2d84a337
IS
71202009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
7121
7122 * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1.
7123
047a3193
IS
71242009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
7125
7126 PR bootstrap/41405
afbd0665 7127 * common.opt: Initialize dwarf_strict to -1.
047a3193
IS
7128 * toplev.c (process_options): Catch unset dwarf_strict
7129 and set to 0 for all targets not overriding.
7130 * config/darwin.c (darwin_override_options): Catch unset
7131 dwarf_strict and override to 1.
7132
b5dcb2b9
JL
71332009-09-24 Jeff Law <law@redhat.com>
7134
afbd0665 7135 * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks.
b5dcb2b9 7136
824ff0cd
RG
71372009-09-24 Richard Guenther <rguenther@suse.de>
7138
7139 PR tree-optimization/36143
7140 PR tree-optimization/38747
7141 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
7142 create VIEW_CONVERT_EXPRs for TBAA compatible accesses.
7143
22a3138f
JJ
71442009-09-24 Jakub Jelinek <jakub@redhat.com>
7145
7146 PR bootstrap/41457
7147 * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED,
7148 return false instead of gcc_unreachable (). For CONST return the
7149 value returned by recursive call instead of always returning true.
7150 (tree_add_const_value_attribute): Return the value returned by
7151 add_const_value_attribute instead of always returning true if rtl
7152 is non-NULL.
7153
71542009-09-23 Justin Seyster <jrseys@gmail.com>
6209e51c
JS
7155
7156 * Makefile.in (PLUGIN_HEADERS): Include real.h.
7157
9f62cb92
JJ
71582009-09-24 Jakub Jelinek <jakub@redhat.com>
7159
7160 * cgraphunit.c (cgraph_lower_function): Revert last change.
7161 * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN
7162 instead of DECL_NO_STATIC_CHAIN.
7163 * tree-cfg.c (verify_gimple_call): Likewise.
7164 * tree-nested.c (get_chain_decl, get_chain_field,
7165 convert_tramp_reference_op, convert_gimple_call): Likewise.
7166 (convert_all_function_calls): Likewise. Always set or clear
7167 DECL_STATIC_CHAIN initially, for !n->outer clear it.
7168 (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code.
7169 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN
7170 if nested.
7171 * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of
7172 DECL_NO_STATIC_CHAIN.
7173 * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN
7174 instead of DECL_NO_STATIC_CHAIN.
7175 (ix86_function_regparm, find_drap_reg): Likewise. Don't test
7176 decl_function_context.
7177 * varasm.c (initializer_constant_valid_p): Likewise.
7178 * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ...
7179 (DECL_STATIC_CHAIN): ... this.
7180 * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN
7181 instead of DECL_NO_STATIC_CHAIN.
7182
9f78bf05 71832009-09-23 Basile Starynkevitch <basile@starynkevitch.net>
6209e51c 7184 Rafael Avila de Espindola <espindola@google.com>
9f78bf05
BS
7185
7186 * gengtype.c (nb_plugin_files): Make it unsigned to match
7187 num_gt_files. Adjust other variables to avoid warnings.
7188 (main): Allocate an all zero lang_bitmap before each plugin file name
7189 to match regular file names.
7190
2b4fa409
RH
71912009-09-23 Richard Henderson <rth@redhat.com>
7192
7193 * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
7194 (TARGET_STATIC_CHAIN): Mention that this hook must be used for
7195 static chain passed in memory.
7196 * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison.
7197 * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN,
7198 STATIC_CHAIN_INCOMING. Issue a sorry if there's no
7199 STATIC_CHAIN_REGNUM defined.
7200
7201 * config/picochip/picochip-protos.h: s/class/klass/.
7202 * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New.
7203 (picochip_static_chain): New.
7204 * config/picochip/picochip.h (STATIC_CHAIN): Remove.
7205 (STATIC_CHAIN_INCOMING): Remove.
7206
7207 * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New.
7208 (xtensa_static_chain): New.
85760734
UB
7209 * config/xtensa/xtensa.h (STATIC_CHAIN): Remove.
7210 (STATIC_CHAIN_INCOMING): Remove.
2b4fa409 7211
9193312a
AS
72122009-09-23 Anatoly Sokolov <aesok@post.ru>
7213
7214 * config/pa/pa.h (FUNCTION_VALUE): Remove macro.
7215 * config/pa/pa-protos.h (function_value): Remove.
7216 * config/pa/pa.c (pa_function_value): Rename from function_value.
7217 Make static, add 'outgoing' argument.
7218 (TARGET_FUNCTION_VALUE): Define.
7219
9ed74235
AS
72202009-09-23 Anatoly Sokolov <aesok@post.ru>
7221
7222 * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf
7223 instead of cfun->machine->is_leaf.
7224 * config/avr/avr.h (machine_function): Remove is_leaf field.
7225
abab57ef
JJ
72262009-09-23 Jakub Jelinek <jakub@redhat.com>
7227
7228 PR debug/41439
7229 * dwarf2out.c (address_of_int_loc_descriptor): Don't emit
7230 DW_OP_piece after DW_OP_stack_value, adjust size calculations
7231 for it, when DW_OP_stack_value and DW_OP_implicit_value has
7232 the same size, prefer DW_OP_stack_value.
7233 (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref,
7234 loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value.
7235
7168dc47
AO
72362009-09-23 Alexandre Oliva <aoliva@redhat.com>
7237
7238 PR debug/41353
7239 * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses.
7240
dda2da58
AO
72412009-09-23 Alexandre Oliva <aoliva@redhat.com>
7242
7243 PR debug/41248
7244 * cfgexpand.c (convert_debug_memory_address): New.
7245 (expand_debug_expr): Convert base address and offset to the same
7246 mode. Use it to convert addresses to other modes. Accept
7247 ptr_mode addresses.
7248
a3119b91
DS
72492009-09-23 Dodji Seketeli <dodji@redhat.com>
7250
7251 PR debug/41065
7252 * function.h (types_used_by_vars_hash): Declare new hash table.
7253 (types_used_by_vars_eq, types_used_by_var_decl_insert): Declare
7254 equality and hash function for the hash table.
7255 (types_used_by_cur_var_decl): Declare a new global chained list.
7256 (types_used_by_var_decl_insert): Declare new function.
7257 * function.c (types_used_by_vars_hash): Define the hashtable ...
7258 (types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as
7259 its equality and hash functions.
7260 (hash_types_used_by_vars_entry): New hash helper.
7261 (types_used_by_cur_var_decl): Define the global chained list.
7262 (used_types_insert): Update the list of types used by the global
7263 variable being parsed.
7264 (types_used_by_var_decl_insert): Define new function.
7265 * c-common.h (record_types_used_by_current_var_decl): Declare ...
7266 * c-common.c (record_types_used_by_current_var_decl): ... new
7267 function.
7268 * c-decl.c (finish_decl): Record the types used by the global
7269 variable declaration we've just parsed.
7270 * dwarf2out.c (premark_used_types): Insert a new line between
7271 comment and function.
7272 (premark_used_types_helper): Fix comment.
7273 (premark_types_used_by_global_vars_helper,
7274 premark_types_used_by_global_vars): New functions.
7275 (prune_unused_types): Do not prune types used by global variables.
7276
4c685825
RG
72772009-09-23 Richard Guenther <rguenther@suse.de>
7278
7279 * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET
7280 produced for bigendian targets with promoted subregs.
7281
659ad88e
RG
72822009-09-23 Richard Guenther <rguenther@suse.de>
7283
7284 * value-prof.c (gimple_ic): Purge old EH edges only after building
7285 the new ones.
7286
b3901be5
NC
72872009-09-23 Nick Clifton <nickc@redhat.com>
7288
7289 * config/arc/arc.c (arc_trampoline_init): Fix typo.
7290
66f0e027
JJ
72912009-09-23 Jakub Jelinek <jakub@redhat.com>
7292
dc67413d
JJ
7293 PR bootstrap/41405
7294 * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf.
7295
66f0e027
JJ
7296 PR bootstrap/41436
7297 * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN
7298 on non-nested functions.
7299
457ff6a1
JJ
73002009-09-23 Jakub Jelinek <jakub@redhat.com>
7301 Jan Hubicka <jh@suse.cz>
7302
7303 * dwarf2out.c (loc_list_plus_const): Only define if
7304 DWARF2_DEBUGGING_INFO.
7305 (address_of_int_loc_descriptor): Likewise.
7306
7307 PR debug/41411
7308 * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
7309
73102009-09-23 Uros Bizjak <ubizjak@gmail.com>
be123439
UB
7311
7312 PR c/39779
7313 * c-typeck.c (build_binary_op) <short_shift>: Check that integer
7314 constant is more than zero.
7315
d57c0139
AM
73162009-09-23 Alan Modra <amodra@bigpond.net.au>
7317
7318 PR target/40473
7319 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
7320 call final to emit non-scheduled prologue, instead insert at entry.
7321
f2431d5d
LR
73222009-09-22 Loren J. Rittle <ljrittle@acm.org>
7323 Joseph S. Myers <joseph@codesourcery.com>
7324
7325 * doc/install.texi (*-*-freebsd*): Add proper format codes.
7326
41e7ac51 73272009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
be123439 7328 Rafael Avila de Espindola <espindola@google.com>
41e7ac51
BS
7329
7330 * gengtype.c (is_file_equal): New function.
7331 (close_output_files): Use is_file_equal. Free of->buf.
7332
0182d016 73332009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
be123439 7334 Rafael Avila de Espindola <espindola@google.com>
0182d016
BS
7335
7336 * gengtype.c (write_types, write_local): Add the output_header
7337 argument. Update all callers.
7338
d40a19da
DS
73392009-09-22 Dodji Seketeli <dodji@redhat.com>
7340
7341 * dwarf2out.c (template_parameter_pack_die,
7342 gen_formal_parameter_pack_die ): New functions.
7343 (make_ith_pack_parameter_name): Remove this function.
7344 (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
7345 DW_TAG_formal_parameter_pack.
7346 (gen_generic_params_dies): Represent each template parameter pack
7347 by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
7348 represented by usual DW_TAG_template_*_parameter DIEs that are
7349 children of the DW_TAG_template_parameter_pack element DIE.
7350 (generic_parameter_die): This doesn't deal with parameter pack
be123439
UB
7351 names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
7352 of parameter pack DIEs.
d40a19da
DS
7353 (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
7354 in certain cases, e.g. for pack elements.
7355 (gen_formal_types_die, gen_decl_die): Adjust usage of
7356 gen_formal_parameter_die.
7357 (gen_subprogram_die): Represent each function parameter pack by a
7358 DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
7359 represented by usual DW_TAG_formal_parameter DIEs that are children
7360 of the DW_TAG_formal_parameter_pack DIE. Remove references to
7361 ____builtin_va_alist decls as no part of the compiler uses those
7362 anymore.
7363 * langhooks.h (struct lang_hooks_for_decls): Add
7364 function_parm_expanded_from_pack_p, get_generic_function_decl
7365 and function_parameter_pack_p hooks. Fix comment for
7366 get_innermost_generic_parms hook.
7367 * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
7368 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
7369 macros and use them to initialize lang_hook.
7370
82497700
RH
73712009-09-22 Richard Henderson <rth@redhat.com>
7372
7373 * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
7374 (TRAMPOLINE_ADJUST_ADDRESS): Poison.
7375 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
7376 on TRAMPOLINE_TEMPLATE.
7377 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
7378 TRAMPOLINE_ADJUST_ADDRESS.
7379 * targhooks.c (default_asm_trampoline_template): Remove.
7380 (default_trampoline_adjust_address): Remove.
7381 (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
7382 * targhooks.h: Update decls.
7383
6a92b6c7
DK
73842009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
7385
7386 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
7387 * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
7388 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
7389
502a1e45
AO
73902009-09-22 Alexandre Oliva <aoliva@redhat.com>
7391
7392 PR debug/41295
7393 * reload1.c (reload): Reset debug insns with pseudos without
7394 equivalences.
7395
a9ab39d3
JJ
73962009-09-22 Janis Johnson <janis187@us.ibm.com>
7397
7398 * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
7399 unconditional true for decimal float modes.
7400 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
7401 * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
7402
2208d2ac
LR
74032009-09-22 Loren J. Rittle <ljrittle@acm.org>
7404
7405 * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
7406 Enable a new case for __FreeBSD__ >= 7.
7407 * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
7408 * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
7409 * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
7410 and USE_LD_AS_NEEDED.
7411
27ed7478
LR
7412 * doc/install.texi (*-*-freebsd*): Update target information.
7413
6eee506e
RH
74142009-09-22 Richard Guenther <rguenther@suse.de>
7415
7416 PR middle-end/41395
7417 * tree-dfa.c (get_ref_base_and_extent): Handle trailing
7418 arrays really properly.
7419
531ca746
RH
74202009-09-22 Richard Henderson <rth@redhat.com>
7421
7422 PR target/41246
7423 * target.h (struct gcc_target): Add asm_out.trampoline_template,
7424 calls.static_chain, calls.trampoline_init,
7425 calls.trampoline_adjust_address.
7426 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7427 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
7428 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7429 * builtins.c (expand_builtin_setjmp_receiver): Use
7430 targetm.calls.static_chain; only clobber registers.
7431 (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
7432 set up memory attributes properly for the trampoline block.
7433 (expand_builtin_adjust_trampoline): Use
7434 targetm.calls.trampoline_adjust_address.
7435 * calls.c (prepare_call_address): Add fndecl argument. Use
7436 targetm.calls.static_chain.
7437 * df-scan.c (df_need_static_chain_reg): Remove.
7438 (df_get_entry_block_def_set): Use targetm.calls.static_chain;
7439 consolodate static chain handling.
7440 * doc/tm.texi: Document new hooks.
7441 * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
7442 (init_emit_regs): Don't initialize them.
7443 * expr.h (prepare_call_address): Update decl.
7444 * final.c (profile_function): Use targetm.calls.static_chain.
7445 * function.c (expand_function_start): Likewise.
7446 * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
7447 * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
7448 only clobber registers.
7449 * targhooks.c (default_static_chain): New.
7450 (default_asm_trampoline_template, default_trampoline_init): New.
7451 (default_trampoline_adjust_address): New.
7452 * targhooks.h: Declare them.
7453 * varasm.c (assemble_trampoline_template): Use
7454 targetm.asm_out.trampoline_template. Make the memory block const
7455 and set its size.
7456
672f0baa
RH
7457 * config/alpha/alpha.c (alpha_trampoline_init): Rename from
7458 alpha_initialize_trampoline. Make static. Merge VMS parameter
7459 differences into the TARGET_ABI_OPEN_VMS code block.
7460 (TARGET_TRAMPOLINE_INIT): New.
7461 * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
7462 (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
7463 * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
7464 (INITIALIZE_TRAMPOLINE): Remove.
7465
7466 * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
7467 (TRAMPOLINE_TEMPLATE): Merge with ...
7468 (INITIALIZE_TRAMPOLINE): ... this and move ...
7469 * config/arc/arc.c (arc_trampoline_init): ... here.
2d7b663a 7470 (TARGET_TRAMPOLINE_INIT): New.
2d7b663a 7471
0ef9304b
RH
7472 * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7473 (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7474 (arm_asm_trampoline_template): New.
7475 (arm_trampoline_init, arm_trampoline_adjust_address): New.
7476 * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
7477 THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
7478 code to arm_asm_trampoline_template.
7479 (TRAMPOLINE_ADJUST_ADDRESS): Move code to
7480 arm_trampoline_adjust_address.
7481 (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
7482 adjust for target hook parameters.
7483
be123439
UB
7484 * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
7485 Remove.
2df373c2 7486
92910d77
RH
7487 * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
7488 * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
7489 (bfin_trampoline_init): Rename from initialize_trampoline;
7490 make static; update for target hook parameters.
7491 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
7492 * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
7493 bfin_asm_trampoline_template.
7494 (INITIALIZE_TRAMPOLINE): Remove.
7495
3e322b77
RH
7496 * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7497 TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
7498 cris_trampoline_init): New.
7499 * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
7500 cris_asm_trampoline_template.
7501 (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
7502 adjust for target hook parameters.
7503
956c97fc
RH
7504 * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
7505
98689f5e
RH
7506 * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7507 TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
7508 fr30_trampoline_init): New.
7509 * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
7510 fr30_asm_trampoline_template.
7511 (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
7512 adjust for target hook parameters.
7513
e9d5fdb2
RH
7514 * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
7515 (frv_trampoline_init): Rename from frv_initialize_trampoline;
7516 make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
7517 * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
7518 * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
7519
9f6ef043
RH
7520 * config/h8300/h8300.c (h8300_trampoline_init): New.
7521 (TARGET_TRAMPOLINE_INIT): New.
7522 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
7523 to h8300_trampoline_init and adjust for hook parameters.
7524
2a1211e5
RH
7525 * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
7526 * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
7527 (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
7528 make static; adjust for hook parameters.
7529 * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
7530
f4a33d37
RH
7531 * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7532 (TARGET_TRAMPOLINE_INIT): New.
7533 (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
7534 * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
7535 iq2000_asm_trampoline_template.
7536 (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
7537 (TRAMPOLINE_CODE_SIZE): New.
7538 (TRAMPOLINE_SIZE): Use it.
7539 (TRAMPOLINE_ALIGNMENT): Follow Pmode.
7540
229fbccb
RH
7541 * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
7542 * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
7543 (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
7544 adjust for hook parameters.
7545 * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
7546
1548bf05
RH
7547 * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
7548 (m32r_trampoline_init): New.
7549 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
7550 m32r_trampoline_init.
7551
0d7e5af1
RH
7552 * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
7553 (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
7554 make static; update for hook parameters.
7555 * config/m68hc11/m68hc11-protos.h: Update.
7556 * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
7557
71e0af3c
RH
7558 * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7559 (TARGET_TRAMPOLINE_INIT): New.
7560 (mcore_function_value): Fix typo.
7561 (mcore_asm_trampoline_template, mcore_trampoline_init): New.
afbd0665 7562 * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
71e0af3c
RH
7563 to mcore_asm_trampoline_template.
7564 (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
7565
87138d8d
RH
7566 * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
7567 * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
7568 (mep_trampoline_init): Rename from mep_init_trampoline; make static;
7569 update for hook parameters.
7570 * config/mep/mep-protos.h (mep_init_trampoline): Remove.
7571
a1d29c8c
RH
7572 * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7573 mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7574 mips_trampoline_init): New.
7575 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
7576 mips_asm_trampoline_template.
7577 (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
7578 update for hook parameters.
7579
dbbdb385
RH
7580 * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7581 (TARGET_TRAMPOLINE_INIT): New.
7582 (mmix_trampoline_size): Remove.
7583 (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
7584 make static. Remove out-of-date tetra vs octa comment.
7585 (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
7586 make static; update for hook parameters.
7587 * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
7588 (INITIALIZE_TRAMPOLINE): Remove.
7589 (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
7590 (TRAMPOLINE_ALIGNMENT): New.
7591 * gcc/config/mmix/mmix-protos.h: Update.
7592
bdeb5f0c
RH
7593 * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7594 mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7595 mn10300_trampoline_init): New.
7596 * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
7597 mn10300_asm_trampoline_template.
7598 (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
7599
4601494d
RH
7600 * config/moxie/moxie.c (moxie_static_chain,
7601 moxie_asm_trampoline_template, moxie_trampoline_init,
7602 TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
7603 TARGET_TRAMPOLINE_INIT): New.
7604 * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
7605 moxie_trampoline_init.
7606 (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
7607 (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
7608
859c146c
RH
7609 * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
7610 pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
7611 pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
7612 pa_trampoline_adjust_address): New.
7613 * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
7614 pa_asm_trampoline_template.
7615 (TRAMPOLINE_ALIGNMENT): New.
7616 (TRAMPOLINE_CODE_SIZE): Move to pa.c.
7617 (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
7618 adjust for hook parameters.
7619 (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
7620
8dd65c37
RH
7621 * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
7622 (TARGET_TRAMPOLINE_INIT): New.
7623 * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
7624 (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
7625
454da451
RH
7626 * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
7627
44d43e53
RH
7628 * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
7629 * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
7630 (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
7631 make static; adjust parameters for the hook.
7632 * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
7633
b81ecf6f
RH
7634 * config/s390/s390.c (s390_asm_trampoline_template): Rename from
7635 s390_trampoline_template; make static.
7636 (s390_trampoline_init): Rename from s390_initialize_trampoline;
7637 make static; adjust for target hook.
7638 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
7639 * config/s390/s390-protos.h: Remove trampoline decls.
7640 * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
7641 (TRAMPOLINE_TEMPLATE): Remove.
7642 (TRAMPOLINE_ALIGNMENT): New.
7643
2f5bb28c
RH
7644 * config/score/score-protos.h (score_initialize_trampoline): Remove.
7645 * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7646 (TARGET_TRAMPOLINE_INIT): New.
7647 (score_asm_trampoline_template): New.
7648 (score_trampoline_init): Rename from score_initialize_trampoline;
7649 make static; adjust for hook parameters.
7650 * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
7651 score[37]_asm_trampoline_template.
7652 (INITIALIZE_TRAMPOLINE): Remove.
7653 * config/score/score3.c (score3_asm_trampoline_template): New.
7654 (score3_trampoline_init): Rename from score3_initialize_trampoline;
7655 adjust for target hook.
7656 * config/score/score7.c (score7_asm_trampoline_template): New.
7657 (score7_trampoline_init): Rename from score7_initialize_trampoline;
7658 adjust for target hook.
7659 * config/score/score3.h, config/score/score7.h: Update.
7660
994322ef
RH
7661 * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
7662 * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
7663 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
7664 (sh_trampoline_init): Rename from sh_initialize_trampoline;
7665 make static; adjust for target hook parameters.
7666 (sh_trampoline_adjust_address): New.
7667 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
7668 (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
7669
809e78cc
RH
7670 * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
7671 (sparc32_initialize_trampoline): Rename from
7672 sparc_initialize_trampoline; make static; replace tramp parameter
7673 with m_tramp and update memory accesses.
7674 (sparc64_initialize_trampoline): Similarly.
7675 (sparc_trampoline_init): New.
7676 * config/sparc/sparc-protos.h: Remove trampoline decls.
7677 * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
7678 * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
7679
a85b4c91
RH
7680 * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
7681 (array_to_constant): Make ARR parameter const.
7682 (spu_trampoline_init): Rename from spu_initialize_trampoline;
7683 make static; update for hook parameters.
7684 * config/spu/spu-protos.h: Update decls.
7685 * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
7686
fb8d0fac
RH
7687 * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
7688 from xstormy16_initialize_trampoline; make static; update for
7689 hook parameters.
7690 (TARGET_TRAMPOLINE_INIT): New.
7691 * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
7692
e0c6c273
RH
7693 * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7694 (TARGET_TRAMPOLINE_INIT): New.
7695 (v850_can_eliminate): Make static.
7696 (v850_asm_trampoline_template, v850_trampoline_init): New.
7697 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
7698 v850_asm_trampoline_template.
7699 (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
7700 and adjust for target hook parameters.
7701
3814318d
RH
7702 * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7703 (TARGET_TRAMPOLINE_INIT): New.
7704 (vax_asm_trampoline_template, vax_trampoline_init): New.
7705 * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
7706 vax_asm_trampoline_template.
7707 (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
7708
3c1229cb
RH
7709 * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
7710 (TARGET_TRAMPOLINE_INIT): New.
7711 (xtensa_asm_trampoline_template): Rename from
7712 xtensa_trampoline_template; make static.
7713 (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
7714 make static; update for hook parameters.
7715 * config/xtensa/xtensa-protos.h: Remove trampoline decls.
7716 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
7717 (INITIALIZE_TRAMPOLINE): Remove.
7718
3452586b
RH
7719 * config/i386/i386.c (ix86_function_regparm): Do not issue an
7720 error for nested functions with regparm=3.
7721 (ix86_compute_frame_layout): Adjust frame pointer offset for
7722 ix86_static_chain_on_stack.
7723 (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
7724 (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
7725 don't reset to UNITS_PER_WORD.
7726 (ix86_emit_leave): Adjust ix86_cfa_state.
7727 (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
7728 (ix86_static_chain): New.
7729 (ix86_trampoline_init): Rename from x86_initialize_trampoline;
7730 make static; update for target hook parameters; use ix86_static_chain.
7731 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
7732 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
7733 (INITIALIZE_TRAMPOLINE): Remove.
7734 (TRAMPOLINE_SIZE): Use 24 for 64-bit.
7735 (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
7736 to the end. Add static_chain_on_stack.
7737 (ix86_static_chain_on_stack): New.
7738
e0601576
RH
7739 * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
7740 (m68k_output_mi_thunk): Don't use static_chain_rtx.
7741 (m68k_trampoline_init): New.
7742 * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
7743 m68k_trampoline_init and adjust for hook parameters.
7744 * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
7745 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
7746
39dbcfc3
JJ
77472009-09-22 Jakub Jelinek <jakub@redhat.com>
7748
9190e0a9
JJ
7749 * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
7750 for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
7751
39dbcfc3
JJ
7752 * reload1.c (reload): Call wrap_constant when substituting
7753 reg for equiv inside of DEBUG_INSNs.
7754
65f753a0
JJ
7755 PR bootstrap/41405
7756 * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
7757 add_call_src_coords_attributes, add_high_low_attributes,
7758 gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
7759 gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
7760 dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
7761 when -gdwarf-2 -gstrict-dwarf.
7762 (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
7763 -gdwarf-[23] -gstrict-dwarf.
7764 (address_of_int_loc_descriptor, loc_descriptor,
7765 loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
7766 DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
7767 * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
7768
f61e18ec
RG
77692009-09-22 Richard Guenther <rguenther@suse.de>
7770
7771 PR tree-optimization/41428
7772 * tree-ssa-ccp.c (ccp_fold_stmt): New function.
7773 (ccp_finalize): Pass it to substitute_and_fold.
7774
ff7ffb8f
RG
77752009-09-22 Richard Guenther <rguenther@suse.de>
7776
7777 * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
7778 (substitute_and_fold): Adjust prototype.
7779 * tree-vrp.c (vrp_evaluate_conditional): Make static.
7780 (simplify_stmt_using_ranges): Likewise.
7781 (fold_predicate_in): Move here from tree-ssa-propagate.c.
7782 (vrp_fold_stmt): New function.
7783 (vrp_finalize): Pass it to substitute_and_fold.
7784 * tree-flow.h (vrp_evaluate_conditional): Remove.
7785 (simplify_stmt_using_ranges): Likewise.
7786 * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
7787 * tree-ssa-copy.c (fini_copy_prop): Likewise.
7788 * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
7789 member.
7790 (fold_predicate_in): Move to tree-vrp.c.
7791 (substitute_and_fold): Use the callback instead of calling into
7792 tree-vrp.c functions directly.
7793
40742b42
JJ
77942009-09-22 Jakub Jelinek <jakub@redhat.com>
7795
8b659ecb
JJ
7796 * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
7797 comparison warning on rs6000.
7798
40742b42
JJ
7799 PR middle-end/41429
7800 * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
7801 GIMPLE_EH_MUST_NOT_THROW cleanup.
7802 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
7803
c9c80434
JH
78042009-09-22 Jack Howarth <howarth@bromo.med.uc.edu>
7805
7806 PR middle-end/41260
7807 * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
7808 * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
7809 LIB_SPEC for darwin10 and later since it always uses the unwinder in
7810 libSystem which is derived from the gcc 4.2.1 unwinder.
7811
e0fd7469
DK
78122009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
7813
7814 PR middle-end/41357
7815 * varasm.c (default_encode_section_info): Copy TLS model into
7816 sym_ref flags regardless of backend support for TLS, for all
7817 model types except TLS_MODEL_EMULATED.
7818
cf09842e
DK
78192009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
7820
7821 PR bootstrap/41404
7822 * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
7823 we can handle it correctly.
7824
c1493544
GP
78252009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
7826
7827 * doc/install.texi (os2): Remove section.
7828
2f55829e
GP
78292009-09-21 Gerald Pfeifer <gerald@pfeifer.com>
7830
7831 * doc/standards.texi (Objective-C): Adjust two URLs.
7832
d9334061
GS
78332009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
7834
be123439
UB
7835 * tree-tailcall.c (process_assignment): Don't check if a
7836 multiplication or an addition are already present.
d9334061
GS
7837 (find_tail_calls): Combine multiple additions and multiplications.
7838 (adjust_accumulator_values): Emit accumulators.
7839
4b51caf2
KT
78402009-09-21 Kai Tietz <kai.tietz@onevision.com>
7841
7842 * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
7843 xmm register restore.
7844
5b5fba56
JH
78452009-09-21 Jan Hubicka <jh@suse.cz>
7846
7847 * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
7848 (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
7849 restore at the end.
7850
473ebbc5
EB
78512009-09-21 Eric Botcazou <ebotcazou@adacore.com>
7852
7853 * stor-layout.c (layout_type): Remove obsolete code.
7854
1dbb24a3
L
78552009-09-20 H.J. Lu <hongjiu.lu@intel.com>
7856
7857 PR middle-end/41395
7858 * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
7859
ca75b926
KG
78602009-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7861
7862 PR middle-end/30789
7863 * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter.
7864 (do_mpc_ckconv): Accept FORCE_CONVERT parameter.
7865 (fold_builtin_2, do_mpc_arg1): Update accordingly.
7866 * fold-const.c (const_binop): Likewise.
7867 * real.h (do_mpc_arg2): Update prototype.
7868
c4a80a2d
JH
78692009-09-20 Jan Hubicka <jh@suse.cz>
7870
7871 * dwarf2out.c (add_const_value_attribute): Return true if successful.
be123439
UB
7872 (add_location_or_const_value_attribute): Rewrite using
7873 loc_list_from_tree.
c4a80a2d
JH
7874 (tree_add_const_value_attribute): Return true if successful.
7875 (tree_add_const_value_attribute_for_decl): Likewise.
7876
7877 * dwarf2out.c (address_of_int_loc_descriptor): Break out from ...
7878 (loc_descriptor): ... here;
7879 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7880 (cst_pool_loc_descr): Break out from ...; do not reffer constant
7881 pool items that was not marked for output.
7882 (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR;
7883 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7884 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function.
7885 handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR,
7886 IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of
7887 CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use
7888 DW_OP_stack_value to get address of items that are not available
7889 as addresses.
7890 (dw_loc_list): Handle single element lists correctly.
7891
0b1d7060
KT
78922009-09-20 Kai Tietz <kai.tietz@onevision.com>
7893 Pascal Obry <obry@adacore.com>
7894
7895 * unwind-dw2-fde.c (classify_object_over_fdes):
7896 Cast the constant 1 to _Unwind_Ptr.
7897 (add_fdes): Likewise.
7898 (linear_search_fdes): Likewise.
7899
d0566a63
EB
79002009-09-20 Eric Botcazou <ebotcazou@adacore.com>
7901
7902 * stor-layout.c (set_sizetype): Avoid useless type copy.
7903
49576e25
RS
79042009-09-20 Richard Sandiford <rdsandiford@googlemail.com>
7905
7906 * configure.ac (gcc_cv_ld_mips_personality_relaxation): New
7907 feature check.
7908 (HAVE_LD_PERSONALITY_RELAXATION): New macro definition.
7909 * configure, config.in: Regenerate.
7910 * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect |
7911 DW_EH_PE_absptr.
7912 * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro.
7913 (ASM_PREFERRED_EH_DATA_FORMAT): Define. Use MIPS_EH_INDIRECT
7914 for global data if the output could be used in a shared library.
7915 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
7916 to 0 if TARGET_WRITABLE_EH_FRAME.
7917
63c6c7e0
KT
79182009-09-20 Paolo Bonzini <bonzini@gnu.org>
7919
f8e25a2a 7920 PR rtl-optimization/39886
63c6c7e0
KT
7921 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU
7922 just when insn is equal to BB_END (bb).
7923
b53da244
AN
79242009-09-19 Adam Nemet <anemet@caviumnetworks.com>
7925
7926 * config/mips/mips.opt (mrelax-pic-calls): New option.
7927 * config/mips/mips.c (mips_strip_unspec_address): Move it up in
7928 the file.
7929 (mips_unspec_call): Change "unspec_call" expander into this.
7930 (mips_strip_unspec_call): New function.
7931 (mips_got_load): Call mips_unspec_call instead of
7932 gen_unspec_call<mode>.
7933 (mips16_build_call_stub): Fix comment for fp_code. Adjust call to
7934 MIPS_CALL.
7935 (mips_cfg_in_reorg): New function.
7936 (mips16_lay_out_constants): Use it to decide whether to call
7937 CFG-aware insn splitting.
7938 (r10k_insert_cache_barriers): Move CFG set-up code from here to
7939 mips_reorg. Move DF set-up code from here ...
7940 (mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
7941 from here.
7942 (mips_reorg): Call mips_df_reorg instead of
7943 r10k_insert_cache_barriers. Move CFG set-up code here from
7944 r10k_insert_cache_barriers.
7945 (mips_call_expr_from_insn): New function.
7946 (mips_pic_call_symbol_from_set): Likewise.
7947 (mips_find_pic_call_symbol): Likewise.
7948 (mips_annotate_pic_call_expr): Likewise.
7949 (mips_get_pic_call_symbol): Likewise.
7950 (mips_annotate_pic_calls): Likewise.
7951 (mips_override_options): Disable -mrelax-pic-calls unless PIC
7952 calls are used.
7953 (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
7954 * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
7955 * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
7956 directive.
7957 * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
7958 (unspec_call<mode>): Remove it.
7959 (sibcall_internal, sibcall_value_internal,
7960 sibcall_value_multiple_internal, call_internal, call_split,
7961 call_value_internal, call_value_split,
7962 call_value_multiple_internal, call_value_multiple_split): Pass
7963 SIZE_OPNO to MIPS_CALL.
7964 (call_internal_direct, call_direct_split,
7965 call_value_internal_direct, call_value_direct_split): Pass -1 as
7966 SIZE_OPNO to MIPS_CALL.
7967 * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
7968 * configure: Regenerate.
7969 * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
7970 and -mno-relax-pic-calls.
be123439 7971 (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
b53da244 7972
1d93c860
RW
79732009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7974
7975 PR bootstrap/35619
7976 * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created
7977 in the directory this rule is called from, rather than the
7978 toplevel 'gcc' directory, to fix in-tree build.
7979
74dc6a11
CD
79802009-09-19 Chris Demetriou <cgd@google.com>
7981
7982 PR preprocessor/28435:
7983 * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate
7984 to cpplib that the preprocessor output is needed.
7985
bc8b6c98
JJ
79862009-09-19 Jakub Jelinek <jakub@redhat.com>
7987
e0f3e75b
JJ
7988 * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>,
7989 *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>,
7990 *return_and_restore_fpregs_<mode>,
7991 *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier.
7992
bc8b6c98
JJ
7993 PR bootstrap/41397
7994 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse
7995 instead of assuming it has always a REG inside of it.
7996
ca94da48
GP
79972009-09-18 Gerald Pfeifer <gerald@pfeifer.com>
7998
7999 * config/freebsd.h: Update comment on types.
8000 (WINT_TYPE): Define.
8001
5f5babf1
JM
80022009-09-18 Jason Merrill <jason@redhat.com>
8003
8004 * c.opt: Add -fno-deduce-init-list.
8005
eb99f777
NV
80062009-09-18 Neil Vachharajani <nvachhar@google.com>
8007
8008 * value-prof.c (interesting_stringop_to_profile_p): Added output
8009 argument to indicate which parameter is the size parameter.
8010 * value-prof.c (gimple_stringop_fixed_value): Use
8011 INTERESTING_STRINGOP_TO_PROFILE_P to find size argument.
8012 * value-prof.c (gimple_stringops_transform): Update call sites to
8013 INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change.
eb99f777 8014
2a79f8e4
UB
80152009-09-18 Uros Bizjak <ubizjak@gmail.com>
8016
8017 PR target/38288
8018 From David Binderman <dcb314@hotmail.com>:
8019 * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless
8020 local variable f. Remove stale comments.
8021 (ix86_compute_frame_layout): Remove useless local variable total_size.
8022 Remove #if 0'd code.
8023 (legitimate_address_p): Remove useless local variables
8024 reason_rtx and reason.
8025 (ix86_split_copysign_const): Remove useless local variable op1.
8026 (scale_counter): Remove useless local variable piece_size_mask.
8027
2b5bcdee
JJ
80282009-09-18 Jakub Jelinek <jakub@redhat.com>
8029
8030 * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from
8031 output decl.
8032
43eb8947
MH
80332009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at>
8034
8035 PR target/40913
8036 * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl.
8037
591a8495
JJ
80382009-09-17 Jakub Jelinek <jakub@redhat.com>
8039
8040 * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of
8041 TYPE_STUB_DECL.
8042
417b3023
AO
80432009-09-17 Alexandre Oliva <aoliva@redhat.com>
8044
8045 * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and
8046 DW_OP_implicit_value even without dwarf_version 4.
8047
e7f373fa
JH
80482009-09-17 Jan Hubicka <jh@suse.cz>
8049
8050 * dwarf2out.c: Include tree-pass.h and gimple.h.
8051 (loc_list_plus_const): New function.
8052 (loc_descriptor_from_tree_1): Rename to ...
8053 (loc_descriptor_from_tree): ... remove original.
8054 (loc_list_from_tree): New function.
8055 (add_AT_location_description): Accept location list.
8056 (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree.
8057 (concatn_mem_loc_descriptor): Remove.
8058 (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by
8059 returning NULL.
8060 (secname_for_decl): Move up.
8061 (hidden_reference_p): New function; break out from ...
8062 (loc_by_refernece): ... here; move up.
8063 (dw_loc_list): New function.
8064 (single_element_loc_list): New function.
8065 (single_element_loc_list_p): New function.
8066 (add_loc_descr_to_each): New function.
8067 (add_loc_list): New function.
8068 (loc_descr_from_tree): Make wraper of loc_list_from_tree.
8069 (loc_list_from_tree): Reroganized from loc_descr_from_tree;
8070 add diagnostics why expansion failed.
8071 (add_location_or_const_value_attribute): Support location lists.
8072 (add_bound_info): Likewise.
8073 (descr_info_loc): Update call of loc_descriptor_from_tree.
8074 (gen_variable_die): Work on location lists.
8075 * final.c (pass_final): Add dump file.
8076 * Makefile.in (dwarf2out.o): Add new dependencies.
8077
d2da4af2
JJ
80782009-09-17 Janis Johnson <janis187@us.ibm.com>
8079
8080 PR c/41049
8081 * real.c decimal_from_integer, decimal_integer_string): New.
8082 (real_from_integer): Use them as special case for decimal float.
8083 * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding.
8084 (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td):
8085 Do not append zero after the decimal point in string to convert.
8086
98f3eb1f
AM
80872009-09-17 Alexander Monakov <amonakov@ispras.ru>
8088
8089 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only
8090 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds.
8091
07ffa034
MJ
80922009-09-17 Martin Jambor <mjambor@suse.cz>
8093
8094 * common.opt (fipa-sra): New switch.
8095 * opts.c (decode_options): Turn flag_ipa_sra on for opt2.
8096 * timevar.def (TV_IPA_SRA): New timevar.
8097 * params.def (ipa-sra-ptr-growth-factor): New parameter.
8098 * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor.
8099 * tree-sra.c: Include cgraph.c.
8100 (enum sra_mode): Added SRA_MODE_EARLY_IPA.
8101 (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr
8102 and grp_not_necessarilly_dereferenced.
8103 (func_param_count): New variable.
8104 (encountered_apply_args): New variable.
8105 (bb_dereferences): New variable.
8106 (final_bbs): New variable.
8107 (no_accesses_representant): New variable.
8108 (no_accesses_p): New function.
8109 (dump_access): Dump the new fields.
8110 (sra_initialize): Set encountered_apply_args to false.
8111 (get_ssa_base_param): New function.
8112 (mark_parm_dereference): New function.
8113 (create_access): Caring for INIDRECT_REFs and different handling of
8114 varialble length accesses in early IPA SRA. Store the stmt - a new
8115 parameter - to the new access.
8116 (build_access_from_expr_1): New parameter stmt, passed to
8117 create_access. Handle INDIRECT_REFs.
8118 (build_access_from_expr): Pass the current statement to
8119 build_access_from_expr_1.
8120 (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural
8121 passes.
8122 (build_accesses_from_assign): Pass the current statement to
8123 build_access_from_expr_1. Do not create assign links in IPA-SRA.
8124 (scan_function): Call handle_ssa_defs on phi nodes. Set bits in
8125 final_bbs when necessary. Check for calls to __builtin_apply_args.
8126 Fixup EH info if anythng was changed.
8127 (is_unused_scalar_param): New function.
8128 (ptr_parm_has_direct_uses): New function.
8129 (find_param_candidates): New function.
8130 (mark_maybe_modified): New function.
8131 (analyze_modified_params): New function.
8132 (propagate_dereference_distances): New function.
8133 (dump_dereferences_table): New function.
8134 (analyze_caller_dereference_legality): New function.
8135 (unmodified_by_ref_scalar_representative): New function.
8136 (splice_param_accesses): New function.
8137 (decide_one_param_reduction): New function.
8138 (enum ipa_splicing_result): New type.
8139 (splice_all_param_accesses): New function.
8140 (get_param_index): New function.
8141 (turn_representatives_into_adjustments): New function.
8142 (analyze_all_param_acesses): New function.
8143 (get_replaced_param_substitute): New function.
8144 (get_adjustment_for_base): New function.
8145 (replace_removed_params_ssa_names): New function.
8146 (sra_ipa_reset_debug_stmts): New function.
8147 (sra_ipa_modify_expr): New function.
8148 (sra_ipa_modify_assign): New function.
8149 (convert_callers): New function.
8150 (modify_function): New function.
8151 (ipa_sra_preliminary_function_checks): New function.
8152 (ipa_early_sra): New function.
8153 (ipa_early_sra_gate): New function.
8154 (pass_early_ipa_sra): New variable.
8155 * Makefile.in (tree-sra.o): Add cgraph.h to dependencies.
2a79f8e4 8156
040c6d51
MM
81572009-09-17 Michael Matz <matz@suse.de>
8158
8159 PR middle-end/41347
8160 * tree.c (build_type_attribute_qual_variant): Export.
8161 * tree.h (build_type_attribute_qual_variant): Declare.
8162 * tree-inline.c (remap_type_1): Use it to build variants with
8163 the original qualifiers and attributes.
8164
10e154df
AK
81652009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8166
8167 * cfglayout.c (fixup_reorder_chain): Accept conditional jumps
8168 without a fallthrough edge.
8169
402f2db8
DD
81702009-09-16 DJ Delorie <dj@redhat.com>
8171
8172 * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C
8173 chip and ignore the "fast_interrupt" attribute if so.
8174
27b4689f
RH
81752009-09-16 Richard Henderson <rth@redhat.com>
8176
8177 PR middle-end/41360
8178 * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02
8179 barrier fix.
8180
fe663f4e
RH
81812009-09-16 Richard Henderson <rth@redhat.com>
8182
8183 PR target/41246
8184 * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain
8185 is set only if DECL_NO_STATIC_CHAIN is unset.
8186 * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New.
8187 (FOR_EACH_NEST_INFO): New.
8188 (walk_all_functions): Use it.
8189 (finalize_nesting_tree): Likewise.
8190 (unnest_nesting_tree): Likewise.
8191 (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next.
8192 (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN.
8193 (convert_gimple_call): Early out if gimple_call_chain already set.
8194 (convert_all_function_calls): Iterate until no new functions
8195 require a static chain.
8196 (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset
8197 when building a trampoline. Use dump_function_to_file instead
8198 of dump_function.
8199 (lower_nested_functions): Open dump_file. Validate that decls
8200 that have DECL_NO_STATIC_CHAIN from the front end don't have that
8201 bit reset by this pass.
8202
9b87db3c
MM
82032009-09-16 Michael Matz <matz@suse.de>
8204
8205 PR fortran/41212
8206 * tree.h (struct tree_decl_common): Add decl_restricted_flag,
8207 shorten decl_common_unused.
8208 (DECL_RESTRICTED_P): New accessor.
8209 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it
8210 to disambiguate marked decls and restrict pointers.
8211
79876307
RH
82122009-09-16 Richard Henderson <rth@redhat.com>
8213
8214 PR middle-end/41360
8215 * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix.
8216
e038c37b
JJ
82172009-09-16 Jakub Jelinek <jakub@redhat.com>
8218
8219 * integrate.c (set_block_abstract_flags): Call
8220 set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs.
8221
4075e7e8
RG
82222009-09-16 Richard Guenther <rguenther@suse.de>
8223
8224 PR middle-end/34011
8225 * tree-flow-inline.h (may_be_aliased): Compute readonly variables
8226 as non-aliased.
8227
21d05694
DD
82282009-09-16 DJ Delorie <dj@redhat.com>
8229 Kaz Kojima <kkojima@gcc.gnu.org>
8230
8231 * config/sh/sh.c (output_stack_adjust): Add new argument frame_p.
8232 (sh_expand_prologue): Update calls to output_stack_adjust.
2a79f8e4 8233 (sh_expand_epilogue): Likewise.
21d05694 8234
e484d1f0
AN
82352009-09-15 Adam Nemet <anemet@caviumnetworks.com>
8236
8237 PR bootstrap/41349
8238 * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when
8239 trying to limit the extent of searches in the insn stream.
8240
d7a9e7c5
NF
82412009-09-15 Nathan Froyd <froydnj@codesourcery.com>
8242 Jakub Jelinek <jakub@redhat.com>
8243
8244 PR target/41175
8245 PR target/40677
8246 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence
8247 problem.
8248 (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR,
8249 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits.
8250 (rs6000_savres_strategy): Always save FP registers inline if the
8251 target doesn't support hardware double-precision. Set the above
8252 bits in return value when needed.
8253 (rs6000_savres_routine_sym): Fix computation for cache selector.
8254 Mark the generated symbol as a function. Rename exitp argument to
8255 lr. Move code for determining the name of the symbol...
8256 (rs6000_savres_routine_name): ...here. New function. Add cases for
8257 getting the names right on AIX and 64-bit Linux.
8258 (savres_routine_name): New variable.
8259 (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert
8260 lr isn't set when savep. Use r12 resp. r1 instead of r11 depending
8261 on what the target routine uses as a base register. If savep && lr
8262 describe saving of r0 into memory slot.
8263 (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of
8264 line calls for AIX ABI.
8265 (rs6000_output_function_prologue): Use rs6000_savres_routine_name to
8266 determine FP save/restore functions.
8267 (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and
8268 frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of
8269 gen_addsi3.
8270 (rs6000_emit_epilogue): Adjust computation of restore_lr.
8271 Duplicate restoration of LR and execute the appropriate one
8272 depending on whether GPRs are being restored inline. Set r11 from
8273 offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is
8274 r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3.
8275 Fix out of line calls for AIX ABI.
8276 * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>):
8277 New insn.
8278 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for
8279 register 11.
8280 (*restore_gpregs_spe): Likewise.
8281 (*return_and_restore_gpregs_spe): Likewise.
8282 * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
8283 Define to empty string unconditionally.
8284 * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX):
8285 Define to empty string unconditionally.
8286 (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as
8287 !TARGET_64BIT.
8288
c7d68c96
JH
82892009-09-15 Jan Hubicka <jh@suse.cz>
8290
8291 * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50.
8292 * params.def (inline-insns-auto): Likewise.
8293
aa9dc284
MJ
82942009-09-15 Martin Jambor <mjambor@suse.cz>
8295
8296 * ipa-inline.c (estimate_function_body_sizes): Dump info about
8297 individual statements only at TDF_DETAILS dump level. Format
8298 source for 80 characters per line.
8299
83002009-09-15 Christian Bruel <christian.bruel@st.com>
56550f23 8301
2a79f8e4
UB
8302 * regrename.c (do_replace): Update REG_DEAD notes.
8303
0601d0cf
RE
83042009-09-15 Revital Eres <eres@il.ibm.com>
8305
8306 * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document.
8307 * targhooks.c (default_builtin_support_vector_misalignment):
8308 New builtin function.
8309 * targhooks.h (default_builtin_support_vector_misalignment):
8310 Declare.
8311 * target.h (builtin_support_vector_misalignment):
8312 New field in struct gcc_target.
8313 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call
8314 new builtin function.
8315 * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT):
8316 Define.
8317 * config/rs6000/rs6000.c
8318 (rs6000_builtin_support_vector_misalignment): New function.
8319 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define.
8320
e5e44796
JZ
83212009-09-15 Jie Zhang <jie.zhang@analog.com>
8322
8323 * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P
8324 instead of INSN_P.
8325 (bfin_optimize_loop): Likewise.
8326 (bfin_gen_bundles): Likewise.
8327 (workaround_speculation): Likewise.
8328 (find_load): Return NULL_RTX for debug_insn.
8329
6dac2e8e
UB
83302009-09-15 Uros Bizjak <ubizjak@gmail.com>
8331
8332 * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode.
8333 (sminsf3): Ditto.
8334
d839f1eb
DD
83352009-09-14 DJ Delorie <dj@redhat.com>
8336
8337 * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
6dac2e8e
UB
8338 * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in
8339 VLIW mode.
d839f1eb 8340
1c384bf1 83412009-09-14 Richard Henderson <rth@redhat.com>
6dac2e8e 8342 Jakub Jelinek <jakub@redhat.com>
1c384bf1
RH
8343
8344 * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec.
8345 * cfgbuild.c (make_edges): Handle asm goto.
8346 * cfglayout.c (fixup_reorder_chain): Likewise.
8347 * cfgrtl.c (patch_jump_insn): Likewise.
8348 * gimple-pretty-print.c (dump_gimple_asm): Likewise.
8349 * gimple.c (gimple_build_asm_1): Add and use nlabels parameter.
8350 (gimple_build_asm_vec): Add and use labels parameter.
8351 (gimple_build_asm): Remove.
8352 (walk_gimple_asm): Walk labels too.
8353 * gimple.def (GIMPLE_ASM): Update docs.
8354 * gimple.h: Update decls.
8355 (struct gimple_statement_asm): Change nc to use unsigned char;
8356 add nl member.
8357 (gimple_asm_nlabels): New.
8358 (gimple_asm_label_op, gimple_asm_set_label_op): New.
8359 * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR
8360 into gimple_build_asm_vec.
8361 * jump.c (mark_jump_label_asm): New.
8362 (mark_jump_label): Use it.
8363 (redirect_jump_1): Handle asm goto.
8364 (invert_jump_1): Soft fail if X is null.
8365 * recog.c (extract_asm_operands): New.
8366 (asm_noperands): Use it; handle asm labels.
8367 (decode_asm_operands): Use extract_asm_operands.
8368 (asm_operand_ok): Properly handle empty string.
8369 * reg-stack.c (get_asm_operands_in_out): Rename from
8370 get_asm_operand_n_inputs; use extract_asm_operands; return both
8371 inputs and outputs by reference; update all callers.
8372 * rtl.def (ASM_OPERANDS): Add label vector as operand 6.
8373 * rtl.h (ASM_OPERANDS_LABEL_VEC): New.
8374 (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New.
8375 (ASM_OPERANDS_SOURCE_LOCATION): Renumber.
8376 (extract_asm_operands): Declare.
8377 * stmt.c (expand_asm_operands): Add and use labels parameter.
8378 (check_unique_operand_names): Likewise.
8379 (resolve_asm_operand_names, resolve_operand_name_1): Likewise.
8380 (expand_asm_stmt): Handle asm labels.
8381 * tree-cfg.c (make_gimple_asm_edges): New.
8382 (make_edges): Use it.
8383 (cleanup_dead_labels): Handle asm labels.
8384 (is_ctrl_altering_stmt): Likewise.
8385 (gimple_redirect_edge_and_branch): Likewise.
8386 * tree.def (ASM_EXPR): Add 5th operand.
8387 * tree.h (ASM_LABELS): New.
8388 (resolve_asm_operand_names): Update decl.
8389
8390 * c-parser.c (c_parser_asm_statement): Parse asm goto.
8391 (c_parser_asm_goto_operands): New.
8392 * c-tree.h (build_asm_expr): Update decl.
8393 * c-typeck.c (build_asm_expr): Add and use labels parameter.
8394 * doc/extend.texi: Document asm goto.
8395
1d65f45c
RH
83962009-09-14 Richard Henderson <rth@redhat.com>
8397
8398 * except.h: Update declarations.
8399 (struct pointer_map_t): Forward declare.
8400 (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove.
8401 (struct eh_landing_pad_d, eh_landing_pad): New.
8402 (struct eh_catch_d, eh_catch): New.
8403 (struct eh_region_d): Remove next_region_sharing_label, aka,
8404 label, tree_label, landing_pad, post_landing_pad, resume,
8405 may_contain_throw. Rename region_number to index. Remove
8406 u.eh_catch, u.eh_throw. Rename u.eh_try.eh_catch to first_catch.
8407 Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg.
8408 (VEC(eh_landing_pad,gc)): New.
8409 (struct eh_status): Remove last_region_number. Add lp_array,
8410 throw_stmt_table, ttype_data, ehspec_data.
8411 (ehr_next, FOR_ALL_EH_REGION_AT): New.
8412 (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New.
8413 * except.c (lang_protect_cleanup_actions): Return tree.
8414 (struct ehl_map_entry): Remove.
8415 (init_eh_for_function): Push zero entries for region and lp_array.
8416 (gen_eh_region): Add to region_array immediately.
8417 (gen_eh_region_catch): Operate on eh_catch objects.
8418 (gen_eh_landing_pad): New.
8419 (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove.
8420 (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove.
8421 (get_eh_region_from_number, get_eh_region_from_number_fn): New.
8422 (get_eh_landing_pad_from_number_fn): New.
8423 (get_eh_landing_pad_from_number): New.
8424 (get_eh_region_from_lp_number_fn): New.
8425 (get_eh_region_from_lp_number): New.
8426 (expand_resx_stmt, note_eh_region_may_contain_throw): Remove.
8427 (get_exception_pointer, get_exception_filter): Remove.
8428 (collect_eh_region_array, can_be_reached_by_runtime): Remove.
8429 (current_function_has_exception_handlers): Simplify.
8430 (bring_to_root, eh_region_replaceable_by_p): Remove.
8431 (replace_region, hash_type_list, hash_eh_region): Remove.
8432 (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove.
8433 (label_to_region_map, num_eh_regions): Remove.
8434 (get_next_region_sharing_label, must_not_throw_labels): Remove.
8435 (find_exception_handler_labels): Remove.
8436 (duplicate_eh_regions_0, find_prev_try): Remove.
8437 (struct duplicate_eh_regions_data): New.
8438 (duplicate_eh_regions_1): Rewrite.
8439 (duplicate_eh_regions): Return a pointer map instead of an
8440 integer offset.
8441 (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove.
8442 (redirect_eh_edge_to_label): Remove.
8443 (eh_region_outermost): Rewrite using eh_region pointers
8444 instead of integers.
8445 (add_ttypes_entry): Update for ttype_data move to eh_status.
8446 (add_ehspec_entry): Rewrite with VEC instead of varray.
8447 (assign_filter_values): Likewise. Export.
8448 (build_post_landing_pads, connect_post_landing_pads): Remove.
8449 (dw2_build_landing_pads): Rewrite to use lp_array.
8450 (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove.
8451 (sjlj_assign_call_site_values): Rewrite to use lp_array.
8452 (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise.
8453 (sjlj_mark_call_sites): Update for landing pad numbers.
8454 (finish_eh_generation): Rewrite.
8455 (gate_handle_eh): Do nothing for no eh tree.
8456 (pass_rtl_eh): Move up near finish_eh_generation.
8457 (remove_eh_landing_pad): New.
8458 (remove_eh_handler): Export.
8459 (remove_eh_region, remove_eh_handler_and_replace): Remove.
8460 (for_each_eh_label): Rewrite to use lp_array.
8461 (make_reg_eh_region_note): New.
8462 (make_reg_eh_region_note_nothrow_nononlocal): New.
8463 (insn_could_throw_p): New.
8464 (copy_reg_eh_region_note_forward): New.
8465 (copy_reg_eh_region_note_backward): New.
8466 (check_handled, add_reachable_handler): Remove.
8467 (reachable_next_level, foreach_reachable_handler): Remove.
8468 (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove.
8469 (get_eh_region_and_lp_from_rtx): New.
8470 (get_eh_region_from_rtx): New.
8471 (can_throw_internal_1, can_throw_external_1): Remove.
8472 (can_throw_internal): Use get_eh_region_from_rtx.
8473 (can_throw_external): Use get_eh_region_and_lp_from_rtx.
8474 (insn_nothrow_p, can_nonlocal_goto): New.
8475 (expand_builtin_eh_common, expand_builtin_eh_pointer): New.
8476 (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New.
8477 (add_action_record): Use VEC not varray.
8478 (collect_one_action_chain): Update for eh_region changes.
8479 (convert_to_eh_region_ranges): Make static. Use VEC not varray.
8480 Use get_eh_region_and_lp_from_rtx.
8481 (gate_convert_to_eh_region_ranges): New.
8482 (pass_convert_to_eh_region_ranges): Use it.
8483 (push_uleb128, push_sleb128): Use VEC not varray.
8484 (output_one_function_exception_table): Likewise.
8485 (dump_eh_tree): Update for eh_region changes.
8486 (verify_eh_tree): Likewise.
8487 (verify_eh_region, default_init_unwind_resume_libfunc): Remove.
8488 * tree-eh.c: Include target.h.
8489 (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn.
8490 Don't disallow GIMPLE_RESX; adjust argument check.
8491 (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region.
8492 (record_stmt_eh_region): Update for landing pad numbers;
8493 generate a landing pad if necessary.
8494 (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region.
8495 (remove_stmt_from_eh_lp_fn): Similarly.
8496 (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn.
8497 Update for lp numbers; don't special case missing throw_stmt_table.
8498 (lookup_expr_eh_lp): Similarly.
8499 (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region.
8500 (eh_seq, eh_region_may_contain_throw): New.
8501 (struct leh_state): Add ehp_region.
8502 (struct leh_tf_state): Remove eh_label.
8503 (emit_post_landing_pad): New.
8504 (emit_resx, emit_eh_dispatch): New.
8505 (note_eh_region_may_contain_throw): New.
8506 (frob_into_branch_around): Take eh_region not eh label;
8507 emit eh code into eh_seq.
8508 (honor_protect_cleanup_actions): Early exit for no actions. Don't
8509 handle EXC_PTR_EXPR, FILTER_EXPR. Use gimple_build_eh_must_not_throw,
8510 lower_eh_must_not_throw. Emit code to eh_seq.
8511 (lower_try_finally_nofallthru): Emit eh code to eh_seq.
8512 (lower_try_finally_onedest): Likewise.
8513 (lower_try_finally_copy): Likewise.
8514 (lower_try_finally_switch): Likewise.
8515 (lower_try_finally): Initialize ehp_region.
8516 (lower_catch): Update for eh_catch objects.
8517 (lower_eh_filter): Don't handle must_not_throw.
8518 (lower_eh_must_not_throw): New.
8519 (lower_cleanup): Don't set eh_label.
8520 (lower_eh_constructs_2): Resolve eh builtins.
8521 Handle GIMPLE_EH_MUST_NOT_THROW.
8522 (lower_eh_constructs): Initialize eh_region_may_contain_throw.
8523 Add eh_seq to the end of the function body.
8524 (make_eh_dispatch_edges): New.
8525 (make_eh_edge): Remove.
8526 (make_eh_edges): Simplify for landing pads.
8527 (redirect_eh_edge_1): New.
8528 (redirect_eh_edge): Use it.
8529 (redirect_eh_dispatch_edge): New.
8530 (stmt_could_throw_p): Use a switch. Allow RESX.
8531 (stmt_can_throw_external): Use lookup_stmt_eh_lp.
8532 (stmt_can_throw_internal): Likewise.
8533 (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New.
8534 (maybe_clean_or_replace_eh_stmt): Update for landing pads.
8535 (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New.
8536 (gate_refactor_eh): New.
8537 (pass_refactor_eh): Use it.
8538 (lower_resx, execute_lower_resx, pass_lower_resx): New.
8539 (lower_eh_dispatch, execute_lower_eh_dispatch): New.
8540 (gate_lower_ehcontrol, pass_lower_eh_dispatch): New.
8541 (remove_unreachable_handlers): Rename from
8542 tree_remove_unreachable_handlers; rewrite for landing pads;
8543 call remove_eh_handler directly.
8544 (remove_unreachable_handlers_no_lp): New.
8545 (unsplit_eh, unsplit_all_eh): New.
8546 (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove.
8547 (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New.
8548 (cleanup_empty_eh_unsplit): New.
8549 (cleanup_empty_eh): Rewrite.
8550 (cleanup_all_empty_eh): New.
8551 (execute_cleanup_eh): Rename from cleanup_eh. Remove unreachable
8552 handlers first. Use unsplit_all_eh, cleanup_all_empty_eh.
8553 (gate_cleanup_eh): New.
8554 (pass_cleanup_eh): Use it.
8555 (verify_eh_edges): Move later in file. Expect one EH edge.
8556 (verify_eh_dispatch_edge): New.
8557
8558 * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h.
8559 (gtype-desc.o): Add TARGET_H.
8560 (tree.o): Use EXCEPT_H, not except.h.
8561 (cfgbuild.o): Add EXPR_H.
8562 (GTFILES): Add vecprim.h.
8563 * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER,
8564 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES.
8565 * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER,
8566 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New.
8567 * calls.c (emit_call_1): Use make_reg_eh_region_note.
8568 * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy
8569 calls to can_throw_internal.
8570 (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx.
8571 (make_edges): Don't handle RESX; use can_nonlocal_goto.
8572 * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX.
8573 (expand_gimple_stmt): Use make_reg_eh_region_note.
8574 (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR.
8575 (gimple_expand_cfg): Don't call convert_from_eh_region_ranges,
8576 or find_exception_handler_labels.
8577 * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX. Assert
8578 there is exacly one EH edge. Use can_nonlocal_goto and
8579 can_throw_internal.
8580 * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn.
8581 (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt.
8582 * combine.c (can_combine_p, try_combine): Use insn_nothrow_p.
8583 * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p.
8584 * dce.c (deletable_insn_p_1): Don't test may_trap_p.
8585 (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test.
8586 * dse.c (scan_insn): Use insn_could_throw_p.
8587 * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward.
8588 * expr.c (expand_expr_real): Use make_reg_eh_region_note.
8589 (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR.
8590 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle
8591 EXC_PTR_EXPR or FILTER_EXPR.
8592 (tree_expr_nonzero_warnv_p): Likewise.
8593 * function.h: Include vecprim.h, not varray.h
8594 (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members;
8595 move ttype_data and ehspec_data members to struct eh_status; change
8596 action_record_data member to a VEC.
8597 * gcse.c (hash_scan_set): Use can_throw_internal.
8598 * gengtype.c (open_base_files): Add target.h to gtype-desc.c.
8599 * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt.
8600 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
8601 (block_may_fallthru): Don't handle RESX_EXPR.
8602 * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR.
8603 (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New.
8604 (dump_gimple_stmt): Dump landing pad information with TDF_EH;
8605 handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH.
8606 * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW,
8607 GIMPLE_EH_DISPATCH, GIMPLE_RESX.
8608 (gimple_size): Likewise.
8609 (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New.
8610 (gimple_build_resx): Use gimple_build_with_ops.
8611 (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR.
8612 (is_gimple_val): Likewise.
8613 (is_gimple_stmt): Remove RESX_EXPR.
8614 * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New.
8615 (GIMPLE_RESX): Reorder with other EH constructs.
8616 * gimple.h (struct gimple_statement_eh_mnt): New.
8617 (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx.
8618 (gimple_eh_filter_must_not_throw): Remove.
8619 (gimple_eh_filter_set_must_not_throw): Remove.
8620 (gimple_eh_must_not_throw_fndecl): New.
8621 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New.
8622 (is_gimple_resx): New.
8623 * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR.
8624 Don't copy EH_FILTER_MUST_NOT_THROW.
8625 * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New.
8626 * ipa-inline.c (estimate_function_body_sizes): Don't try to
8627 handle must_not_throw_labels specially.
8628 * ipa-pure-const.c (check_call): Update debug statement for LP.
8629 * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER.
8630 * ipa-utils.c (get_base_var): Likewise.
8631 * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove.
8632 * lower-subreg.c (move_eh_region_note): Remove.
8633 (resolve_simple_move): Use copy_reg_eh_region_note_forward.
8634 * omp-low.c (new_omp_context): Update for eh_lp_nr.
8635 (create_task_copyfn): Likewise.
8636 (maybe_catch_exception): Use gimple_build_eh_filter.
8637 * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto
8638 REG_EH_REGION. Use make_reg_eh_region_note_nothrow_nononlocal.
8639 * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch
8640 and pass_lower_resx.
8641 * print-tree.c (print_node): Dump EH_LANDING_PAD_NR.
8642 * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward,
8643 can_throw_internal, can_nonlocal_goto.
8644 * reload1.c (fixup_eh_region_note): Use insn_could_throw_p,
8645 copy_reg_eh_region_note_forward.
8646 (emit_input_reload_insns): Use copy_reg_eh_region_note_forward.
8647 (emit_output_reload_insns): Likewise.
8648 (copy_eh_notes): Remove.
8649 * rtl.def (RESX): Remove.
8650 * rtl.h: Update declarations.
8651 * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt.
8652 * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH.
8653 (update_eh_label): Remove.
8654 (cleanup_dead_labels_eh): New.
8655 (cleanup_deal_labels): Use it instead of update_eh_label.
8656 (gimple_merge_blocks): Update landing pad data structure when
8657 removing a landing pad label.
8658 (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw
8659 test; handle GIMPLE_EH_MUST_NOT_THROW.
8660 (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH.
8661 (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR.
8662 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH.
8663 (verify_stmt): Likewise. Verify landing pads.
8664 (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH.
8665 (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt.
8666 (struct move_stmt_d): Add eh_map.
8667 (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New.
8668 (move_stmt_r): Remap eh region numbers in builtin calls,
8669 resx and eh_dispatch.
8670 (move_block_to_fn): Remove eh_offset parameter. Use
8671 maybe_duplicate_eh_stmt_fn.
8672 (find_outermost_region_in_block): Operate on eh_region pointers
8673 instead of region numbers.
8674 (move_sese_region_to_fn): Expect eh_map instead of eh_offset from
8675 duplicate_eh_regions.
8676 * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge
8677 test earlier. Disallow EH landing pads.
8678 * tree-cfa.c (create_tree_common_ann): Don't set ann->rn.
8679 * tree-flow.h: Update declarations.
8680 (struct tree_ann_common_d): Replace rn with lp_nr.
8681 * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR.
8682 (remap_eh_region_nr, remap_eh_region_tree_nr): New.
8683 (remap_gimple_stmt): Remap eh region numbers in builtin calls,
8684 resx and eh_dispatch.
8685 (copy_bb): Use maybe_duplicate_eh_stmt_fn.
8686 (copy_edges_for_bb): Use make_eh_dispatch_edges.
8687 (copy_cfg_body): Expect eh_map instead of eh_region_offset
8688 from duplicate_eh_regions.
8689 (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR;
8690 update RESX; handle EH_DISPATCH.
8691 (expand_call_inline): Set eh_lp_nr, not eh_region.
8692 (maybe_inline_call_in_expr): Likewise.
8693 * tree-inline.h (struct copy_body_data): Replace eh_region with
8694 eh_lp_nr, eh_region_offset with eh_map.
8695 * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt.
8696 * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New.
8697 * tree-pretty-print.c (dump_generic_node): Don't handle
8698 EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR.
8699 * tree-sra.c (scan_function): Use maybe_clean_eh_stmt.
8700 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle
8701 EXC_PTR_EXPR, FILTER_EXPR.
8702 * tree-ssa-operands.c (get_expr_operands): Likewise.
8703 * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise.
8704 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
8705 (ao_ref_init_from_vn_reference): Likewise.
8706 * tree-ssa-sink.c (statement_sink_location): Likewise.
8707 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8708 (mark_virtual_phi_result_for_renaming): Export. Tidy.
8709 * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle
8710 EXC_PTR_EXPR, FILTER_EXPR.
8711 (is_exception_related): Remove.
8712 (compute_avail): Don't call it.
8713 * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned.
8714 * tree.c (find_decls_types_in_eh_region): Update for eh_region changes.
8715 (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN.
8716 (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter.
8717 Build EH builtins.
8718 (build_resx): Remove.
8719 * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove.
8720 * tree.h: Update declarations.
8721 (EH_FILTER_MUST_NOT_THROW): Remove.
8722 (struct tree_label_decl): Add eh_landing_pad_nr.
8723 (EH_LANDING_PAD_NR): New.
8724 * value-prof.c (gimple_ic): Tidy variable names. Update for
8725 landing pad numbers.
8726 (gimple_stringop_fixed_value): Tidy variable names. Assert
8727 that neither call stmt can throw.
8728 * vecprim.h (uchar): New.
8729 (VEC(uchar,heap), VEC(uchar,gc)): New.
8730
8731 * c-common.c (c_define_builtins): Update call to
8732 build_common_builtin_nodes.
8733 * c-parser.c (c_parse_file): Don't call
8734 default_init_unwind_resume_libfunc.
8735
0c433c31
RS
87362009-09-14 Richard Sandiford <rdsandiford@googlemail.com>
8737
8738 * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare.
8739 (mips_cprestore_address_p): Likewise.
8740 (mips_save_gp_to_cprestore_slot): Likewise.
8741 (mips_restore_gp): Rename to...
8742 (mips_restore_gp_from_cprestore_slot): ...this.
8743 (mips_must_initialize_gp_p): Declare.
8744 (mips_emit_save_slot_move): Likewise.
8745 (mips_output_load_label): Return nothing.
8746 (mips_eh_uses): Declare.
8747 * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed.
8748 (TARGET_CPRESTORE_DIRECTIVE): New macro.
8749 (TARGET_ABSOLUTE_JUMPS): Likewise.
8750 (EH_USES): Likewise.
8751 (FIRST_PSEUDO_REGISTER): Update comment.
8752 (MIPS_ABSOLUTE_JUMP): New macro, extracted from...
8753 (MIPS_CALL): ...here.
8754 (REGISTER_NAMES): Add $cprestore.
8755 * config/mips/mips.c (machine_function): Remove has_gp_insn_p.
8756 Add load_label_length, has_inflexible_gp_insn_p,
8757 has_flexible_gp_insn_p, must_initialize_gp_p and
8758 must_restore_gp_when_clobbered_p.
8759 (mips_expand_call): Don't generate split instructions here.
8760 (mips_split_call): Update the call to mips_restore_gp after
8761 the above name change.
8762 (mips16_cfun_returns_in_fpr_p): Move earlier in file.
8763 (mips_find_gp_ref): New function.
8764 (mips_insn_has_inflexible_gp_ref_p): Likewise.
8765 (mips_cfun_has_inflexible_gp_ref_p): Likewise.
8766 (mips_insn_has_flexible_gp_ref_p): Likewise.
8767 (mips_cfun_has_flexible_gp_ref_p): Likewise.
8768 (mips_function_has_gp_insn): Delete.
8769 (mips_global_pointer): Drop the df_regs_ever_live_p check.
8770 Use the new functions above. Only return INVALID_REGNUM
8771 for TARGET_ABSOLUTE_JUMPS.
8772 (mips_must_initialize_gp_p): New function.
8773 (mips_get_cprestore_base_and_offset): New function, extracted from...
8774 (mips_cprestore_slot): ...here. Take a bool parameter.
8775 (mips_cfun_has_cprestore_slot_p): New function.
8776 (mips_cprestore_address_p): Likewise.
8777 (mips_save_gp_to_cprestore_slot): Likewise.
8778 (mips_restore_gp): Rename to...
8779 (mips_restore_gp_from_cprestore_slot): ...this. Assert
8780 epilogue_completed. Update the call to mips_cprestore_slot.
8781 Test cfun->machine->must_restore_gp_when_clobbered_p.
8782 (mips_direct_save_slot_move_p): New function.
8783 (mips_emit_save_slot_move): Likewise.
8784 (mips_output_cplocal): Test mips_must_initialize_gp_p () instead
8785 of cfun->machine->global_pointer.
8786 (mips_output_function_prologue): Check mips_must_initialize_gp_p ().
8787 (mips_save_reg): Use mips_emit_save_slot_move.
8788 (mips_expand_prologue): Set must_initialize_gp_p.
8789 Use mips_cfun_has_cprestore_slot_p. Use gen_potential_cprestore
8790 for all cprestore saves. Emit a use_cprestore instruction after
8791 setting up the cprestore slot.
8792 (mips_restore_reg): Use mips_emit_save_slot_move.
8793 (mips_process_load_label): New function.
8794 (mips_load_label_length): Likewise.
8795 (mips_output_load_label): Don't return asm: output it here instead.
8796 Use mips_process_load_label.
8797 (mips_adjust_insn_length): Adjust the length of branch instructions
8798 that have length MAX_PIC_BRANCH_LENGTH.
8799 (mips_output_conditional_branch): Update the call to
8800 mips_output_load_label. Assume the branch target is OPERANDS[0]
8801 rather than OPERANDS[1]. Use MIPS_ABSOLUTE_JUMP for absolute jumps.
8802 (mips_output_order_conditional_branch): Swap the meaning of
8803 OPERANDS[0] and OPERANDS[1].
8804 (mips_variable_issue): Don't count ghost instructions.
8805 (mips_expand_ghost_gp_insns): New function.
8806 (mips_reorg): Rerun mips_reorg_process_insns if it returns true.
8807 (mips_output_mi_thunk): Set must_initialize_gp_p.
8808 (mips_eh_uses): New function.
8809 * config/mips/predicates.md (cprestore_save_slot_operand)
8810 (cprestore_load_slot_operand): New predicates.
8811 * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec.
8812 (UNSPEC_MOVE_GP): Likewise.
8813 (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN)
8814 (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room.
8815 (CPRESTORE_SLOT_REGNUM): New register.
8816 (MAX_PIC_BRANCH_LENGTH): New constant.
8817 (jal_macro): Use MIPS_ABSOLUTE_JUMPS.
8818 (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long
8819 branches. Fix commentary.
8820 (loadgp_newabi_<mode>): Change from unspec_volatile to unspec.
8821 Only split if mips_must_initialize_gp_p; expand to nothing otherwise.
8822 Change type to "ghost".
8823 (loadgp_absolute_<mode>): Likewise.
8824 (loadgp_rtp_<mode>): Likewise.
8825 (copygp_mips16): Likewise.
8826 (loadgp_blockage): Remove redundant mode attribute.
8827 (potential_cprestore): New instruction.
8828 (cprestore): Turn into an unspec set.
8829 (use_cprestore): New instruction.
8830 (*branch_fp): Swap operands 0 and 1. Remove redundant mode attribute.
8831 (*branch_fp_inverted): Likewise.
8832 (*branch_order<mode>): Likewise.
8833 (*branch_order<mode>_inverted): Likewise.
8834 (*branch_equality<mode>): Likewise.
8835 (*branch_equality<mode>_inverted): Likewise.
8836 (*branch_bit<bbv><mode>): Likewise.
8837 (*branch_bit<bbv><mode>_inverted): Likewise.
8838 (*branch_equality<mode>_mips16): Remove redundant mode.
8839 (jump): Turn into a define_expand.
8840 (*jump_absolute): New instruction.
8841 (*jump_pic): Likewise.
8842 (*jump_mips16): Rename previously-unnamed pattern. Remove
8843 redundant mode attribute.
8844 (restore_gp): Split on epilogue_completed rather than
8845 reload_completed. Change type to "ghost".
8846 (move_gp<mode>): New instruction.
8847 * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1.
8848 Remove redundant mode attribute.
8849 * config/mips/mips-ps-3d.md (bc1any4t): Likewise.
8850 (bc1any4f, bc1any2t, bc1any2f): Likewise.
8851 (*branch_upper_lower, *branch_upper_lower_inverted): Likewise.
8852
5910fb59
MM
88532009-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8854
8855 PR target/41210
8856 * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI
8857 are returned in the same register (vs34 or v2) that Altivec vector
8858 types are returned in.
8859 (rs6000_libcall_value): Ditto.
8860
8861 PR target/41331
8862 * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn
8863 instead of explicit addsi3/adddi3 calls.
8864 (rs6000_split_multireg_move): Ditto.
8865 (rs6000_emit_allocate_stack): Ditto.
8866 (rs6000_emit_prologue): Ditto.
8867 (rs6000_output_mi_thunk): Ditto.
8868
8869 * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer
8870 size is 64 bits if we can use 64-bit registers.
8871
49caeea1
BS
88722009-09-14 Bernd Schmidt <bernd.schmidt@analog.com>
8873
8874 * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak
8875 symbols.
8876
8be6ada8
BS
8877 From Jie Zhang <jie.zhang@analog.com>:
8878 * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to
8879 save FP and RETS with saveall attribute.
8880 (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS
8881 with saveall attribute.
8882
6c1c1dfa
BS
8883 * config/bfin/bfin.c (bfin_expand_builtin,
8884 case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the
8885 operands.
6dac2e8e 8886
6c1c1dfa
BS
8887 From Jie Zhang <jie.zhang@analog.com>:
8888 * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes
8889 before use in two places.
8890 * config/bfin/bfin.md (AREG): Define mode iterator.
8891 (reload_in, reload_out): Use mode iterator AREG.
8892
cdb4dde5
RG
88932009-09-14 Richard Guenther <rguenther@suse.de>
8894
8895 PR middle-end/41350
8896 * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm
8897 EH personality path.
8898
f9417da1 88992009-09-13 Richard Guenther <rguenther@suse.de>
6dac2e8e 8900 Rafael Avila de Espindola <espindola@google.com>
f9417da1
RG
8901
8902 * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define.
8903 (LANG_HOOKS_EH_PERSONALITY): Likewise.
8904 (LANG_HOOKS_INITIALIZER): Adjust.
8905 (lhd_pass_through_t): Declare.
8906 * langhooks.h (struct lang_hooks): Add eh_runtime_type and
8907 eh_personality.
8908 * langhooks.c (lhd_pass_through_t): New function.
6dac2e8e 8909 * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc,
f9417da1 8910 dwarf2out_begin_prologue): Use personality from current_function_decl.
6dac2e8e 8911 * expr.h (get_personality_function): Declare.
f9417da1
RG
8912 * expr.c (get_personality_function): New function.
8913 (build_personality_function): Likewise.
6dac2e8e
UB
8914 * libfuncs.h (libfunc_index): Remove LTI_eh_personality.
8915 (eh_personality_libfunc): Remove.
8916 * optabs.c (build_libfunc_function): New function split out from ...
f9417da1 8917 (init_one_libfunc): ... here.
6dac2e8e
UB
8918 * tree.h (DECL_FUNCTION_PERSONALITY): New.
8919 (tree_function_decl): Add personality.
f9417da1
RG
8920 (lhd_gcc_personality): Declare.
8921 (build_personality_function): Likewise.
8922 * tree.c (gcc_eh_personality_decl): New.
8923 (lhd_gcc_personality): New function.
8924 * except.h (lang_eh_runtime_type): Remove.
8925 (enum eh_personality_kind): New.
8926 (build_personality_function): Declare.
8927 (function_needs_eh_personality): Declare.
6dac2e8e 8928 * except.c (lang_eh_runtime_type): Remove.
f9417da1
RG
8929 (function_needs_eh_personality): New function.
8930 (add_type_for_runtime): Call lang_hooks.type_for_runtime instead.
6dac2e8e
UB
8931 (sjlj_emit_function_enter, output_function_exception_table):
8932 Use personality from current_function_decl.
f9417da1
RG
8933 * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY.
8934 * tree-inline.c (tree_can_inline_p): Do not inline across different
8935 EH personalities.
8936 (expand_call_inline): Likewise. Adjust the callers EH personality.
8937 (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY.
8938 * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY.
8939 * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency.
8940 (c-parser.o): Likewise
8941 * c-tree.h (c_eh_initialized_p): Remove.
8942 (c_maybe_initialize_eh): Likewise.
8943 * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh.
8944 (finish_decl): Don't call c_maybe_initialize_eh.
8945 (c_eh_initialized_p): Remove.
8946 (c_maybe_initialize_eh): Likewise.
6dac2e8e 8947 * c-parser.c (c_parser_omp_construct): Likewise.
f9417da1
RG
8948 (c_parse_file): Initialize exception handling.
8949
933608b7
KT
89502009-09-13 Kai Tietz <kai.tietz@onevision.com>
8951
8952 * config.gcc (tm_file): Remove i386/biarch32.h
8953 for i?86-w64-mingw* case.
8954 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib
8955 support.
22f34504
KT
8956 * config.host: Set for x64 mingw the option
8957 use_long_long_for_widest_fast_int to yes.
933608b7 8958
725730f2
EB
89592009-09-13 Eric Botcazou <ebotcazou@adacore.com>
8960
8961 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL.
8962 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P.
8963 (dbxout_begin_function): Likewise.
8964 * final.c (dwarf2_debug_info_emitted_p): New predicate.
8965 (final_start_function): Do not emit debug info if DECL_IGNORED_P is
8966 set on the function.
8967 (final_end_function): Likewise.
8968 (final_scan_insn): Likewise.
8969 (rest_of_handle_final): Likewise.
8970 * varasm.c (assemble_start_function): Likewise.
8971 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8972
89732009-09-12 Jason Merrill <jason@redhat.com>
86373e7e
JM
8974
8975 * dbgcnt.c (dbg_cnt_process_single_pair): constify.
8976 * opts.c (common_handle_option): constify.
8977
8ff51917
GP
89782009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
8979
beb1adc1
GP
8980 * doc/install.texi (avr): Remove obsolete reference site.
8981
89822009-09-12 Gerald Pfeifer <gerald@pfeifer.com>
afbd0665 8983
8ff51917
GP
8984 * doc/install.texi (Binaries): Adjust AIX link.
8985
460ba396
AD
89862009-09-12 Akim Demaille <demaille@gostai.com>
8987
8988 * doc/invoke.texi (-fstrict-aliasing): Correct two examples.
8989 Use an imperative sentence.
8990
f2c4a81c
RH
89912009-09-11 Richard Henderson <rth@redhat.com>
8992
8993 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add
8994 structure-name and has-tree-operands arguments; update all entries.
8995 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol;
8996 update all entries.
8997 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument.
8998 (gsstruct_code_size): New.
8999 (gss_for_code_): New.
9000 (gss_for_code): Remove.
9001 (gimple_size): Rewrite using gsstruct_code_size.
9002 (gimple_statement_structure): Move to gimple.h.
9003 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare.
9004 (gss_for_code, gimple_statement_structure): New.
9005 (gimple_ops): Use new arrays; tidy.
9006
85ed9a33
JDA
90072009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9008
9009 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic
9010 operand to be a PLUS expression.
9011 * config/pa/pa.c (pa_secondary_reload): Likewise.
9012
137a05d3
JJ
90132009-09-11 Jakub Jelinek <jakub@redhat.com>
9014
9258b4c1
JJ
9015 * combine.c (propagate_for_debug_subst): Call wrap_constant on top.
9016
137a05d3
JJ
9017 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of
9018 XEXP (in_rtx, 8).
9019
603bb63e
BS
90202009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
9021
9022 From Jie Zhang <jie.zhang@analog.com>:
9023 * doc/extend.texi (node Function Attributes): Document l2
9024 function attribute.
9025 (node Blackfin Variable Attributes): Document l2 variable attributes.
9026
8a47c6c4
LR
90272009-09-11 Loren J. Rittle <ljrittle@acm.org>
9028
9029 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit
9030 to match the system compiler's configuration at inflection point.
9031 Add comment to remark a remaining difference with system compiler.
9032
61e1d511
LR
9033 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail.
9034 * configure: Regenerate.
9035
db689ed6
BS
90362009-09-11 Bernd Schmidt <bernd.schmidt@analog.com>
9037
9038 From Jie Zhang <jie.zhang@analog.com>:
9039 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions.
9040 (bfin_handle_l2_attribute): New.
9041 (bfin_attribute_table): Add l2 attribute.
9042
5c3ec539
MM
90432009-09-11 Michael Matz <matz@suse.de>
9044
9045 PR middle-end/41275
9046 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls
9047 on the local_decls list.
9048
0b7e34d7
AO
90492009-09-11 Alexandre Oliva <aoliva@redhat.com>
9050
9051 PR debug/41276
9052 PR debug/41307
9053 * cselib.c (cselib_expand_value_rtx_cb): Document callback
9054 interface.
9055 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust
9056 for VALUEs, to implement the documented interface.
9057 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs.
9058 Adjust for VALUEs and anything else, to implement the
9059 documented interface.
9060
b851135c
NF
90612009-09-10 Nathan Froyd <froydnj@codesourcery.com>
9062
9063 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing
9064 with actual SPE/paired vector modes before using 64-bit alignment.
9065 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE.
9066
5ba863d7
DD
90672009-09-10 DJ Delorie <dj@redhat.com>
9068
9069 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is
9070 emitted.
9071
9072 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New.
9073 * config/mep/mep.c (mep_legitimate_constant_p): New.
9074 * config/mep/mep-protos.h: Prototype it.
9075
68bcdeed
RH
90762009-09-10 Richard Henderson <rth@redhat.com>
9077
9078 * print-rtl.c (print_rtx): Fix JUMP_LABEL index.
9079
ad42ff1e
JM
90802009-09-10 Jason Merrill <jason@redhat.com>
9081
9082 * tree.c (chain_index): New fn.
9083 * tree.h: Declare it.
9084
0e6748ab
RO
90852009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9086
9087 * config/sol2-c.c (cmn_err_length_specs): Initialize
9088 scalar_identity_flag.
9089
671f9f30
RH
90902009-09-10 Richard Henderson <rth@redhat.com>
9091
b6777fea
RH
9092 * tree.h (struct tree_decl_common): Move align member earlier;
9093 move label_decl_uid member ...
9094 (struct tree_label_decl): ... here.
9095 (LABEL_DECL_UID): Update to match.
9096
feb4e5ba
RH
9097 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH,
9098 not TDF_DETAILS.
9099
1c061be5
RH
9100 * tree-cfg.c (gimple_redirect_edge_and_branch): Do
9101 gimple_try_redirect_by_replacing_jump test after no-op and EH tests.
9102
88e24a5a
RH
9103 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at
9104 dest_prev if the edge is complex.
9105
40a32862
RH
9106 * tree-cfg.c (is_ctrl_stmt): Use a switch.
9107
8e7c5fdd
RH
9108 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and
9109 loop latch tests earlier.
9110
07c358c6
RH
9111 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert
9112 before GIMPLE_RETURN, not after its predecessor; insert
9113 before GIMPLE_RESX.
9114
671f9f30
RH
9115 * gimple-iterator.c (gimple_find_edge_insert_loc): Use
9116 gimple_seq_empty_p to test for no PHI nodes.
9117 * tree-cfg.c (split_critical_edges): Likewise.
9118
15a15e8d
RH
9119 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify.
9120
f90f4827
HS
91212009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
9122
9123 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions
6dac2e8e 9124 introduced by the VTA branch merge.
f90f4827 9125
edb30094
UB
91262009-09-10 Uros Bizjak <ubizjak@gmail.com>
9127
9128 * ira-conflicts.c: Use fputs or putc instead of fprintf
9129 where appropriate.
9130 * cfg.c: Ditto.
9131 * toplev.c: Ditto.
9132 * tree-switch-conversion.c: Ditto.
9133
91342009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com>
f3d9e91b
HS
9135
9136 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions
6dac2e8e 9137 introduced by the VTA branch merge.
f3d9e91b 9138
edb30094 91392009-09-10 Uros Bizjak <ubizjak@gmail.com>
3a3d54f2
UB
9140
9141 Revert:
9142 2009-09-09 Uros Bizjak <ubizjak@gmail.com>
9143
9144 PR rtl-optimization/39779
9145 * expr.c (convert_modes): Return when mode == oldmode after
9146 CONST_INTs are processed.
9147
1c6679e2
NC
91482009-09-10 Nick Clifton <nickc@redhat.com>
9149
9150 * config/mep/mep.c (mep_encode_section_info): Copy weakness
9151 attribute and referring decl when creating renamed symbol.
9152
90097c67
RG
91532009-09-10 Richard Guenther <rguenther@suse.de>
9154
9155 PR middle-end/41257
9156 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for
9157 reachable nodes.
9158 (cgraph_finalize_compilation_unit): Compute reachability
9159 before emitting thunks. Properly process aliases before
9160 possibly removing unreachable nodes.
9161
c7a3980a
RG
91622009-09-10 Richard Guenther <rguenther@suse.de>
9163
9164 PR middle-end/41254
9165 * tree.c (struct free_lang_data_d): Add worklist member.
9166 (find_decls_types_r): Push onto the worklist instead of recursing.
9167 Handle TREE_BINFOs properly.
9168 (find_decls_types): New function wrapped around find_decls_types_r
9169 to process the worklist.
9170 (find_decls_types_in_eh_region): Use it.
9171 (find_decls_types_in_node): Likewise.
9172 (find_decls_types_in_var): Likewise.
9173 (free_lang_data_in_cgraph): Likewise. Free the worklist.
9174 * tree.h (RECORD_OR_UNION_TYPE_P): New.
9175 (AGGREGATE_TYPE_P): Adjust.
9176
e00ded68
JM
91772009-09-09 Jason Merrill <jason@redhat.com>
9178
9179 * configure.ac: Check glibc version even if we have an in-tree
9180 assembler.
9181
75cd1c8f
AG
91822009-09-09 Anthony Green <green@moxielogic.com>
9183
9184 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load
9185 the constant 0 when appropriate.
9186 * config/moxie/constraints.md: Add constraint O.
9187
9188 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust
9189 to pass up to 6 32-bit argument values in registers.
9190 (moxie_function_arg): Ditto.
9191 (moxie_arg_partial_bytes): Ditto.
9192 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto.
9193 (REG_PARM_STACK_SPACE): Ditto.
9194 (FUNCTION_ARG_REGNO_P): Ditto.
9195
9196 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
9197 instruction to allocate stack space.
9198
93fbf857
SB
91992009-09-09 Segher Boessenkool <segher@kernel.crashing.org>
9200
9201 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix
9202 unnecessarily stringent constraints. Fix address
9203 calculation in the splitters.
9204
ed9d5a4a
UB
92052009-09-09 Uros Bizjak <ubizjak@gmail.com>
9206
9207 PR rtl-optimization/39779
9208 * expr.c (convert_modes): Return when mode == oldmode after
9209 CONST_INTs are processed.
9210
3d887721
KT
92112009-09-09 Kai Tietz <kai.tietz@onevision.com>
9212
9213 PR/41315
ed9d5a4a 9214 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too.
3d887721
KT
9215 (ix86_expand_prologue): Take frame.padding0 into logic of
9216 to_allocate checks.
9217 (ix86_expand_epilogue): Likewise.
9218
80a76d1d
JJ
92192009-09-09 Jakub Jelinek <jakub@redhat.com>
9220
9221 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK):
9222 New variables.
9223 (SHLIB_LINK, SHLIB_INSTALL): Use them.
9224 * config/t-slibgcc-libgcc: New file.
9225 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it.
9226
ca1bb752
MJ
92272009-09-09 Martin Jambor <mjambor@suse.cz>
9228
9229 PR tree-optimization/41089
9230 * tree-sra.c (find_var_candidates): Do not consider va_lists in
9231 early SRA.
9232
8b9db065
RH
92332009-09-09 Richard Henderson <rth@redhat.com>
9234
9235 * gimple.h (CASE_GIMPLE_OMP): New.
9236 (is_gimple_omp): Use it.
9237 * tree-cfg.c (is_ctrl_altering_stmt): Likewise.
9238 (verify_gimple_debug): Likewise.
9239
70a6b17e
RG
92402009-09-09 Richard Guenther <rguenther@suse.de>
9241
9242 PR tree-optimization/41101
9243 * tree-ssa-pre.c (maximal_set): Remove.
9244 (compute_antic_aux): Treat the maximal set as implicitly all ones.
9245 Defer all blocks we didn't visit at least one successor.
9246 (add_to_exp_gen): Do not add to the maximal set.
9247 (make_values_for_phi): Likewise.
9248 (compute_avail): Likewise.
9249 (init_pre): Do not allocate the maximal set.
9250 (execute_pre): Do not dump it.
9251
7648edc4
MJ
92522009-09-09 Martin Jambor <mjambor@suse.cz>
9253
9254 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is
9255 an SSA_NAME rather than a is_gimple_variable.
9256
5a4b005f
RG
92572009-09-09 Richard Guenther <rguenther@suse.de>
9258
9259 PR middle-end/41317
9260 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove
9261 code dealing with plain pointer bases.
9262 (maybe_fold_offset_to_reference): Likewise.
9263 (maybe_fold_stmt_addition): Adjust.
9264
ccffb755
RG
92652009-09-09 Richard Guenther <rguenther@suse.de>
9266
9267 * tree.c (free_lang_data_in_type): Do not free the type variant
9268 chains.
9269 (free_lang_data): Merge char_type_node with its properly signed
9270 variant.
9271 (pass_ipa_free): Collect after freeing language specific data.
9272
4e18a7d4
MM
92732009-09-09 Michael Matz <matz@suse.de>
9274
9275 PR middle-end/41268
9276 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing
9277 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool.
9278 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments
9279 to reflect reality.
9280
5fb455bc
DD
92812009-09-08 DJ Delorie <dj@redhat.com>
9282
9283 * config/mep/mep.c (conversions[]): Add "ml" pattern.
9284
d5df7223
JM
92852009-09-04 Jason Merrill <jason@redhat.com>
9286
9287 * tree.c (tree_find_value): Remove.
9288 * tree.h: Remove prototype.
9289 * varasm.c (assemble_external): Use value_member instead.
9290
6a57e634
AO
92912009-09-08 Alexandre Oliva <aoliva@redhat.com>
9292
9293 * toplev.c (process_options): Choose default debugging type when
9294 gtoggle enables debug info and type is unset.
9295
da4a9479
AO
92962009-09-08 Alexandre Oliva <aoliva@redhat.com>
9297
9298 PR debug/41276
9299 PR debug/41307
9300 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of
9301 invalid subreg.
9302
713e2ea6
AO
93032009-09-08 Alexandre Oliva <aoliva@redhat.com>
9304
9305 * configure: Rebuilt with modified libtool.m4.
9306
91642126
AO
93072009-09-08 Alexandre Oliva <aoliva@redhat.com>
9308
9309 PR debug/41229
9310 PR debug/41291
9311 PR debug/41300
9312 * tree-ssa.c (execute_update_addresses_taken): Update debug insns.
9313
ae0a4449
AO
93142009-09-08 Alexandre Oliva <aoliva@redhat.com>
9315
9316 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove.
9317 (remove_statement): Likewise.
9318 (rewrite_use_nonlinear_expr): Adjust.
9319 (remove_unused_ivs): Collect SSA NAMEs to remove and call...
9320 * tree-ssa.c (release_defs_bitset): ... this. New.
9321 * tree-flow.h (release_defs_bitset): Declare.
9322
21719cea
AO
93232009-09-08 Alexandre Oliva <aoliva@redhat.com>
9324
9325 PR debug/41232
9326 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts
9327 in the middle block.
9328
7c2a2dbf
KT
93292009-09-08 Kai Tietz <kai.tietz@onevision.com>
9330
34c6743c
KT
9331 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer
9332 via intptr_t to long type.
9333 (insert_operand_rank): Cast long type via intptr_t to
9334 pointer type.
9335 * genattrtab.c (RTL_HASH): Use intptr_t to cast from
9336 pointer to scalar.
9337 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast
9338 from pointer to unsigned via uintptr_t.
9339
7c2a2dbf
KT
9340 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t,
9341 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T,
9342 and HAVE_INTPTR_T.
9343 * configure: Regenerated.
9344 * config.in: Regenerated
9345 * system.h (stdint.h): Add include.
9346 (inttypes.h): Likewise.
9347 * Makefile.in (aclocal): Add config/stdint.m4.
9348 * aclocal.m4: Regenerated.
9349
8472b255
BS
93502009-09-08 Bernd Schmidt <bernd.schmidt@analog.com>
9351
9352 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static
9353 variables.
9354 (note_np_check_stores): New function.
9355 (harmless_null_pointer_p): New function.
9356 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers
9357 changed. Take into account whether we're in the shadow of a condjump
9358 that tested NP_REG for NULL.
9359 Lose all code that tested for SEQUENCEs.
9360 (workaround_speculation): Avoid inserting NOPs for loads that are
9361 either always executed or a NULL pointer.
9362
ac875c2e
JH
93632009-09-08 Jan Hubicka <jh@suse.cz>
9364
9365 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8.
9366 * params.def (early-inlining-insns): Likewise.
9367
1098d3a5
JJ
93682009-09-08 Jakub Jelinek <jakub@redhat.com>
9369
9370 PR rtl-optimization/41239
9371 * sched-int.h (struct deps): Add last_function_call_may_noreturn field.
9372 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn
9373 lists.
9374 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns
9375 across calls, as the calls might not always return normally.
9376 (call_may_noreturn_p): New function.
9377 (deps_analyze_insn): Update last_function_call_may_noreturn list.
9378 (init_deps): Initialize it.
9379 (remove_from_deps): Also remove calls from
9380 last_function_call_may_noreturn list.
9381
35ecd408
RH
93822009-09-07 Richard Henderson <rth@redhat.com>
9383
9384 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are
9385 more VR->OPERANDS than LHS operands. Free LHS before returning.
9386
c7cb1555
BS
93872009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
9388
9389 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant.
9390 (attr "addrtype"): New member "spreg".
9391 Use it if mem_spfp_address_operand is true for the address.
9392 (attr "type"): New entry "stall".
9393 (cpu_unit "load"): New.
9394 (insn_reservations "load32", "loadp", "loadi"): Add reservation of
9395 "load".
9396 (insn_reservation "loadsp"): New.
9397 (insn_reservation "load_stall1"): New.
9398 (insn_reservation "load_stall3"): New.
ed9d5a4a 9399 (stall): New insn.
c7cb1555
BS
9400 * config/bfin/predicates.md (const1_operand, const3_operand): New.
9401 (mem_p_address_operand): Exclude stack and frame pointer based
9402 addresses.
9403 (mem_spfp_address_operand): New; match them here.
9404 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function.
9405 (bfin_reorg): Call it if scheduling insns.
9406 (bfin_gen_bundles): Remove dummy insns created by
9407 add_sched_insns_for_speculation.
9408
4dce27df
BS
9409 From Jie Zhang <jie.zhang@analog.com>:
9410 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type,
9411 bfin_si_revision, bfin_workarounds): Move these ...
9412 * config/bfin/bfin.h: ... here.
9413
5254cd50
BS
9414 From Mike Frysinger <michael.frysinger@analog.com>
9415 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M,
9416 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M.
ed9d5a4a
UB
9417 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m,
9418 bf547m, bf548m, and bf549m.
5254cd50 9419 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__
ed9d5a4a
UB
9420 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M,
9421 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for
9422 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M.
5254cd50
BS
9423 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
9424 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none.
9425 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
9426 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
9427 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts
9428 bf542m, bf544m, bf547m, bf548m, and bf549m.
9429
b3187e24 9430 From Jie Zhang <jie.zhang@analog.com>:
ed9d5a4a 9431 * config/bfin/predicates.md (p_register_operand): New predicate.
b3187e24
BS
9432 (dp_register_operand): New predicate.
9433 * config/bfin/bfin-protos.h (WA_05000074): Define.
9434 (ENABLE_WA_05000074): Define.
ed9d5a4a 9435 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus.
b3187e24
BS
9436 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0].
9437 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm.
ed9d5a4a 9438 (define_attr addrtype): Allow load/store register to be P register.
b3187e24
BS
9439 (define_attr storereg): New.
9440 (define_cpu_unit anomaly_05000074): New.
9441 (define_insn_reservation dsp32shiftimm): New.
9442 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New.
9443 (define_insn_reservation loadp): Cannot use slot2.
9444 (define_insn_reservation loadsp): Cannot use slot2.
9445 (define_insn_reservation storep): Cannot use slot2. Does not
9446 apply when working around 05000074.
9447 (define_insn_reservation storep_anomaly_05000074): New.
9448 (define_insn_reservation storei): Does not apply when working
9449 around 05000074.
9450 (define_insn_reservation storei_anomaly_05000074): New.
9451 (define_attr length): Add dsp32shiftimm case.
9452 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3,
9453 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low,
9454 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi,
9455 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3):
9456 Set type as dsp32shiftimm for dsp32shiftimm alternatives.
9457
4a50e99c
MJ
94582009-09-07 Martin Jambor <mjambor@suse.cz>
9459
9460 PR middle-end/41282
9461 * tree-sra.c (create_artificial_child_access): Return NULL if
9462 build_ref_for_offset fails.
9463 (propagate_subacesses_accross_link): Allow build_ref_for_offset
9464 and create_artificial_child_access to fail.
9465
e5b258a4
DG
94662009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
9467
9468 PR c++/41214
6dac2e8e 9469 * unwind-dw2.c (uw_init_context_1): Mark noinline.
e5b258a4
DG
9470 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise.
9471 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise.
9472
8ff7f824
BS
94732009-09-07 Bernd Schmidt <bernd.schmidt@analog.com>
9474
9475 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic
9476 block, ensure it has an exit edge. Emit a barrier after a jump.
9477
3beb864c
NC
94782009-09-07 Nick Clifton <nickc@redhat.com>
9479
9480 * gcc.c (this_is_linker_script): New variable. Like
9481 this_is_library_file but for the %T constructor.
9482 (end_going_arg): If this_is_linker_script is set then locate the
9483 script and insert a --script switch before it
6dac2e8e
UB
9484 (do_spec_2): Initialise this_is_linker_script.
9485 (do_spec_1): Likewise. Handle %T construct.
9486 (eval_spec_function): Preserve this_is_linker_script.
3beb864c
NC
9487 * doc/invoke.texi: Document %T construct in spec files.
9488 * config/m32c/m32c.h (LIB_SPEC): Use it.
9489
3fce100b
AK
94902009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9491
ed9d5a4a 9492 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro.
3fce100b
AK
9493 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier
9494 when volatile flag is set.
9495 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces.
9496
1362aa31
EB
94972009-09-06 Eric Botcazou <ebotcazou@adacore.com>
9498
9499 PR bootstrap/41241
9500 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores.
9501 (combine_stack_adjustments_for_block): Allow insns between stack
7717df30
EB
9502 adjustments and stores with corresponding pre-(dec|inc)rement or
9503 pre-modify operation.
1362aa31 9504
90588a10
JJ
95052009-09-06 Jakub Jelinek <jakub@redhat.com>
9506
9507 PR bootstrap/41241
9508 * combine-stack-adj.c (struct csa_memlist): Rename to...
9509 (struct csa_reflist): ... this. Rename mem field to ref.
9510 (free_csa_memlist): Rename to...
9511 (free_csa_reflist): ... this.
9512 (record_one_stack_memref): Rename to...
9513 (record_one_stack_ref): ... this. Handle also REG_P.
9514 (try_apply_stack_adjustment): Handle also REG_P.
9515 (struct record_stack_memrefs_data): Rename to...
9516 (struct record_stack_refs_data): ... this. Rename memlist field to
9517 reflist.
9518 (record_stack_memrefs): Rename to...
9519 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing
9520 subexpressions instead of failing when a MEM contains SP references.
9521 For SP itself in DEBUG_INSNs queue it also onto reflist chain.
9522 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming.
9523
3797a0ff
RG
95242009-09-06 Richard Guenther <rguenther@suse.de>
9525
9526 PR middle-end/41144
9527 * tree.c (build_array_type): Do not record types marked
9528 with structural equality in the canonical type hashtable.
9529
3c45b96b
RG
95302009-09-06 Richard Guenther <rguenther@suse.de>
9531
9532 PR middle-end/41261
9533 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls.
9534
6a129567
RG
95352009-09-05 Richard Guenther <rguenther@suse.de>
9536
9537 PR middle-end/41181
9538 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type.
9539
432b4b31
RG
95402009-09-05 Richard Guenther <rguenther@suse.de>
9541
9542 PR debug/41273
9543 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops.
9544
575140c2
RG
95452009-09-05 Richard Guenther <rguenther@suse.de>
9546
9547 PR middle-end/41271
9548 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers
9549 before comparing function argument types.
9550
896237cd
FXC
95512009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9552
9553 PR target/41024
9554 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to
9555 the assembler.
9556
e139ab34
UB
95572009-09-04 Uros Bizjak <ubizjak@gmail.com>
9558
9559 Revert:
9560 2009-08-18 Uros Bizjak <ubizjak@gmail.com>
9561
9562 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
9563 locators before emit_insn is called.
9564
1fe28116
VM
95652009-09-04 Vladimir Makarov <vmakarov@redhat.com>
9566
9567 PR bootstrap/41241
9568 * ira.c (update_equiv_reg): Revert my previous patch for the PR.
9569 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary.
9570 (reginfo_init): Don't call allocate_reg_info.
9571
14e58be0
UB
95722009-09-04 Uros Bizjak <ubizjak@gmail.com>
9573
9574 PR target/41262
9575 * config/alpha/alpha.c (alpha_does_function_need_gp): Use
9576 NONDEBUG_INSN_P instead of INSN_P.
9577
3157b0c2
AO
95782009-09-04 Alexandre Oliva <aoliva@redhat.com>
9579
9580 PR debug/41225
9581 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses.
9582
510bc854
AO
95832009-09-04 Alexandre Oliva <aoliva@redhat.com>
9584
9585 PR target/41252
9586 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second
9587 pattern of the split.
9588
6751b6f6
AO
95892009-09-04 Alexandre Oliva <aoliva@redhat.com>
9590
9591 * toplev.c (process_options): Move setter of flag_var_tracking
9592 before other tests that depend on it. Move down setter of
9593 flag_rename_registers. Don't enable var-tracking-assignments
9594 by default if selective scheduling is enabled. Warn if both
9595 are enabled.
9596
24277d34
AO
95972009-09-04 Alexandre Oliva <aoliva@redhat.com>
9598
9599 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match
9600 comment. Use switch statement to catch overlaps between rtx
9601 and tree codes. Accept FUNCTION_DECLs in addition to those in...
9602 (IS_DECL_CODE): ... here. Remove.
9603 (check_value_is_not_decl): Remove.
9604 (dv_from_decl, dv_from_value): Check after conversion.
9605
5f1a9ebb
RG
96062009-09-04 Richard Guenther <rguenther@suse.de>
9607
9608 PR middle-end/41257
9609 * (cgraph_finalize_compilation_unit): Move finalizing aliases
9610 after emitting tunks. Move emitting thunks and ctors from ...
9611 (cgraph_optimize): ... here. Remove redundant
9612 cgraph_analyze_functions.
9613 * varasm.c (find_decl_and_mark_needed): Remove no longer
9614 necessary check.
9615 (finish_aliases_1): Adjust check for thunk aliases.
9616
8d142c15
DG
96172009-09-04 Daniel Gutson <dgutson@codesourcery.com>
9618
9619 * config/arm/arm.md (ctzsi2): Added braces
9620 to avoid warning that broke booststrap.
9621
22fc64b4
MJ
96222009-09-04 Martin Jambor <mjambor@suse.cz>
9623
9624 PR tree-optimization/41112
9625 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot
9626 handle variable-bounded arrays.
9627 (expr_with_var_bounded_array_refs_p): New function.
9628 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p.
9629
2cdece44
WG
96302009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com>
9631
9632 * config/s390/2097.md: Removed two incorrect bypasses.
9633 (z10_fsimpdf): Fixed latency.
9634 (z10_fhex): New insn_reservation.
9635 (z10_floaddf): Fixed latency.
9636 (z10_floadsf): Fixed latency.
9637 (z10_ftrunctf): Fixed latency.
9638 (z10_ftruncdf): Fixed latency.
9639 * config/s390/s390.c (z10_cost): Fixed values.
9640 (s390_adjust_priority): Added z10 path.
9641 * config/s390/s390.md (type): Added fhex.
9642 (*mov<mode>_64dfp): Updated type attribute.
9643 (*mov<mode>_64): Updated type attribute.
9644 (*mov<mode>_31): Updated type attribute.
9645 (*mov<mode>"): Likewise.
9646 * config/s390/2084.md (x_fsimpdf): Updated condition.
9647
b09062ee
AK
96482009-09-04 Andreas Krebbel <krebbel1@de.ibm.com>
9649
9650 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem
9651 RTXs in the predicate for operand 1.
9652
ca96ed43
DG
96532009-09-03 Daniel Gutson <dgutson@codesourcery.com>
9654
9655 * config/arm/arm.md (UNSPEC_RBIT): New constant.
9656 (rbitsi2): New insn.
9657 (ctzsi2): New expand.
9658 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro.
9659
687b5078
MJ
96602009-09-03 Martin Jambor <mjambor@suse.cz>
9661
9662 * tree-sra.c (duplicate_expr_for_different_base): Removed.
9663 (create_artificial_child_access): Use build_ref_for_offset instead
9664 of duplicate_expr_for_different_base.
9665 (propagate_subacesses_accross_link): Likewise.
14e58be0 9666
006b29ab
RS
96672009-09-03 Richard Sandiford <rdsandiford@googlemail.com>
9668
9669 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead
9670 of INSN_P.
9671 (mips16e_collect_argument_saves): Skip debug instructions.
9672 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P.
9673 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P.
9674 (r10k_insert_cache_barriers): Likewise.
9675 (mips_reorg_process_insns): Likewise.
9676
691571d2
VM
96772009-09-03 Vladimir Makarov <vmakarov@redhat.com>
9678
9679 PR bootstrap/41241
9680 * ira.c (update_equiv_reg): Remove check on class likely spill.
9681
08ab0acf
JJ
96822009-09-03 Jakub Jelinek <jakub@redhat.com>
9683
7d4507cb
JJ
9684 PR debug/41236
9685 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
9686 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
9687 it or SUBREG.
9688
08ab0acf
JJ
9689 PR debug/41238
9690 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
9691 the stack slot if it is passed by invisible reference.
755d55bb
EB
9692 * var-tracking.c (vt_add_function_parameters): Handle arguments passed
9693 by invisible reference.
08ab0acf 9694
9840d30a
BS
96952009-09-03 Bernd Schmidt <bernd.schmidt@analog.com>
9696
9697 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
9698 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1.
9699 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of
9700 0.
9701 * config/bfin/sync.md: New file.
9702 * config/bfin/bfin.md: Include it.
9703 (UNSPEC_ATOMIC): New.
9704 (UNSPEC_ONES): Provide a unique number.
9705
9706 From Jie Zhang <jie.zhang@analog.com>:
9707 * config/bfin/bfin.c (ret_regs): New.
9708 (must_save_fp_p): Don't return true because of frame_pointer_needed.
9709 (must_save_rets_p): New.
9710 (n_regs_saved_by_prologue): Use must_save_rets_p instead of
9711 current_function_is_leaf.
9712 (do_link): Likewise.
9713 (do_unlink): Likewise.
9714 (expand_interrupt_handler_prologue): Use ret_regs array.
9715 (expand_interrupt_handler_epilogue): Use ret_regs array and
9716 pass return register to gen_return_internal.
9717 (bfin_expand_epilogue): Pass return register to
9718 gen_return_internal.
9719 (bfin_expand_call): Explicitly clobber RETS.
9720 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define.
9721 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic,
9722 call_insn_fdpic, call_value_insn_fdpic, call_symbol,
9723 call_value_symbol, call_insn, call_value_insn): Explicitly clobber
9724 RETS.
9725 (return_internal): Take a reg rtx rather than the register number.
9726
8e094aa2
L
97272009-09-03 H.J. Lu <hongjiu.lu@intel.com>
9728
9729 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT
9730 when comparing against estimated_loop_iterations_int return.
9731
e20c9328
RG
97322009-09-03 Richard Guenther <rguenther@suse.de>
9733
9734 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of
9735 eh_personality_libfunc.
9736
c9630c40
RL
97372009-09-03 Razya Ladelsky <razya@il.ibm.com>
9738
9739 * tree-parloops.c (separate_decls_in_region): Add space.
14e58be0 9740
e7df16a5
RL
97412009-09-03 Razya Ladelsky <razya@il.ibm.com>
9742
14e58be0 9743 * tree-parloops.c (separate_decls_in_region): Change the condition
e7df16a5
RL
9744 checking if there are reductions in the loop.
9745
785aa2a7
RL
97462009-09-03 Razya Ladelsky <razya@il.ibm.com>
9747
9748 PR tree-optimization/38275
14e58be0 9749 * tree-parloops.c (parallelize_loops): Replace profitability condition
785aa2a7
RL
9750 for expected number of iterations.
9751
e12c4094
AO
97522009-09-03 Alexandre Oliva <aoliva@redhat.com>
9753
9754 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config.
9755 (bootstrap-debug): Explain conditions in which it becomes default.
9756 (bootstrap-debug-big): Rather than duplicate bootstrap-debug,
9757 make it add to it.
9758
95da10ea
NK
97592009-09-03 Namhyung Kim <namhyung@gmail.com>
9760
9761 * doc/invoke.texi (Optimize Options): Move
9762 -finline-small-functions to the -O2 list.
9763
73d598d5
AO
97642009-09-03 Alexandre Oliva <aoliva@redhat.com>
9765
9766 * toplev.c (process_options): Enable var-tracking-assignments
9767 by default if var-tracking is enabled.
9768
896aa4ea
DD
97692009-09-02 David Daney <ddaney@caviumnetworks.com>
9770
9771 * cfgbuild.c (find_bb_boundaries): Split blocks containing a
9772 barrier.
9773 * emit-rtl.c (prev_nonnote_insn_bb): New function.
9774 * rtl.h (prev_nonnote_insn_bb): Declare it.
9775
4537ec0c
DN
97762009-09-03 Diego Novillo <dnovillo@google.com>
9777
9778 * cgraph.c (cgraph_node_for_decl): New.
9779 * cgraph.h (cgraph_node_for_decl): Declare.
9780 * tree.c (host_integerp): Return 0 if T is NULL.
9781
97822009-09-03 Diego Novillo <dnovillo@google.com>
9783
9784 * tree.h (struct alias_pair): Move from varasm.c.
9785 (alias_pairs): Likewise.
9786 (TYPE_MAXVAL): Define.
9787 (TYPE_MINVAL): Define.
9788 (iterative_hash_host_wide_int): Declare.
9789 (remove_unreachable_alias_pairs): Declare.
9790 * tree-pass.h (pass_ipa_free_lang_data): Declare.
9791 * diagnostic.c (default_diagnostic_starter): Make extern.
9792 (default_diagnostic_finalizer): Make extern.
9793 * diagnostic.h (default_diagnostic_starter): Declare.
9794 (default_diagnostic_finalizer): Declare.
9795 (default_tree_printer): Declare.
9796 * toplev.c (default_tree_printer): Make extern.
9797
97982009-09-03 Richard Guenther <rguenther@suse.de>
9799 Diego Novillo <dnovillo@google.com>
9800
9801 * cgraph.c (cgraph_add_new_function): Remove gimplification.
9802 * cgraphunit.c (cgraph_expand_function): Do not emit
9803 associated thunks from here.
9804 (cgraph_emit_thunks): New.
9805 (cgraph_optimize): Call it.
9806 Return if any IPA pass finds an error.
9807 * varasm.c (finish_aliases_1): Ignore errorneous aliases used
9808 by thunks.
9809
98102009-09-03 Simon Baldwin <simonb@google.com>
9811 Rafael Espindola <espindola@google.com>
9812 Richard Guenther <rguenther@suse.de>
9813 Doug Kwan <dougkwan@google.com>
9814 Diego Novillo <dnovillo@google.com>
9815
9816 * tree.c: Include tree-pass.h, langhooks-def.h,
9817 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h.
9818 (free_lang_data_in_type): New.
9819 (need_assembler_name_p): New.
9820 (free_lang_data_in_block): New.
9821 (free_lang_data_in_decl): New.
9822 (struct free_lang_data_d): New.
9823 (add_tree_to_fld_list): New.
9824 (find_decls_types_r): New.
9825 (get_eh_types_for_runtime): New.
9826 (find_decls_types_in_eh_region): New.
9827 (find_decls_types_in_node): New.
9828 (find_decls_types_in_var): New.
9829 (free_lang_data_in_cgraph): New.
9830 (free_lang_data): New.
9831 (gate_free_lang_data): New.
9832 (pass_ipa_free_lang_data): New.
9833
98342009-09-03 Diego Novillo <dnovillo@google.com>
9835
9836 * timevar.def (TV_IPA_FREE_LANG_DATA): Define.
9837 * langhooks.h (struct lang_hooks): Add field free_lang_data.
9838 (lang_hooks): Remove const qualifier.
9839 * ipa.c (cgraph_remove_unreachable_nodes): Call
9840 remove_unreachable_alias_pairs.
9841 * except.c (add_type_for_runtime): Check if TYPE has
9842 already been converted.
9843 (lookup_type_for_runtime): Likewise.
9844 (check_handled): Handle converted types.
9845 * varasm.c (remove_unreachable_alias_pairs): New.
9846 * gimple.c: Include demangle.h.
9847 (gimple_decl_printable_name): New.
9848 (gimple_fold_obj_type_ref): New.
9849 * gimple.h (gimple_decl_printable_name): Declare.
9850 (gimple_fold_obj_type_ref): Declare.
9851 * passes.c (init_optimization_passes): Add pass
9852 pass_ipa_free_lang_data.
9853 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define.
9854 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA.
9855
98562009-09-03 Diego Novillo <dnovillo@google.com>
9857
9858 * c-lang.c (lang_hooks): Remove const qualifier.
9859
02c8b4f8
LR
98602009-09-02 Loren James Rittle <ljrittle@acm.org>
9861
9862 * doc/install.texi (*-*-freebsd*): Update target information.
9863
adee59ae
AS
98642009-09-02 Anatoly Sokolov <aesok@post.ru>
9865
9866 * hard-reg-set.h (call_fixed_regs): Remove.
9867 * reginfo.c (call_fixed_regs): Remove.
9868 (init_reg_sets_1): Remove initialization of call_fixed_regs.
9869 (globalize_reg): Don't use call_fixed_regs.
9870 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of
9871 call_fixed_regs.
9872
28ed065e
MM
98732009-09-01 Michael Matz <matz@suse.de>
9874
9875 * expr.h (emit_storent_insn, expand_expr_real_1,
9876 expand_expr_real_2): Declare.
9877 * expr.c (emit_storent_insn, expand_expr_real_1,
9878 expand_expr_real_2): Export.
ed9d5a4a 9879 (store_expr): Setting and evaluating dont_return_target is useless.
28ed065e
MM
9880 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR,
9881 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable.
9882 * except.c (expand_resx_expr): Rename to ...
9883 (expand_resx_stmt): ... this. Rewrite to take gimple statement.
9884 * except.h (expand_resx_stmt): Declare.
9885 * stmt.c: Add include gimple.h
9886 (expand_asm_expr): Rename to ...
9887 (expand_asm_stmt): ... this. Rewrite to take gimple statement.
9888 (expand_case): Rewrite to take gimple statement.
9889 * tree.h (expand_asm_stmt): Declare.
9890 (expand_case): Change prototype.
9891 * Makefile.in (stmt.o): Depend on gimple.h.
9892 * builtins.c (expand_builtin_synchronize): Build gimple asm
9893 statement, not an ASM_EXPR.
9894 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r,
9895 gimple_to_tree, release_stmt_tree): Remove.
9896 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or
9897 ggc_free, but hold comparison code and operands separately.
9898 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot.
9899 (expand_call_stmt, expand_gimple_stmt_1,
9900 expand_gimple_stmt): New helpers.
9901 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt,
9902 release_stmt_tree. Call expand_gimple_stmt instead.
9903 (expand_gimple_basic_block): Ditto.
9904
9905 * calls.c (emit_call_1): Don't look at EH regions here, make
9906 fntree parameter useless.
9907 (expand_call): New local rettype for TREE_TYPE(exp), use it
9908 throughout. Remove local p, use addr instead.
9909 Don't look at EH regions here.
9910
ce18efcb
VM
99112009-09-02 Vladimir Makarov <vmakarov@redhat.com>
9912
9913 * doc/invoke.texi (-fsched-pressure): Document it.
9914 (-fsched-reg-pressure-heuristic): Remove it.
14e58be0 9915
ce18efcb
VM
9916 * reload.c (ira.h): Include.
9917 (find_reloads): Add choosing reload on number of small spilled
9918 classes.
14e58be0 9919
ce18efcb
VM
9920 * haifa-sched.c (ira.h): Include.
9921 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure,
9922 saved_reg_pressure, curr_reg_live, saved_reg_live,
9923 region_ref_regs): New variables.
9924 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death,
9925 initiate_reg_pressure_info, setup_ref_regs,
9926 initiate_bb_reg_pressure_info, save_reg_pressure,
9927 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New
9928 functions.
9929 (setup_insn_reg_pressure_info): New function.
9930 (rank_for_schedule): Add pressure checking and insn issue time.
9931 Remove comparison of insn reg weights.
9932 (ready_sort): Set insn reg pressure info.
9933 (update_register_pressure, setup_insn_max_reg_pressure,
9934 update_reg_and_insn_max_reg_pressure,
9935 sched_setup_bb_reg_pressure_info): New functions.
ed9d5a4a 9936 (schedule_insn): Add code for printing and updating reg pressure info.
ce18efcb
VM
9937 (find_set_reg_weight, find_insn_reg_weight): Remove.
9938 (ok_for_early_queue_removal): Do nothing if pressure_only_p.
9939 (debug_ready_list): Print reg pressure info.
9940 (schedule_block): Ditto. Check insn issue time.
9941 (sched_init): Set up sched_pressure_p. Allocate and set up some
9942 reg pressure related info.
9943 (sched_finish): Free some reg pressure related info.
9944 (fix_tick_ready): Make insn always ready if pressure_p.
9945 (init_h_i_d): Don't call find_insn_reg_weight.
9946 (haifa_finish_h_i_d): Free insn reg pressure info.
14e58be0 9947
ce18efcb
VM
9948 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
9949 ira_memory_move_cost, ira_class_hard_regs,
9950 ira_class_hard_regs_num, ira_no_alloc_regs,
9951 ira_available_class_regs, ira_reg_class_cover_size,
9952 ira_reg_class_cover, ira_class_translate): Move to ira.h.
9953
9954 * ira-lives.c (single_reg_class): Check mode to find how many
9955 registers are necessary for operand.
9956 (ira_implicitly_set_insn_hard_regs): New.
9957
9958 * common.opt (fsched-pressure): New options.
9959 (fsched-reg-pressure-heuristic): Remove.
9960
9961 * ira.c (setup_eliminable_regset): Rename to
9962 ira_setup_eliminable_regset. Make it external.
9963 (expand_reg_info): Pass cover class to setup_reg_classes.
9964 (ira): Call resize_reg_info instead of allocate_reg_info.
9965
9966 * sched-deps.c: Include ira.h.
9967 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New.
9968 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses,
9969 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth,
9970 mark_insn_hard_regno_birth, mark_insn_reg_birth,
9971 mark_pseudo_death, mark_hard_regno_death, mark_reg_death,
9972 mark_insn_reg_store, mark_insn_reg_clobber,
9973 setup_insn_reg_pressure_info): New.
9974 (sched_analyze_1): Update implicit_reg_pending_uses.
9975 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs.
9976 Use them to create dependencies. Set insn reg uses and pressure
9977 info. Process reg_pending_uses in one place.
9978 (free_deps): Free implicit sets.
9979 (remove_from_deps): Remove implicit sets if necessary. Check
9980 implicit sets when clearing reg_last_in_use.
9981 (init_deps_global): Clear implicit_reg_pending_clobbers and
9982 implicit_reg_pending_uses.
14e58be0 9983
ce18efcb
VM
9984 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs,
9985 ira_memory_move_cost, ira_class_hard_regs,
9986 ira_class_hard_regs_num, ira_no_alloc_regs,
9987 ira_available_class_regs, ira_reg_class_cover_size,
9988 ira_reg_class_cover, ira_class_translate): Move from ira-int.h.
9989 (ira_setup_eliminable_regset, ira_set_pseudo_classes,
9990 ira_implicitly_set_insn_hard_regs): New prototypes.
14e58be0 9991
ce18efcb
VM
9992 * ira-costs.c (pseudo_classes_defined_p, allocno_p,
9993 cost_elements_num): New variables.
9994 (allocno_costs, total_costs): Rename to costs and
9995 total_allocno_costs.
9996 (COSTS_OF_ALLOCNO): Rename to COSTS.
9997 (allocno_pref): Rename to pref.
9998 (allocno_pref_buffer): Rename to pref_buffer.
9999 (common_classes): Rename to regno_cover_class.
10000 (COST_INDEX): New.
10001 (record_reg_classes): Set allocno attributes only if allocno_p.
ed9d5a4a 10002 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM.
ce18efcb
VM
10003 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM
10004 and COSTS_OF_ALLOCNO.
10005 (print_costs): Rename to print_allocno_costs.
10006 (print_pseudo_costs): New.
10007 (process_bb_node_for_costs): Split into 2 functions with new
10008 function process_bb_for_costs. Pass BB to process_bb_for_costs.
10009 (find_allocno_class_costs): Rename to find_costs_and_classes. Add
10010 new parameter dump_file. Use cost_elements_num instead of
10011 ira_allocnos_num. Make one iteration if preferred classes were
10012 already calculated for scheduler. Make 2 versions of code
10013 depending on allocno_p.
10014 (setup_allocno_cover_class_and_costs): Check allocno_p. Use
10015 regno_cover_class and COSTS instead of common_classes and
10016 COSTS_OF_ALLOCNO.
10017 (init_costs, finish_costs): New.
10018 (ira_costs): Set up allocno_p and cost_elements_num. Call
10019 init_costs and finish_costs.
10020 (ira_set_pseudo_classes): New.
10021
10022 * rtl.h (allocate_reg_info): Remove.
10023 (resize_reg_info): Change return type.
10024 (reg_cover_class): New.
10025 (setup_reg_classes): Add new parameter.
14e58be0 10026
ce18efcb 10027 * sched-int.h (struct deps_reg): New member implicit_sets.
ed9d5a4a 10028 (sched_pressure_p, sched_regno_cover_class): New external definitions.
ce18efcb
VM
10029 (INCREASE_BITS): New macro.
10030 (struct reg_pressure_data, struct reg_use_data): New.
10031 (struct _haifa_insn_data): Remove reg_weight. Add members
10032 reg_pressure, reg_use_list, reg_set_list, and
10033 reg_pressure_excess_cost_change.
10034 (struct deps): New member implicit_sets.
10035 (pressure_p): New variable.
10036 (COVER_CLASS_BITS, INCREASE_BITS): New macros.
10037 (struct reg_pressure_data, struct reg_use_data): New.
10038 (INSN_REG_WEIGHT): Remove.
10039 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST,
ed9d5a4a 10040 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros.
ce18efcb
VM
10041 (sched_init_region_reg_pressure_info,
10042 sched_setup_bb_reg_pressure_info): New prototypes.
14e58be0
UB
10043
10044 * reginfo.c (struct reg_pref): New member coverclass.
ce18efcb
VM
10045 (reg_cover_class): New function.
10046 (reginfo_init, pass_reginfo_init): Move after free_reg_info.
10047 (reg_info_size): New variable.
10048 (allocate_reg_info): Make static. Setup reg_info_size.
10049 (resize_reg_info): Use reg_info_size. Return flag of resizing.
10050 (setup_reg_classes): Add a new parameter. Setup cover class too.
10051
ed9d5a4a
UB
10052 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to
10053 the dependencies.
ce18efcb
VM
10054
10055 * sched-rgn.c (deps_join): Set up implicit_sets.
10056 (schedule_region): Set up region and basic blocks pressure
10057 relative info.
14e58be0 10058
ce18efcb
VM
10059 * passes.c (init_optimization_passes): Move
10060 pass_subregs_of_mode_init before pass_sched.
14e58be0 10061
fef94f76
MJ
100622009-09-02 Martin Jambor <mjambor@suse.cz>
10063
10064 * tree-sra.c (struct access): New field grp_hint.
10065 (dump_access): Dump grp_hint.
10066 (sort_and_splice_var_accesses): Set grp_hint if a group is read
10067 multiple times.
10068 (analyze_access_subtree): Only scalarize accesses with grp_hint set or
10069 those which have been specifically read and somehow written to.
10070 (propagate_subacesses_accross_link): Set grp_hint of right child and
10071 also possibly of the left child.
10072
ded97380
JJ
100732009-09-02 Jakub Jelinek <jakub@redhat.com>
10074
10075 * tree-object-size.c (addr_object_size): Always use object_size_type
10076 0 or 2 when determining the pointer pointed object size.
10077
63838157
RG
100782009-09-02 Richard Guenther <rguenther@suse.de>
10079
10080 Revert
10081 2009-08-31 Richard Guenther <rguenther@suse.de>
10082
10083 * builtins.c (fold_builtin_memory_op): Use the alias oracle
10084 to query if the memory regions for memmove overlap.
10085 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
10086 asserts on pointers, instead deal with odd trees.
10087 (ptr_derefs_may_alias_p): Likewise.
10088 (refs_may_alias_p_1): Constructor bases also never alias.
10089
c68e4eed
CB
100902009-08-01 Christian Bruel <christian.bruel@st.com>
10091
10092 Revert:
10093 2009-07-31 Christian Bruel <christian.bruel@st.com>
10094 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
14e58be0 10095
8fc68cba
AO
100962009-09-01 Alexandre Oliva <aoliva@redhat.com>
10097
10098 * doc/invoke.texi (-fvar-tracking-assignments): New.
10099 (-fvar-tracking-assignments-toggle): New.
10100 (-fdump-final-insns=file): Mark filename as optional.
10101 (--param min-nondebug-insn-uid): New.
10102 (-gdwarf-@{version}): Mention version 4.
10103 * opts.c (common_handle_option): Accept it.
10104 * tree-vrp.c (find_assert_locations_1): Skip debug stmts.
10105 * regrename.c (regrename_optimize): Drop last. Don't count debug
10106 insns as uses. Don't reject change because of debug insn.
10107 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno
ed9d5a4a 10108 from the chain starter, and check for inexact matches in DEBUG_INSNS.
8fc68cba
AO
10109 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs.
10110 (build_def_use): Simplify and fix the marking of DEBUG_INSNs.
10111 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns.
10112 * fwprop.c (forward_propagate_and_simplify): ...into debug insns.
10113 * doc/gimple.texi (is_gimple_debug): New.
10114 (gimple_debug_bind_p): New.
10115 (is_gimple_call, gimple_assign_cast_p): End sentence with period.
10116 * doc/install.texi (bootstrap-debug): More details.
10117 (bootstrap-debug-big, bootstrap-debug-lean): Document.
10118 (bootstrap-debug-lib): More details.
10119 (bootstrap-debug-ckovw): Update.
10120 (bootstrap-time): New.
10121 * tree-into-ssa.c (mark_def_sites): Skip debug stmts.
10122 (insert_phi_nodes_for): Insert debug stmts.
10123 (rewrite_stmt): Take iterator. Insert debug stmts.
10124 (rewrite_enter_block): Adjust.
10125 (maybe_replace_use_in_debug_stmt): New.
10126 (rewrite_update_stmt): Use it.
10127 (mark_use_interesting): Return early for debug stmts.
10128 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug
10129 stmts before replacing stmt.
10130 (move_computations_stmt): Likewise.
10131 * ira-conflicts.c (add_copies): Skip debug insns.
10132 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns.
10133 (regstat_bb_compute_ri): Skip debug insns.
10134 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts.
10135 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
10136 check_loop_closed_ssa_stmt): Skip debug stmts.
10137 * tree-tailcall.c (find_tail_calls): Likewise.
10138 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise.
10139 * tree.h (MAY_HAVE_DEBUG_STMTS): New.
10140 (build_var_debug_value_stat): Declare.
10141 (build_var_debug_value): Define.
10142 (target_for_debug_bind): Declare.
10143 * reload.c (find_equiv_reg): Skip debug insns.
10144 * rtlanal.c (reg_used_between_p): Skip debug insns.
10145 (side_effects_p): Likewise.
10146 (canonicalize_condition): Likewise.
14e58be0 10147 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug
8fc68cba
AO
10148 insns never depend on debug insns.
10149 (create_ddg_dep_no_link): Likewise.
10150 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns.
10151 Don't add inter-loop dependencies for debug insns.
10152 (build_intra_loop_deps): Likewise.
10153 (create_ddg): Count debug insns.
10154 * ddg.h (struct ddg::num_debug): New.
10155 (num_backargs): Pair up with previous int field.
10156 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on
10157 -fcompare-debug-second.
10158 * final.c (get_attr_length_1): Skip debug insns.
10159 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE.
10160 * gcc.c (invoke_as): Call compare-debug-dump-opt.
10161 (driver_self_specs): Map -fdump-final-insns to
10162 -fdump-final-insns=..
10163 (get_local_tick): New.
10164 (compare_debug_dump_opt_spec_function): Test for . argument and
10165 compute output name. Compute temp output spec without flag name.
10166 Compute -frandom-seed.
10167 (OPT): Undef after use.
10168 * cfgloopanal.c (num_loop_insns): Skip debug insns.
10169 (average_num_loop_insns): Likewise.
10170 * params.h (MIN_NONDEBUG_INSN_UID): New.
10171 * gimple.def (GIMPLE_DEBUG): New.
10172 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts.
10173 * auto-inc-dec.c (merge_in_block): Skip debug insns.
10174 (merge_in_block): Fix whitespace.
10175 * toplev.c (flag_var_tracking): Update comment.
10176 (flag_var_tracking_assignments): New.
10177 (flag_var_tracking_assignments_toggle): New.
10178 (process_options): Don't open final insns dump file if we're not
10179 going to write to it. Compute defaults for var_tracking.
10180 * df-scan.c (df_insn_rescan_debug_internal): New.
10181 (df_uses_record): Handle debug insns.
10182 * haifa-sched.c (ready): Initialize n_debug.
10183 (contributes_to_priority): Skip debug insns.
10184 (dep_list_size): New.
10185 (priority): Use it.
14e58be0 10186 (rank_for_schedule): Likewise. Schedule debug insns as soon as
8fc68cba
AO
10187 they're ready. Disregard previous debug insns to make decisions.
10188 (queue_insn): Never queue debug insns.
10189 (ready_add, ready_remove_first, ready_remove): Count debug insns.
10190 (schedule_insn): Don't reject debug insns because of issue rate.
10191 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns.
10192 (queue_to_ready): Skip and discount debug insns.
10193 (choose_ready): Let debug insns through.
10194 (schedule_block): Check boundary debug insns. Discount debug
10195 insns, schedule them early. Adjust whitespace.
10196 (set_priorities): Check for boundary debug insns.
10197 (add_jump_dependencies): Use dep_list_size.
10198 (prev_non_location_insn): New.
10199 (check_cfg): Use it.
10200 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug
10201 stmts.
10202 (remove_unused_ivs): Reset debug stmts.
10203 * modulo-sched.c (const_iteration_count): Skip debug insns.
10204 (res_MII): Discount debug insns.
10205 (loop_single_full_bb_p): Skip debug insns.
10206 (sms_schedule): Likewise.
10207 (sms_schedule_by_order): Likewise.
10208 (ps_has_conflicts): Likewise.
10209 * caller-save.c (refmarker_fn): New.
10210 (save_call_clobbered_regs): Replace regs with saved mem in
10211 debug insns.
10212 (mark_referenced_regs): Take pointer, mark and arg. Adjust.
10213 Call refmarker_fn mark for hardregnos.
10214 (mark_reg_as_referenced): New.
10215 (replace_reg_with_saved_mem): New.
10216 * ipa-pure-const.c (check_stmt): Skip debug stmts.
10217 * cse.c (cse_insn): Canonicalize debug insns. Skip them when
10218 searching back.
10219 (cse_extended_basic_block): Skip debug insns.
10220 (count_reg_usage): Likewise.
10221 (is_dead_reg): New, split out of...
10222 (set_live_p): ... here.
10223 (insn_live_p): Use it for debug insns.
10224 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts.
10225 (execute_optimize_stdarg): Likewise.
10226 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
10227 * tree-ssa-propagate.c (substitute_and_fold): Don't regard
10228 changes in debug stmts as changes.
10229 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New.
10230 (moveup_expr): Don't move across debug insns. Don't move
10231 debug insn if it would create a bookkeeping block.
10232 (moveup_expr_cached): Don't use cache for debug insns that
10233 are heads of blocks.
10234 (compute_av_set_inside_bb): Skip debug insns.
10235 (sel_rank_for_schedule): Schedule debug insns first. Remove
10236 dead code.
10237 (block_valid_for_bookkeeping_p); Support lax searches.
10238 (create_block_for_bookkeeping): Adjust block numbers when
10239 encountering debug-only blocks.
10240 (find_place_for_bookkeeping): Deal with debug-only blocks.
10241 (generate_bookkeeping_insn): Accept no place to insert.
10242 (remove_temp_moveop_nops): New argument full_tidying.
10243 (prepare_place_to_insert): Deal with debug insns.
10244 (advance_state_on_fence): Debug insns don't start cycles.
10245 (update_boundaries): Take fence as argument. Deal with
10246 debug insns.
10247 (schedule_expr_on_boundary): No full_tidying on debug insns.
10248 (fill_insns): Deal with debug insns.
10249 (track_scheduled_insns_and_blocks): Don't count debug insns.
10250 (need_nop_to_preserve_insn_bb): New, split out of...
10251 (remove_insn_from_stream): ... this.
10252 (fur_orig_expr_not_found): Skip debug insns.
10253 * rtl.def (VALUE): Move up.
10254 (DEBUG_INSN): New.
ed9d5a4a 10255 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts.
8fc68cba
AO
10256 (nearest_common_dominator_of_uses): Take debug_stmts argument.
10257 Set it if debug stmts are found.
10258 (statement_sink_location): Skip debug stmts. Propagate
10259 moving defs into debug stmts.
10260 * ifcvt.c (first_active_insn): Skip debug insns.
10261 (last_active_insns): Likewise.
10262 (cond_exec_process_insns): Likewise.
10263 (noce_process_if_block): Likewise.
10264 (check_cond_move_block): Likewise.
10265 (cond_move_convert_if_block): Likewise.
10266 (block_jumps_and_fallthru_p): Likewise.
10267 (dead_or_predicable): Likewise.
10268 * dwarf2out.c (debug_str_hash_forced): New.
10269 (find_AT_string): Add comment.
10270 (gen_label_for_indirect_string): New.
10271 (get_debug_string_label): New.
10272 (AT_string_form): Use it.
10273 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV,
10274 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but
10275 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and
10276 several operations that cannot be represented with DWARF opcodes.
10277 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require
10278 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value.
10279 (dwarf2out_var_location): Take during-call mark into account.
10280 (output_indirect_string): Update comment. Output if there are
10281 label and references.
10282 (prune_indirect_string): New.
10283 (prune_unused_types): Call it if debug_str_hash_forced.
10284 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>:
10285 (dw_long_long_const): Remove.
10286 (struct dw_val_struct): Change val_long_long type to rtx.
10287 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for
10288 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair.
10289 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each
10290 component instead of HOST_BITS_PER_LONG.
14e58be0 10291 (output_loc_operands): Likewise. For const8* assert
8fc68cba
AO
10292 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64.
10293 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT
10294 rather than HOST_BITS_PER_LONG is >= 64.
10295 (add_AT_long_long): Remove val_hi and val_lo arguments, add
10296 val_const_double.
10297 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of
10298 HOST_BITS_PER_LONG for dw_val_class_long_long.
10299 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't
10300 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse.
10301 (dwarf_stack_op_name): Handle DW_OP_implicit_value and
10302 DW_OP_stack_value.
10303 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
10304 Handle DW_OP_implicit_value.
10305 (extract_int): Move prototype earlier.
10306 (mem_loc_descriptor): For SUBREG punt if inner
10307 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND
10308 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle
10309 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN,
10310 UMAX, SIGN_EXTRACT, ZERO_EXTRACT.
10311 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE
10312 instead of Pmode size.
10313 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE,
10314 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode,
10315 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs.
10316 (concat_loc_descriptor, concatn_loc_descriptor,
10317 loc_descriptor_from_tree_1): Adjust loc_descriptor callers.
10318 (add_location_or_const_value_attribute): Likewise. For single
10319 location loc_lists attempt to use add_const_value_attribute
10320 for constant decls. Add DW_AT_const_value even if
10321 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING
10322 in its expression.
10323 * cfgbuild.c (inside_basic_block_p): Handle debug insns.
10324 (control_flow_insn_p): Likewise.
ed9d5a4a 10325 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt.
8fc68cba
AO
10326 (separate_decls_in_region_debug_bind): New.
10327 (separate_decls_in_region): Process debug bind stmts afterwards.
10328 * recog.c (verify_changes): Handle debug insns.
10329 (extract_insn): Likewise.
10330 (peephole2_optimize): Skip debug insns.
10331 * dse.c (scan_insn): Skip debug insns.
10332 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument.
10333 Pass it on.
10334 (setup_id_for_insn): Handle debug insns.
10335 (maybe_tidy_empty_bb): Adjust whitespace.
10336 (tidy_control_flow): Skip debug insns.
10337 (sel_remove_insn): Adjust for debug insns.
10338 (sel_estimate_number_of_insns): Skip debug insns.
10339 (create_insn_rtx_from_pattern): Handle debug insns.
10340 (create_copy_of_insn_rtx): Likewise.
10341 * sel-sched-.h (sel_bb_end): Declare.
10342 (sel_bb_empty_or_nop_p): New.
10343 (get_all_loop_exits): Use it.
10344 (_eligible_successor_edge_p): Likewise.
10345 (return_nop_to_pool): Adjust.
10346 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts.
10347 * ira-lives.c (process_bb_node_lives): Skip debug insns.
10348 * gimple-pretty-print.c (dump_gimple_debug): New.
10349 (dump_gimple_stmt): Use it.
10350 (dump_bb_header): Skip gimple debug stmts.
10351 * regmove.c (optimize_reg_copy_1): Discount debug insns.
10352 (fixup_match_2): Likewise.
10353 (regmove_backward_pass): Likewise. Simplify combined
10354 replacement. Handle debug insns.
10355 * function.c (instantiate_virtual_regs): Handle debug insns.
10356 * function.h (struct emit_status): Add x_cur_debug_insn_uid.
10357 * print-rtl.h: Include cselib.h.
ed9d5a4a 10358 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs.
8fc68cba
AO
10359 * df.h (df_inns_rescan_debug_internal): Declare.
10360 * gcse.c (alloc_hash_table): Estimate n_insns.
10361 (cprop_insn): Don't regard debug insns as changes.
10362 (bypass_conditional_jumps): Skip debug insns.
10363 (one_pre_gcse_pass): Adjust.
10364 (one_code_hoisting_pass): Likewise.
10365 (compute_ld_motion_mems): Skip debug insns.
10366 (one_cprop_pass): Adjust.
10367 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts.
10368 (if_convertible_stmt_p): Handle debug stmts.
10369 * init-regs.c (initialize_uninitialized_regs): Skip debug insns.
10370 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts.
10371 * ira-build.c (create_bb_allocnos): Skip debug insns.
10372 * tree-flow-inline.h (has_zero_uses): Discount debug stmts.
10373 (has_single_use): Likewise.
10374 (single_imm_use): Likewise.
10375 (num_imm_uses): Likewise.
10376 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts.
10377 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts.
10378 (create_outofssa_var_map): Likewise.
10379 * lower-subreg.c (adjust_decomposed_uses): New.
10380 (resolve_debug): New.
10381 (decompose_multiword_subregs): Use it.
10382 * tree-dfa.c (find_referenced_vars): Skip debug stmts.
10383 * emit-rtl.c: Include params.h.
10384 (cur_debug_insn_uid): Define.
10385 (set_new_first_and_last_insn): Set cur_debug_insn_uid too.
10386 (copy_rtx_if_shared_1): Handle debug insns.
10387 (reset_used_flags): Likewise.
10388 (set_used_flags): LIkewise.
10389 (get_max_insn_count): New.
10390 (next_nondebug_insn): New.
10391 (prev_nondebug_insn): New.
10392 (make_debug_insn_raw): New.
10393 (emit_insn_before_noloc): Handle debug insns.
10394 (emit_jump_insn_before_noloc): Likewise.
10395 (emit_call_insn_before_noloc): Likewise.
10396 (emit_debug_insn_before_noloc): New.
10397 (emit_insn_after_noloc): Handle debug insns.
10398 (emit_jump_insn_after_noloc): Likewise.
10399 (emit_call_insn_after_noloc): Likewise.
10400 (emit_debug_insn_after_noloc): Likewise.
10401 (emit_insn_after): Take loc from earlier non-debug insn.
10402 (emit_jump_insn_after): Likewise.
10403 (emit_call_insn_after): Likewise.
10404 (emit_debug_insn_after_setloc): New.
10405 (emit_debug_insn_after): New.
10406 (emit_insn_before): Take loc from later non-debug insn.
10407 (emit_jump_insn_before): Likewise.
10408 (emit_call_insn_before): Likewise.
10409 (emit_debug_insn_before_setloc): New.
10410 (emit_debug_insn_before): New.
10411 (emit_insn): Handle debug insns.
10412 (emit_debug_insn): New.
10413 (emit_jump_insn): Handle debug insns.
10414 (emit_call_insn): Likewise.
10415 (emit): Likewise.
10416 (init_emit): Take min-nondebug-insn-uid into account.
10417 Initialize cur_debug_insn_uid.
10418 (emit_copy_of_insn_after): Handle debug insns.
10419 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite
10420 location of single rhs in place.
10421 (maybe_dump_rtl_for_gimple_stmt): Dump lineno.
10422 (floor_sdiv_adjust): New.
10423 (cell_sdiv_adjust): New.
10424 (cell_udiv_adjust): New.
10425 (round_sdiv_adjust): New.
10426 (round_udiv_adjust): New.
10427 (wrap_constant): Moved from cselib.
10428 (unwrap_constant): New.
10429 (expand_debug_expr): New.
10430 (expand_debug_locations): New.
10431 (expand_gimple_basic_block): Drop hiding redeclaration. Expand
10432 debug bind stmts.
10433 (gimple_expand_cfg): Expand debug locations.
10434 * cselib.c: Include tree-pass.h.
10435 (struct expand_value_data): New.
10436 (cselib_record_sets_hook): New.
10437 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New.
10438 (cselib_clear_table): Move, and implemnet in terms of...
10439 (cselib_reset_table_with_next_value): ... this.
10440 (cselib_get_next_unknown_value): New.
10441 (discard_useless_locs): Don't discard preserved values.
10442 (cselib_preserve_value): New.
10443 (cselib_preserved_value_p): New.
10444 (cselib_preserve_definitely): New.
10445 (cselib_clear_preserve): New.
10446 (cselib_preserve_only_values): New.
10447 (new_cselib_val): Take rtx argument. Dump it in details.
10448 (cselib_lookup_mem): Adjust.
10449 (expand_loc): Take regs_active in struct. Adjust. Silence
10450 dumps unless details are requested.
10451 (cselib_expand_value_rtx_cb): New.
10452 (cselib_expand_value_rtx): Rename and reimplment in terms of...
10453 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps
10454 without details. Copy more subregs. Try to resolve values
10455 using a callback. Wrap constants.
10456 (cselib_subst_to_values): Adjust.
10457 (cselib_log_lookup): New.
10458 (cselib_lookup): Call it.
ed9d5a4a 10459 (cselib_invalidate_regno): Don't count preserved values as useless.
8fc68cba
AO
10460 (cselib_invalidate_mem): Likewise.
10461 (cselib_record_set): Likewise.
10462 (struct set): Renamed to cselib_set, moved to cselib.h.
10463 (cselib_record_sets): Adjust. Call hook.
10464 (cselib_process_insn): Reset table when it would be cleared.
10465 (dump_cselib_val): New.
10466 (dump_cselib_table): New.
10467 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts.
10468 (remove_forwarder_block): Support moving debug stmts.
10469 * cselib.h (cselib_record_sets_hook): Declare.
10470 (cselib_expand_callback): New type.
10471 (cselib_expand_value_rtx_cb): Declare.
10472 (cselib_reset_table_with_next_value): Declare.
10473 (cselib_get_next_unknown_value): Declare.
10474 (cselib_preserve_value): Declare.
10475 (cselib_preserved_value_p): Declare.
10476 (cselib_preserve_only_values): Declare.
10477 (dump_cselib_table): Declare.
10478 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns.
10479 (try_crossjump_to_edge): Likewise.
10480 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after
10481 dominated blocks when debug stmts are present.
10482 * simplify-rtx.c (delegitimize_mem_from_attrs): New.
10483 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts.
10484 (set_var_live_on_entry): Likewise.
10485 * loop-invariant.c (find_invariants_bb): Skip debug insns.
10486 * cfglayout.c (curr_location, last_location): Make static.
10487 (set_curr_insn_source_location): Don't avoid bouncing.
10488 (get_curr_insn_source_location): New.
10489 (get_curr_insn_block): New.
10490 (duplicate_insn_chain): Handle debug insns.
10491 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate
10492 into debug stmts.
10493 * common.opt (fcompare-debug): Move to sort order.
10494 (fdump-unnumbered-links): Likewise.
10495 (fvar-tracking-assignments): New.
10496 (fvar-tracking-assignments-toggle): New.
10497 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks
10498 because of debug stmts.
10499 (mark_stmt_if_obviously_necessary): Mark debug stmts.
10500 (eliminate_unnecessary_stmts): Walk dominated blocks before
10501 dominators.
10502 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts.
10503 * ira.c (memref_used_between_p): Skip debug insns.
10504 (update_equiv_regs): Likewise.
10505 * sched-deps.c (sd_lists_size): Accept empty list.
10506 (sd_init_insn): Mark debug insns.
10507 (sd_finish_insn): Unmark them.
10508 (sd_add_dep): Reject non-debug deps on debug insns.
10509 (fixup_sched_groups): Give debug insns group treatment.
10510 Skip debug insns.
10511 (sched_analyze_reg): Don't mark debug insns for sched before call.
10512 (sched_analyze_2): Handle debug insns.
10513 (sched_analyze_insn): Compute next non-debug insn. Handle debug
10514 insns.
10515 (deps_analyze_insn): Handle debug insns.
10516 (deps_start_bb): Skip debug insns.
10517 (init_deps): Initialize last_debug_insn.
10518 * tree-ssa.c (target_for_debug_bind): New.
10519 (find_released_ssa_name): New.
10520 (propagate_var_def_into_debug_stmts): New.
10521 (propagate_defs_into_debug_stmts): New.
10522 (verify_ssa): Skip debug bind stmts without values.
10523 (warn_uninialized_vars): Skip debug stmts.
10524 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default.
10525 * rtl.c (rtx_equal_p_cb): Handle VALUEs.
10526 (rtx_equal_p): Likewise.
10527 * ira-costs.c (scan_one_insn): Skip debug insns.
10528 (process_bb_node_for_hard_reg_moves): Likewise.
10529 * rtl.h (DEBUG_INSN_P): New.
10530 (NONDEBUG_INSN_P): New.
10531 (MAY_HAVE_DEBUG_INSNS): New.
10532 (INSN_P): Accept debug insns.
10533 (RTX_FRAME_RELATED_P): Likewise.
10534 (INSN_DELETED_P): Likewise
10535 (PAT_VAR_LOCATION_DECL): New.
10536 (PAT_VAR_LOCATION_LOC): New.
10537 (PAT_VAR_OCATION_STATUS): New.
10538 (NOTE_VAR_LOCATION_DECL): Reimplement.
10539 (NOTE_VAR_LOCATION_LOC): Likewise.
10540 (NOTE_VAR_LOCATION_STATUS): Likewise.
10541 (INSN_VAR_LOCATION): New.
10542 (INSN_VAR_LOCATION_DECL): New.
10543 (INSN_VAR_LOCATION_LOC): New.
10544 (INSN_VAR_LOCATION_STATUS): New.
10545 (gen_rtx_UNKNOWN_VAR_LOC): New.
10546 (VAR_LOC_UNKNOWN_P): New.
10547 (NOTE_DURING_CALL_P): New.
10548 (SCHED_GROUP_P): Accept debug insns.
10549 (emit_debug_insn_before): Declare.
10550 (emit_debug_insn_before_noloc): Declare.
10551 (emit_debug_insn_beore_setloc): Declare.
10552 (emit_debug_insn_after): Declare.
10553 (emit_debug_insn_after_noloc): Declare.
10554 (emit_debug_insn_after_setloc): Declare.
10555 (emit_debug_insn): Declare.
10556 (make_debug_insn_raw): Declare.
10557 (prev_nondebug_insn): Declare.
10558 (next_nondebug_insn): Declare.
10559 (delegitimize_mem_from_attrs): Declare.
10560 (get_max_insn_count): Declare.
10561 (wrap_constant): Declare.
10562 (unwrap_constant): Declare.
10563 (get_curr_insn_source_location): Declare.
10564 (get_curr_insn_block): Declare.
10565 * tree-inline.c (insert_debug_decl_map): New.
10566 (processing_debug_stmt): New.
10567 (remap_decl): Don't create new mappings in debug stmts.
10568 (remap_gimple_op_r): Don't add references in debug stmts.
10569 (copy_tree_body_r): Likewise.
10570 (remap_gimple_stmt): Handle debug bind stmts.
10571 (copy_bb): Skip debug stmts.
10572 (copy_edges_for_bb): Likewise.
10573 (copy_debug_stmt): New.
10574 (copy_debug_stmts): New.
10575 (copy_body): Copy debug stmts at the end.
10576 (insert_init_debug_bind): New.
10577 (insert_init_stmt): Take id. Skip and emit debug stmts.
ed9d5a4a 10578 (setup_one_parameter): Remap variable earlier, register debug mapping.
8fc68cba
AO
10579 (estimate_num_insns): Skip debug stmts.
10580 (expand_call_inline): Preserve debug_map.
10581 (optimize_inline_calls): Check for no debug_stmts left-overs.
10582 (unsave_expr_now): Preserve debug_map.
10583 (copy_gimple_seq_and_replace_locals): Likewise.
10584 (tree_function_versioning): Check for no debug_stmts left-overs.
10585 Init and destroy debug_map as needed. Split edges unconditionally.
10586 (build_duplicate_type): Init and destroy debug_map as needed.
10587 * tree-inline.h: Include gimple.h instead of pointer-set.h.
10588 (struct copy_body_data): Add debug_stmts and debug_map.
10589 * sched-int.h (struct ready_list): Add n_debug.
10590 (struct deps): Add last_debug_insn.
10591 (DEBUG_INSN_SCHED_P): New.
10592 (BOUNDARY_DEBUG_INSN_P): New.
10593 (SCHEDULE_DEBUG_INSN_P): New.
10594 (sd_iterator_cond): Accept empty list.
10595 * combine.c (create_log_links): Skip debug insns.
10596 (combine_instructions): Likewise.
10597 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the
10598 return value is always unshared.
10599 (struct rtx_subst_pair): New.
10600 (auto_adjust_pair): New.
10601 (propagate_for_debug_subst): New.
10602 (propagate_for_debug): New.
10603 (try_combine): Skip debug insns. Propagate removed defs into
10604 debug insns.
10605 (next_nonnote_nondebug_insn): New.
10606 (distribute_notes): Use it. Skip debug insns.
10607 (distribute_links): Skip debug insns.
10608 * tree-outof-ssa.c (set_location_for_edge): Likewise.
10609 * resource.c (mark_target_live_regs): Likewise.
10610 * var-tracking.c: Include cselib.h and target.h.
10611 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and
10612 MO_VAL_SET.
10613 (micro_operation_type_name): New.
10614 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN.
10615 (struct micro_operation_def): Update comments.
10616 (decl_or_value): New type. Use instead of decls.
10617 (struct emit_note_data_def): Add vars.
10618 (struct attrs_def): Use decl_or_value.
10619 (struct variable_tracking_info_def): Add permp, flooded.
10620 (struct location_chain_def): Update comment.
10621 (struct variable_part_def): Use decl_or_value.
10622 (struct variable_def): Make var_part a variable length array.
10623 (valvar_pool): New.
10624 (scratch_regs): New.
10625 (cselib_hook_called): New.
10626 (dv_is_decl_p): New.
10627 (dv_is_value_p): New.
10628 (dv_as_decl): New.
10629 (dv_as_value): New.
10630 (dv_as_opaque): New.
10631 (dv_onepart_p): New.
10632 (dv_pool): New.
10633 (IS_DECL_CODE): New.
10634 (check_value_is_not_decl): New.
10635 (dv_from_decl): New.
10636 (dv_from_value): New.
10637 (dv_htab_hash): New.
10638 (variable_htab_hash): Use it.
10639 (variable_htab_eq): Support values.
10640 (variable_htab_free): Free from the right pool.
10641 (attrs_list_member, attrs_list_insert): Use decl_or_value.
10642 (attrs_list_union): Adjust.
10643 (attrs_list_mpdv_union): New.
10644 (tie_break_pointers): New.
10645 (canon_value_cmp): New.
10646 (unshare_variable): Return possibly-modified slot.
10647 (vars_copy_1): Adjust.
10648 (var_reg_decl_set): Adjust. Split out of...
10649 (var_reg_set): ... this.
10650 (get_init_value): Adjust.
10651 (var_reg_delete_and_set): Adjust.
10652 (var_reg_delete): Adjust.
10653 (var_regno_delete): Adjust.
10654 (var_mem_decl_set): Split out of...
10655 (var_mem_set): ... this.
10656 (var_mem_delete_and_set): Adjust.
10657 (var_mem_delete): Adjust.
10658 (val_store): New.
10659 (val_reset): New.
10660 (val_resolve): New.
10661 (variable_union): Adjust. Speed up merge of 1-part vars.
10662 (variable_canonicalize): Use unshared slot.
10663 (VALUED_RECURSED_INTO): New.
10664 (find_loc_in_1pdv): New.
10665 (struct dfset_merge): New.
10666 (insert_into_intersection): New.
10667 (intersect_loc_chains): New.
10668 (loc_cmp): New.
10669 (canonicalize_loc_order_check): New.
10670 (canonicalize_values_mark): New.
10671 (canonicalize_values_star): New.
10672 (variable_merge_over_cur): New.
10673 (variable_merge_over_src): New.
10674 (dataflow_set_merge): New.
10675 (dataflow_set_equiv_regs): New.
10676 (remove_duplicate_values): New.
10677 (struct dfset_post_merge): New.
10678 (variable_post_merge_new_vals): New.
10679 (variable_post_merge_perm_vals): New.
10680 (dataflow_post_merge_adjust): New.
10681 (find_mem_expr_in_1pdv): New.
10682 (dataflow_set_preserve_mem_locs): New.
10683 (dataflow_set_remove_mem_locs): New.
10684 (dataflow_set_clear_at_call): New.
10685 (onepart_variable_different_p): New.
10686 (variable_different_p): Use it.
ed9d5a4a 10687 (dataflow_set_different_1): Adjust. Make detailed dump more verbose.
8fc68cba
AO
10688 (track_expr_p): Add need_rtl parameter. Don't generate rtl
10689 if not needed.
10690 (track_loc_p): Pass it true.
10691 (struct count_use_info): New.
10692 (find_use_val): New.
10693 (replace_expr_with_values): New.
10694 (log_op_type): New.
10695 (use_type): New, partially split out of...
10696 (count_uses): ... this. Count new micro-ops.
10697 (count_uses_1): Adjust.
10698 (count_stores): Adjust.
10699 (count_with_sets): New.
10700 (VAL_NEEDS_RESOLUTION): New.
10701 (VAL_HOLDS_TRACK_EXPR): New.
10702 (VAL_EXPR_IS_COPIED): New.
10703 (VAL_EXPR_IS_CLOBBERED): New.
10704 (add_uses): Adjust. Generate new micro-ops.
10705 (add_uses_1): Adjust.
10706 (add_stores): Generate new micro-ops.
10707 (add_with_sets): New.
10708 (find_src_status): Adjust.
10709 (find_src_set_src): Adjust.
10710 (compute_bb_dataflow): Use dataflow_set_clear_at_call.
10711 Handle new micro-ops. Canonicalize value equivalances.
10712 (vt_find_locations): Compute total size of hash tables for
10713 dumping. Perform merge for var-tracking-assignments. Don't
10714 disregard single-block loops.
10715 (dump_attrs_list): Handle decl_or_value.
10716 (dump_variable): Take variable. Deal with decl_or_value.
10717 (dump_variable_slot): New.
10718 (dump_vars): Use it.
10719 (dump_dataflow_sets): Adjust.
10720 (set_slot_part): New, extended to support one-part variables
10721 after splitting out of...
10722 (set_variable_part): ... this.
10723 (clobber_slot_part): New, split out of...
10724 (clobber_variable_part): ... this.
10725 (delete_slot_part): New, split out of...
10726 (delete_variable_part): .... this.
10727 (check_wrap_constant): New.
10728 (vt_expand_loc_callback): New.
10729 (vt_expand_loc): New.
10730 (emit_note_insn_var_location): Adjust. Handle values. Handle
10731 EMIT_NOTE_AFTER_CALL_INSN.
10732 (emit_notes_for_differences_1): Adjust. Handle values.
10733 (emit_notes_for_differences_2): Likewise.
10734 (emit_notes_for_differences): Adjust.
ed9d5a4a
UB
10735 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes.
10736 Adjust. Handle new micro-ops.
8fc68cba
AO
10737 (vt_add_function_parameters): Adjust. Create and bind values.
10738 (vt_initialize): Adjust. Initialize scratch_regs and
10739 valvar_pool, flooded and perm.. Initialize and use cselib. Log
10740 operations. Move some code to count_with_sets and add_with_sets.
10741 (delete_debug_insns): New.
10742 (vt_debug_insns_local): New.
10743 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish
10744 cselib.
10745 (var_tracking_main): If var-tracking-assignments is enabled
10746 but var-tracking isn't, delete debug insns and leave. Likewise
10747 if we exceed limits or fail the stack adjustments tests, and
10748 after all var-tracking processing.
10749 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>:
10750 (dataflow_set): Add traversed_vars.
10751 (value_chain, const_value_chain): New typedefs.
10752 (value_chain_pool, value_chains): New variables.
10753 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain,
10754 add_value_chains, add_cselib_value_chains, remove_value_chain,
10755 remove_value_chains, remove_cselib_value_chains): New functions.
10756 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1,
10757 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New
10758 static inlines.
10759 (shared_hash_find_slot_unshare, shared_hash_find_slot,
10760 shared_hash_find_slot_noinsert, shared_hash_find): Update.
10761 (dst_can_be_shared): New variable.
10762 (unshare_variable): Unshare set->vars if shared, use shared_hash_*.
10763 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and
10764 different from set->vars, look up slot again instead of using the
10765 passed in slot.
10766 (dataflow_set_init): Initialize traversed_vars.
10767 (variable_union): Use shared_hash_*. Use initially NO_INSERT
10768 lookup if set->vars is shared. Don't keep slot cleared before
10769 calling unshare_variable. Unshare set->vars if needed. Adjust
10770 unshare_variable callers. Clear dst_can_be_shared if needed.
10771 Even ->refcount == 1 vars must be unshared if set->vars is shared
10772 and var needs to be modified.
10773 (dataflow_set_union): Set traversed_vars during canonicalization.
10774 (VALUE_CHANGED, DECL_CHANGED): Define.
14e58be0 10775 (set_dv_changed, dv_changed_p): New static inlines.
8fc68cba
AO
10776 (track_expr_p): Clear DECL_CHANGED.
10777 (dump_dataflow_sets): Set it.
10778 (variable_was_changed): Call set_dv_changed.
10779 (emit_note_insn_var_location): Likewise.
10780 (changed_variables_stack): New variable.
10781 (check_changed_vars_1, check_changed_vars_2): New functions.
10782 (emit_notes_for_changes): Do nothing if changed_variables is
10783 empty. Traverse changed_variables with check_changed_vars_1,
10784 call check_changed_vars_2 on each changed_variables_stack entry.
10785 (emit_notes_in_bb): Add SET argument. Just clear it at the
ed9d5a4a 10786 beginning, use it instead of local &set, don't destroy it at the end.
8fc68cba
AO
10787 (vt_emit_notes): Call dataflow_set_clear early on all
10788 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb
10789 computed set, dataflow_set_clear also VTI(bb)->in when we are
10790 done with the basic block. Initialize changed_variables_stack,
10791 free it afterwards. If ENABLE_CHECKING verify that after noting
10792 differences to an empty set value_chains hash table is empty.
10793 (vt_initialize): Initialize value_chains and value_chain_pool.
10794 (vt_finalize): Delete value_chains htab, free value_chain_pool.
10795 (variable_tracking_main): Call dump_dataflow_sets before calling
10796 vt_emit_notes, not after it.
10797 * tree-flow.h (propagate_defs_into_debug_stmts): Declare.
10798 (propagate_var_def_into_debug_stmts): Declare.
10799 * df-problems.c (df_lr_bb_local_compute): Skip debug insns.
10800 (df_set_note): Reject debug insns.
10801 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't
10802 add notes to debug insns.
10803 (df_note_bb_compute): Adjust. Likewise.
10804 (df_simulate_uses): Skip debug insns.
10805 (df_simulate_initialize_backwards): Likewise.
10806 * reg-stack.c (subst_stack_regs_in_debug_insn): New.
10807 (subst_stack_regs_pat): Reject debug insns.
10808 (convert_regs_1): Handle debug insns.
10809 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H.
10810 (print-rtl.o): Depend on cselib.h.
10811 (cselib.o): Depend on TREE_PASS_H.
10812 (var-tracking.o): Depend on cselib.h and TARGET_H.
ed9d5a4a 10813 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns.
8fc68cba
AO
10814 (init_ready_list): Skip boundary debug insns.
10815 (add_branch_dependences): Skip debug insns.
ed9d5a4a 10816 (free_block_dependencies): Check for blocks with only debug insns.
8fc68cba
AO
10817 (compute_priorities): Likewise.
10818 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG.
10819 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust
10820 all callers.
10821 (gimple_build_debug_bind_stat): New.
10822 (empty_body_p): Skip debug stmts.
10823 (gimple_has_side_effects): Likewise.
10824 (gimple_rhs_has_side_effects): Likewise.
10825 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New.
10826 (gimple_build_debug_bind_stat): Declare.
10827 (gimple_build_debug_bind): Define.
10828 (is_gimple_debug): New.
10829 (gimple_debug_bind_p): New.
10830 (gimple_debug_bind_get_var): New.
10831 (gimple_debug_bind_get_value): New.
10832 (gimple_debug_bind_get_value_ptr): New.
10833 (gimple_debug_bind_set_var): New.
10834 (gimple_debug_bind_set_value): New.
10835 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro.
10836 (gimple_debug_bind_reset_value): New.
10837 (gimple_debug_bind_has_value_p): New.
10838 (gsi_next_nondebug): New.
10839 (gsi_prev_nondebug): New.
10840 (gsi_start_nondebug_bb): New.
10841 (gsi_last_nondebug_bb): New.
10842 * sched-vis.c (print_pattern): Handle VAR_LOCATION.
10843 (print_insn): Handle DEBUG_INSN.
10844 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc
10845 of first insn prevail.
10846 (first_stmt): Skip debug stmts.
10847 (first_non_label_stmt): Likewise.
10848 (last_stmt): Likewise.
10849 (has_zero_uses_1): New.
10850 (single_imm_use_1): New.
10851 (verify_gimple_debug): New.
10852 (verify_types_in_gimple_stmt): Handle debug stmts.
10853 (verify_stmt): Likewise.
10854 (debug_loop_num): Skip debug stmts.
10855 (remove_edge_and_dominated_blocks): Remove dominators last.
ed9d5a4a 10856 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts.
8fc68cba
AO
10857 (linearize_expr): Likewise.
10858 * config/i386/i386.c (ix86_delegitimize_address): Call
10859 default implementation.
ed9d5a4a 10860 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns.
8fc68cba
AO
10861 (group_barrier_needed): Skip debug insns.
10862 (emit_insn_group_barriers): Likewise.
10863 (emit_all_insn_group_barriers): Likewise.
10864 (ia64_variable_issue): Handle debug insns.
10865 (ia64_dfa_new_cycle): Likewise.
10866 (final_emit_insn_group_barriers): Skip debug insns.
10867 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't
10868 def cfa without frame.
10869 (process_set): Likewise.
10870 (process_for_unwind_directive): Pass frame on.
10871 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
10872 (rs6000_delegitimize_address): New.
10873 (rs6000_debug_adjust_cost): Handle debug insns.
10874 (is_microcoded_insn): Likewise.
10875 (is_cracked_insn): Likewise.
10876 (is_nonpipeline_insn): Likewise.
10877 (insn_must_be_first_in_group): Likewise.
10878 (insn_must_be_last_in_group): Likewise.
10879 (force_new_group): Likewise.
10880 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block
10881 contains only debug insns.
10882 (rtl_merge_blocks): Skip debug insns.
10883 (purge_dead_edges): Likewise.
10884 (rtl_block_ends_with_call_p): Skip debug insns.
10885 * dce.c (deletable_insn_p): Handle VAR_LOCATION.
10886 (mark_reg_dependencies): Skip debug insns.
10887 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New.
ed9d5a4a 10888 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts.
8fc68cba
AO
10889 * tree-ssa-threadedge.c
10890 (record_temporary_equivalences_from_stmts): Skip debug stmts.
10891 * regcprop.c (replace_oldest_value_addr): Skip debug insns.
10892 (replace_oldest_value_mem): Use ALL_REGS for debug insns.
10893 (copyprop_hardreg_forward_1): Handle debug insns.
10894 * reload1.c (reload): Skip debug insns. Replace unassigned
10895 pseudos in debug insns with their equivalences.
10896 (eliminate_regs_in_insn): Skip debug insns.
10897 (emit_input_reload_insns): Skip debug insns at first, adjust
10898 them later.
10899 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts.
10900 (get_indirect_ref_operands): Pass opf_no_vops on.
10901 (get_expr_operands): Likewise. Skip debug stmts.
10902 (parse_ssa_operands): Scan debug insns with opf_no_vops.
10903
cd6ea7a2
RH
109042009-09-01 Richard Henderson <rth@redhat.com>
10905
14e58be0 10906 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate
cd6ea7a2
RH
10907 stmt_ends_pp_p statements at least once.
10908 * tree-vrp.c (vrp_initialize): Likewise.
10909 (vrp_visit_stmt): Be prepared for non-interesting stmts.
10910
d3bc57f2
DS
109112009-09-01 Dodji Seketeli <dodji@redhat.com>
10912
10913 PR bootstrap/41205
10914 Fix AIX bootstrap after PR debug/30161
10915 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen
10916 that is a GNU extension.
10917 (tmpl_value_parm_die_table): Move the definition of this global
10918 outside #ifdef DWARF2_DEBUGGING_INFO region.
10919
71c00b5c
RG
109202009-09-01 Richard Guenther <rguenther@suse.de>
10921
10922 * tree.c (tree_expr_size): New function.
10923 * tree.h (tree_expr_size): Declare.
10924 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment.
10925 * builtins.c (fold_builtin_memory_op): Use tree_expr_size.
10926 * langhooks.c (lhd_expr_size): Remove.
10927 * langhooks.h (struct lang_hooks): Remove expr_size.
10928 * explow.c (expr_size): Use tree_expr_size.
10929 (int_expr_size): Likewise.
10930 * langhooks-def.h (lhd_expr_size): Remove.
10931 (LANG_HOOKS_EXPR_SIZE): Likewise.
10932 (LANG_HOOKS_INITIALIZER): Adjust.
10933
58f986ca
RG
109342009-09-01 Richard Guenther <rguenther@suse.de>
10935
10936 * tree-flow.h (mark_addressable): Move declaration ...
10937 * tree.h (mark_addressable): ... here.
10938 * stmt.c (expand_asm_operands): Use mark_addressable, not
10939 lang_hooks.mark_addressable.
10940 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
10941 LANG_HOOKS_MARK_ADDRESSABLE.
10942 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook.
10943 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove.
10944
5fa162c0
CD
109452009-08-31 Chris Demetriou <cgd@google.com>
10946
10947 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never
10948 vectorize if not TARGET_SSE2.
10949
453503d6
DD
109502009-08-31 DJ Delorie <dj@redhat.com>
10951
10952 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor
10953 registers if no coprocessor is enabled.
10954
f9329c35
DS
109552009-08-31 Dodji Seketeli <dodji@redhat.com>
10956
10957 PR debug/30161
10958 * cgraph.h (cgraph_get_node): Declare ...
10959 * cgraph.c (cgraph_get_node): ... new function.
10960 * dwarf2out.c (gen_generic_params_dies,
10961 generic_parameter_die, tree_add_const_value_attribute_for_decl,
10962 make_ith_pack_parameter_name,
10963 append_entry_to_tmpl_value_parm_die_table,
10964 gen_remaining_tmpl_value_param_die_attribute): New functions.
10965 (gen_subprogram_die): Generate debug info for template parameters
10966 if debug info level is higher than DINFO_LEVEL_TERSE.
10967 Use tree_add_const_value_attribute_for_decl instead of
10968 tree_add_const_value_attribute.
10969 (gen_const_die): Use tree_add_const_value_attribute_for_decl
10970 instead of tree_add_const_value_attribute.
10971 (gen_struct_or_union_type_die): Generate debug
10972 info for template parameters if debug info level is higher than
10973 DINFO_LEVEL_TERSE.
10974 (tree_add_const_value_attribute): Handle integral and pointer
10975 constants. Update comment.
10976 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param.
10977 (dwarf_attr_name): Support DW_AT_GNU_template_name.
10978 (reference_to_unused): Fix thinko. Remove redundant predicates from
10979 tests.
10980 (tree_add_const_value_attribute): Make this work for constant
10981 expressions only.
10982 tree_add_const_value_attribute_for_decl is to be used for variable
10983 DECLs now.
10984 (add_location_or_const_value_attribute): Use
10985 tree_add_const_value_attribute_for_decl now.
10986 (dwarf2out_finish): Emit the DW_AT_const_value attribute of
10987 DW_TAG_template_value_param DIEs after function DIEs have been
10988 emitted.
10989 * langhooks.h (lang_hooks_for_types): Add
10990 get_argument_pack_elems.
10991 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p.
10992 (lang_hooks): Added get_innermost_generic_parms,
10993 get_innermost_generic_args.
10994 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS,
10995 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS,
10996 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS,
10997 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks.
10998
e756464b
DD
109992009-08-31 DJ Delorie <dj@redhat.com>
11000
11001 * config/mep/mep.c (machine_function): Add frame_locked flag. Set
11002 it once we start generating the prologue or epilogue.
5fa162c0
CD
11003 (mep_call_saves_register): If the frame is locked, re-use
11004 cached values.
e756464b
DD
11005 (mep_assign_save_slots): New, broken out from mep_expand_prologue.
11006 (mep_expand_prologue): Call it.
11007 (mep_expand_epilogue): Likewise.
11008 (mep_start_function): Use the same logic as mep_expand_prologue.
11009 (mep_pass_by_reference): Make logic more readable.
11010 (mep_return_in_memory): Zero-sized objects are passed in memory.
11011 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes.
11012
e2abde5f
RG
110132009-08-31 Richard Guenther <rguenther@suse.de>
11014
11015 * builtins.c (fold_builtin_memory_op): Use the alias oracle
11016 to query if the memory regions for memmove overlap.
11017 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the
11018 asserts on pointers, instead deal with odd trees.
11019 (ptr_derefs_may_alias_p): Likewise.
11020 (refs_may_alias_p_1): Constructor bases also never alias.
11021
c4331d93
GP
110222009-08-31 Gerald Pfeifer <gerald@pfeifer.com>
11023
11024 * doc/install.texi (Final install): Adjust reference on where to
11025 order printed manuals.
11026
40a99889
OH
110272009-08-30 Olivier Hainque <hainque@adacore.com>
11028
11029 * dwarf2out.c (switch_to_frame_table_section): Move
11030 definition prior to first use.
11031
a778c4e7
RG
110322009-08-30 Richard Guenther <rguenther@suse.de>
11033
11034 PR tree-optimization/41186
11035 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove.
11036 (ao_ref_init_from_ptr_and_size): New function.
11037 (ref_maybe_used_by_call_p_1): Be more precise tracking
11038 used ranges for builtin functions.
11039 (ref_maybe_used_by_call_p): Adjust.
11040 (call_may_clobber_ref_p_1): Be more precise tracking clobbered
11041 ranges for builtin functions.
11042 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare.
11043
e85122be
AM
110442009-08-30 Alan Modra <amodra@bigpond.net.au>
11045
11046 PR target/41081
11047 * fwprop.c (get_reg_use_in): Delete.
11048 (free_load_extend): New function.
11049 (forward_propagate_subreg): Use it.
11050
2d606e03
KK
110512009-08-29 Kaz Kojima <kkojima@gcc.gnu.org>
11052
11053 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf.
11054
ce557b74
KT
110552009-08-29 Kai Tietz<kai.tietz@onevision.com>
11056
d1eda136
L
11057 PR/41184
11058 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for
11059 padding.
ce557b74 11060
6d83cb32
DR
110612009-08-29 Douglas B Rupp <rupp@gnat.com>
11062
11063 * crtstuff.c (__do_global_dtors_aux): Use atexit if no
11064 fini or fini_array section.
11065
211694b6
SP
110662009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11067
11068 * graphite-dependences.c (graphite_legal_transform_bb): Call
11069 pbb_remove_duplicate_pdrs.
11070 * graphite-poly.c (can_collapse_pdr): Removed.
11071 (pdr_find_duplicate): Removed.
11072 (can_collapse_pdrs): New.
11073 (pbb_remove_duplicate_pdrs): New.
11074 (new_poly_dr): Do not look for duplicates.
11075 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed.
11076 (PBB_PDR_DUPLICATES_REMOVED): New.
11077 (pbb_remove_duplicate_pdrs): Declared.
11078
7bd2a8a7
SP
110792009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11080
11081 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust
11082 the strides by multiplying by PDR_NB_REFS.
11083 * graphite-poly.c (can_collapse_pdr): New.
11084 (pdr_find_duplicate): New.
11085 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs.
11086 Initialize PDR_NB_REFS.
11087 * graphite-poly.h (struct poly_dr): Add field nb_refs.
11088 (PDR_NB_REFS): New.
11089 (new_poly_dr): Number of subscripts is a graphite_dim_t.
11090
93b2db87
SP
110912009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11092
11093 PR middle-end/40965
11094 * graphite-poly.c (apply_poly_transforms): Remove legality test before
11095 any transform.
11096
d8eeb078
SP
110972009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11098
11099 * graphite-dependences.c (pddr_original_scattering): Return NULL
11100 for read-read dependence relations.
11101 * graphite-poly.h (enum poly_dr_type): Fix comment.
11102 (pdr_read_p): New.
11103 (pdr_write_p): New.
11104 (pdr_may_write_p): New.
11105
e6dec0fb
SP
111062009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11107
11108 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type.
11109 (struct poly_dr): Same.
11110 (new_poly_dr): Same.
11111 * graphite-poly.c (new_poly_dr): Same.
11112 * graphite-dependences.c (dot_deps): Disable call to system.
11113
3ff4c25d
CC
111142009-08-28 Cary Coutant <ccoutant@google.com>
11115
11116 PR debug/41063
11117 * dwarf2out.c (gen_type_die_with_usage): Use proper context for
11118 struct/union/enum types local to a function.
11119
baf4b881
KT
111202009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
11121 Sebastian Pop <sebastian.pop@amd.com>
11122
11123 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed
11124 pbb_strip_mine_time_depth. Changed the implementation so that
11125 transformation is expressed as a transformation on
11126 time (scatttering) dimensions. Also, ensures that the 2d+1
11127 scheduling format is preserved.
11128 (pbb_strip_mine_profitable_p): Profitability is based on the
11129 iteration number of a given time (scattering) dimension,
11130 and not on a original loop depth dimension.
11131 (pbb_strip_mine): Call pbb_number_of_iterations_at_time.
11132 (pbb_do_strip_mine): Call psct_dynamic_dim.
11133 * graphite-poly.c (pbb_number_of_iterations_at_time): New.
11134 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared.
11135 (pbb_nb_dynamic_scattering_transform): New.
11136 (psct_dynamic_dim): New.
11137
059a5f9f
KT
111382009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com>
11139
11140 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
11141 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset.
11142 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le.
11143 * graphite-interchange.c (build_linearized_memory_access): Same.
11144 (memory_stride_in_loop): Same.
11145
afae0207
SP
111462009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11147
11148 * graphite-dependences.c (pddr_original_scattering): New.
11149 (graphite_legal_transform_dr): Call pddr_original_scattering.
11150 (dot_deps_1): New.
11151 (dot_deps): New.
11152 * graphite-dependences.h (dot_deps): Declared.
11153 * graphite-poly.c (new_poly_dr): Initialize PDR_ID.
11154 (print_pdr): Print PDR_ID.
11155 * graphite-poly.h (struct poly_dr): Add field id.
11156 (PDR_ID): New.
11157 (pbb_index): New.
11158 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment.
11159
f8e0bb8b
SP
111602009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11161
11162 * graphite-dependences.c (graphite_carried_dependence_level_k): Do
11163 not delete the original dependence relation.
11164
e37f165f
SP
111652009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11166
11167 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr.
11168 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p.
11169 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p.
11170 (free_poly_ddr): New.
11171 (pddr_is_empty): New.
11172 (dependence_polyhedron_1): Now returns a poly_ddr_p.
11173 (dependence_polyhedron): Same. Remove useless gcc_assert.
11174 Remove fprintfs.
11175 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr.
11176 (graphite_carried_dependence_level_k): Call pddr_is_empty.
11177 * graphite-dependences.h (enum poly_dependence_kind): New.
11178 (poly_dr_pair): Renamed poly_ddr. Added a field kind.
11179 (PDRP_SOURCE): Renamed PDDR_SOURCE.
11180 (PDRP_SINK): Renamed PDDR_SINK.
11181 (PDRP_DDP): Renamed PDDR_DDP.
11182 (PDDR_KIND): New.
11183 (free_poly_ddr): Declared.
11184 * graphite-poly.c (new_scop): Use the new hash function names.
11185 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs
11186 into original_pddrs.
11187 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS.
11188
45e76e9f
SP
111892009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11190
11191 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper
11192 bounds with LT_EXPR to make niter analysis more precise on code
11193 generated by Graphite.
11194
66b466c3
SP
111952009-08-28 Sebastian Pop <sebastian.pop@amd.com>
11196
11197 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting.
11198 (graphite_legal_transform_bb): Same.
11199 (poly_drs_may_alias_p): Same.
11200
81fa17da
RG
112012009-08-28 Richard Guenther <rguenther@suse.de>
11202
11203 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS.
11204
a858e912
JB
112052009-08-28 Jan Beulich <jbeulich@novell.com>
11206
11207 * config/i386/netware.c: Include langhooks.h.
11208 (i386_nlm_encode_section_info): Simplify.
11209 (netware_override_options): Delete.
11210 * config/i386/netware.h (netware_override_options): Delete
11211 declaration.
11212 (OVERRIDE_OPTIONS): Delete definition.
11213 (SUBTARGET_OVERRIDE_OPTIONS): Define.
11214 (ASM_COMMENT_START): Define.
11215 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
11216
39ba7b7d
JB
112172009-08-28 Jan Beulich <jbeulich@novell.com>
11218
11219 * configure.ac: For in-tree ld, do a plain version check to
11220 determine whether comdat groups are supported.
11221 * configure: Regenerate.
11222
7e49a4b3
OH
112232009-08-28 Olivier Hainque <hainque@adacore.com>
11224
11225 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro,
11226 always defined. Reflect definition or absence of such for
11227 COLLECT_EXPORT_LIST. Readability helper.
11228 (scanfilter): New enum, to help control what symbols
11229 are to be considered or ignored by scan_prog_file.
11230 (enum pass): Rename as "scanpass", moved together with scanfilter
11231 prior to scan_prog_file's prototype.
11232 (scan_prog_file): Accept and honor scanpass and scanfilter arguments.
11233 Group prototype with the scanpass/scanfilter definitions, factorize
11234 head comments for the several implementations at the prototype.
11235 (main): Reorganize the first pass link control to let AIX
11236 drag only the needed frame tables in executables. Prevent
11237 frame tables collection during the scan aimed at static ctors.
11238 Pre-link and scan for frame tables later to compensate.
11239 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro.
11240 A C statement to issue assembly directives that create a reference
11241 to the given DWARF table identifier label from the current function
11242 section.
11243 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument
11244 to differentiate first time section entry. Only emit a .data
11245 tables start identifier label the first time around.
11246 (switch_to_frame_table_section): New function. Helper for
11247 output_call_frame_info to switch possibly BACK into the eh_frame
11248 or the debug_frame section depending on FOR_EH.
11249 (output_call_frame_info): Use helper to first enter the proper
11250 frame section.
11251 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to
11252 emit a link to the frame table start label from each function
11253 section.
11254 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
11255 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF.
11256 * config/rs6000/rs6000-protos.h: Declare it.
11257 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define.
11258
a7d6f306
KK
112592009-08-27 Kaz Kojima <kkojima@gcc.gnu.org>
11260
11261 * config/sh/sh.c (split_branches): Check the result of
11262 next_active_insn.
11263
715fda99
SE
112642009-08-27 Steve Ellcey <sje@cup.hp.com>
11265
11266 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when
11267 using -pthread -fopenmp
11268
2711df18
GP
112692009-08-27 Gerald Pfeifer <gerald@pfeifer.com>
11270
11271 * doc/service.texi (service directory): Update URL.
11272
2b3b22d3
UB
112732009-08-27 Uros Bizjak <ubizjak@gmail.com>
11274
11275 PR rtl-optimization/40861
11276 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to
11277 extract word from a multi-word subreg for negative byte positions.
11278
30ed9d3d
TG
112792009-08-27 Tristan Gingold <gingold@adacore.com>
11280 Douglas B Rupp <rupp@gnat.com>
11281
2b3b22d3 11282 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry.
30ed9d3d
TG
11283 (SECTION_VMS_OVERLAY): Define.
11284 (ia64_vms_common_object_attribute): Added. Handle the "common_object"
11285 attribute.
11286 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op
11287 for common_object.
11288 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for
11289 common_object declarations.
11290 (ia64_section_type_flags): Set section flag for common_object.
11291 * config/ia64/ia64-protos.h
11292 (ia64_vms_output_aligned_decl_common): Declare.
11293 (ia64_vms_elf_asm_named_section): Declare.
11294
f994f296
MM
112952009-08-27 Michael Matz <matz@suse.de>
11296
11297 * expr.c (expand_expr_real_2): New function taking exploded
11298 unary or binary expression, split out from ...
11299 (expand_expr_real_1): ... here. Move over all unary/binary
11300 switch parts to above function, in particular these codes:
11301 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR,
11302 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR,
11303 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR,
11304 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR,
11305 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR,
11306 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR,
11307 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR,
11308 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR,
11309 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR,
11310 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR,
11311 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR,
11312 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
11313 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR,
11314 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR,
11315 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR,
11316 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR,
11317 VEC_PACK_FIX_TRUNC_EXPR.
11318 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the
11319 full expression.
11320
c6a21142
RG
113212009-08-27 Richard Guenther <rguenther@suse.de>
11322
11323 * gengtype.c (main): Handle uint64_t.
11324 * ipa-utils.c (get_base_var): Indent properly.
11325 * tree-ssa-live.c (debug_scope_block): New function.
11326 * tree-flow.h (debug_scope_block): Declare.
11327 * tree-ssa-copy.c (replace_exp_1): Add vertical space.
11328 * basic-block.h (enum profile_status): Rename to
11329 enum profile_status_d.
11330 (x_profile_status): Adjust type.
11331
7842a9db
DS
113322009-08-27 Dodji Seketeli <dodji@redhat.com>
11333
d1eda136 11334 PR debug/41170
7842a9db
DS
11335 * dwarf2out.c (get_context_die): Declare this static function.
11336 (gen_type_die_with_usage): Make sure a DIE is a generated for
11337 the context of a typedef.
11338
98f6d48a
AS
113392009-08-26 Anatoly Sokolov <aesok@post.ru>
11340
11341 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack
11342 switch.
11343
6f5a62e9
RS
113442009-08-26 Richard Sandiford <rdsandiford@googlemail.com>
11345
11346 * config/mips/mips-protos.h (mips_output_sync): Declare.
11347 (mips_sync_loop_insns): Likewise.
11348 (mips_output_sync_loop): Replace first two parameters with an rtx.
11349 * config/mips/mips.c (mips_multi_member): New structure.
11350 (mips_multi_members): New variable.
11351 (mips_multi_start): New function.
11352 (mips_multi_add): Likewise.
11353 (mips_multi_add_insn): Likewise.
11354 (mips_multi_add_label): Likewise.
11355 (mips_multi_last_index): Likewise.
11356 (mips_multi_copy_insn): Likewise.
11357 (mips_multi_set_operand): Likewise.
11358 (mips_multi_write): Likewise.
11359 (mips_print_operand_punctuation): Remove '%|' and '%-'.
11360 (mips_init_print_operand_punct): Update accordingly.
11361 (mips_start_ll_sc_sync_block): New function.
11362 (mips_end_ll_sc_sync_block): Likewise.
11363 (mips_output_sync): Likewise.
11364 (mips_sync_insn1_template): Likewise.
11365 (mips_sync_insn2_template): Likewise.
11366 (mips_get_sync_operand): Likewise.
11367 (mips_process_sync_loop): Likewise.
11368 (mips_output_sync_loop): Use mips_process_sync_loop.
11369 (mips_sync_loop_insns): New function.
11370 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete.
11371 (MIPS_COMPARE_AND_SWAP_12): Likewise.
11372 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise.
11373 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise.
11374 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise.
11375 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise.
11376 (MIPS_SYNC_OLD_OP_12): Likewise.
11377 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise.
11378 (MIPS_SYNC_NEW_OP_12): Likewise.
11379 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise.
11380 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise.
11381 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise.
11382 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise.
11383 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise.
11384 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise.
11385 * config/mips/mips.md (sync_mem): New attribute.
11386 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise.
11387 (sync_exclusive_mask, sync_required_oldval): Likewise.
11388 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise.
11389 (sync_release_barrier): Likewise.
11390 (length): Handle sync loops.
11391 (sync): Use mips_output_sync.
11392 * config/mips/sync.md (*memory_barrier): Use mips_output_sync.
11393 (sync_compare_and_swap<mode>): Set the new sync_* attributes
11394 and use mips_output_sync_loop.
11395 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise.
11396 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
11397 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise.
11398 (sync_old_add<mode>, sync_old_sub<mode>): Likewise.
11399 (sync_new_add<mode>, sync_new_sub<mode>): Likewise.
11400 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise.
11401 (sync_new_<optab><mode>, sync_nand<mode>): Likewise.
11402 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise.
11403 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise.
11404
6b8b9e42
RG
114052009-08-26 Richard Guenther <rguenther@suse.de>
11406
11407 PR middle-end/41163
11408 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if
11409 the types to not match.
11410 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR
11411 verification.
11412 * tree-ssa.c (useless_type_conversion_p): Conversions to
11413 pointers to unprototyped functions are useless.
11414
bacd3fb6
RG
114152009-08-26 Richard Guenther <rguenther@suse.de>
11416
5fa162c0
CD
11417 * tree-ssa-structalias.c (create_variable_info_for): Remove strange
11418 whole-program condition, prepare to be called for non-globals.
bacd3fb6
RG
11419 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE
11420 params build a representative with known type and track its fields.
11421
7b3d1847
UB
114222009-08-26 Uros Bizjak <ubizjak@gmail.com>
11423
11424 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock
11425 clearing by a taken branch.
11426 (sync_<fetchop_name><mode>): Split when epilogue_completed is set,
11427 effectively after bbro pass.
11428 (sync_nand<mode>): Ditto.
11429 (sync_old_<fetchop_name><mode>): Ditto.
11430 (sync_old_nand<mode>): Ditto.
11431 (sync_new_<fetchop_name><mode>): Dito.
11432 (sync_new_nand<mode>): Ditto.
11433 (sync_compare_and_swap<mode>_1): Ditto.
11434 (*sync_compare_and_swap<mode>): Ditto.
11435 (sync_lock_test_and_set<mode>_1): Ditto.
11436 ("sync_lock_test_and_set<mode>): Ditto.
11437
edb89024
DR
114382009-08-25 Douglas B Rupp <rupp@gnat.com>
11439
11440 * hwint.h (HOST_LONG_FORMAT): New macro
11441 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c:
11442 Use HOST_PTR_PRINTF.
11443 * system.h (HOST_PTR_PRINTF): Resurrect old macro
11444 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document.
11445 (HOST_PTR_PRINTF): Document.
11446
5c1a2bb1
JH
114472009-08-25 Jan Hubicka <jh@suse.cz>
11448
11449 * config/i386/bmmintrin.h: Replace by #error.
11450
11451 Revert:
11452 Michael Meissner <michael.meissner@amd.com>
11453 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
11454 Tony Linthicum <tony.linthicum@amd.com>
11455
11456 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5.
11457 (TARGET_ROUND): New macro for the round/ptest instructions which
11458 are shared between SSE4.1 and SSE5.
11459 (OPTION_MASK_ISA_ROUND): Ditto.
11460 (OPTION_ISA_ROUND): Ditto.
11461 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich.
11462 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support.
11463
11464 * config/i386/i386.opt (-msse5): New switch for SSE5 support.
11465 (-mfused-madd): New switch to give users control over whether the
11466 compiler optimizes to use the multiply/add SSE5 instructions.
11467
11468 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5.
11469 (ix86_handle_option): Turn off 3dnow if -msse5.
11470 (override_options): Add SSE5 support.
11471 (print_operand): %Y prints comparison codes for SSE5 com/pcom
11472 instructions.
11473 (ix86_expand_sse_movcc): Add SSE5 support.
11474 (ix86_expand_sse5_unpack): New function to use pperm to unpack a
11475 vector type to the next largest size.
11476 (ix86_expand_sse5_pack): New function to use pperm to pack a
11477 vector type to the next smallest size.
11478 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic.
11479 (IX86_BUILTIN_FMADDSD): Ditto.
11480 (IX86_BUILTIN_FMADDPS): Ditto.
11481 (IX86_BUILTIN_FMADDPD): Ditto.
11482 (IX86_BUILTIN_FMSUBSS): Ditto.
11483 (IX86_BUILTIN_FMSUBSD): Ditto.
11484 (IX86_BUILTIN_FMSUBPS): Ditto.
11485 (IX86_BUILTIN_FMSUBPD): Ditto.
11486 (IX86_BUILTIN_FNMADDSS): Ditto.
11487 (IX86_BUILTIN_FNMADDSD): Ditto.
11488 (IX86_BUILTIN_FNMADDPS): Ditto.
11489 (IX86_BUILTIN_FNMADDPD): Ditto.
11490 (IX86_BUILTIN_FNMSUBSS): Ditto.
11491 (IX86_BUILTIN_FNMSUBSD): Ditto.
11492 (IX86_BUILTIN_FNMSUBPS): Ditto.
11493 (IX86_BUILTIN_FNMSUBPD): Ditto.
11494 (IX86_BUILTIN_PCMOV_V2DI): Ditto.
11495 (IX86_BUILTIN_PCMOV_V4SI): Ditto.
11496 (IX86_BUILTIN_PCMOV_V8HI): Ditto.
11497 (IX86_BUILTIN_PCMOV_V16QI): Ditto.
11498 (IX86_BUILTIN_PCMOV_V4SF): Ditto.
11499 (IX86_BUILTIN_PCMOV_V2DF): Ditto.
11500 (IX86_BUILTIN_PPERM): Ditto.
11501 (IX86_BUILTIN_PERMPS): Ditto.
11502 (IX86_BUILTIN_PERMPD): Ditto.
11503 (IX86_BUILTIN_PMACSSWW): Ditto.
11504 (IX86_BUILTIN_PMACSWW): Ditto.
11505 (IX86_BUILTIN_PMACSSWD): Ditto.
11506 (IX86_BUILTIN_PMACSWD): Ditto.
11507 (IX86_BUILTIN_PMACSSDD): Ditto.
11508 (IX86_BUILTIN_PMACSDD): Ditto.
11509 (IX86_BUILTIN_PMACSSDQL): Ditto.
11510 (IX86_BUILTIN_PMACSSDQH): Ditto.
11511 (IX86_BUILTIN_PMACSDQL): Ditto.
11512 (IX86_BUILTIN_PMACSDQH): Ditto.
11513 (IX86_BUILTIN_PMADCSSWD): Ditto.
11514 (IX86_BUILTIN_PMADCSWD): Ditto.
11515 (IX86_BUILTIN_PHADDBW): Ditto.
11516 (IX86_BUILTIN_PHADDBD): Ditto.
11517 (IX86_BUILTIN_PHADDBQ): Ditto.
11518 (IX86_BUILTIN_PHADDWD): Ditto.
11519 (IX86_BUILTIN_PHADDWQ): Ditto.
11520 (IX86_BUILTIN_PHADDDQ): Ditto.
11521 (IX86_BUILTIN_PHADDUBW): Ditto.
11522 (IX86_BUILTIN_PHADDUBD): Ditto.
11523 (IX86_BUILTIN_PHADDUBQ): Ditto.
11524 (IX86_BUILTIN_PHADDUWD): Ditto.
11525 (IX86_BUILTIN_PHADDUWQ): Ditto.
11526 (IX86_BUILTIN_PHADDUDQ): Ditto.
11527 (IX86_BUILTIN_PHSUBBW): Ditto.
11528 (IX86_BUILTIN_PHSUBWD): Ditto.
11529 (IX86_BUILTIN_PHSUBDQ): Ditto.
11530 (IX86_BUILTIN_PROTB): Ditto.
11531 (IX86_BUILTIN_PROTW): Ditto.
11532 (IX86_BUILTIN_PROTD): Ditto.
11533 (IX86_BUILTIN_PROTQ): Ditto.
11534 (IX86_BUILTIN_PROTB_IMM): Ditto.
11535 (IX86_BUILTIN_PROTW_IMM): Ditto.
11536 (IX86_BUILTIN_PROTD_IMM): Ditto.
11537 (IX86_BUILTIN_PROTQ_IMM): Ditto.
11538 (IX86_BUILTIN_PSHLB): Ditto.
11539 (IX86_BUILTIN_PSHLW): Ditto.
11540 (IX86_BUILTIN_PSHLD): Ditto.
11541 (IX86_BUILTIN_PSHLQ): Ditto.
11542 (IX86_BUILTIN_PSHAB): Ditto.
11543 (IX86_BUILTIN_PSHAW): Ditto.
11544 (IX86_BUILTIN_PSHAD): Ditto.
11545 (IX86_BUILTIN_PSHAQ): Ditto.
11546 (IX86_BUILTIN_FRCZSS): Ditto.
11547 (IX86_BUILTIN_FRCZSD): Ditto.
11548 (IX86_BUILTIN_FRCZPS): Ditto.
11549 (IX86_BUILTIN_FRCZPD): Ditto.
11550 (IX86_BUILTIN_CVTPH2PS): Ditto.
11551 (IX86_BUILTIN_CVTPS2PH): Ditto.
11552 (IX86_BUILTIN_COMEQSS): Ditto.
11553 (IX86_BUILTIN_COMNESS): Ditto.
11554 (IX86_BUILTIN_COMLTSS): Ditto.
11555 (IX86_BUILTIN_COMLESS): Ditto.
11556 (IX86_BUILTIN_COMGTSS): Ditto.
11557 (IX86_BUILTIN_COMGESS): Ditto.
11558 (IX86_BUILTIN_COMUEQSS): Ditto.
11559 (IX86_BUILTIN_COMUNESS): Ditto.
11560 (IX86_BUILTIN_COMULTSS): Ditto.
11561 (IX86_BUILTIN_COMULESS): Ditto.
11562 (IX86_BUILTIN_COMUGTSS): Ditto.
11563 (IX86_BUILTIN_COMUGESS): Ditto.
11564 (IX86_BUILTIN_COMORDSS): Ditto.
11565 (IX86_BUILTIN_COMUNORDSS): Ditto.
11566 (IX86_BUILTIN_COMFALSESS): Ditto.
11567 (IX86_BUILTIN_COMTRUESS): Ditto.
11568 (IX86_BUILTIN_COMEQSD): Ditto.
11569 (IX86_BUILTIN_COMNESD): Ditto.
11570 (IX86_BUILTIN_COMLTSD): Ditto.
11571 (IX86_BUILTIN_COMLESD): Ditto.
11572 (IX86_BUILTIN_COMGTSD): Ditto.
11573 (IX86_BUILTIN_COMGESD): Ditto.
11574 (IX86_BUILTIN_COMUEQSD): Ditto.
11575 (IX86_BUILTIN_COMUNESD): Ditto.
11576 (IX86_BUILTIN_COMULTSD): Ditto.
11577 (IX86_BUILTIN_COMULESD): Ditto.
11578 (IX86_BUILTIN_COMUGTSD): Ditto.
11579 (IX86_BUILTIN_COMUGESD): Ditto.
11580 (IX86_BUILTIN_COMORDSD): Ditto.
11581 (IX86_BUILTIN_COMUNORDSD): Ditto.
11582 (IX86_BUILTIN_COMFALSESD): Ditto.
11583 (IX86_BUILTIN_COMTRUESD): Ditto.
11584 (IX86_BUILTIN_COMEQPS): Ditto.
11585 (IX86_BUILTIN_COMNEPS): Ditto.
11586 (IX86_BUILTIN_COMLTPS): Ditto.
11587 (IX86_BUILTIN_COMLEPS): Ditto.
11588 (IX86_BUILTIN_COMGTPS): Ditto.
11589 (IX86_BUILTIN_COMGEPS): Ditto.
11590 (IX86_BUILTIN_COMUEQPS): Ditto.
11591 (IX86_BUILTIN_COMUNEPS): Ditto.
11592 (IX86_BUILTIN_COMULTPS): Ditto.
11593 (IX86_BUILTIN_COMULEPS): Ditto.
11594 (IX86_BUILTIN_COMUGTPS): Ditto.
11595 (IX86_BUILTIN_COMUGEPS): Ditto.
11596 (IX86_BUILTIN_COMORDPS): Ditto.
11597 (IX86_BUILTIN_COMUNORDPS): Ditto.
11598 (IX86_BUILTIN_COMFALSEPS): Ditto.
11599 (IX86_BUILTIN_COMTRUEPS): Ditto.
11600 (IX86_BUILTIN_COMEQPD): Ditto.
11601 (IX86_BUILTIN_COMNEPD): Ditto.
11602 (IX86_BUILTIN_COMLTPD): Ditto.
11603 (IX86_BUILTIN_COMLEPD): Ditto.
11604 (IX86_BUILTIN_COMGTPD): Ditto.
11605 (IX86_BUILTIN_COMGEPD): Ditto.
11606 (IX86_BUILTIN_COMUEQPD): Ditto.
11607 (IX86_BUILTIN_COMUNEPD): Ditto.
11608 (IX86_BUILTIN_COMULTPD): Ditto.
11609 (IX86_BUILTIN_COMULEPD): Ditto.
11610 (IX86_BUILTIN_COMUGTPD): Ditto.
11611 (IX86_BUILTIN_COMUGEPD): Ditto.
11612 (IX86_BUILTIN_COMORDPD): Ditto.
11613 (IX86_BUILTIN_COMUNORDPD): Ditto.
11614 (IX86_BUILTIN_COMFALSEPD): Ditto.
11615 (IX86_BUILTIN_COMTRUEPD): Ditto.
11616 (IX86_BUILTIN_PCOMEQUB): Ditto.
11617 (IX86_BUILTIN_PCOMNEUB): Ditto.
11618 (IX86_BUILTIN_PCOMLTUB): Ditto.
11619 (IX86_BUILTIN_PCOMLEUB): Ditto.
11620 (IX86_BUILTIN_PCOMGTUB): Ditto.
11621 (IX86_BUILTIN_PCOMGEUB): Ditto.
11622 (IX86_BUILTIN_PCOMFALSEUB): Ditto.
11623 (IX86_BUILTIN_PCOMTRUEUB): Ditto.
11624 (IX86_BUILTIN_PCOMEQUW): Ditto.
11625 (IX86_BUILTIN_PCOMNEUW): Ditto.
11626 (IX86_BUILTIN_PCOMLTUW): Ditto.
11627 (IX86_BUILTIN_PCOMLEUW): Ditto.
11628 (IX86_BUILTIN_PCOMGTUW): Ditto.
11629 (IX86_BUILTIN_PCOMGEUW): Ditto.
11630 (IX86_BUILTIN_PCOMFALSEUW): Ditto.
11631 (IX86_BUILTIN_PCOMTRUEUW): Ditto.
11632 (IX86_BUILTIN_PCOMEQUD): Ditto.
11633 (IX86_BUILTIN_PCOMNEUD): Ditto.
11634 (IX86_BUILTIN_PCOMLTUD): Ditto.
11635 (IX86_BUILTIN_PCOMLEUD): Ditto.
11636 (IX86_BUILTIN_PCOMGTUD): Ditto.
11637 (IX86_BUILTIN_PCOMGEUD): Ditto.
11638 (IX86_BUILTIN_PCOMFALSEUD): Ditto.
11639 (IX86_BUILTIN_PCOMTRUEUD): Ditto.
11640 (IX86_BUILTIN_PCOMEQUQ): Ditto.
11641 (IX86_BUILTIN_PCOMNEUQ): Ditto.
11642 (IX86_BUILTIN_PCOMLTUQ): Ditto.
11643 (IX86_BUILTIN_PCOMLEUQ): Ditto.
11644 (IX86_BUILTIN_PCOMGTUQ): Ditto.
11645 (IX86_BUILTIN_PCOMGEUQ): Ditto.
11646 (IX86_BUILTIN_PCOMFALSEUQ): Ditto.
11647 (IX86_BUILTIN_PCOMTRUEUQ): Ditto.
11648 (IX86_BUILTIN_PCOMEQB): Ditto.
11649 (IX86_BUILTIN_PCOMNEB): Ditto.
11650 (IX86_BUILTIN_PCOMLTB): Ditto.
11651 (IX86_BUILTIN_PCOMLEB): Ditto.
11652 (IX86_BUILTIN_PCOMGTB): Ditto.
11653 (IX86_BUILTIN_PCOMGEB): Ditto.
11654 (IX86_BUILTIN_PCOMFALSEB): Ditto.
11655 (IX86_BUILTIN_PCOMTRUEB): Ditto.
11656 (IX86_BUILTIN_PCOMEQW): Ditto.
11657 (IX86_BUILTIN_PCOMNEW): Ditto.
11658 (IX86_BUILTIN_PCOMLTW): Ditto.
11659 (IX86_BUILTIN_PCOMLEW): Ditto.
11660 (IX86_BUILTIN_PCOMGTW): Ditto.
11661 (IX86_BUILTIN_PCOMGEW): Ditto.
11662 (IX86_BUILTIN_PCOMFALSEW): Ditto.
11663 (IX86_BUILTIN_PCOMTRUEW): Ditto.
11664 (IX86_BUILTIN_PCOMEQD): Ditto.
11665 (IX86_BUILTIN_PCOMNED): Ditto.
11666 (IX86_BUILTIN_PCOMLTD): Ditto.
11667 (IX86_BUILTIN_PCOMLED): Ditto.
11668 (IX86_BUILTIN_PCOMGTD): Ditto.
11669 (IX86_BUILTIN_PCOMGED): Ditto.
11670 (IX86_BUILTIN_PCOMFALSED): Ditto.
11671 (IX86_BUILTIN_PCOMTRUED): Ditto.
11672 (IX86_BUILTIN_PCOMEQQ): Ditto.
11673 (IX86_BUILTIN_PCOMNEQ): Ditto.
11674 (IX86_BUILTIN_PCOMLTQ): Ditto.
11675 (IX86_BUILTIN_PCOMLEQ): Ditto.
11676 (IX86_BUILTIN_PCOMGTQ): Ditto.
11677 (IX86_BUILTIN_PCOMGEQ): Ditto.
11678 (IX86_BUILTIN_PCOMFALSEQ): Ditto.
11679 (IX86_BUILTIN_PCOMTRUEQ): Ditto.
11680 (enum multi_arg_type): New enum for describing the various SSE5
11681 intrinsic argument types.
11682 (bdesc_multi_arg): New table for SSE5 intrinsics.
11683 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support.
11684 (ix86_expand_multi_arg_builtin): New function for creating SSE5
11685 intrinsics.
11686 (ix86_expand_builtin): Add SSE5 intrinsic support.
11687 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4
11688 operand instructions.
11689 (ix86_expand_sse5_multiple_memory): New function to split the
11690 second memory reference from SSE5 instructions.
11691 (type_has_variadic_args_p): Delete in favor of stdarg_p.
11692 (ix86_return_pops_args): Use stdarg_p to determine if the function
11693 has variable arguments.
11694 (ix86_setup_incoming_varargs): Ditto.
11695 (x86_this_parameter): Ditto.
11696
11697 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add
11698 declaration.
11699 (ix86_expand_sse5_pack): Ditto.
11700 (ix86_sse5_valid_op_p): Ditto.
11701 (ix86_expand_sse5_multiple_memory): Ditto.
11702
11703 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC
11704 constant for SSE5 support.
11705 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto.
11706 (UNSPEC_SSE5_TRUEFALSE): Ditto.
11707 (UNSPEC_SSE5_PERMUTE): Ditto.
11708 (UNSPEC_SSE5_ASHIFT): Ditto.
11709 (UNSPEC_SSE5_LSHIFT): Ditto.
11710 (UNSPEC_FRCZ): Ditto.
11711 (UNSPEC_CVTPH2PS): Ditto.
11712 (UNSPEC_CVTPS2PH): Ditto.
11713 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons.
11714 (PCOM_TRUE): Ditto.
11715 (COM_FALSE_S): Ditto.
11716 (COM_FALSE_P): Ditto.
11717 (COM_TRUE_S): Ditto.
11718 (COM_TRUE_P): Ditto.
11719 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types.
11720 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg
11721 types.
11722 (memory attribute): Ditto.
11723 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
11724 Use SSE4_1_ROUND_* constants instead of hard coded numbers.
11725 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1.
11726 (floor<mode>2): Ditto.
11727 (ceil<mode>2): Ditto.
11728 (btrunc<mode>2): Ditto.
11729 (nearbyintdf2): Ditto.
11730 (nearbyintsf2): Ditto.
11731 (sse_setccsf): Disable if SSE5.
11732 (sse_setccdf): Ditto.
11733 (sse5_setcc<mode>): New support for SSE5 conditional move.
11734 (sse5_pcmov_<mode>): Ditto.
11735
11736 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5.
11737 (SSEMODEF4): Ditto.
11738 (SSEMODEF2P): Ditto.
11739 (ssemodesuffixf4): New mode attribute for SSE5.
11740 (ssemodesuffixf2s): Ditto.
11741 (ssemodesuffixf2c): Ditto.
11742 (sserotatemax): Ditto.
11743 (ssescalarmode): Ditto.
11744 (sse_maskcmpv4sf3): Disable if SSE5.
11745 (sse_maskcmpv2df3): Ditto.
11746 (sse_vmmaskcmpv4sf3): Ditto.
2b3b22d3 11747 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions.
5c1a2bb1
JH
11748 (sse5_vmfmadd<mode>4): Ditto.
11749 (sse5_fmsub<mode>4): Ditto.
11750 (sse5_vmfmsub<mode>4): Ditto.
11751 (sse5_fnmadd<mode>4): Ditto.
11752 (sse5_vmfnmadd<mode>4): Ditto.
11753 (sse5_fnmsub<mode>4): Ditto.
11754 (sse5_vmfnmsub<mode>4): Ditto.
11755 (sse5i_fmadd<mode>4): Ditto.
11756 (sse5i_fmsub<mode>4): Ditto.
11757 (sse5i_fnmadd<mode>4): Ditto.
11758 (sse5i_fnmsub<mode>4): Ditto.
11759 (sse5i_vmfmadd<mode>4): Ditto.
11760 (sse5i_vmfmsub<mode>4): Ditto.
11761 (sse5i_vmfnmadd<mode>4): Ditto.
11762 (sse5i_vmfnmsub<mode>4): Ditto.
11763 (mulv16qi3): Add SSE5 support.
11764 (mulv4si3): Ditto.
11765 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5.
11766 (sse2_mulv4si3): Disable if SSE5.
11767 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1.
11768 (sse4_1_roundps): Ditto.
11769 (sse4_1_roundsd): Ditto.
11770 (sse4_1_roundss): Ditto.
11771 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will
11772 be generated.
11773 (sse_maskcmpsf3): Ditto.
11774 (sse_vmmaskcmpv4sf3): Ditto.
11775 (sse2_maskcmpv2df3): Ditto.
11776 (sse2_maskcmpdf3): Ditto.
11777 (sse2_vmmaskcmpv2df3): Ditto.
11778 (sse2_eq<mode>3): Ditto.
11779 (sse2_gt<mode>3): Ditto.
11780 (sse5_pcmov_<mode>): Add SSE5 support.
11781 (vec_unpacku_hi_v16qi): Ditto.
11782 (vec_unpacks_hi_v16qi): Ditto.
11783 (vec_unpacku_lo_v16qi): Ditto.
11784 (vec_unpacks_lo_v16qi): Ditto.
11785 (vec_unpacku_hi_v8hi): Ditto.
11786 (vec_unpacks_hi_v8hi): Ditto.
11787 (vec_unpacku_lo_v8hi): Ditto.
11788 (vec_unpacks_lo_v8hi): Ditto.
11789 (vec_unpacku_hi_v4si): Ditto.
11790 (vec_unpacks_hi_v4si): Ditto.
11791 (vec_unpacku_lo_v4si): Ditto.
11792 (vec_unpacks_lo_v4si): Ditto.
11793 (sse5_pmacsww): New SSE5 intrinsic insn.
11794 (sse5_pmacssww): Ditto.
11795 (sse5_pmacsdd): Ditto.
11796 (sse5_pmacssdd): Ditto.
11797 (sse5_pmacssdql): Ditto.
11798 (sse5_pmacssdqh): Ditto.
11799 (sse5_pmacsdqh): Ditto.
11800 (sse5_pmacsswd): Ditto.
11801 (sse5_pmacswd): Ditto.
11802 (sse5_pmadcsswd): Ditto.
11803 (sse5_pmadcswd): Ditto.
11804 (sse5_pcmov_<move>): Conditional move support on SSE5.
11805 (sse5_phaddbw): New SSE5 intrinsic insn.
11806 (sse5_phaddbd): Ditto.
11807 (sse5_phaddbq): Ditto.
11808 (sse5_phaddwd): Ditto.
11809 (sse5_phaddwq): Ditto.
11810 (sse5_phadddq): Ditto.
11811 (sse5_phaddubw): Ditto.
11812 (sse5_phaddubd): Ditto.
11813 (sse5_phaddubq): Ditto.
11814 (sse5_phadduwd): Ditto.
11815 (sse5_phadduwq): Ditto.
11816 (sse5_phaddudq): Ditto.
11817 (sse5_phsubbw): Ditto.
11818 (sse5_phsubwd): Ditto.
11819 (sse5_phsubdq): Ditto.
11820 (sse5_pperm): Ditto.
11821 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5.
11822 (sse5_pperm_zero_v16qi_v8hi): Ditto.
11823 (sse5_pperm_sign_v8hi_v4si): Ditto.
11824 (sse5_pperm_zero_v8hi_v4si): Ditto.
11825 (sse5_pperm_sign_v4si_v2di): Ditto.
11826 (sse5_pperm_sign_v4si_v2di): Ditto.
11827 (sse5_pperm_pack_v2di_v4si): Ditto.
11828 (sse5_pperm_pack_v4si_v8hi): Ditto.
11829 (sse5_pperm_pack_v8hi_v16qi): Ditto.
11830 (sse5_perm<mode>): New SSE5 intrinsic insn.
11831 (rotl<mode>3): Ditto.
11832 (sse5_rotl<mode>3): Ditto.
11833 (sse5_ashl<mode>3): Ditto.
11834 (sse5_lshl<mode>3): Ditto.
11835 (sse5_frcz<mode>2): Ditto.
11836 (sse5s_frcz<mode>2): Ditto.
11837 (sse5_cvtph2ps): Ditto.
11838 (sse5_cvtps2ph): Ditto.
11839 (sse5_vmmaskcmp<mode>3): Ditto.
11840 (sse5_com_tf<mode>3): Ditto.
11841 (sse5_maskcmp<mode>3): Ditto.
11842 (sse5_maskcmp_uns<mode>3): Ditto.
11843 (sse5_maskcmp_uns2<mode>3): Ditto.
11844 (sse5_pcom_tf<mode>3): Ditto.
7b3d1847
UB
11845
11846 * config/i386/predicates.md (sse5_comparison_float_operator):
11847 New predicate to match the comparison operators supported by
11848 the SSE5 com instruction.
5c1a2bb1
JH
11849 (ix86_comparison_int_operator): New predicate to match just the
11850 signed int comparisons.
11851 (ix86_comparison_uns_operator): New predicate to match just the
11852 unsigned int comparisons.
11853
11854 * doc/invoke.texi (-msse5): Add documentation.
11855 (-mfused-madd): Ditto.
11856
11857 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics.
11858
11859 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and
11860 mmintrin-common.h.
11861 (x86_64-*-*): Ditto.
11862
11863 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit.
11864
11865 * config/i386/bmmintrin.h: New file, provide common x86 compiler
11866 intrinisics for SSE5.
11867
11868 * config/i386/smmintrin.h: Move instructions shared with SSE5 to
11869 mmintrin-common.h.
11870
11871 * config/i386/mmintrin-common.h: New file, to contain common
11872 instructions between SSE4.1 and SSE5.
11873
11874 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use
11875 FOREACH_FUNCTION_ARGS to iterate over the argument list.
11876 (gen_regparm_prefix): Ditto.
11877
11878 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use
11879 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use
11880 prototype_p to determine if a function is prototyped.
11881
f4e8a943
VV
118822009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com>
11883
11884 * c-common.c (c_common_reswords) add the alignof keyword,
11885 with same RID as __alignof and __alignof__
11886
7b5cbb57
AS
118872009-08-25 Anatoly Sokolov <aesok@post.ru>
11888
11889 * hooks.h (hook_bool_const_int_const_int_true): Declare.
11890 * hooks.c (hook_bool_const_int_const_int_true): New function.
11891 * target.h (struct gcc_target): Add can_eliminate field.
11892 * target-def.h (TARGET_CAN_ELIMINATE): Define.
11893 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE.
11894 * ira.c (setup_eliminable_regset): Use can_eliminate target hook.
11895 * reload1.c (update_eliminables, init_elim_table): (Ditto.).
11896 (elim_table): Revise comment.
11897 * system.h (CAN_ELIMINATE): Poison.
11898 * defaults.h (CAN_ELIMINATE): Remove.
11899 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
11900
11901 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro.
11902 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]:
11903 Define macro.
11904 (alpha_vms_can_eliminate): Declare as static, change return type to
11905 bool.
11906 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove.
11907
11908 * config/arm/arm.h (CAN_ELIMINATE): Remove macro.
11909 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro.
11910 (arm_can_eliminate): New function.
11911
11912 * config/avr/avr.h (CAN_ELIMINATE): Remove macro.
11913 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro.
11914 (avr_can_eliminate): Declare as static.
11915 * config/avr/avr-protos.h (avr_can_eliminate): Remove.
11916
11917 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro.
11918 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro.
11919 (bfin_can_eliminate): New function.
11920
11921 * config/crx/crx.h (CAN_ELIMINATE): Remove macro.
11922 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro.
11923 (crx_can_eliminate): New function.
7b3d1847 11924
7b5cbb57
AS
11925 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro.
11926 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro.
11927 (fr30_can_eliminate): New function.
11928
11929 * config/frv/frv.h (CAN_ELIMINATE): Remove macro.
11930 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro.
11931 (frv_can_eliminate): New function.
11932
11933 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro.
11934 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro.
11935 (h8300_can_eliminate): New function.
11936
11937 * config/i386/i386.h (CAN_ELIMINATE): Remove macro.
11938 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro.
11939 (i386_can_eliminate): Declare as static, change return type to bool.
11940 * config/i386/i386-protos.h (i386_can_eliminate): Remove.
11941
11942 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro.
11943 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro.
11944 (ia64_can_eliminate): New function.
11945
11946 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro.
11947 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro.
11948 (iq2000_can_eliminate): New function.
11949
11950 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro.
11951 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro.
11952 (m32r_can_eliminate): New function.
11953
11954 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro.
11955 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro.
11956 (m68hc11_can_eliminate): New function.
11957
11958 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro.
11959 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro.
11960 (m68k_can_eliminate): New function.
11961
11962 * config/mep/mep.h (CAN_ELIMINATE): Remove macro.
11963 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro.
11964 (mep_can_eliminate): New function.
11965
11966 * config/mips/mips.h (CAN_ELIMINATE): Remove macro.
11967 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro.
11968 (mips_can_eliminate): New function.
11969
11970 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro.
11971 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro.
11972 (rs6000_can_eliminate): New function.
11973
11974 * config/s390/s390.h (CAN_ELIMINATE): Remove macro.
11975 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro.
11976 (s390_can_eliminate): Declare as static.
11977 * config/s390/s390-protos.h (sparc_can_eliminate): Remove.
11978
11979 * config/score/score.h (CAN_ELIMINATE): Remove macro.
11980 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro.
11981 (score_can_eliminate): New function.
11982
11983 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro.
11984 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro.
11985 (sparc_can_eliminate): Declare as static.
11986 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove.
11987
11988 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro.
11989 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro.
11990 (xstormy16_can_eliminate): New function.
11991
11992 * config/v850/v850.h (CAN_ELIMINATE): Remove macro.
11993 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro.
11994 (v850_can_eliminate): New function.
11995
e7f8fba9
UB
119962009-08-25 Uros Bizjak <ubizjak@gmail.com>
11997
11998 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove.
11999 (*cmpdf_internal): Enable for all ALPHA_FPTM levels.
12000 (*movdfcc_ext[1234]): Disable for IEEE mode.
12001
f76d6e6f
EB
120022009-08-25 Eric Botcazou <ebotcazou@adacore.com>
12003
12004 * gimplify.c (prepare_gimple_addressable): New static function.
12005 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking
12006 it addressable.
12007 (gimplify_addr_expr): Invoke it similarly on the operand instead of
12008 manually fiddling with it.
12009
4df62c77
MM
120102009-08-25 Michael Matz <matz@suse.de>
12011
12012 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare.
12013 * dojump.c (do_jump_by_parts_greater): Take two operands instead of
12014 full expression.
12015 (do_jump_by_parts_equality, do_compare_and_jump): Ditto.
12016 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1.
12017 (do_jump): Split out code for simple binary comparisons into ...
12018 (do_jump_1): ... this, taking the individual operands and code.
12019 Change callers to helper function above accordingly.
12020 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary
12021 comparisons.
12022
8e7aa1f9
MM
120232009-08-25 Michael Matz <matz@suse.de>
12024
12025 * expr.h (struct separate_ops, sepops): New type for passing
12026 around an exploded simple expression.
12027 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr):
12028 Use this structure instead of expression tree.
12029 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole
12030 expression, only its type.
12031 (expand_vec_cond_expr): Take type and individual operands instead
12032 of full expression.
12033 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr,
12034 expand_vec_shift_expr): Change prototype accordingly.
12035 * tree-vect-stmts.c (vectorizable_condition): Change call of
12036 expand_vec_cond_expr_p to pass only type.
12037 * expr.c (do_store_flags): Change prototype and implementation
12038 to take an exploded expression.
12039 (expand_expr_real_1): New local ops initialized with details
12040 of the full expression. Use it instead of full
12041 expression in calls to do_store_flags, expand_vec_cond_expr,
12042 expand_widen_pattern_expr and expand_vec_shift_expr.
12043
b32e7cdb
MM
120442009-08-25 Michael Matz <matz@suse.de>
12045
12046 * expr.c (expand_expr_real_1): New local treeop0, treeop1,
12047 treeop2 initialized with first three operands of the full expression.
12048 Substitute all TREE_OPERAND (exp, [012]) calls with them.
12049
ce4a9de3
KT
120502009-08-25 Kai Tietz <kai.tietz@onevision.com>
12051
12052 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present.
12053 (__gthread_objc_condition_allocate): Mark arguments as unused.
12054 (__gthread_objc_condition_deallocate): Likewise.
12055 (__gthread_objc_condition_wait): Likewise.
12056 (__gthread_objc_condition_broadcast): Likewise.
12057 (__gthread_objc_condition_signal): Likewise.
12058 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer.
12059 (__gthread_objc_thread_id): Likewise.
12060
d69b8a03
JW
120612009-08-25 Janus Weil <janus@gcc.gnu.org>
12062
12063 PR middle-end/41149
12064 * tree-pretty-print.c (print_call_name): Print the correct call name
12065 for procedure pointer components.
12066
c3313412
SE
120672009-08-24 Steve Ellcey <sje@cup.hp.com>
12068
12069 * config/ia64/ia64.c (ia64_promote_function_mode): Call
12070 default_promote_function_mode when not VMS.
12071
c767899e
OH
120722009-08-24 Olivier Hainque <hainque@adacore.com>
12073
12074 * convert.c (convert_to_integer): Don't assume an input pointer is
12075 POINTER_SIZE wide. Fetch from the type instead.
12076
df58e648
RW
120772009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12078
12079 * configure.ac (AC_PREREQ): Bump to 2.64.
12080
2ef4a8e1
RAE
120812009-08-24 Rafael Avila de Espindola <espindola@google.com>
12082
12083 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove.
12084 (process_command): Don't search standard_exec_prefix_1 and
12085 standard_exec_prefix_2.
12086
c7e9ab97
RR
120872009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12088
7b3d1847
UB
12089 * config/arm/arm.c (output_return_instruction): Handle for
12090 unified syntax.
c7e9ab97 12091
3e2d9dcf
RR
120922009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12093
7b3d1847 12094 * config/arm/arm.c (arm_select_cc_mode): Handle subreg.
3e2d9dcf 12095
54f52b81
RR
120962009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12097
7b3d1847
UB
12098 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable.
12099 (*arm_movdf_vfp): Likewise.
54f52b81 12100
d44463a9
RR
121012009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12102
7b3d1847
UB
12103 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3.
12104 (vashr<mode>3): Rename from ashr<mode>3.
12105 (vlshr<mode>3): Rename from lshr<mode>3.
d44463a9 12106
b241b475
KT
121072009-08-24 Kai Tietz <kai.tietz@onevision.com>
12108
12109 PR/40786
5fa162c0 12110 * c-format.c (format_wanted_type): Add new member scalar_identity_flag.
b241b475
KT
12111 (check_format_info_main): Use scalar_identify_flag.
12112 (check_format_types): Check for scalar size identity if
12113 scalar_identify_flag is set.
12114 (printf_length_specs): Extend by new field.
12115 (asm_fprintf_length_specs): Likewise.
12116 (gcc_diag_length_specs): Likewise.
12117 (scanf_length_specs): Likewise.
12118 (strfmon_length_specs): Likewise.
12119 (gcc_gfc_length_specs): Likewise.
12120 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise.
12121 (ms_printf_flag_specs): Likewise.
12122 * c-format.h (format_length_info): Add new member scalar_identity_flag.
12123
8c40d061
UB
121242009-08-23 Uros Bizjak <ubizjak@gmail.com>
12125
12126 PR target/40718
12127 * config/i386/i386.c (*call_pop_1): Disable for sibling calls.
fe62197b 12128 (*call_value_pop_1): Ditto.
8c40d061 12129 (*sibcall_pop_1): New insn pattern.
fe62197b 12130 (*sibcall_value_pop_1): Ditto.
8c40d061 12131
0aa580f4
AM
121322009-08-23 Alan Modra <amodra@bigpond.net.au>
12133
12134 PR target/41081
12135 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64,
12136 ashrsi3_64): New.
12137
e25b7843
AM
121382009-08-23 Alan Modra <amodra@bigpond.net.au>
12139
12140 PR target/41081
12141 * fwprop.c (try_fwprop_subst): Allow multiple sets.
12142 (get_reg_use_in): New function.
12143 (forward_propagate_subreg): Propagate through subreg of zero_extend
12144 or sign_extend.
12145
79052be3
KK
121462009-08-22 Kaz Kojima <kkojima@gcc.gnu.org>
12147
12148 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define.
12149 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee.
12150
5213506e
RW
121512009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12152
70fa0efa
RW
12153 * configure.ac: Remove --with-datarootdir, --with-docdir,
12154 --with-htmldir switches. No need to call AC_SUBST for
12155 datarootdir, docdir, htmldir any more.
12156 * configure: Regenerate.
12157 * doc/install.texi (Configuration): Document --datarootdir,
12158 --docdir, --htmldir, --pdfdir; update documentation for
12159 --infodir, --mandir.
e7f8fba9
UB
12160 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11,
12161 M4 to 1.4.6.
70fa0efa 12162
5213506e
RW
12163 * aclocal.m4: Regenerate.
12164 * config.in: Regenerate.
12165 * configure: Regenerate.
12166
f2972bf8
DR
121672009-08-21 Douglas B Rupp <rupp@gnat.com>
12168 Olivier Hainque <hainque@adacore.com>
12169
12170 * config/ia64/ia64.c: Include libfuncs.h.
12171 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro.
12172 (ia64_expand_call): Use reg 25 on VMS.
12173 (ia64_initialize_trampoline): Fix for VMS ABI.
12174 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS.
12175 (ia64_function_arg): Initialize reg 25 on VMS.
12176 Fix OpenVMS ABI issues for varargs.
12177 For OpenVMS, emit the Argument Information register set in the
12178 incoming/sibcall case as well.
12179 (ia64_arg_type): New function.
12180 (ia64_function_arg_advance): Keep track of cum->words.
12181 Fix OpenVMS ABI issues for varargs.
12182 (ia64_function_value): On VMS, promote mode of non-aggregate types.
12183 (ia64_override_options): Set flag_no_common on VMS.
12184 (ia64_init_builtins): Disable FWRITE builtin.
12185 (ia64_asm_output_external): Call DO_CRTL_NAMES.
12186 (ia64_vms_init_libfuncs): Add decc$ routines.
12187 (ia64_vms_valid_pointer_mode): New function.
12188 (ia64_struct_value_rtx): Allways NULL_RTX on VMS.
12189 (ia64_promote_function_mode): New function
12190 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default.
12191 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS.
12192 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
12193 (INIT_CUMULATIVE_ARGS): Add atypes for VMS.
12194 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise.
12195 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit.
12196 Suppress trailing '#' if VALUE is numeric.
12197 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to
12198 ia64_promote_function_mode.
12199 (TARGET_VALID_POINTER_MODE): Define.
12200
30402573
MM
122012009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
12202
12203 PR target/40671
12204 * config/rs6000/rs6000.c (rs6000_override_options): Use
8c40d061 12205 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers.
30402573
MM
12206
12207 PR target/41145
12208 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix
c89f5009 12209 reporting of vector + decimal/boolean/complex error.
30402573 12210
08ffd640
JJ
122112009-08-21 Jakub Jelinek <jakub@redhat.com>
12212
12213 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of
12214 __vector double TYPE_DECL.
12215
46107b99
RE
122162009-08-21 Richard Earnshaw <rearnsha@arm.com>
12217
12218 * arm.h (MACHMODE): New define. Include insn-modes.h if available.
12219 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode.
12220 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode
12221 to pointer to enum machine_mode. Update all callers as needed.
12222
0f032845 122232009-08-21 Uros Bizjak <ubizjak@gmail.com>
7450a081
UB
12224
12225 * config/alpha/alpha.md (exception_receiver): Emit alternative
12226 GP load sequence if flag_reorder_blocks_and_partition is set.
12227 (*exception_receiver_2): Also enable when
12228 flag_reorder_blocks_and_partition is set.
12229
6d383c5e
MR
122302009-08-20 Matt Rice <ratmice@gmail.com>
12231 Diego Novillo <dnovillo@google.com>
12232
12233 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and
12234 tree-ssa-sccvn.h.
12235
29cc57cf
RG
122362009-08-20 Richard Guenther <rguenther@suse.de>
12237
8c40d061 12238 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define.
29cc57cf
RG
12239 * c-tree.h (c_dup_lang_specific_decl): Remove.
12240 (struct lang_decl, struct lang_type): Move definitions ...
12241 * c-lang.h: ... here. New file.
12242 * c-decl.c: Include c-lang.h.
12243 (c_dup_lang_specific_decl): Remove.
12244 * c-typeck.c: Include c-lang.h.
12245 * Makefile.in (c-decl.o): Add c-lang.h dependency.
12246 (c-typeck.o): Likewise.
12247 * c-config-lang.in (gtfiles): Add c-lang.h.
12248 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h
12249 like c-tree.h.
12250
7e9f2c0f
UB
122512009-08-20 Uros Bizjak <ubizjak@gmail.com>
12252
12253 * config/alpha/alpha.c (alpha_end_function): Do not clear
12254 crtl->emit structure and free insn locators if cfun->is_thunk is true,
12255 this is now handled in generic code.
12256
b0f86a7e
AK
122572009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
12258
12259 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro.
12260 (s390_z10_fix_long_loop_prediction): New function.
12261 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg.
12262 (s390_reorg): Walk over the INSNs and invoke
12263 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp.
12264
f1149235
AK
122652009-08-20 Andreas Krebbel <krebbel1@de.ibm.com>
12266
12267 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit",
12268 "*brx_64bit", "*brx_31bit"): New patterns.
12269 * config/s390/s390.c ('E'): New output modifier.
12270
a552b644 122712009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7e9f2c0f 12272 Richard Earnshaw <richard.earnshaw@arm.com>
a552b644 12273
7e9f2c0f
UB
12274 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT.
12275 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt.
a552b644 12276
2fd74bff
JDA
122772009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12278
12279 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New
12280 patterns.
12281 * pa.c (emit_move_sequence): Check if address of operand1 is valid
12282 for mode mode of operand0 when doing secondary reload for SAR.
12283
b8e444f4
JJ
122842009-08-19 Jakub Jelinek <jakub@redhat.com>
12285
12286 PR middle-end/41123
12287 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds
12288 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT.
12289
6c879482
JM
122902009-08-19 Jason Merrill <jason@redhat.com>
12291
12292 * doc/invoke.texi (C++ Dialect Options): Note change of minimum
12293 supported template depth in C++0x.
12294
dc0c6451
JJ
122952009-08-19 Jakub Jelinek <jakub@redhat.com>
12296
12297 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call
12298 free_after_compilation.
12299 * config/score/score7.c (score7_output_mi_thunk): Likewise.
12300 * config/score/score3.c (score3_output_mi_thunk): Likewise.
12301 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
12302 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
12303 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
12304 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
12305 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
12306
9302a061
ILT
123072009-08-19 Ian Lance Taylor <iant@google.com>
12308
12309 * doc/md.texi (Insn Canonicalizations): Correct canonicalization
12310 of (plus (mult (neg B) C) A).
12311
9600efe1
MM
123122009-08-18 Michael Matz <matz@suse.de>
12313
12314 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p
12315 instead of comparing TYPE_MAIN_VARIANT for equality.
12316 * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
12317 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto.
12318 * tree-vect-loop.c (vect_is_simple_reduction): Ditto.
12319 * gimplify.c (goa_lhs_expr_p): Ditto and use
12320 STRIP_USELESS_TYPE_CONVERSION.
12321
10174ddf
MM
123222009-08-18 Michael Matz <matz@suse.de>
12323
12324 * tree-ssa-structalias.c (create_variable_info_for): Also mark
12325 first field in a struct.
12326 (intra_create_variable_infos): Don't deal with flag_argument_noalias.
12327
e72cee90
UB
123282009-08-18 Uros Bizjak <ubizjak@gmail.com>
12329
12330 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn
12331 locators before emit_insn is called. Remove assert that
12332 cfun->is_thunk.
12333 (alpha_end_function): Clear crtl->emit structure and free insn
12334 locators if cfun->is_thunk is true.
12335
e31bcd1b
JM
123362009-08-18 Jason Merrill <jason@redhat.com>
12337
12338 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
12339 type if available.
12340 * configure.ac: Test for it.
12341 * configure, config.in: Regenerate.
12342 * doc/install.texi: Document --enable-gnu-unique-object.
12343
776e7174
RG
123442009-08-18 Richard Guenther <rguenther@suse.de>
12345
12346 PR middle-end/41094
12347 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to
12348 pow(x,y*z) only if x is nonnegative.
12349
68a31530
JJ
123502009-08-18 Jakub Jelinek <jakub@redhat.com>
12351
12352 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump
12353 on jumps.
12354
f3252b3c
JJ
12355 PR target/40971
12356 * config/rs6000/rs6000.c (rs6000_legitimize_address): For
12357 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000.
12358
65655f79
DD
123592009-08-17 DJ Delorie <dj@redhat.com>
12360
12361 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New.
12362 * config/m32c/prologue.md (epilogue_freit): New.
12363 (fset_b): New.
12364 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype.
12365 (bank_switch_p): Likewise.
12366 (fast_interrupt_p): Likewise.
12367 (interrupt_p): Likewise.
12368 (m32c_conditional_register_usage): Round memregs size up.
12369 (need_to_save): We only need to save $a0 when we use ENTER.
12370 (interrupt_p): Check for fast_interrupt too.
12371 (bank_switch_p): New.
12372 (fast_interrupt_p): New.
12373 (m32c_attribute_table): Add bank_switch and fast_interrupt.
12374 (m32c_emit_prolog): Support bank switching and fast interrupts.
12375 * doc/extend.texi (Function Attributes): Add bank_switch and
12376 fast_interrupt.
12377
dfe6ba6d
DR
123782009-08-17 Douglas B Rupp <rupp@gnat.com>
12379
12380 * config/alpha/alpha.c (vms_valid_pointer_mode): New function.
12381 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define.
12382
dcad28fd
DR
123832009-08-16 Douglas B Rupp <rupp@gnat.com>
12384
8c40d061 12385 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS.
dcad28fd
DR
12386 (menu): Add IA-64/VMS Options.
12387 (IA-64/VMS Options): Likewise.
12388
30fff3d8
RS
123892009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
12390
12391 PR target/38599
12392 * config/mips/mips.md (*lwxs): Use :P for pointer values.
12393
cf5fb4b0
RS
123942009-08-16 Richard Sandiford <rdsandiford@googlemail.com>
12395
12396 * config/mips/mips-protos.h (mips_push_asm_switch): New function.
12397 (mips_pop_asm_switch): Likewise.
12398 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace
12399 with...
12400 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
12401 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions.
12402 (mips_push_asm_switch, mips_pop_asm_switch): Likewise.
12403 (mips_print_operand_punctuation): Use them. Check mips_noreorder
12404 instead of set_noreorder.
12405 (mips_output_function_prologue): Use the new functions.
12406 (mips_output_function_epilogue): Likewise.
12407 (mips_need_noat_wrapper_p): New function, split out from...
12408 (mips_final_prescan_insn, mips_final_postscan_insn): ...here.
12409 Use mips_push_asm_switch and mips_pop_asm_switch.
12410 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch
12411 and mips_pop_asm_switch.
12412 (ASM_OUTPUT_REG_POP): Likewise.
12413 (DBR_OUTPUT_SEQEND): Remove boilerplate comment.
12414 Use mips_pop_asm_switch.
12415 (mips_asm_switch): New structure.
12416 (set_noreorder, set_nomacro): Replace with...
12417 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables.
12418 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro
12419 instead of set_nomacro.
12420 (fix_truncsfsi2_macro): Likewise.
12421 (cprestore): Likewise.
12422 (hazard): Use mips_noreorder instead of set_noreorder.
12423 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h.
12424
3eb96d01
UB
124252009-08-16 Uros Bizjak <ubizjak@gmail.com>
12426
8a067ce4 12427 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned
3eb96d01
UB
12428 from prev_active_insn.
12429
164709cf
AS
124302009-08-16 Anatoly Sokolov <aesok@post.ru>
12431
12432 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros.
12433 * config/avr/avr.c (avr_override_options): Initialize
12434 avr_current_arch variable.
12435 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or
12436 __AVR_HAVE_16BIT_SP__ according to the device type.
12437 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of
12438 TARGET_TINY_STACK.
12439 (expand_epilogue): Use correct QI mode frame pointer for tiny stack.
12440 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK.
12441
5782bb7a
DS
124422009-08-16 Dodji Seketeli <dodji@redhat.com>
12443
52ac997d 12444 PR debug/37801
5782bb7a
DS
12445 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on
12446 generating inlined subroutine die only. We shouldn't be
12447 called for anything else.
12448 (gen_block_die): Don't generate inline subroutine debug info for
12449 abstract blocks.
12450
07636543
SP
124512009-08-15 Sebastian Pop <sebastian.pop@amd.com>
12452
12453 * graphite-poly.c (print_pbb): Print PBB index.
12454
f263917c
SP
124552009-08-15 Sebastian Pop <sebastian.pop@amd.com>
12456
12457 PR middle-end/40981
12458 * graphite-interchange.c (ppl_max_for_le): Moved...
12459 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le.
12460 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of
12461 ppl_Pointset_Powerset_C_Polyhedron_maximize.
12462 * graphite-ppl.h (ppl_max_for_le): Declared.
12463
c54d7dc9
OR
124642009-08-14 Olatunji Ruwase <tjruwase@google.com>
12465
12466 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is
12467 supported on all platforms.
8c40d061
UB
12468 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname.
12469 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname.
c54d7dc9
OR
12470 * c-pragma.c: Likewise.
12471 * target-def.h (TARGET_INITIALIZER): Remove
12472 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
8c40d061 12473 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME.
c54d7dc9 12474
b874a90d
DR
124752009-08-14 Douglas B Rupp <rupp@gnat.com>
12476
12477 * config/ia64/fde-vms.c: New file.
12478 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg.
12479 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h
12480 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default.
12481 (uw_frame_state_for): Only register a personality routine if it is
12482 known to be compatible with our expectations.
12483 (_Unwind_FindEnclosingFunction, uw_frame_state_for):
12484 Declare unw_table_entry stack variable and
12485 mod all calls to _Unwind_FindTableEntry to add arg.
12486 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here.
12487 (_Unwind_FindTableEntry): Add arg to prototype.
12488
ac77b88e
EB
124892009-08-14 Eric Botcazou <ebotcazou@adacore.com>
12490
12491 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new
12492 field 'signal_pfs_loc'.
12493 (uw_frame_state_for): Remove duplicate code dealing with leaf
12494 procedures without unwind info.
12495 If in the frame after unwinding through a signal handler, restore
12496 the AR.PFS register instead of the CFM if AR.PFS has not been saved.
12497 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set
12498 'pfs_loc' to the AR.PFS location in the signal context; instead
12499 set 'signal_pfs_loc'.
12500 Manually generate the unwind info for the AR.PFS register.
12501 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT,
12502 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define.
12503 (ia64_handle_unwabi): Test 'fs->unwabi' against them.
12504 Do not set 'pfs_loc' to the AR.PFS location in the signal context;
12505 instead set 'signal_pfs_loc'.
12506 Remove code preventing the AR.PFS register from being restored
12507 from the signal context.
12508
c24db304
DR
125092009-08-14 Douglas B Rupp <rupp@gnat.com>
12510 Tristan Gingold <gingold@adacore.com>
12511
12512 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file.
12513 * config/ia64/t-vms: New file.
12514 * config/ia64/vms64.h: New file.
12515 * config/ia64/vms.h: New file.
12516 * config/ia64/vms-crtinit.asm: New file.
12517 * config/ia64/vms_symvec_libgcc_s.opt: New file.
12518 * config/ia64/vms-unwind.h: New file.
12519
387c39e1
UB
125202009-08-14 Uros Bizjak <ubizjak@gmail.com>
12521
12522 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle
12523 TFmode compares.
12524
2f440f6a
KG
125252009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12526
12527 PR middle-end/30789
8c40d061
UB
12528 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version.
12529 Move declaration...
2f440f6a
KG
12530 * real.h (do_mpc_arg2): ... here.
12531 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR
12532 and RDIV_EXPR.
12533
fe83055d
RAE
125342009-08-14 Rafael Avila de Espindola <espindola@google.com>
12535
c54d7dc9
OR
12536 * final.c (add_debug_prefix_map): Don't use GC memory for
12537 old_prefix and new_prefix.
fe83055d 12538
1a15bfdc
RG
125392009-08-14 Richard Guenther <rguenther@suse.de>
12540
12541 * ipa-prop.c (compute_complex_pass_through): If we cannot
12542 compute a non-varying offset for IPA_JF_ANCESTOR punt.
12543
065312cf
UW
125442009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12545
12546 * c-lex.c (c_lex_with_flags): Increase size of local variable
12547 to avoid memory clobber.
12548
371015a8
PB
125492009-08-14 Paolo Bonzini <bonzini@gnu.org>
12550
12551 PR target/40934
12552 * config/i386/i386.c (ix86_fp_comparison_strategy):
387c39e1 12553 Only enable/disable sahf at function granularity.
371015a8 12554
94aca67a
HPN
125552009-08-14 Hans-Peter Nilsson <hp@axis.com>
12556
12557 PR rtl-optimization/41064
12558 * reload1.c (reload_as_needed): Don't call extract_insn
12559 for known invalid replacements after calling
12560 validate_replace_rtx_group and verify_changes.
12561
1262fd02
UB
125622009-08-14 Uros Bizjak <ubizjak@gmail.com>
12563
12564 PR target/41019
12565 * config/i386/sse.md (SSEMODE124C8): New mode iterator.
12566 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by
12567 ix86_expand_fp_vcond.
12568 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124.
12569 Assert that operation is supported by ix86_expand_int_vcond.
12570 (vcondu<SSEMODE124C8:mode>): Ditto.
12571
3e3877f8
DD
125722009-08-13 DJ Delorie <dj@redhat.com>
12573
12574 * config/i386/djgpp-stdint.h: New.
12575 * config.gcc (djgpp): Use it.
12576
91d1d521
KK
125772009-08-13 Kaz Kojima <kkojima@gcc.gnu.org>
12578
12579 * config/sh/sh.c (sh_override_options): When flag_exceptions or
1262fd02 12580 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off.
91d1d521 12581
2c6dd136
GS
125822009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
12583
387c39e1
UB
12584 * tree-ssa-loop-prefetch.c
12585 (prune_ref_by_group_reuse): Enhance probabilistic analysis
2c6dd136
GS
12586 for long-stride pruning.
12587 (compute_miss_rate): New function to compute the probability
387c39e1 12588 that two memory references access different cache lines.
2c6dd136 12589
241547bb
DK
125902009-08-13 Dave Korn <dave.korn.cygwin@gmail.com>
12591
12592 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base.
12593
e5fdcd8c
RG
125942009-08-13 Richard Guenther <rguenther@suse.de>
12595
12596 PR middle-end/41047
12597 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions
12598 use the constant pointer type.
12599 * gimplify.c (canonicalize_addr_expr): Canonicalize independent
12600 of CV qualifiers on the target pointer type.
12601 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer
12602 conversion check before restrict check.
12603
d5652a5a
KK
126042009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
12605
12606 PR target/41029
12607 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko.
12608
d8158ff1
KK
126092009-08-12 Kaz Kojima <kkojima@gcc.gnu.org>
12610
12611 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED.
12612
88ccda10
RG
126132009-08-12 Richard Guenther <rguenther@suse.de>
12614
12615 PR tree-optimization/41011
12616 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold
12617 and reference constructing.
12618
6eb29714
XDL
126192009-08-12 Xinliang David Li <davidxl@google.com>
12620
12621 PR tree-optimization/41012
12622 * tree-flow.h : New external interface.
12623 * gimple-low.c (check_call_arg): Change to public function.
12624 Remove argument mismatch check in lowering.
12625 * tree-inline.h (tree_can_inline_p): Interface change.
12626 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check
12627 into this function.
f100a4a8 12628 * ipa-inline.c (cgraph_decide_inlining_of_small_functions):
6eb29714
XDL
12629 Call change to tree_can_inline_p function.
12630 (cgraph_decide_inlining_incrementally): Ditto.
12631
b2a58473
RS
126322009-08-12 Richard Sandiford <rdsandiford@googlemail.com>
12633
12634 PR tree-optimization/41031
12635 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode
12636 on the partition variable rather than promote_mode on the source
12637 type. Assert that the partition variable's type has the same
12638 mode as the source value's.
12639
666e3ceb
PB
126402009-08-12 Paolo Bonzini <bonzini@gnu.org>
12641
12642 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation
12643 for for_return == 2.
12644 * function.c (assign_parm_setup_reg): Use for_return == 2, improve
12645 comments.
12646 * calls.c (expand_call): Fix typo.
12647 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL
12648 and PARM_DECL.
12649 * stmt.c (expand_value_return): Use promote_function_mode to copy out
12650 of pseudo.
12651 * targhooks.c (default_promote_function_mode): Handle for_return == 2.
12652 * config/cris/cris.c (cris_promote_function_mode): Likewise.
12653 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise.
12654 * config/pa/pa.c (pa_promote_function_mode): Likewise.
12655
46107b99 126562009-08-12 Andrew Haley <aph@redhat.com>
353a58f7
AH
12657
12658 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize.
12659
4654745d
SP
126602009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12661
12662 PR bootstrap/40103
12663 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
12664
daad0278
RG
126652009-08-12 Richard Guenther <rguenther@suse.de>
12666
12667 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P.
12668 * gimplify.c (gimplify_modify_expr): Do not use
12669 lang_hooks.types_compatible_p.
12670 * tree-ssa.c (useless_type_conversion_p): For aggregates
12671 just return false if the canonical types differ.
12672
30de1632
SP
126732009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12674
12675 PR middle-end/40980
12676 * sese.c (convert_for_phi_arg): New.
12677 (add_guard_exit_phis): Use convert_for_phi_arg.
12678
8c31ebfa
SP
126792009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12680
12681 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add
12682 unknown subscript upper bounds.
12683
fb9fb290
SP
126842009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12685 Pranav Garg <pranav.garg2107@gmail.com>
12686
12687 * graphite-interchange.c (gather_access_strides): Removed.
12688 (ppl_max_for_le): New.
12689 (build_linearized_memory_access): New.
12690 (memory_stride_in_loop): New.
12691 (pbb_interchange_profitable_p): Reimplemented.
12692 * graphite-ppl.h (ppl_new_id_map): New.
12693 (ppl_interchange): New.
12694
312aea7f
SP
126952009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12696
12697 * graphite-interchange.c (compute_subscript): Removed.
12698 (compute_array_size_cstr): Removed.
12699 (compute_array_size_poly): Removed.
12700 (compute_array_size): Removed.
12701 (gather_access_strides_poly): Removed.
12702 (gather_access_strides): Empty.
12703
25d7cc15
SP
127042009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12705
12706 * graphite-dependences.c (dependence_polyhedron_1): Replace
12707 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS.
12708 (graphite_legal_transform_dr): Same.
12709 (graphite_carried_dependence_level_k): Same.
12710 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts.
12711 Initialize PDR_NB_SUBSCRIPTS.
12712 (print_pdr_access_layout): Replace pdr_nb_subscripts with
12713 PDR_NB_SUBSCRIPTS.
12714 * graphite-poly.h (struct poly_dr): Add nb_subscripts field.
12715 (PDR_NB_SUBSCRIPTS): New.
12716 (pdr_nb_subscripts): Removed.
12717 (pdr_dim): Simplified.
12718 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts
12719 with PDR_NB_SUBSCRIPTS.
12720
66096911
SP
127212009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12722
12723 * graphite-interchange.c (compute_array_size): Remove use of
12724 PDR_DATA_CONTAINER.
12725 * graphite-poly.c (new_poly_dr): Remove argument data_container.
12726 Do not initialize PDR_DATA_CONTAINER.
12727 (print_pdr): Do not print PDR_DATA_CONTAINER.
12728 * graphite-poly.h (struct poly_dr): Remove data_container field.
12729 (PDR_DATA_CONTAINER): Removed.
12730 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of
12731 PDR_DATA_CONTAINER.
12732 (build_poly_dr): Same.
12733
7491e5f0
KT
127342009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com>
12735 Sebastian Pop <sebastian.pop@amd.com>
12736
12737 * graphite-dependences.c (graphite_legal_transform_dr): Work on a
12738 copy of the dependence polyhedron. Free the temporary objects.
12739 (graphite_carried_dependence_level_k): Free unused objects before
12740 returning.
12741
f4648ed1
SP
127422009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12743
12744 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering.
12745 Early return without analyzing the data dependences if no
12746 transform has been done. Call restore_scattering if the transform
12747 is not legal.
12748 (graphite-interchange.c): Same.
1262fd02
UB
12749 * graphite-poly.c (print_scattering_function): Test for
12750 PBB_TRANSFORMED.
f4648ed1
SP
12751 (graphite_read_transforms): Initialize PBB_TRANSFORMED.
12752 (apply_poly_transforms): Do not gcc_assert that
12753 the transform is legal.
1262fd02 12754 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL.
f4648ed1
SP
12755 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES,
12756 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING.
12757 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL.
12758 * graphite-poly.h (struct poly_scattering): New.
12759 (struct poly_bb): Add original, transformed, and saved fields.
1262fd02
UB
12760 Remove transformed_scattering, original_scattering,
12761 nb_local_variables and nb_scattering_transform fields.
f4648ed1
SP
12762 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New.
12763 (poly_scattering_new): New.
12764 (poly_scattering_free): New.
12765 (poly_scattering_copy): New.
12766 (store_scattering_pbb): New.
12767 (store_scattering): New.
12768 (restore_scattering_pbb): New.
12769 (restore_scattering): New.
12770 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
12771 Initialize PBB_TRANSFORMED and PBB_ORIGINAL.
12772
e31a5bd4
SP
127732009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12774
12775 * graphite-poly.c (print_pbb): Add parentheses in the pretty print.
12776 (print_scop): Same.
12777
8e88f9fd
SP
127782009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12779
12780 * Makefile.in (graphite.o): Depends on PREDICT_H.
12781 * graphite.c: Include predict.h.
12782 (graphite_finalize): Call tree_estimate_probability.
12783 * predict.c (predict_loops): Do not call scev_initialize and
12784 scev_finalize.
12785 (tree_estimate_probability_bb): New.
12786 (tree_estimate_probability): Do not initialize loops: move that
12787 code to the driver. Call tree_estimate_probability_bb.
12788 (tree_estimate_probability_driver): New.
12789 (pass_profile): Use tree_estimate_probability_driver.
12790 * predict.h (tree_estimate_probability): Declared.
12791
87d4d0ee
SP
127922009-08-12 Sebastian Pop <sebastian.pop@amd.com>
12793
12794 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
12795 * graphite-dependences.c (graphite_legal_transform): Add time to
12796 TV_GRAPHITE_DATA_DEPS.
12797 (dependency_between_pbbs_p): Same.
12798 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
12799
4c7af939
AB
128002009-08-12 Andrey Belevantsev <abel@ispras.ru>
12801
12802 PR rtl-optimization/41033
f100a4a8 12803 * alias.c (nonoverlapping_component_refs_p): Punt when strict
4c7af939
AB
12804 aliasing is disabled.
12805
b2c9d70f
AN
128062009-08-11 Adam Nemet <anemet@caviumnetworks.com>
12807
12808 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
12809 si_mask_operand, and_load_operand, low_bitmask_operand,
12810 and_reg_operand, and_operand): New predicates.
12811 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
12812 * config/mips/mips.c (and_operands_ok): New function.
12813 * config/mips/mips-protos.h (and_operands_ok): Declare it.
12814 * config/mips/mips.md (move_type): Add ext_ins and logical.
12815 (type): Handle them.
1262fd02 12816 (and<mode>3): Use and_reg_operand as the second operand's predicate.
b2c9d70f
AN
12817 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
12818 shift_shift. Remove commutative constraint modifier.
12819 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
12820 shift_shift.
12821 (*clear_upper32_dext): Remove define_insn_and_split.
12822 (*clear_upper32): Turn this define_insn_and_split ...
12823 (splitter for ANDing register with 0xffff_ffff): .. into this.
12824
842e098c
AN
128252009-08-11 Adam Nemet <anemet@caviumnetworks.com>
12826
12827 * combine.c (try_widen_shift_mode): Factor out code to check if an
f100a4a8 12828 integer constant is a low-order bitmask from here ...
842e098c
AN
12829 * rtlanal.c (low_bitmask_len): ... to here.
12830 * rtl.h (low_bitmask_len): Declare.
12831
c53c2591
UB
128322009-08-11 Uros Bizjak <ubizjak@gmail.com>
12833
12834 PR target/8603
12835 * config/alpha/alpha.md (addsi3): Remove expander.
12836 (addsi3): Rename from *addsi3_internal insn pattern.
12837 (subsi3): Remove expander.
12838 (subsi3): Rename from *subsi3_internal insn pattern.
12839
b0d0a8a7
DR
128402009-08-11 Douglas B Rupp <rupp@gnat.com>
12841
12842 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
12843 FWRITE_UNLOCKED.
12844
050d3f9d 128452009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
c53c2591
UB
12846 Eric Botcazou <botcazou@adacore.com>
12847 Douglas B Rupp <rupp@gnat.com>
050d3f9d
VF
12848
12849 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
12850 that records that fit in 64 bits are returned by immediate value,
12851 as required by OpenVMS Calling Standard.
12852 (function_value): Adjust for above modification.
12853 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
12854 virtual_incoming_args_rtx as base object, not next_arg.
bd62d832 12855 * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
050d3f9d 12856
2fa8205d
UW
128572009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12858
12859 * reload.c (find_reloads_subreg_address): Check the original
12860 req_equiv_mem address to detect the case where an address is
12861 not valid in the outer mode.
12862
ac8f7e42 128632009-08-11 Richard Guenther <rguenther@suse.de>
f100a4a8 12864
c53c2591
UB
12865 PR bootstrap/40788
12866 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
ac8f7e42 12867
fddeba6d
DR
128682009-08-10 Douglas B Rupp <rupp@gnat.com>
12869
12870 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
12871 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
12872
1d3499d8 128732009-08-10 Olivier Hainque <hainqueu@adacore.com>
c53c2591 12874 Douglas B Rupp <rupp@gnat.com>
1d3499d8
OH
12875
12876 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
12877 PT_STACK when frame_pointer_needed on OpenVMS.
12878 (alpha_pv_save_size, alpha_using_fp): Remove.
12879 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
12880 with proper processing for PT_NULL.
12881 (alpha_vms_initial_elimination_offset): New function. Support for
12882 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
12883 (alpha_sa_size): Force procedure type to PT_STACK when
12884 frame_pointer_needed on OpenVMS.
12885 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
12886 (alpha_using_fp): Likewise.
12887 (alpha_vms_can_eliminate): Add prototype.
12888 (alpha_vms_initial_elimination_offset): Likewise.
12889 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
12890 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
12891
18fd5621 128922009-08-10 Eric Botcazou <botcazou@adacore.com>
c53c2591 12893 Douglas B Rupp <rupp@gnat.com>
18fd5621
EB
12894
12895 * config/alpha/alpha.c (common_object_handler): New function.
12896 (vms_attribute_table): Declare a single attribute "common_object".
12897 (vms_output_aligned_decl_common): New global function.
12898 (SECTION_VMS_OVERLAY): Delete.
12899 (SECTION_VMS_GLOBAL): Likewise.
12900 (SECTION_VMS_INITIALIZE): Likewise.
12901 (vms_asm_named_section): Remove support for above flags.
12902 (vms_section_type_flags): Delete.
12903 (TARGET_SECTION_TYPE_FLAGS): Likewise.
12904 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
12905 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
12906 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
12907
092f3f97
ST
129082009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
12909
12910 PR target/41015
12911 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
12912 (sub_ddmmss): Likewise.
12913
35076532
AT
129142009-08-10 Andreas Tobler <a.tobler@schweiz.org>
12915
12916 PR bootstrap/41018
12917 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
12918 year.
12919
0159ec79
UW
129202009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12921
12922 PR target/37053
12923 * reload1.c (reload_as_needed): Use cancel_changes to completely
12924 undo a failed replacement attempt.
12925
4f4e722e
RG
129262009-08-10 Richard Guenther <rguenther@suse.de>
12927
12928 PR middle-end/41006
12929 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
12930 (useless_type_conversion_p): ... here. Require pointer targets
12931 to be compatible.
12932
b1d82db0
DS
129332009-08-10 Dodji Seketeli <dodji@redhat.com>
12934
12935 PR c++/40866
12936 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
12937 loose the original type of the statement list.
12938
5e3fef6c
DR
129392009-08-09 Douglas B Rupp <rupp@gnat.com>
12940
12941 * config/alpha/alpha.c: Include libfuncs.h
12942 (avms_asm_output_extern): New function.
12943 (alpha_init_libfuncs): Init some decc libfuncs.
12944 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
12945 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
12946 (DO_CRTL_NAMES): Define.
12947 (LIB_SPEC): Remove.
bd62d832 12948 * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef.
5e3fef6c
DR
12949 (LONG_TYPE_SIZE): Define.
12950 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
12951 (SUBTARGET_SWITCHES): Define malloc64 switch.
12952 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
12953 (MASK_RETURN_ADDR): Define.
12954 doc/invoke.texi (mmalloc64): Document switch.
12955
221cf9ab 129562009-08-09 Olivier Hainque <hainque@adacore.com>
c53c2591 12957 Douglas B Rupp <rupp@gnat.com>
221cf9ab
OH
12958
12959 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
12960 uses_condition_handler.
12961 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
12962 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
12963 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
12964 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
12965 (code_for_builtin): New insn codes for the new alpha_builtins.
12966 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
12967 (alpha_sa_size): Account for uses_condition_handler.
12968 (alpha_expand_prologue): Likewise.
12969 (alpha_start_function): Likewise.
12970 (alpha_expand_epilogue): Likewise.
12971 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
12972 establish/revert expanders.
12973 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
12974 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
12975 New expander, resorting to the alpha.c associated function.
12976 (builtin_revert_vms_condition_handler): Likewise.
12977 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
12978 __gcc_shell_handler, the static VMS condition handler used as
12979 an indirection wrapper to the current dynamically established
12980 handler.
12981 * config/alpha/vms-unwind.h: Complete rewrite.
12982 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
12983 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
f100a4a8 12984
b714133e 129852009-08-09 Eric Botcazou <botcazou@adacore.com>
c53c2591 12986 Douglas B Rupp <rupp@gnat.com>
b714133e
EB
12987
12988 * config/alpha/alpha.c (alpha_links): Add 'target' field.
12989 (alpha_need_linkage): Handle aliases. Return function symbol.
12990 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
12991 Use ultimate alias target for the linkage name.
12992 * config/alpha/alpha.md (movmemdi): Use the symbol returned
12993 by alpha_need_linkage for the function symbol.
12994 (setmemdi): Likewise.
12995
3bd1b109
DR
129962009-08-09 Douglas B Rupp <rupp@gnat.com>
12997
12998 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
12999 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
13000 (ASM_WEAKEN_LABEL): Define.
13001 (CRT_CALL_STATIC_FUNCTION): Define.
13002 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
13003 (ENDFILE_SPEC): Define.
13004 (INIT_SECTION_ASM_OP): Define.
13005 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
13006 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
13007 crtend.o crtendS.o.
13008 (MULTILIB_OSDIRNAMES): Define.
13009 (shlib_version): Define.
13010 (SHLIB_EXT): Define.
13011 (SHLIB_OBJS): Define.
13012 (SHLIB_NAME): Define.
13013 (SHLIB_MULTILIB): Define.
13014 (SHLIB_INSTALL): Define.
13015 (SHLIB_SYMVEC): Define.
13016 (SHLIB_SYMVECX2): Define.
13017 (SHLIB_LINK): Define.
13018
fe2786f5
DR
130192009-08-09 Douglas B Rupp <rupp@gnat.com>
13020
13021 * config/alpha/alpha.c (alpha_initialize_trampoline):
13022 Initialize VMS trampoline IAW ABI for bounded procedure calls.
13023 (alpha_start_function): Emit transfer address on nested functions
13024 for VMS trampoline call.
13025 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
13026 since no longer used.
13027 * config/alpha/vms-tramp.asm: Remove.
13028 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
13029 since now only data initialized at runtime.
13030
c889a16f
DR
130312009-08-09 Douglas B Rupp <rupp@gnat.com>
13032
13033 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
13034 (LINK_GCC_C_SEQUENCE_SPEC): Define.
13035 (MD_EXEC_PREFIX): Remove, no longer used.
13036 (MD_STARTFILE_PREFIX): Likewise.
13037 (INCLUDE_DEFAULTS): Likewise.
13038 * config/alpha/t-vms:
13039 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
13040
a6450905
RG
130412009-08-09 Richard Guenther <rguenther@suse.de>
13042
13043 PR tree-optimization/41016
c53c2591 13044 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
a6450905
RG
13045 (operand_precision): Remove.
13046 (integral_operand_p): Likewise.
13047 (recognize_single_bit_test): Adjust.
13048
f5178456
RS
130492009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
13050
13051 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
13052 operation overflows. Likewise non-cast unary arithmetic.
13053 If one arm of a conditional expression is always taken,
13054 inhibit evaluation warnings for the other arm. Likewise inhibit
13055 evaluation warnings for the second && or || operand if the first
13056 operand is enough to determine the result.
13057 * c-typeck.c (build_conditional_expr): Apply the same inhibition
13058 rules here.
13059 (build_binary_op): Prevent duplicate evaluation warnings.
13060
8f048d2f
RS
130612009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
13062
13063 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
13064 and destination have different modes, Use promote_mode to
13065 determine the signedness of the conversion. Assert that the
13066 promoted source mode matches the destination mode. Don't pass
13067 the destination and destination mode to expand_expr if the source
13068 mode is different. Simplify conversion logic.
13069
6f4454fc
IR
130702009-08-09 Ira Rosen <irar@il.ibm.com>
13071
13072 PR tree-optimization/41008
13073 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
f100a4a8 13074 from condition only in case it's a comparison. Adjust checks.
6f4454fc 13075
2c08497a
BS
130762009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
13077
13078 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
13079 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
13080 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
13081 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
13082 (dump_cand): Handle them.
13083 (struct iv_cand): New members COST_STEP and AINC_USE.
13084 (stmt_after_increment): Likewise.
13085 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
13086 callers changed. Use gimple_uid comparison instead of scanning.
13087 (add_candidate_1): When looking for identical candidates, take
13088 AINC_USE into account. Set it for new candidates.
13089 (force_expr_to_var_cost): Cast target_spill_cost to int.
13090 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
13091 All callers changed. Check for availability of autoinc addressing
c53c2591 13092 modes, both in general for a given mode, and in the specific use case.
2c08497a
BS
13093 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
13094 changed.
13095 (get_computation_cost): Likewise.
13096 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
13097 add_autoinc_candidates): New static functions.
13098 (add_candidate): Call add_autoinc_candidates for candidates based on
13099 a USE_ADDRESS use.
13100 (find_iv_candidates): Call set_autoinc_for_original_candidates.
13101 (determine_use_iv_cost_address): If we have an autoinc candidate at
13102 the matching use, verify autoinc is possible and subtract the cost
13103 of the candidate's step from the cost.
13104 (determine_iv_cost): Record the cost of the increment in the COST_STEP
13105 member of the candidate.
13106 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
13107 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
13108
a9a25daa
DR
131092009-08-09 Douglas B Rupp <rupp@gnat.com>
13110
13111 * config.build (ia64-hp-*vms*): New target.
13112 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13113 with ia64-hp-*vms*.
13114 * config.gcc (ia64-hp-*vms*): New target.
13115 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13116 with ia64-hp-*vms*.
13117 * config.host (ia64-hp-*vms*): New target.
13118 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
13119 with ia64-hp-*vms*.
13120
55194b0b
RG
131212009-08-08 Richard Guenther <rguenther@suse.de>
13122
13123 PR tree-optimization/40991
13124 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
13125
d686d892
RS
131262009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
13127
13128 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
13129 mode check. Do truncations in an integer mode.
13130 (force_to_mode): Handle subregs for all mode types. Only do
13131 arithmetic simplifications on integer modes.
13132
0adef8e9
RG
131332009-08-07 Richard Guenther <rguenther@suse.de>
13134
13135 PR tree-optimization/40999
13136 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
13137 (maybe_fold_reference): Lookup constant initializers.
13138 (fold_gimple_assign): Likewise.
13139
60419cc8
RG
131402009-08-07 Richard Guenther <rguenther@suse.de>
13141
13142 * tree-ssa.c (useless_type_conversion_p_1): Only for types
13143 that require structural equality defer to the langhook.
13144
685b0d13
MJ
131452009-08-07 Martin Jambor <mjambor@suse.cz>
13146
13147 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
13148 comments.
13149 (struct ipa_pass_through_data): New type.
13150 (struct ipa_ancestor_jf_data): New type.
13151 (union jump_func_value): Removed field formal_id, added fields
13152 pass_through and ancestor.
13153 (struct ipa_param_call_note): Changed type of formal_id to int from
13154 unsigned.
13155 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
13156 operations jump functions and ancestor jump functions.
13157 (compute_complex_pass_through): New function.
13158 (compute_scalar_jump_functions): Call compute_complex_pass_through,
13159 reflect changes in the jump function strucutre.
13160 (update_jump_functions_after_inlining): Ignore complex pass-through
13161 and ancestor jump functions.
13162 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
13163 polynomial pass-through with operation jump functions.
13164
17f6e37d
JJ
131652009-08-07 Jakub Jelinek <jakub@redhat.com>
13166
13167 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
13168 fde->dw_fde_begin as begin label instead of hot/cold label.
13169 Use LLSDAC label instead of LLSDA for second section lsda.
13170 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
13171 label instead of LLSDA if it is true.
13172 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
13173 callers.
13174 * except.c (add_call_site, dw2_size_of_call_site_table): Add
13175 SECTION argument. Use it as index into crtl->eh.call_site_record
13176 array.
13177 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
13178 use it to determine how to print table entries instead of using
13179 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
13180 label instead of normal begin label as base.
13181 (sjlj_assign_call_site_values): Adjust add_call_site caller.
13182 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
13183 ensure no EH range spans between sections and that landing pads
13184 are always in the corresponding section.
13185 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
13186 for crtl->eh.call_site_record being an array rather than scalar.
13187 (output_one_function_exception_table): New function, copied
13188 from output_function_exception_table. Adjust
13189 dw2_size_of_call_site_table, dw2_output_call_site_table
13190 callers. For SECOND section use *C suffixed labels.
13191 (output_function_exception_table): Call
13192 output_one_function_exception_table and, when doing hot/cold
13193 partitioning, also another time for the second section.
13194 * opts.c: Include except.h.
13195 (decode_options): Allow -freorder-blocks-and-partition with
13196 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
13197 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
13198 * function.h (struct rtl_eh): Change call_site_record from
13199 scalar into array of 2 elements.
13200
3f84bf08
MJ
132012009-08-07 Martin Jambor <mjambor@suse.cz>
13202
13203 * ipa-prop.c (count_formal_params_1): New function.
13204 (ipa_get_vector_of_formal_parms): New function.
13205 (get_vector_of_formal_parm_types): New function.
13206 (ipa_modify_formal_parameters): New function.
13207 (ipa_modify_call_arguments): New function.
13208 (index_in_adjustments_multiple_times_p): New function.
13209 (ipa_combine_adjustments): New function.
13210 (ipa_dump_param_adjustments): New function.
13211 * ipa-prop.h (struct ipa_parm_adjustment): New type.
13212 (ipa_get_vector_of_formal_parms): Declare.
13213 (ipa_modify_formal_parameters): Declare.
13214 (ipa_modify_call_arguments): Declare.
13215 (ipa_combine_adjustments): Declare.
13216 (ipa_dump_param_adjustments): Declare.
13217 (build_ref_for_offset): Declare.
13218 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
13219 * tree-sra.c: Include ipa-prop.c.
f100a4a8 13220 (build_ref_for_offset): Make public.
3f84bf08 13221
ee26a76d
NV
132222009-08-06 Neil Vachharajani <nvachhar@gmail.com>
13223
13224 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
f100a4a8 13225
48c4de16
TS
132262009-08-06 Thomas Schwinge <tschwinge@gnu.org>
13227
13228 * gcc/doc/extend.texi (__builtin_extract_return_address)
13229 (__builtin_frob_return_address): Document.
13230
f36d140e
PB
132312009-08-06 Paul Brook <paul@codesourcery.com>
13232
13233 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
13234 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
13235 implementation on ARMv6-M.
13236
14a782c8
RE
132372009-08-06 Richard Earnshaw <rearnsha@arm.com>
13238
13239 * doc/extend.texi (pcs): Document new attribute for ARM.
13240
0f1a24df
RE
132412009-08-06 Richard Earnshaw <rearnsha@arm.com>
13242
13243 * arm.c (pcs_attribute_args): Comment out unsupported attribute
13244 variants.
13245
a9717079
RE
132462009-08-06 Richard Earnshaw <rearnsha@arm.com>
13247
13248 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
13249 warning ().
13250
d8e6aede
RE
132512009-08-06 Richard Earnshaw <rearnsha@arm.com>
13252
13253 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
13254
390b17c2
RE
132552009-08-06 Richard Earnshaw <rearnsha@arm.com>
13256
13257 Merge ARM/hard_vfp_branch to trunk.
13258
13259 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
13260
13261 * arm.c (libcall_eq): New function.
13262 (libcall_hash): New function.
13263 (add_libcall): New function.
13264 (arm_libcall_uses_aapcs_base): New function.
13265 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
13266 libcalls using the base PCS.
13267 (arm_init_cumulative_args): Likewise.
13268
13269 2009-07-20 Joseph Myers <joseph@codesourcery.com>
13270
13271 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
13272 Use base ABI for conversion libfuncs between HFmode and SFmode.
13273
13274 2009-05-12 Joseph Myers <joseph@codesourcery.com>
13275
13276 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
13277 V4SImode as representatives of all 64-bit and 128-bit vector
13278 types. Allow vector types without vector modes.
13279 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
13280 without vector modes like BLKmode.
13281 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
13282 BLKmode. Avoid unsupported vector modes or TImode moves for
13283 non-TARGET_NEON.
13284 (aapcs_vfp_allocate_return_reg): Likewise.
13285 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
13286 V8QImode if TARGET_NEON || TARGET_IWMMXT.
13287
13288 2009-05-12 Joseph Myers <joseph@codesourcery.com>
13289
13290 * config/arm/arm.c (arm_handle_pcs_attribute): New.
13291 (arm_get_pcs_model): Pass attribute arguments to
13292 arm_pcs_from_attribute.
13293 (arm_init_cumulative_args): Use base AAPCS for conversions from
13294 floating-point types to DImode.
13295 (arm_attribute_table): Add pcs attribute.
13296 (arm_handle_pcs_attribute): New.
13297 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
13298 conversions from floating-point types to DImode, also declare them
13299 to use base AAPCS and declare functions they call to use base
13300 AAPCS and their RTABI names.
13301
13302 2009-05-12 Joseph Myers <joseph@codesourcery.com>
13303
13304 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
13305 -mfloat-abi=hard not being supported for VFP.
13306
13307 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
13308
13309 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
13310 SYMBOL_REF to hard_libcall_value.
13311
13312 2009-03-05 Joseph Myers <joseph@codesourcery.com>
13313 Richard Earnshaw <rearnsha@arm.com>
13314
13315 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
13316 has been put on the stack, all remaining co-processory arguments for
13317 that co-processor also go on the stack.
13318
13319 2009-03-05 Joseph Myers <joseph@codesourcery.com>
13320
13321 * config/arm/arm.c (arm_return_in_memory): Handle returning
13322 vectors of suitable size in registers also for AAPCS case.
13323
13324 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
13325
13326 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
13327
13328 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
13329
13330 ARM Hard-VFP calling convention
13331 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
13332 * target.h (gcc_target): Add libcall_value to table of call hooks.
13333 * targhooks.h (default_libcall_value): Default implementation.
13334 * targhooks.c (default_libcall_value): Likewise.
13335 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
13336 * optabs.c (expand_unop): Use it.
13337 * expr.h (hard_libcall_value): Pass the function RTX through.
f100a4a8 13338 * calls.c (emit_library_call_value_1): Update call to
390b17c2
RE
13339 hard_libcall_value.
13340 * explow.c (hard_libcall_value): Use new target hook.
390b17c2
RE
13341 * config/arm/arm.c: Include cgraph.h
13342 (TARGET_FUNCTION_VALUE): Override default hook.
13343 (arm_pcs_default): New variable.
13344 (arm_override_options): Don't fault hard calling convention with VFP.
13345 Add support for AAPCS variants.
13346 (arm_function_value): Make static. Handle AAPCS variants.
13347 (arm_libcall_value): New function.
13348 (arm_apply_result_size): Handle VFP registers in results.
13349 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
13350 conventions.
13351 (pcs_attribute_args): New variable.
13352 (arm_pcs_from_attribute): New function.
13353 (arm_get_pcs_model): New function.
13354 (aapcs_vfp_cum_init): New function.
13355 (aapcs_vfp_sub_candidate): New function.
13356 (aapcs_vfp_is_return_candidate): New function.
13357 (aapcs_vfp_is_call_candidate): New function.
13358 (aapcs_vfp_allocate): New function.
13359 (aapcs_vfp_allocate_return_reg): New function.
13360 (aapcs_vfp_advance): New function.
13361 (aapcs_cp_arg_layout): New variable.
13362 (aapcs_select_call_coproc): New function.
13363 (aapcs_select_return_coproc): New function.
13364 (aapcs_allocate_return_reg): New function.
13365 (aapcs_libcall_value): New function.
13366 (aapcs_layout_arg): New function.
13367 (arm_init_cumulative_args): Initialize AAPCS args data.
13368 (arm_function_arg): Handle AAPCS variants using new interface.
13369 (arm_arg_parital_bytes): Likewise.
13370 (arm_function_arg_advance): New function.
13371 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
13372 calling conventions.
13373 (arm_setup_incoming_varargs): Handle new AAPCS args data.
13374 * arm.h (NUM_VFP_ARG_REGS): Define.
13375 (LIBCALL_VALUE): Update.
13376 (FUNCTION_VALUE): Delete.
13377 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
13378 (arm_pcs): New enum.
13379 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
13380 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
13381 (FUNCTION_ARG_REGNO_P): Add VFP regs.
13382 * arm-protos.h (arm_function_arg_advance): Add.
13383 (aapcs_libcall_value): Add.
13384 (arm_function_value): Delete.
13385
4dbf26d5
UB
133862009-08-06 Uros Bizjak <ubizjak@gmail.com>
13387 H.J. Lu <hongjiu.lu@intel.com>
13388
13389 PR target/40957
13390 * config/i386/i386.c (standard_sse_mode_p): Remove.
13391 (standard_sse_constant_p): Return 2 for integer mode
13392 vector_all_ones_operand when SSE2 is enabled.
13393 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
13394 (ix86_expand_vector_move): Do not check for negative values from
13395 standard_sse_constant_p.
13396
e52201b6
RG
133972009-08-06 Richard Guenther <rguenther@suse.de>
13398
13399 * tree-ssa.c (useless_type_conversion_p_1): Make function and
13400 array type comparisons frontend independent.
13401 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
13402 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
13403 out array reference lower bound and element size operands.
13404 (ao_ref_init_from_vn_reference): Properly compute the offset
13405 for ARRAY_RANGE_REF.
13406 (vn_reference_fold_indirect): Fill out array reference lower
13407 bound and element size operands.
13408 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
13409 a non gimple valued reference operand which can happen for
13410 array reference lower bound or element size.
13411 (create_component_ref_by_pieces_1): Properly generate the
13412 element size operand for array references.
13413
b92fbdd7
RB
134142009-08-06 Richard Guenther <rguenther@suse.de>
13415
13416 PR tree-optimization/40964
13417 * tree.c (iterative_hash_host_wide_int): Export.
13418 * tree.h (iterative_hash_host_wide_int): Declare.
13419 * tree-ssa-structalias.c (heapvar_map): New struct.
13420 (heapvar_map_eq): New function.
13421 (heapvar_map_hash): Likewise.
13422 (heapvar_lookup): Adjust.
13423 (heapvar_insert): Likewise.
13424 (make_constraint_from_heapvar): Allow multiple heap variables
13425 per decl at different offsets.
13426 (init_alias_heapvars): Adjust.
13427
068ca03a
DD
134282009-08-04 David Daney <ddaney@caviumnetworks.com>
13429
13430 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
13431 * mips_output_sync_loop (mips_output_sync_loop): Only emit
13432 trailing sync if TARGET_SYNC_AFTER_SC.
13433
40a4a37b
DD
134342009-08-05 David Daney <ddaney@caviumnetworks.com>
13435
13436 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
13437 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
13438 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
13439 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
13440 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
13441 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
13442 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
13443 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
13444 test_and_set_12): Rewrite calls to mips_output_sync_loop.
13445 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
13446 the prototype declaration match the definition.
13447 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
13448 instructions explicitly. Add barrier_before and operands
13449 parameters.
13450 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
13451 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
13452 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
13453 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
13454 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
13455 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
13456
dcbd7063
AP
134572009-08-05 Andrew Pinski <pinskia@gmail.com>
13458
13459 * tree-ssa-alias.c: Fix intervals to use [) syntax.
13460
2c4389d8
UB
134612009-08-05 Uros Bizjak <ubizjak@gmail.com>
13462 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
13463
13464 PR target/40906
13465 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
13466 source operand.
13467
403c7520
JJ
134682009-08-05 Jakub Jelinek <jakub@redhat.com>
13469
13470 PR rtl-optimization/40924
13471 * dse.c (canon_address): Before calling cselib_expand_value_rtx
13472 make sure canon_rtx (mem_address) isn't simpler than
13473 canon_rtx (expanded_mem_address).
13474
64393e40
LF
134752009-08-05 Li Feng <nemokingdom@gmail.com>
13476
13477 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
13478 for each poly_bb_p.
13479 (build_scop_drs): Build alias set for each SCoP.
13480
5dce6dbd
SL
134812009-08-04 Sandra Loosemore <sandra@codesourcery.com>
13482
13483 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
13484 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
13485 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
13486 (MIPS_ARCH_FLOAT_SPEC): Likewise.
13487 (BASE_DRIVER_SELF_SPECS): Likewise.
13488
f9fc1a02
AP
134892009-08-04 Andrew Pinski <pinskia@gmail.com>
13490
13491 * tree-ssa-alias.c: Fix some comment typos.
13492
09a7d0af
KK
134932009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
13494
13495 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
13496 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
13497
50cd60be
JJ
134982009-08-03 Janis Johnson <janis187@us.ibm.com>
13499
13500 PR c/39902
13501 * simplify-rtx.c (simplify_binary_operation_1): Disable
13502 simplifications for decimal float operations.
13503
1768a052
JJ
135042009-08-03 Jakub Jelinek <jakub@redhat.com>
13505
13506 PR middle-end/40943
13507 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
13508 operand of INDIRECT_REF.
13509
42a9ba1d
UB
135102009-08-03 Uros Bizjak <ubizjak@gmail.com>
13511
13512 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
13513 constants referencing TLS symbols.
13514
9f774cb0
ST
135152009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
13516
13517 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
13518 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
13519
907dd6ae
RG
135202009-08-03 Richard Guenther <rguenther@suse.de>
13521
13522 * tree.c (make_vector_type): Build a main variant first,
13523 get the canonical one and then build the variant.
13524 * tree-ssa.c (useless_type_conversion_p_1): Handle
13525 fixed-point types.
13526 (useless_type_conversion_p): Conversions to pointers to
13527 incomplete record types are useless.
13528
2329c6f5
RG
135292009-08-03 Richard Guenther <rguenther@suse.de>
13530
13531 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
13532 file will be created.
13533 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
13534 * toplev.c (compile_file): Adjust comment.
13535
d055ce45
KK
135362009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
13537
13538 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
13539 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
13540 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13541 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13542 (sh_promote_function_mode): Fix typo.
13543
b1680483
AK
135442009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
13545
42a9ba1d 13546 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
b1680483 13547
4ce3042d
JDA
135482009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13549
13550 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
13551 declaration arguments.
13552
0589e07d
UB
135532009-08-02 Uros Bizjak <ubizjak@gmail.com>
13554
13555 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
13556 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
13557 (ix86_split_ashl): Ditto.
13558 (ix86_expand_vector_init_one_nonzero): Ditto.
13559 (ix86_expand_vector_set): Ditto.
13560 (ix86_expand_reduc_v4sf): Ditto.
13561
135622009-08-02 Paolo Bonzini <bonzini@gnu.org>
6e957ac8
PB
13563
13564 * explow.c (promote_function_mode): Remove assert.
13565 * config/sh/sh.c (sh_promote_function_mode): Declare.
13566
be3e4ef6
JDA
135672009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13568
6e957ac8
PB
13569 * config/pa/pa.c (pa_promote_function_mode): Declare.
13570 Change to static. Fix promote_mode call.
02095c50 13571
1f7ec57e
JDA
13572 * gthr-dce.h (CONST_CAST2): Define if not defined.
13573 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
13574
be3e4ef6
JDA
13575 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
13576
6e957ac8 135772009-08-01 Paolo Bonzini <bonzini@gnu.org>
cde0f3fd
PB
13578
13579 * expr.c (store_constructor): Use promote_decl_mode. Remove
13580 now write-only variable unsignedp.
13581 (expand_expr_real_1): Use promote_decl_mode.
13582 * expr.h (promote_function_mode, promote_decl_mode): New.
13583 (promote_mode): Remove last argument.
13584 * function.c (assign_temp): Drop last argument of promote_mode.
13585 (assign_parm_find_data_types): Use promote_function_mode.
13586 (assign_parm_setup_reg): Likewise.
13587 (expand_function_end): Use promote_function_mode.
13588 * calls.c (initialize_argument_information): Use promote_function_mode.
13589 (precompute_arguments): Use promote_mode instead of checking if
13590 only PROMOTE_FUNCTION_MODE is defined.
13591 (expand_call): When making sibcall decisions, use promote_function_mode.
13592 Below, remove an if for targetm.calls.promote_function_return and
13593 and use promote_function_mode.
13594 (emit_library_call_value_1): Use promote_function_mode, fix bug
13595 where promote_mode was passed FOR_CALL == 0 for a return value in an
13596 assertion.
13597 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
13598 * explow.c (promote_function_mode, promote_decl_mode): New.
13599 (promote_mode): Keep only the FOR_CALL == 0 case.
13600 * combine.c (setup_incoming_promotion): Remove test of
13601 promote_function_args. Use promote_function_mode.
13602 * stmt.c (expand_value_return): Use promote_decl_mode.
13603 (expand_decl): Use promote_decl_mode.
13604
13605 * expr.c (store_constructor): Use promote_decl_mode. Remove
13606 now write-only variable unsignedp.
13607 (expand_expr_real_1): Use promote_decl_mode.
13608 * expr.h (promote_function_mode, promote_decl_mode): New.
13609 (promote_mode): Remove last argument.
13610 * function.c (assign_temp): Drop last argument of promote_mode.
13611 (assign_parm_find_data_types): Use promote_function_mode.
13612 (assign_parm_setup_reg): Likewise.
13613 (expand_function_end): Use promote_function_mode.
13614 * calls.c (initialize_argument_information): Use promote_function_mode.
13615 (precompute_arguments): Use promote_mode instead of checking if
13616 only PROMOTE_FUNCTION_MODE is defined.
13617 (expand_call): When making sibcall decisions, use promote_function_mode.
13618 Below, remove an if for targetm.calls.promote_function_return and
13619 and use promote_function_mode.
13620 (emit_library_call_value_1): Use promote_function_mode, fix bug
13621 where promote_mode was passed FOR_CALL == 0 for a return value in an
13622 assertion.
13623 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
13624 * explow.c (promote_function_mode, promote_decl_mode): New.
13625 (promote_mode): Keep only the FOR_CALL == 0 case.
13626 * combine.c (setup_incoming_promotion): Remove test of
13627 promote_function_args. Use promote_function_mode.
13628 * stmt.c (expand_value_return): Use promote_decl_mode.
13629 (expand_decl): Use promote_decl_mode.
13630
13631 * explow.c (promote_function_mode): Just call the target hook.
13632 * targhooks.c (default_promote_function_mode,
13633 default_promote_function_mode_always_promote): New.
13634 * targhooks.h (default_promote_function_mode,
13635 default_promote_function_mode_always_promote): Declare.
13636 * target.h (promote_function_args, promote_function_return): Remove.
13637 (promote_function_mode): New.
13638 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
13639 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13640 (TARGET_PROMOTE_FUNCTION_MODE): New.
13641 (TARGET_CALLS): Adjust.
13642 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
13643 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
13644
13645 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
13646 * config/s390/s390.c (s390_promote_function_mode): ... here,
13647 with pointer handling.
13648 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13649 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13650
13651 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
13652 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
13653 with pointer handling.
13654 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13655 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
f100a4a8 13656
cde0f3fd
PB
13657 * config/sh/sh-protos.h (sh_promote_function_mode): New.
13658 * config/sh/sh.c (sh_promote_function_mode): New.
13659 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13660 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13661
13662 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
13663 * config/cris/cris.c (cris_promote_function_mode): ... here.
13664 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13665 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13666
13667 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
13668 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
13669 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13670 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
13671
13672 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
0589e07d
UB
13673 * config/arm/arm.c (arm_promote_function_mode): ... here, without
13674 complex type handling.
cde0f3fd
PB
13675 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13676 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13677
13678 * config/pa/pa.c (pa_promote_function_mode): New.
13679 (TARGET_PROMOTE_FUNCTION_MODE): Define.
13680 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13681
13682 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
13683 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
13684 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
13685 * config/xtensa/xtensa.c: Likewise.
13686 * config/stormy16/stormy16.c: Likewise.
13687 * config/iq2000/iq2000.c: Likewise.
13688 * config/rs6000/rs6000.c: Likewise.
13689 * config/picochip/picochip.c: Likewise.
13690 * config/arc/arc.c: Likewise.
13691 * config/mcore/mcore.c: Likewise.
13692 * config/score/score.c: Likewise.
13693 * config/mips/mips.c: Likewise.
13694 * config/bfin/bfin.c: Likewise.
13695 * config/ia64/ia64.c: Likewise (disabled though).
13696
13697 * config/frv/frv.h: Remove pointless remark.
13698
13699 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
13700 TARGET_PROMOTE_FUNCTION_ARGS,
13701 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
13702 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
13703
3cf0e270
SP
137042009-08-01 Sebastian Pop <sebastian.pop@amd.com>
13705
13706 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
13707 -floop-parallelize-all.
13708 * toplev.c (process_options): Rename flag_graphite_force_parallel to
13709 flag_loop_parallelize_all.
13710 * tree-ssa-loop.c (gate_graphite_transforms): Same.
13711 * graphite.c (graphite_transform_loops): Same.
13712 * common.opt: Same.
13713 * graphite-poly.c (apply_poly_transforms): Same.
13714
6f7b8b70
RE
137152009-07-31 Richard Earnshaw <rearnsha@arm.com>
13716
13717 PR tree-optimization/40914
13718 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
13719 if set, then check the delta field of the PMF record.
13720 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
13721 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
13722 call is stored in the delta.
13723
17320477
AN
137242009-07-31 Adam Nemet <anemet@caviumnetworks.com>
13725
13726 * config/mips/mips.md (*clear_upper32_dext): New pattern.
13727
e61c6562
UB
137282009-07-31 Uros Bizjak <ubizjak@gmail.com>
13729
13730 * config/i386/bsd.h (ASM_BYTE): New define.
13731 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
13732 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
13733 .byte. Use fputs or putc instead of fprintf where appropriate.
13734 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
13735 fputs or putc instead of fprintf where appropriate.
13736 * config/i386/i386elf.h: Ditto.
13737 * config/i386/sysv4.h: Ditto.
f100a4a8 13738
e61c6562
UB
13739 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
13740 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
13741 (*tls_global_dynamic_64): Ditto.
13742
f100a4a8 137432009-07-31 Christian Bruel <christian.bruel@st.com>
ea2002ba
CB
13744
13745 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
f100a4a8 13746
17eb4921
RR
137472009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13748
f100a4a8 13749 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
17eb4921
RR
13750 Remove dead code for MINUS.
13751
23865616
AG
137522009-07-31 Anthony Green <green@moxielogic.com>
13753
13754 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
13755 $r12 in prologue.
13756 (moxie_expand_epilogue): Ditto for epilogue.
13757 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
13758 incoming arguments.
13759 (moxie_function_arg): Ditto.
13760 (moxie_pass_by_reference): Ditto.
13761 (moxie_arg_partial_bytes): Ditto.
13762 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
13763 (FUNCTION_ARG_ADVANCE) Ditto.
13764 (REG_PARM_STACK_SPACE) Ditto.
13765 (FUNCTION_ARG_REGNO_P) Dito.
13766
13767 * config.gcc: Add moxie linux config support.
13768 * gcc/config/moxie/uclinux.h: New file.
13769
20e19db4
DD
137702009-07-31 DJ Delorie <dj@redhat.com>
13771
13772 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
13773 (UNSPECV_SP_SWITCH_E): New.
13774 (sp_switch_1): Change to an unspec.
13775 (sp_switch_2): Change to an unspec. Don't use post-inc when we
13776 replace $r15.
13777 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
13778 reference the new stack's address
13779
204b560f
SP
137802009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13781
13782 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
13783 graphite-clast-to-gimple.o, graphite-dependences.o,
13784 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
13785 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
13786 (graphite-blocking.o,
13787 graphite-clast-to-gimple.o, graphite-dependences.o,
13788 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
13789 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
13790 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
13791 * cfgloop.h (struct loop): Add can_be_parallel field.
13792 * common.opt (fgraphite-identity): Moved up.
13793 (fgraphite-force-parallel): New flag.
13794 * graphite.c: Rewrite.
13795 * graphite.h: Rewrite.
13796 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
13797 after Graphite.
13798 * toplev.c (graphite_out_file): New file descriptor.
13799 (graphite_in_file): New.
13800 (process_options): flag_graphite_force_parallel cannot be used without
13801 Graphite.
13802 * tree-ssa-loop.c: Include toplev.h.
13803 (gate_graphite_transforms): Enable flag_graphite for
13804 flag_graphite_force_parallel.
13805
2abae5f1
SP
138062009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13807
13808 * ChangeLog.graphite: New.
13809 * graphite-blocking.c: New.
13810 * graphite-clast-to-gimple.c: New.
13811 * graphite-clast-to-gimple.h: New.
13812 * graphite-dependences.c: New.
13813 * graphite-dependences.h: New.
13814 * graphite-interchange.c: New.
13815 * graphite-poly.c: New.
13816 * graphite-poly.h: New.
13817 * graphite-ppl.c: New.
13818 * graphite-ppl.h: New.
13819 * graphite-scop-detection.c: New.
13820 * graphite-scop-detection.h: New.
13821 * graphite-sese-to-poly.c: New.
13822 * graphite-sese-to-poly.h: New.
13823 * sese.c: New.
13824 * sese.h: New.
13825
e7c705bb
SP
138262009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13827
13828 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
13829 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
13830
765deab7
SP
138312009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13832
13833 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
13834 (scev_is_linear_expression): Return false if the evolution is not
13835 affine multivariate.
13836
ed91d661
SP
138372009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13838
13839 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
13840 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
13841
a37d995a
SP
138422009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13843
13844 * tree-data-ref.c (debug_data_references): New.
13845 (debug_data_reference): New.
13846 * tree-data-ref.h (debug_data_references): Declared.
13847 (debug_data_reference): Declared.
13848
ae5b9860
SP
138492009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13850
13851 * tree-data-ref.c (stmt_simple_memref_p: Removed.
13852 * tree-data-ref.h (scop_p): Removed.
13853 (struct data_reference): Remove field scop.
13854 (DR_SCOP): Removed.
13855 (stmt_simple_memref_p): Removed.
13856
8e74b397
SP
138572009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13858
13859 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
13860 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
13861 basic block empty.
13862
109e0d57
SP
138632009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13864
13865 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
13866
66a7961b
SP
138672009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13868
13869 * doc/invoke.texi (-fgraphite-identity): Documented.
13870
52bdd655
SP
138712009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13872
13873 * tree-scalar-evolution.c: Fix comment.
13874 (instantiate_scev_1): Return unknow from scev instantiation if the
13875 result is not above instantiate_below.
13876
42e6eec5
SP
138772009-07-30 Sebastian Pop <sebastian.pop@amd.com>
13878
13879 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
13880 static anymore. Instantiate the symbols that may have been introduced
13881 by chrec_apply.
13882 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
13883 Declared.
13884
77806925
DD
138852009-07-30 DJ Delorie <dj@redhat.com>
13886
13887 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
13888 .vliw directive to VLIW sections.
13889
6efbd53f
RW
138902009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
13891
13892 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
13893 New variables.
13894 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
13895 (AUTOHEADER): New variable.
13896 ($(srcdir)/cstamp-h.in): Use it.
13897
29e6733c
MM
138982009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
13899 Pat Haugen <pthaugen@us.ibm.com>
13900 Revital Eres <ERES@il.ibm.com>
13901
13902 * config/rs6000/vector.md (VEC_F): Add VSX support.
13903 (VEC_A): Ditto.
13904 (VEC_N): Ditto.
13905 (mov<mode>): Ditto.
13906 (vector_load_<mode>): Ditto.
13907 (vector_store_<mode>): Ditto.
13908 (vector GPR move split): Ditto.
13909 (vec_reload_and_plus_<mptrsize>): Ditto.
13910 (vec_reload_and_reg_<mptrsize>): Ditto.
13911 (add<mode>3): Ditto.
13912 (sub<mode>3): Ditto.
13913 (mul<mode>3): Ditto.
13914 (neg<mode>2): Ditto.
13915 (abs<mode>2): Ditto.
13916 (smin<mode>3): Ditto.
13917 (smax<mode>3): Ditto.
13918 (vector_eq<mode>): Ditto.
13919 (vector_gt<mode>): Ditto.
13920 (vector_ge<mode>): Ditto.
13921 (vector_gtu<mode>): Ditto.
13922 (vector_select_<mode>_uns): Ditto.
13923 (vector_eq_<mode>_p): Ditto.
13924 (vector_gt_<mode>_p): Ditto.
13925 (vector_ge_<mode>_p): Ditto.
13926 (vector_gtu_<mode>_p): Ditto.
13927 (cr6_test_for_zero): Ditto.
13928 (cr6_test_for_zero_reverse): Ditto.
13929 (cr6_test_for_lt): Ditto.
13930 (cr6_test_for_lt_reverse): Ditto.
13931 (xor<mode>3): Ditto.
13932 (ior<mode>3): Ditto.
13933 (and<mode>3): Ditto.
13934 (one_cmpl<mode>2): Ditto.
13935 (nor<mode>2): Ditto.
13936 (andc<mode>2): Ditto.
13937 (float<VEC_int<mode>2): Ditto.
13938 (unsigned_float<VEC_int><mode>2): Ditto.
13939 (fix_trunc<mode><VEC_int>2): Ditto.
13940 (fixuns_trunc<mode><VEC_int>2): Ditto.
13941 (vec_init<mode>):
13942 (vec_set<mode>): Ditto.
13943 (vec_extract<mode>): Ditto.
13944 (vec_interleave_highv4sf): Ditto.
13945 (vec_interleave_lowv4sf): Ditto.
13946 (vec_realign_load_<mode>): Ditto.
13947 (vec_shl_<mode>): Ditto.
13948 (vec_shr_<mode>): Ditto.
13949 (div<mode>3): New patterns for VSX.
13950 (vec_interleave_highv2df): Ditto.
13951 (vec_interleave_lowv2df): Ditto.
13952 (vec_pack_trunc_v2df): Ditto.
13953 (vec_pack_sfix_trunc_v2df): Ditto.
13954 (vec_pack_ufix_trunc_v2df): Ditto.
13955 (vec_unpacks_hi_v4sf): Ditto.
13956 (vec_unpacks_lo_v4sf): Ditto.
13957 (vec_unpacks_float_hi_v4si): Ditto.
29e6733c 13958 (vec_unpacks_float_lo_v4si): Ditto.
1262fd02
UB
13959 (vec_unpacku_float_hi_v4si): Ditto.
13960 (vec_unpacku_float_lo_v4si): Ditto.
29e6733c
MM
13961 (movmisalign<mode>): Ditto.
13962 (vector_ceil<mode>2): New patterns for vectorizing math library.
13963 (vector_floor<mode>2): Ditto.
13964 (vector_btrunc<mode>2): Ditto.
13965 (vector_copysign<mode>3): Ditto.
13966
13967 * config/rs6000/predicates.md (easy_vector_constant_msb): New
e61c6562 13968 predicate for setting the high bit in each word, used for copysign.
29e6733c
MM
13969
13970 * config/rs6000/ppc-asm.h (f19): Whitespace.
13971 (f32-f63): Define if VSX.
13972 (v0-v31): Define if Altivec.
13973 (vs0-vs63): Define if VSX.
13974
13975 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
13976
13977 * config/rs6000/power7.md: New file, provide tuning parameters for
13978 -mcpu=power7.
13979
e61c6562 13980 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
29e6733c
MM
13981 (rs6000_cpu_cpp_builtins): Ditto.
13982 (altivec_overloaded_builtins): Ditto.
13983 (altivec_resolve_overloaded_builtin): Ditto.
13984
13985 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
13986 debug switch to disable vectorizing simple math builtin
13987 functions.
13988
13989 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
13990 Vectorize simple math builtin functions.
13991 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
13992 hook to vectorize math builtins.
13993 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
13994 (rs6000_builtin_conversion): Add VSX/power7 support.
13995 (rs6000_builtin_vec_perm): Ditto.
13996 (vsplits_constant): Add support for loading up a vector constant
13997 with just the high bit set in each part.
13998 (rs6000_expand_vector_init): Add VSX/power7 support.
13999 (rs6000_expand_vector_set): Ditto.
14000 (rs6000_expand_vector_extract): Ditto.
14001 (rs6000_emit_move): Ditto.
14002 (bdesc_3arg): Ditto.
14003 (bdesc_2arg): Ditto.
14004 (bdesc_1arg): Ditto.
14005 (rs6000_expand_ternop_builtin): Ditto.
14006 (altivec_expand_builtin): Ditto.
14007 (rs6000_expand_unop_builtin): Ditto.
14008 (rs6000_init_builtins): Ditto.
14009 (altivec_init_builtins): Ditto.
14010 (builtin_function_type): Ditto.
14011 (rs6000_common_init_builtins): Ditto.
14012 (rs6000_handle_altivec_attribute); Ditto.
14013 (rs6000_mangle_type): Ditto.
14014 (rs6000_vector_mode_supported_p): Ditto.
14015 (rs6000_mode_dependent_address): Altivec addresses with AND -16
14016 are mode dependent.
14017
14018 * config/rs6000/vsx.md: New file for VSX support.
14019
14020 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
14021 identifing values with just the most significant bit set.
14022 (enum rs6000_builtins): Add builtins for VSX. Add simple math
14023 vectorized builtins.
14024
14025 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
14026 (UNSPEC_VRFIM): Delete.
14027 (splitter for loading up vector with most significant bit): New
14028 splitter for vectorizing copysign.
14029 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
14030 vectorizing simple math functions.
e61c6562 14031 (altivec_vrfip): Add support for vectorizing simple math functions.
29e6733c
MM
14032 (altivec_vrfim): Ditto.
14033 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
14034
14035 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
14036 (power7.md, vsx.md): Include for power7 support.
14037 (copysigndf3): Use VSX instructions if -mvsx.
14038 (negdf2_fpr): Ditto.
14039 (absdf2_fpr): Ditto.
14040 (nabsdf2_fpr): Ditto.
14041 (adddf3_fpr): Ditto.
14042 (subdf3_fpr): Ditto.
14043 (muldf3_fpr): Ditto.
14044 (divdf3_fpr): Ditto.
14045 (fix_truncdfdi2_fpr): Ditto.
14046 (cmpdf_internal1): Ditto.
14047 (fred, fred_fpr): Convert into expander/insn to add VSX support.
14048 (btruncdf2, btruncdf2_fpr): Ditto.
14049 (ceildf2, ceildf2_fpr): Ditto.
14050 (floordf2, floordf2_fpr): Ditto.
14051 (floatdidf2, floatdidf2_fpr): Ditto.
14052 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
14053 (fmsubdf4_fpr): Ditto.
14054 (fnmadddf4_fpr_1): Ditto.
14055 (fnmadddf4_fpr_2): Ditto.
14056 (fnmsubdf4_fpr_1): Ditto.
14057 (fnmsubdf4_fpr_2): Ditto.
14058 (fixuns_truncdfdi2): Add expander for VSX support.
14059 (fix_truncdfdi2): Ditto.
14060 (fix_truncdfsi2): Ditto.
14061 (ftruncdf2): Ditto.
14062 (btruncsf2): Whitespace.
14063 (movdf_hardfloat32): Add support for VSX registers.
14064 (movdf_softfloat32): Ditto.
14065 (movdf_hardfloat64): Ditto.
14066 (movdf_hardfloat64_mfpgpr): Ditto.
14067 (movdf_softfloat64): Ditto.
14068 (movti splitters): Add check for vector registers supporting
14069 TImode in the future.
14070 (bpermd): Add power7 bpermd instruction.
14071
14072 * config/rs6000/altivec.h (vec_div): Define if VSX.
14073 (vec_mul): Ditto.
14074 (vec_msub): Ditto.
14075 (vec_nmadd): Ditto.
14076 (vec_nearbyint): Ditto.
14077 (vec_rint): Ditto.
14078 (vec_sqrt): Ditto.
e61c6562
UB
14079 (all predicates): Use the generic builtin function, and not the V4SF
14080 specific function so that the predicates will work with VSX's V2DF.
29e6733c
MM
14081 (vec_all_*): Ditto.
14082 (vec_any_*): Ditto.
14083
14084 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
14085 Document new VSX functions and types.
14086
14087 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
14088 switches.
14089
14090 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
14091 "wa", and "j" constraints. Modify "v" to talk about Altivec
14092 instead of just vector.
14093
f5045c96
AM
140942009-07-30 Andrew MacLeod <amacleod@redhat.com>
14095
14096 PR debug/26475
14097 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
14098 location for phi arguments.
14099 (rewrite_update_phi_arguments): Find locations for reaching defs.
14100 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
14101 Add location to add_phi_arg calls.
14102 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
14103 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
14104 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
14105 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
14106 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
14107 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
14108 * tree-phinodes.c (make_phi_node): Initialize location.
14109 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
14110 (add_phi_arg): Add location parameter.
14111 (remove_phi_arg_num): Move location when moving phi argument.
f100a4a8 14112 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
f5045c96
AM
14113 location.
14114 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
14115 slpeel_update_phi_nodes_for_guard1,
14116 slpeel_update_phi_nodes_for_guard2,
14117 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
14118 vect_loop_versioning): Set locations.
14119 * tree-parloops.c (create_phi_for_local_result,
14120 transform_to_exit_first_loop, create_parallel_loop): Add locations.
14121 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
14122 * tree-vect-loop.c (get_initial_def_for_induction,
14123 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
14124 locations.
14125 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
14126 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
14127 (gimple_phi_arg_set_location): New. Set locus.
14128 (gimple_phi_arg_has_location): New. Check for locus.
14129 (redirect_edge_var_map_location): New. Return locus from var_map.
14130 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
14131 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
14132 combining PHI arguments.
14133 (cond_store_replacement): Set location.
14134 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
14135 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
14136 scop_add_exit_phis_edge): Add locations.
14137 * tree-cfgcleanup.c (remove_forwarder_block,
14138 remove_forwarder_block_with_phi): Add locations.
14139 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
14140 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
14141 locations.
14142 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
14143 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
14144 flush_pending_stmts): Add source location.
14145 * lambda-code.c (perfect_nestify): Maintain location stack with argument
14146 stack to preserve locations.
14147 * tree-vect-stmts.c (vectorizable_load): Add location.
14148 * tree-inline.c (copy_phis_for_bb): Copy locus.
14149 (setup_one_parameter): Add call locus to inlined parameter stmts.
14150 (initialize_inlined_parameters): Pass in call location as parameter
14151 assignment locus.
14152 (tree_function_versioning): Pass location to setup_one_parameter.
14153 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
14154 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
14155 copy and edge lists.
14156 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
f100a4a8 14157 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
f5045c96
AM
14158 locus parameter and override the stmt default if provided.
14159 (new_elim_graph, clear_elim_graph, delete_elim_graph,
14160 elim_graph_add_edge, elim_graph_remove_succ_edge,
14161 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
14162 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
14163 eliminate_phi): Add locus info in elimination graph for each edge and
14164 value copy.
14165 (insert_backedge_copies): Copy locus if present.
14166 * tree-flow.h (struct _edge_var_map): Add locus field.
14167 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
14168 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
f100a4a8 14169 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
f5045c96
AM
14170 locations.
14171 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
f100a4a8 14172
2d4b90b1
MJ
141732009-07-30 Martin Jambor <mjambor@suse.cz>
14174
14175 PR tree-optimization/40570
14176 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
14177 use inlining loops.
14178
08dab97a
RL
141792009-07-30 Razya Ladelsky <razya@il.ibm.com>
14180
14181 * ssa-loop-manip.c: Include langhooks.h.
14182 (rewrite_phi_with_iv): New.
14183 (rewrite_all_phi_nodes_with_iv): New.
14184 (canonicalize_loop_ivs): Move here from tree-parloops.c.
14185 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
14186 * tree-parloops.c (loop_parallel_p): Move out all conditions
14187 except dependency check.
14188 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
14189 (gen_parallel_loop): Call canonicalize_loop_ivs without
14190 reduction_list argument.
14191 (build_new_reduction): New.
14192 (gather_scalar_reductions): New.
14193 (try_get_loop_niter): New.
14194 (try_create_reduction_list): New.
14195 (parallleize_loops): Change the parallel conditions check.
14196 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
14197 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
14198
88c2fd3d
DK
141992009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
14200
14201 * opt-functions.awk (opt_args): Allow argument to be enclosed in
14202 curly braces.
14203 * doc/options.texi (Option properties): Mention new quoting syntax.
14204
5ea8f977
DR
142052009-07-29 Douglas B Rupp <rupp@gnat.com>
14206
14207 * config/alpha/alpha.c (alpha_start_function):
14208 Handle VMS_DEBUG_MAIN_POINTER
14209 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
14210 * doc/invoke.texi: Document -mdebug-main switch.
14211
9b2a5ef7
RH
142122009-07-29 Richard Henderson <rth@redhat.com>
14213
14214 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
14215 (cgraph_create_edge_including_clones): Likewise.
14216 * tree-inline.c (copy_bb): Operate on the correct edges
14217 when updating the callgraph.
14218
71cd2220
DR
142192009-07-29 Douglas B Rupp <rupp@gnat.com>
14220
14221 * config/alpha/vms-cc.c: Deleted.
14222 * config/alpha/vms-ld.c: Deleted.
14223 * config/alpha/t-vms64: Moved to config/vms
14224 * config/alpha/vms-crt0-64.c: Moved to config/vms
14225 * config/alpha/vms-crt0.c: Moved to config/vms
14226 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
14227 * config/alpha/vms-psxcrt0.c: Moved to config/vms
14228 * config/alpha/xm-vms.h: Moved to config/vms
14229 * config/alpha/x-vms: Moved to config/vms
14230 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
14231 config/vms/t-vms.
14232 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
14233 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
14234 (version): Set.
14235 * config/vms/t-vms64: Moved here from config/alpha
14236 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
14237 (argc,argv,envp): Enforce 32bit malloc'ing.
14238 * config/vms/vms-psxcrt0-64.c: Likewise.
14239 * config/vms/vms-crt0.c: Moved here from config/alpha.
14240 * config/vms/vms-psxcrt0.c: Likewise.
14241 * config/vms/vms-crtl-64.h: New file.
14242 * config/vms/vms-crtl.h: New file.
14243 * config/vms/vms.opt: New file.
14244 * config/vms/xm-vms64.h: New file.
14245 * config/vms/xm-vms.h: Moved here from config/alpha.
14246 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
14247 Set.
14248 * config/vms/x-vms: Moved here from config/alpha.
14249 (version, VMS_EXTRA_PARTS): Moved to t-vms.
14250 (vms-ld.o, vms-cc.o): Removed.
14251 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
14252
82b75b46
DR
142532009-07-29 Douglas B Rupp <rupp@gnat.com>
14254
14255 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
14256 correct stack (obvious VMS fix).
14257
c2cffdc8
DR
142582009-07-29 Douglas B Rupp <rupp@gnat.com>
14259
14260 * dwarf2out.c (output_file_names): Output VMS style file name, size,
14261 date, version info if VMS_DEBUGGING_INFO defined.
14262 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
14263 size, date calculating code moved here.
14264
0244b03f
PB
142652009-07-29 Paul Brook <paul@codesourcery.com>
14266
14267 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
14268 do_push/do_pop.
14269
bc4eac6d
UB
142702009-07-29 Uros Bizjak <ubizjak@gmail.com>
14271
14272 PR target/40577
14273 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
14274 to DImode when generating insq_le insn.
14275
6f1595d3
DR
142762009-07-28 Douglas B Rupp <rupp@gnat.com>
14277
14278 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
14279 New macro set for VMS_DEBUGGGING_INFO.
14280 (AT_string_form): Use it.
14281
820ca276
DD
142822009-07-28 DJ Delorie <dj@redhat.com>
14283
14284 * config/mep/mep.c (vtext_section): New.
14285 (vftext_section): New.
14286 (ftext_section): New.
14287 (mep_select_section): Add support for functions.
14288 (mep_unique_section): Likewise.
14289 (mep_asm_init_sections): Likewise.
3fb0a660 14290 (mep_encode_section_info): Remove it from here.
820ca276
DD
14291
14292 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
14293
e2121f17
PB
142942009-07-28 Paolo Bonzini <bonzinI@gnu.org>
14295
14296 * tree.h (TREE_DEPRECATED): Document it is used for types too.
14297 (TYPE_VECTOR_OPAQUE): Use default_def_flag
14298
dde08f9b
DR
142992009-07-28 Douglas B Rupp <rupp@gnat.com>
14300
14301 * dwarf2out.c (output_file_names): Test new macro
14302 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
14303 (add_comp_dir_attribute): Likewise.
14304
032502c2
KT
143052009-07-28 Kai Tietz <kai.tietz@onevision.com>
14306
14307 * config/i386/mingw-w64.h (LINK_SPEC): Add
14308 separating space between commands.
14309
b29c2ffd
JH
143102009-07-28 Jan Hubicka <jh@suse.cz>
14311
14312 PR tree-optimization/40759
14313 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
14314 for renaming.
14315
683a1be6
DD
143162009-07-27 DJ Delorie <dj@redhat.com>
14317
14318 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
14319 types are dword-aligned.
14320 (mep_expand_va_start): Likewise.
14321
cf157324 143222009-07-27 Olivier Hainque <hainque@adacore.com>
bc4eac6d 14323 Douglas B Rupp <rupp@gnat.com>
cf157324
OH
14324
14325 * convert.c (convert_to_pointer): Don't assume the target
14326 pointer type is POINTER_SIZE long. Fetch its precision instead.
14327
d4d798a3
DR
143282009-07-27 Douglas B Rupp <rupp@gnat.com>
14329
14330 * system.h (fopen): Undefine if macro.
14331
5823ade1
JJ
143322009-07-27 Jakub Jelinek <jakub@redhat.com>
14333
14334 * dwarf2out.c (output_cfi_p): Removed.
14335 (output_cfis): New function.
14336 (output_fde): New function, split from output_call_frame_info.
14337 (output_call_frame_info): Use it.
14338 (dwarf2out_switch_text_section): Use output_cfis.
14339
648abd76
KT
143402009-07-24 Kai Tietz <kai.tietz@onevision.com>
14341
14342 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
14343 TARGET_BI_ARCH is specified without enabling SJLJ.
14344 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
14345 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
14346
4b89636e
MP
143472009-07-26 Mikael Pettersson <mikpe@it.uu.se>
14348
14349 * arm.md (negdi2): Use DImode if forcing a value into a register.
14350
63827fb8
IR
143512009-07-26 Ira Rosen <irar@il.ibm.com>
14352
14353 PR tree-optimization/40801
14354 * tree-vect-stmts.c (vectorizable_call): Get previous copy
14355 of vector operand from the previous copy of vector statement.
14356 Pass the correct definition type value to
14357 vect_get_vec_def_for_stmt_copy().
14358
db9369bb
JDA
143592009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14360
14361 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
14362 const char ** conversion.
14363
2df77822
DD
143642009-07-25 David Daney <ddaney@caviumnetworks.com>
14365
14366 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
14367 fancy_abort() if !ENABLE_ASSERT_CHECKING.
14368 (gcc_unreachable): Invoke __builtin_unreachable() if
14369 !ENABLE_ASSERT_CHECKING.
14370
1e211590
DD
143712009-07-25 David Daney <ddaney@caviumnetworks.com>
14372
14373 PR rtl-optimization/40445
14374 * emit-rtl.c (next_nonnote_insn_bb): New function.
14375 * rtl.h (next_nonnote_insn_bb): Declare new function.
14376 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
14377 with no successors that is the successor of the ENTRY_BLOCK.
14378 Continue from the top after removing an empty fallthrough block.
14379 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
14380 of next_nonnote_insn.
14381
ba21aba3
DD
143822009-07-25 David Daney <ddaney@caviumnetworks.com>
14383
bc4eac6d 14384 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
f100a4a8 14385
86631ea3
MJ
143862009-07-25 Martin Jambor <mjambor@suse.cz>
14387
14388 * c-common.c (c_common_attribute_table): New element for noclone.
14389 (handle_noclone_attribute): New function. Forward-declare.
14390 * tree-inline.c (tree_versionable_function_p): Check for noclone
14391 attribute.
14392 * doc/extend.texi (Labels as Values): Document need for noclone.
14393 (Function Attributes): Document noclone attribute.
14394
0cf856b7
JJ
143952009-07-25 Jakub Jelinek <jakub@redhat.com>
14396
14397 PR rtl-optimization/34999
14398 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
14399 and dw_fde_switched_cold_to_hot fields.
14400 (output_cfi_p): New function.
14401 (output_call_frame_info): If fde->dw_fde_switched_sections,
14402 output 2 FDEs instead of one with corrupted header.
14403 (dwarf2out_do_cfi_startproc): New function.
14404 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
14405 and fde->dw_fde_switched_cold_to_hot.
14406 (dwarf2out_switch_text_section): Compute
14407 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
14408 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
14409 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
14410 Otherwise, compute fde->dw_fde_switch_cfi.
14411
2a2869d6
CC
144122009-07-24 Cary Coutant <ccoutant@google.com>
14413
14414 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
14415
cbea518e
CC
144162009-07-24 Cary Coutant <ccoutant@google.com>
14417
14418 * cfghooks.c (split_block): Copy discriminator to new block.
14419 * tree-cfg.c (assign_discriminator): Check location of last
14420 instruction in block as well as first.
14421
87da3843
UB
144222009-07-24 Uros Bizjak <ubizjak@gmail.com>
14423
14424 * config/i386/linux.c: Use fputs or putc instead of fprintf
14425 where appropriate.
14426 * config/i386/gas.h: Ditto.
14427 * config/i386/x86-64.h: Ditto.
14428 * config/i386/att.h: Ditto.
14429
a22fb74c
AK
144302009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14431
14432 * expmed.c (emit_store_flag): Use a recursive call to optimize the
14433 xor case.
14434
5b9633c8
MJ
144352009-07-24 Martin Jambor <mjambor@suse.cz>
14436
14437 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
14438 (ipa_push_func_to_list_1): Declare.
14439 (ipa_push_func_to_list): New function.
14440
14441 * ipa-prop.c (ipa_push_func_to_list_1): New function.
14442 (ipa_init_func_list): Call ipa_push_func_to_list_1.
14443 (ipa_push_func_to_list): Removed.
14444 (ipa_pop_func_from_list): Clear node_enqueued flag.
14445
ff5b964d 144462009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 14447
ff5b964d
AK
14448 * config/s390/s390.c (override_options): Default
14449 max-unrolled-insns to 100 for z10 tuning.
14450
223cf84d
TG
144512009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
14452
14453 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
14454 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
14455 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
14456 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
14457 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
14458 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
14459 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
14460
3a802a9e
KT
144612009-07-24 Kai Tietz <kai.tietz@onevision.com>
14462
14463 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
14464 use default set in mingw32.h header.
14465 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
14466 64-bit /mingw/include path.
14467 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
14468 path.
14469
c580edc8
NV
144702009-07-23 Neil Vachharajani <nvachhar@google.com>
14471
14472 PR rtl-optimization/40209
14473 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
14474
0d42d490
UB
144752009-07-23 Uros Bizjak <ubizjak@gmail.com>
14476
14477 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
14478 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
14479 with the rest of string where appropriate. Use fputs or putc
14480 instead of fprintf where appropriate.
14481
a72c65c7
MM
144822009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
14483 Pat Haugen <pthaugen@us.ibm.com>
14484 Revital Eres <ERES@il.ibm.com>
14485
14486 * config/rs6000/vector.md: New file. Move most of the vector
14487 expander support here from altivec.md to allow for the VSX vector
14488 unit in the future. Add support for secondary_reload patterns.
14489 Rewrite the patterns for vector comparison, and vector comparison
14490 predicate instructions so that the RTL expresses the desired
14491 behavior, instead of using unspec.
14492
14493 * config/rs6000/constraints.md ("f" constraint): Use
14494 rs6000_constraints to hold the precalculated register class.
14495 ("d" constraint): Ditto.
14496 ("wd" constraint): New constraint for VSX.
14497 ("wf" constraint): Ditto.
14498 ("ws" constraint): Ditto.
14499 ("wa" constraint): Ditto.
14500 ("wZ" constraint): Ditto.
14501 ("j" constraint): Ditto.
14502
14503 * config/rs6000/predicates.md (vsx_register_operand): New
14504 predicate for VSX.
14505 (vfloat_operand): New predicate for vector.md.
14506 (vint_operand): Ditto.
14507 (vlogical_operand): Ditto.
14508 (easy_fp_constant): If VSX, 0.0 is an easy constant.
14509 (easy_vector_constant): Add VSX support.
14510 (altivec_indexed_or_indirect_operand): New predicate for
14511 recognizing Altivec style memory references with AND -16.
14512
14513 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
14514 for vector secondary reload support.
87da3843
UB
14515 (rs6000_vector_reg_class): Delete, replacing it with
14516 rs6000_constraints.
a72c65c7
MM
14517 (rs6000_vsx_reg_class): Ditto.
14518 (rs6000_constraints): New array to hold the register classes of
14519 each of the register constraints that can vary at runtime.
14520 (builtin_mode_to_type): New static array for builtin function type
14521 creation.
14522 (builtin_hash_table): New static hash table for builtin function
14523 type creation.
14524 (TARGET_SECONDARY_RELOAD): Define target hook.
14525 (TARGET_IRA_COVER_CLASSES): Ditto.
14526 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
0d42d490 14527 registers are 128 bits if VSX memory reference instructions are used.
a72c65c7
MM
14528 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
14529 unit is being used.
14530 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
14531 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
14532 Print several of the scheduling related parameters.
14533 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
14534 rs6000_constraints instead of rs6000_vector_reg_class. Move
14535 -mdebug=reg code to rs6000_debug_reg_global. Add support for
14536 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
14537 Altivec. Add VSX support. Setup for secondary reload support on
14538 Altivec/VSX registers.
14539 (rs6000_override_options): Make power7 set the scheduling groups
14540 like the power5. Add support for new debug switches to override
14541 the scheduling defaults. Temporarily disable -mcpu=power7 from
14542 setting -mvsx. Add support for debug switches -malways-hint,
14543 -msched-groups, and -malign-branch-targets.
14544 (rs6000_buitlin_conversion): Add support for returning unsigned
14545 vector conversion functions to fix regressions due to stricter
14546 type checking.
14547 (rs6000_builtin_mul_widen_even): Ditto.
14548 (rs6000_builtin_mul_widen_odd): Ditto.
14549 (rs6000_builtin_vec_perm): Ditto.
14550 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
14551 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
14552 to zero a register.
14553 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
14554 generated upstream.
14555 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
14556 VSX types for bit operations. Changes to accomidate vector.md.
14557 (bdesc_2arg): Ditto.
14558 (bdesc_1arg): Ditto.
14559 (struct builtin_description_predicates): Rewrite predicate
14560 handling so that RTL describes the operation, instead of passing
14561 the instruction to be used as a string argument.
14562 (bdesc_altivec_preds): Ditto.
14563 (altivec_expand_predicate_builtin): Ditto.
14564 (altivec_expand_builtin): Ditto.
14565 (rs6000_expand_ternop_builtin): Use a switch instead of an if
14566 statement for vsldoi support.
0d42d490 14567 (altivec_expand_ld_builtin): Change to use new names from vector.md.
a72c65c7
MM
14568 (altivec_expand_st_builtin): Ditto.
14569 (paired_expand_builtin): Whitespace changes.
14570 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
14571 builtin_mode_to_type table for secondary reload. Call
14572 builtin_function_type to build random builtin functions.
14573 (altivec_init_builtins): Change to use builtin_function_type to
14574 create builtin function types dynamically as we need them.
14575 (builtin_hash_function): New support for hashing the tree types
14576 for builtin function as we need it, rather than trying to build
0d42d490 14577 all of the trees that we need. Add initial preliminary VSX support.
a72c65c7
MM
14578 (builtin_function_type): Ditto.
14579 (builtin_function_eq): Ditto.
14580 (builtin_hash_struct): Ditto.
14581 (rs6000_init_builtins): Ditto.
14582 (rs6000_common_init_builtins): Ditto.
14583 (altivec_init_builtins): Ditto.
14584 (rs6000_common_init_builtins): Ditto.
14585 (enum reload_reg_type): New enum for simplifing reg classes.
14586 (rs6000_reload_register_type): Simplify register classes into GPR,
0d42d490 14587 Vector, and other registers. Altivec and VSX addresses in reload.
a72c65c7
MM
14588 (rs6000_secondary_reload_inner): Ditto.
14589 (rs6000_ira_cover_classes): New target hook, that returns the
14590 appropriate cover classes, based on -mvsx being used or not.
14591 (rs6000_secondary_reload_class): Add VSX support.
14592 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
14593 (get_vsel_insn): Ditto.
14594 (rs6000_emit_vector_compare): Rewrite vector conditional support
14595 so that where we can, we use RTL operators, instead of blindly use
14596 UNSPEC.
14597 (rs6000_emit_vector_select): Ditto.
14598 (rs6000_emit_vector_cond_expr): Ditto.
0d42d490 14599 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
a72c65c7 14600 (create_TOC_reference): Add -mdebug=addr support.
0d42d490 14601 (emit_frame_save): VSX loads/stores need register indexed addressing.
a72c65c7
MM
14602
14603 * config/rs6000/rs6000.md: Include vector.md.
14604
14605 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
14606
14607 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14608 support for V2DI, V2DF in logical, permute, select operations.
14609
14610 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
14611 switch for vsx/power7.
14612 (-mvsx-scalar-memory): Ditto.
14613 (-mvsx-align-128): Ditto.
14614 (-mallow-movmisalign): Ditto.
14615 (-mallow-df-permute): Ditto.
14616 (-msched-groups): Ditto.
14617 (-malways-hint): Ditto.
14618 (-malign-branch-targets): Ditto.
f100a4a8 14619
a72c65c7
MM
14620 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
14621 hook instead.
14622 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
14623 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
14624 (rs6000_vector_reg_class): Delete.
14625 (rs6000_vsx_reg_class): Ditto.
14626 (enum rs6000_reg_class_enum): New enum for the constraints that
14627 vary based on target switches.
14628 (rs6000_constraints): New array to hold the register class for all
14629 of the register constraints that vary based on the switches used.
14630 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
14631 (enum rs6000_builtins): Add unsigned varients for the builtin
14632 declarations returned by target hooks for expanding multiplies,
14633 select, and permute operations. Add VSX builtins.
14634 (enum rs6000_builtin_type_index): Add entries for VSX.
14635 (V2DI_type_node): Ditto.
14636 (V2DF_type_node): Ditto.
14637 (unsigned_V2DI_type_node): Ditto.
14638 (bool_long_type_node): Ditto.
14639 (intDI_type_internal_node): Ditto.
14640 (uintDI_type_internal_node): Ditto.
14641 (double_type_internal_node): Ditto.
14642
14643 * config/rs6000/altivec.md (whole file): Move all expanders to
14644 vector.md from altivec.md. Rename insn matching functions to be
14645 altivec_foo.
14646 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
14647 (altivec_vcmp*): Ditto.
14648 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
14649 (VM): New iterator for moves that includes the VSX types.
14650 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
14651 (altivec_vperm_<mode>_uns): New, for unsigned types.
0d42d490 14652 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
a72c65c7
MM
14653 (altivec_eq<mode>): Ditto.
14654 (altivec_gt<mode>): Ditto.
14655 (altivec_gtu<mode>): Ditto.
14656 (altivec_eqv4sf): Ditto.
14657 (altivec_gev4sf): Ditto.
14658 (altivec_gtv4sf): Ditto.
14659 (altivec_vcmpbfp_p): Ditto.
14660
6d53a79f
RE
146612009-07-23 Richard Earnshaw <rearnsha@arm.com>
14662
f100a4a8 14663 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
6d53a79f
RE
14664 unsigned HWI.
14665
33ecc126
UB
146662009-07-23 Uros Bizjak <ubizjak@gmail.com>
14667
14668 PR target/40832
011a3198 14669 * config/i386/i386.c (output_387_ffreep): Rewrite to use
33ecc126
UB
14670 ASM_SHORT instead of .word.
14671 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
14672 instead of .word in asm template.
14673
db1a8d98
VM
146742009-07-22 Vladimir Makarov <vmakarov@redhat.com>
14675
14676 PR target/37488
14677 * ira-lives.c (bb_has_abnormal_call_pred): New function.
14678 (process_bb_node_lives): Use it.
14679
14680 * ira.c (setup_cover_and_important_classes): Don't setup
14681 ira_important_class_nums. Add cover classes to the end of
14682 important classes.
011a3198
UB
14683 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
14684 New.
db1a8d98
VM
14685 (find_reg_class_closure): Use reorder_important_classes.
14686
14687 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
14688
14689 * config/i386/i386.c (i386_ira_cover_classes): New function.
14690 (TARGET_IRA_COVER_CLASSES): Redefine.
14691
14692 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
14693 importance of order of cover classes in the array.
f100a4a8 14694
cae63f88
DN
146952009-07-22 Diego Novillo <dnovillo@google.com>
14696
14697 * tree-pass.h (TDF_EH): Define.
14698 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
14699 contains TDF_EH, print the EH region number holding GS.
14700 * tree-dump.c (dump_options): Add "eh".
14701 * doc/invoke.texi: Document it.
14702
61ed6392
DK
147032009-07-22 Doug Kwan <dougkwan@google.com>
14704
14705 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
14706
a8338640
MM
147072009-07-22 Michael Matz <matz@suse.de>
14708
14709 PR tree-optimization/35229
14710 PR tree-optimization/39300
14711
14712 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
14713 (inhibit_phi_insertion): New function.
14714 (insert_into_preds_of_block): Call it for REFERENCEs.
14715 (init_pre): Initialize and finalize scalar evolutions.
14716 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
14717
1a66936f
UB
147182009-07-22 Uros Bizjak <ubizjak@gmail.com>
14719
14720 * config/i386/predicates.md (zero_extended_scalar_load_operand):
14721 Use CONST_VECTOR_NUNITS to determine number of elements.
14722
4fe6dea8
AK
147232009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
14724
14725 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
14726 (U, W): Constraints are now deprecated and will be removed if we
f100a4a8 14727 run out of letters.
4fe6dea8
AK
14728 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
14729 the file.
14730 ("prefetch"): Add the stcmh instruction for prefetching.
14731 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
14732 changes.
14733 (s390_short_displacement): Return always true if compiling for
14734 machines not providing the long displacement facility.
14735 (s390_mem_constraint): Support the new constraint letter Z.
14736 (s390_check_qrst_address): New function.
14737
072ebd49
DD
147382009-07-21 DJ Delorie <dj@redhat.com>
14739
14740 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
14741 alone too.
14742
4afe7ad7
JM
147432009-07-21 Jason Merrill <jason@redhat.com>
14744
14745 * c-common.c (max_tinst_depth): Increase default to 1024.
14746
848e6317
UB
147472009-07-21 Uros Bizjak <ubizjak@gmail.com>
14748
14749 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
14750 (vec_unpacku_float_lo_v4si): Ditto.
14751
54e86f6b
UB
147522009-07-21 Uros Bizjak <ubizjak@gmail.com>
14753
14754 PR target/40811
14755 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
14756 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
14757 (builtin_description): Add __builtin_ia32_cvtudq2ps.
14758 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
14759
4a2b7f24
JJ
147602009-07-21 Jakub Jelinek <jakub@redhat.com>
14761
14762 PR tree-optimization/40813
14763 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
14764 it.
14765
a1516d08
KK
147662009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
14767
14768 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
14769 with a NOP_EXPR if needed.
14770
cba146eb
PB
147712009-07-21 Paul Brook <paul@codesourcery.com>
14772
14773 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
14774 Terminate debug dump with newline.
14775
ef8d9a0e
JDA
147762009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
14777
14778 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
14779 Cast "1" to unsigned HOST_WIDE_INT.
14780 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
14781 deposit length to the maximum length - lsb. Extend length if
14782 HOST_BITS_PER_WIDE_INT is 32.
14783
d48e9cea
OR
147842009-07-20 Olatunji Ruwase <tjruwase@google.com>
14785
14786 * cgraph.h (constant_pool_htab): New function.
14787 (constant_descriptor_tree): Move from varasm.c.
14788 * varasm.c (constant_pool_htab): New function.
14789 (constant_descriptor_tree): Move to cgraph.h.
14790
9c8e65c3
OR
147912009-07-20 Olatunji Ruwase <tjruwase@google.com>
14792
848e6317 14793 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
9c8e65c3 14794
3e014341
SZ
147952009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
14796
14797 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
14798 $(VARRAY_H).
14799
d0763469
XDL
148002009-07-20 Xinliang David Li <davidxl@google.com>
14801
14802 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
14803
752fd2a8
AN
148042009-07-20 Adam Nemet <anemet@caviumnetworks.com>
14805
14806 * config/mips/mips.md (move_type): Add arith.
14807 (type): Handle arith.
14808 (zero_extendsidi2): Rename this into ...
14809 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
14810 (zero_extendsidi2): New expander.
14811 (*zero_extendsidi2_dext): New pattern.
14812
621114bc
NC
148132009-07-20 Nick Clifton <nickc@redhat.com>
14814
14815 * config.gcc (mips64-*-*): Add definition of tm_defines in order
14816 to set MIPS_ABI_DEFAULT.
14817 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
14818
e338758d
JJ
148192009-07-20 Jakub Jelinek <jakub@redhat.com>
14820
38027156
JJ
14821 * tree-object-size.c (addr_object_size): Handle unions with
14822 array in it as last field of structs in __bos (, 1) as __bos (, 0).
14823
e338758d
JJ
14824 PR tree-optimization/40792
14825 * tree.c (build_function_type_skip_args): Remove bogus assert.
14826
08ad1d6d 148272009-07-20 Jan Hubicka <jh@suse.cz>
848e6317 14828 Martin Jambor <mjambor@suse.cz>
08ad1d6d
JH
14829
14830 * cgraph.h (combined_args_to_skip): New field.
14831 * cgraph.c (cgraph_create_virtual_clone): Properly handle
14832 combined_args_to_skip and args_to_skip.
14833 * tree-inline.c (update_clone_info): New function.
14834 (tree_function_versioning): Call update_clone_info.
bd62d832 14835 * cgraphunit.c (cgraph_materialize_clone): Dump materialized
1a66936f 14836 functions.
08ad1d6d
JH
14837 (cgraph_materialize_all_clones): More extensive dumping, working
14838 with combined_args_to_skip rather than args_to_skip.
14839
4bbe8262
IR
148402009-07-20 Ira Rosen <irar@il.ibm.com>
14841
14842 * tree-vectorizer.h (vectorizable_condition): Add parameters.
14843 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
14844 (get_initial_def_for_reduction): Likewise.
14845 (vectorizable_reduction): Skip the check of first operand in case
14846 of COND_EXPR. Add check that it is outer loop vectorization if
f100a4a8 14847 nested cycle was detected. Call vectorizable_condition() for
4bbe8262
IR
14848 COND_EXPR. If reduction epilogue cannot be created do not fail for
14849 nested cycles (if it is not double reduction). Assert that there
14850 is only one type in the loop in case of COND_EXPR. Call
14851 vectorizable_condition() to vectorize COND_EXPR.
14852 * tree-vect-stmts.c (vectorizable_condition): Update comment.
f100a4a8 14853 Add parameters. Allow nested cycles if called from
4bbe8262
IR
14854 vectorizable_reduction(). Use reduction vector variable if provided.
14855 (vect_analyze_stmt): Call vectorizable_reduction() before
14856 vectorizable_condition().
14857 (vect_transform_stmt): Update call to vectorizable_condition().
14858
6a799f6e 148592009-07-20 Christian Bruel <christian.bruel@st.com>
f100a4a8 14860
6a799f6e
CB
14861 * config/sh/sh.opt (-mfmovd): Resurrect and document.
14862 * doc/invoke.texi (-mfmovd): Likewise.
14863 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
f100a4a8 14864
eab09a51
JH
148652009-07-20 Jan Hubicka <jh@suse.cz>
14866
14867 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
14868 when handling SSA name.
14869
a915ab00
JH
148702009-07-19 Jan Hubicka <jh@suse.cz>
14871
14872 PR tree-optimization/40676
14873 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
14874 virtual PHIs in empty BBs.
14875
827f4079
AN
148762009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14877
14878 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
14879 re-expanded the compound use gen_lowpart instead to convert to the
14880 desired mode.
14881
f3ce1088
AN
148822009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14883
14884 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
14885 OUTER_CONST arguments.
14886 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
14887 the new wider mode will be masked off.
14888 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
14889
3e63dd3a
AN
148902009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14891
14892 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
14893 high-order bits are zero.
14894
b641d7fc
AN
148952009-07-18 Adam Nemet <anemet@caviumnetworks.com>
14896
14897 * combine.c (simplify_shift_const_1): Split code to determine
14898 shift_mode into ...
14899 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
14900 new bits shifted in are identical to the old sign bit.
14901
33922890
RG
149022009-07-18 Richard Guenther <rguenther@suse.de>
14903
14904 PR c/40787
14905 * gimplify.c (gimplify_call_expr): Reject code using results from
14906 functions returning void.
14907
1d447995
RS
149082009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
14909
14910 * doc/md.texi: Document the new PowerPC "es" constraint.
14911 Document that "m" can include automodified addresses on this target,
14912 and explain how %U must be used. Extend the "Q" and "Z" documentation
14913 to suggest "es" as well as "m".
14914 * config/rs6000/constraints.md (es): New memory constraint.
14915 (Q, Z): Update strings to match new documentation.
14916
406d1650
RS
149172009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
14918
14919 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
14920 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
14921 * config/rs6000/predicates.md (volatile_mem_operand): Use
14922 offsettable_nonstrict_memref_p.
14923 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
14924 (*floatunssidf2_internal): Likewise.
14925 (*fix_truncdfsi2_internal): Likewise.
14926 (*fix_trunctfsi2_internal): Likewise.
14927
a0ce0e6e
AS
149282009-07-17 Anatoly Sokolov <aesok@post.ru>
14929
14930 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
14931 atmega32u2 devices.
14932 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
14933
a406865a
RG
149342009-07-17 Richard Guenther <rguenther@suse.de>
14935
14936 PR c/40401
14937 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
14938 (pass_warn_unused_result): Likewise.
14939 (TODO_set_props): Remove.
14940 * omp-low.c (diagnose_omp_structured_block_errors): Change to
14941 run as a pass.
14942 (pass_diagnose_omp_blocks): Define.
14943 * c-decl.c (pop_file_scope): Do not finalize the CU here.
14944 (c_gimple_diagnostics_recursively): Remove.
14945 (finish_function): Do not call it.
14946 (c_write_global_declarations): Continue after errors.
14947 Finalize the CU here.
14948 * c-gimplify.c (c_genericize): Do not gimplify here.
14949 * c-common.c (c_warn_unused_result): Move ...
14950 * tree-cfg.c (do_warn_unused_result): ... here.
14951 (run_warn_unused_result): New function.
14952 (gate_warn_unused_result): New function.
14953 (pass_warn_unused_result): New pass.
14954 * c-common.h (c_warn_unused_result): Remove.
14955 * flags.h (flag_warn_unused_result): Declare.
14956 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
14957 * opts.c (flag_warn_unused_result): Initialize to false.
14958 * toplev.c (compile_file): Add comment.
14959 * omp-low.c (create_omp_child_function): Do not register
14960 the function with the frontend.
14961 (diagnose_omp_structured_block_errors): Prepare to be
14962 called as optimization pass.
14963 (gate_diagnose_omp_blocks): New function.
14964 (pass_diagnose_omp_blocks): New pass.
14965 * cgraph.h (cgraph_optimize): Remove.
14966 (cgraph_analyze_function): Likewise.
14967 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
14968 * cgraphunit.c (cgraph_lower_function): Lower nested functions
14969 before their parents here.
14970 (cgraph_finalize_function): Not here.
14971 (cgraph_analyze_function): Gimplify functions here.
14972 (cgraph_finalize_compilation_unit): Continue after errors.
14973 Optimize the callgraph from here.
14974 (cgraph_optimize): Make static.
14975 * langhooks.c (write_global_declarations): Finalize the CU.
14976 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
14977 (gimplify_function_tree): Assert we gimplify only once.
14978 Set PROP_gimple_any property.
14979 * tree-nested.c (gimplify_all_functions): New function.
14980 (lower_nested_functions): Gimplify all nested functions.
14981 * gimple.h (diagnose_omp_structured_block_errors): Remove.
14982 * passes.c (init_optimization_passes): Add pass_warn_unused_result
14983 and pass_diagnose_omp_blocks after gimplification. Do not
14984 set TODO_set_props on all_lowering_passes.
14985 (execute_one_pass): Do not handle TODO_set_props.
14986 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
14987 (gimplify.o): Add tree-pass.h dependency.
14988 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
14989 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
14990 (unsave_r): Likewise.
14991 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
14992 temporary variable.
14993
2e687c2c
SL
149942009-07-17 Sandra Loosemore <sandra@codesourcery.com>
14995
14996 * doc/service.texi (Service): Restore previously removed link,
14997 which isn't broken after all.
14998
7763473e
RG
149992009-07-17 Richard Guenther <rguenther@suse.de>
15000
15001 PR tree-optimization/40321
15002 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
15003 PHI nodes to the maximal set.
15004 (make_values_for_phi): Add PHI arguments to the maximal set.
15005 (execute_pre): Dump PHI_GEN and the maximal set.
15006
4f934809
JJ
150072009-07-17 Jakub Jelinek <jakub@redhat.com>
15008
15009 PR c++/40780
15010 * gimplify.c (gimplify_conversion): Don't change non-conversions into
15011 VIEW_CONVERT_EXPR.
15012
63a26b78
SL
150132009-07-16 Sandra Loosemore <sandra@codesourcery.com>
15014
15015 * doc/extend.texi (Nested Functions): Replace broken link with
15016 textual reference.
15017 * doc/service.texi (Service): Remove broken link.
15018
3ac337c3
L
150192009-07-16 H.J. Lu <hongjiu.lu@intel.com>
15020
15021 PR bootstrap/40781
15022 * builtins.c (expand_builtin_memcmp): Use loc instead of
15023 EXPR_LOCATION (exp).
15024 (expand_builtin_strncmp): Likewise.
15025
db3927fb
AH
150262009-07-17 Aldy Hernandez <aldyh@redhat.com>
15027 Manuel López-Ibáñez <manu@gcc.gnu.org>
15028
f100a4a8 15029 PR 40435
db3927fb
AH
15030 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
15031 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
15032 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
15033 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
15034 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
15035 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
15036 tree-inline.c, c-common.c, c-common.h, gimple.c,
15037 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
15038 convert.c: Add location argument to fold_{unary,binary,ternary},
15039 fold_build[123], build_call_expr, build_size_arg,
15040 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
15041 fold_build1_initializer, fold_build2_initializer,
15042 fold_build3_initializer, fold_build_call_array,
15043 fold_build_call_array_initializer, fold_single_bit_test,
15044 omit_one_operand, omit_two_operands, invert_truthvalue,
15045 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
15046 combine_comparisons, fold_builtin_*, fold_call_expr,
15047 build_range_check, maybe_fold_offset_to_address, round_up,
15048 round_down.
15049
c32097d8
JM
150502009-07-16 Jason Merrill <jason@redhat.com>
15051
15052 PR libstdc++/37907
15053 * c-common.c (c_common_reswords): Add __is_standard_layout
15054 and __is_trivial.
15055 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
15056 * doc/implement-cxx.texi: New.
15057 * doc/gcc.texi: Include it.
15058
b3c5a409
DD
150592009-07-16 DJ Delorie <dj@redhat.com>
15060
15061 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
15062 compares that may be indirectly affected by previous instructions.
15063
a41d064d
KG
150642009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15065
15066 * builtins.c (do_mpc_arg2): New.
15067 (fold_builtin_2): Fold builtin cpow.
15068 * real.h (HAVE_mpc_pow): New.
15069
db87b56d
BM
150702009-07-16 Bingfeng Mei <bmei@broadcom.com>
15071
9e7c935a
UB
15072 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
15073 comparison to skip unprofitable schedule
15074
ba0c638e
SB
150752009-07-16 Simon Baldwin <simonb@google.com>
15076
15077 * gcc.c (option_map): New flag -no-canonical-prefixes.
15078 * (display_help): Print help text for new flag.
15079 * (process_command): Move options translation and language specifics
15080 and handle new flag early. Use it to set a function pointer to a
15081 prefix builder. Replace make_relative_prefix calls with calls to
15082 the function pointed to. Ignore new flag in regular options handling.
15083 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
15084
11af2d7b
DD
150852009-07-15 DJ Delorie <dj@redhat.com>
15086
15087 * config/mep/mep.md (sibcall_internal): Change register to avoid
15088 argument registers.
15089 (sibcall_value_internal): Likewise.
15090
9d2bb902
EB
150912009-07-15 Eric Botcazou <ebotcazou@adacore.com>
15092
15093 PR rtl-optimization/40710
15094 * resource.c (mark_target_live_regs): Reset DF problem to LR.
15095
da45599c
AN
150962009-07-15 Adam Nemet <anemet@caviumnetworks.com>
15097
15098 * config/mips/mips.md (*extenddi_truncate<mode>,
15099 *extendsi_truncate<mode>): Change type attribute to move_type
15100 with shift_shift. Split out code handling exts from here ...
15101 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
15102 pattern.
15103 (*extendhi_truncateqi): Change type attribute to move_type with
15104 shift_shift. Split out code handling exts from here ...
15105 (*extendhi_truncateqi_exts): ... to this new pattern.
15106
31f44cd0 151072009-07-15 Uros Bizjak <ubizjak@gmail.com>
1fba7394 15108
31f44cd0
UB
15109 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
15110 instead of "and" with inverted sign bit mask value. Use
15111 "nonimmediate_operand" for operand 1 and operand 2 predicate.
15112 Allocate registers only for operand 4 and operand 5.
1fba7394 15113
b4e4232d
JJ
151142009-07-15 Jakub Jelinek <jakub@redhat.com>
15115
15116 PR middle-end/40747
15117 * fold-const.c (fold_cond_expr_with_comparison): When folding
15118 < and <= to MIN, make sure the MIN uses the same type as the
15119 comparison's operands.
15120
fa01135d
RE
151212009-07-15 Richard Earnshaw <rearnsha@arm.com>
15122
15123 * arm.md (ior_xor): New code iterator.
15124 (split for ior/xor with shift and zero-extend): New split pattern.
15125 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
15126
b41e33fe
RG
151272009-07-15 Richard Guenther <rguenther@suse.de>
15128
15129 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
15130 offset member.
15131
c9b2f286
RG
151322009-07-15 Richard Guenther <rguenther@suse.de>
15133
15134 PR middle-end/40753
1fba7394 15135 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
c9b2f286 15136
31d29c40
MK
151372009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
15138
15139 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
15140 handle 2.6.30 kernel.
15141
18e67adf
DD
151422009-07-15 DJ Delorie <dj@redhat.com>
15143
15144 * config/mep/mep.md (sibcall_internal): Change register to allow
15145 for 24-bit addresses.
15146 (sibcall_value_internal): Likewise.
15147
96809b41 151482009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 15149
1fba7394
UB
15150 * doc/invoke.texi: Added descriptions of the scheduling heuristics
15151 that are enabled/disabled by the flags introduced by a previous patch.
f100a4a8 15152
54a1e1d0
DD
151532009-07-14 DJ Delorie <dj@redhat.com>
15154
15155 * config/mep/mep.md (sibcall_internal): Include non-toggling
15156 non-jmp case.
15157 (sibcall_value_internal): Likewise.
15158
2a4c0366
TG
151592009-07-14 Taras Glek <tglek@mozilla.com>
15160 Rafael Espindola <espindola@google.com>
15161
15162 * doc/sourcebuild.texi: Document install-plugin target.
15163 * configure.ac: Added install-plugin target to language makefiles.
15164 * configure: Regenerate.
bd62d832 15165 * Makefile.in (install-plugin): Install more headers,
2a4c0366
TG
15166 depend on lang.install-plugin.
15167
2349c14b
MLI
151682009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
15169
15170 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
15171 translation.
f100a4a8 15172
a9d1723f
DD
151732009-07-14 DJ Delorie <dj@redhat.com>
15174
15175 * config/mep/mep.c (mep_vliw_jmp_match): New function.
15176 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
15177 * config/mep/mep.md (sibcall_internal): Change test from
15178 mep_vliw_mode_match to mep_vliw_jmp_match.
15179 (sibcall_value_internal): Likewise.
15180
af766f2d
UB
151812009-07-14 Uros Bizjak <ubizjak@gmail.com>
15182
15183 * config/i386/sse.md (copysign<mode>3): New expander.
15184 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
15185 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
15186 Use ix86_build_const_vector.
15187 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
15188 IX86_BUILTIN_CPYSGNPD.
15189 (builtin_description): Add __builtin_ia32_copysignps and
15190 __builtin_ia32_copysignpd.
15191 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
15192 and BUILT_IN_COPYSIGNF.
15193
b35c8160
JM
151942009-07-13 Jason Merrill <jason@redhat.com>
15195
15196 * builtins.c (can_trust_pointer_alignment): New fn.
15197 (get_pointer_alignment): Factor it out from here.
15198 * tree.h: Declare it.
15199
e02e8e58
DE
152002009-07-14 David Edelsohn <edelsohn@gnu.org>
15201
15202 * config/rs6000/predicates.md (offsettable_mem_operand): Test
15203 RTX_AUTOINC class.
15204
4fdaccea
DS
152052009-07-14 Dodji Seketeli <dodji@redhat.com>
15206
15207 PR debug/40705
15208 PR c++/403057
15209 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
15210
0b200b80 152112009-07-14 Richard Guenther <rguenther@suse.de>
af766f2d 15212 Andrey Belevantsev <abel@ispras.ru>
0b200b80
RG
15213
15214 PR middle-end/40745
15215 * cfgexpand.c (partition_stack_vars): Do not bother to update
15216 alias information when not optimizing.
15217
55b34b5f 152182009-07-14 Richard Guenther <rguenther@suse.de>
848e6317 15219 Andrey Belevantsev <abel@ispras.ru>
55b34b5f
RG
15220
15221 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
15222 (pt_solution_set): Likewise.
15223 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
15224 * tree-ssa-structalias.c (pt_solution_set): New function.
15225 * final.c (rest_of_clean_state): Free SSA data structures.
15226 * print-rtl.c (print_decl_name): Remove.
15227 (print_mem_expr): Implement in terms of print_generic_expr.
15228 * alias.c (ao_ref_from_mem): New function.
15229 (rtx_refs_may_alias_p): Likewise.
15230 (true_dependence): Query alias-export info.
15231 (canon_true_dependence): Likewise.
15232 (write_dependence_p): Likewise.
15233 * tree-dfa.c (get_ref_base_and_extent): For void types leave
15234 size unknown.
15235 * emit-rtl.c (component_ref_for_mem_expr): Remove.
15236 (mem_expr_equal_p): Use operand_equal_p.
15237 (set_mem_attributes_minus_bitpos): Do not use
15238 component_ref_for_mem_expr.
15239 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
15240 (update_alias_info_with_stack_vars): Likewise.
15241 (partition_stack_vars): Call update_alias_info_with_stack_vars.
15242 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
15243 explicitly nor clear stmt operands.
15244 Free the decl-to-pointer map.
15245 * tree-optimize.c (execute_free_datastructures): Do not free
15246 SSA data structures here.
15247 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
15248 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
15249 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
15250 dependencies.
15251 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
15252
a46f0964
DD
152532009-07-13 DJ Delorie <dj@redhat.com>
15254
1700c2e7
DD
15255 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
15256 unrolling at the right iteration count.
15257
a46f0964
DD
15258 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
15259 calculations.
15260
ee4764a8 152612009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
f100a4a8 15262
af766f2d
UB
15263 * haifa-sched.c (rank_for_schedule): Introduced flags to
15264 enable/disable individual scheduling heuristics.
15265 * common.opt: Introduced flags to enable/disable individual
f100a4a8 15266 heuristics in the scheduler.
af766f2d
UB
15267 * doc/invoke.texi: Introduced flags to enable/disable individual
15268 heuristics in the scheduler.
f100a4a8 15269
9122666c
KT
152702009-07-13 Kai Tietz <kai.tietz@onevision.com>
15271
15272 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
15273 config/i386/mingw-tls.c.
15274 * config/i386/mingw-tls.c: Removed.
15275
2f3e235b
IR
152762009-07-13 Ira Rosen <irar@il.ibm.com>
15277
f100a4a8 15278 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
2f3e235b
IR
15279 checks access only relevant statements.
15280 (vectorizable_reduction): Likewise.
15281
f345f84a
KT
152822009-07-12 Kai Tietz <kai.tietz@onevision.com>
15283
15284 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
15285 just for 32-bit case.
15286
f645e9a2
JH
152872009-07-12 Jan Hubicka <jh@suse.cz>
15288
15289 PR tree-optimization/40585
15290 * except.c (expand_resx_expr): When there already is resume
15291 instruction, produce linked list.
15292 (build_post_landing_pads): Assert that resume is empty.
15293 (connect_post_landing_pads): Handle resume lists.
15294 (dump_eh_tree): Dump resume list.
15295
06066f92
IR
152962009-07-12 Ira Rosen <irar@il.ibm.com>
15297
15298 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
15299 with additional argument.
7c8b1a77 15300 * tree-vectorizer.h (enum vect_def_type): Add
06066f92
IR
15301 vect_double_reduction_def.
15302 (vect_is_simple_reduction): Add argument.
7c8b1a77 15303 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
06066f92
IR
15304 indentation.
15305 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
15306 vect_is_simple_reduction with additional argument.
15307 (vect_analyze_loop_operations): Handle exit phi nodes in case of
15308 double reduction.
15309 (reduction_code_for_scalar_code): Handle additional codes by
15310 returning ERROR_MARK for them. Fix comment and indentation.
15311 (vect_is_simple_reduction): Fix comment, add argument to specify
15312 double reduction. Detect double reduction.
15313 (get_initial_def_for_induction): Fix indentation.
15314 (get_initial_def_for_reduction): Fix comment and indentation.
15315 Handle double reduction. Create initial definitions that do not
15316 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
15317 (vect_create_epilog_for_reduction): Fix comment, add argument to
15318 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
15319 epilogue result extraction. Create double reduction phi node and
15320 replace relevant uses.
15321 (vectorizable_reduction): Call vect_is_simple_reduction with
15322 additional argument. Fix indentation. Update epilogue code treatment
7c8b1a77 15323 according to the changes in reduction_code_for_scalar_code. Check
06066f92
IR
15324 for double reduction. Call vect_create_epilog_for_reduction with
15325 additional argument.
15326 * tree-vect-stmts.c (process_use): Handle double reduction, update
15327 documentation.
15328 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
15329 (vect_get_vec_def_for_operand): Likewise.
15330
b20231fe
DS
153312009-07-12 Danny Smith <dansmister@gmail.com>
15332
15333 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
15334 dllexport if !TREE_PUBLIC.
15335 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
15336
97c281da
AS
153372009-07-11 Anatoly Sokolov <aesok@post.ru>
15338
15339 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
15340 (avr_extra_arch_macro) Remove declatation.
15341 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
15342 (avr_extra_arch_macro) Declare as static.
15343 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
15344
6b45de00
JH
153452009-07-11 Jan Hubicka <jh@suse.cz>
15346
15347 PR middle-end/48388
15348 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
15349
dd67163f
JJ
153502009-07-11 Jakub Jelinek <jakub@redhat.com>
15351
3e3a9a6a
JJ
15352 PR debug/40713
15353 * dwarf2out.c (dw_fde_struct): Add in_std_section and
15354 cold_in_std_section bits.
15355 (dwarf2out_begin_prologue): Initialize them.
15356 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
15357 if already covered by text_section or cold_text_section range.
15358
ae58e548
JJ
15359 PR rtl-optimization/40667
15360 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
15361 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
15362 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
15363 * config/i386/i386.c (ix86_minimum_alignment): New function.
15364 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
15365 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
15366 * emit-rtl.c (gen_reg_rtx): Likewise.
15367 * function.c (assign_parms): Likewise. If nominal_type needs
15368 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
15369 rather than passed_type's alignment.
15370
dd67163f
JJ
15371 PR target/40668
15372 * function.c (assign_parm_setup_stack): Adjust
15373 MEM_OFFSET (data->stack_parm) if promoted_mode is different
15374 from nominal_mode on big endian.
15375
e9edda23
PB
153762009-07-11 Paolo Bonzini <bonzini@gnu.org>
15377
15378 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
15379
82e45095
DD
153802009-07-10 DJ Delorie <dj@redhat.com>
15381
15382 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
15383
98ac6510
MM
153842009-07-10 Mark Mitchell <mark@codesourcery.com>
15385
15386 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
15387 attribute.
15388 (thumb2_cbnz): Likewise.
15389
b96c5923
DD
153902009-07-10 David Daney <ddaney@caviumnetworks.com>
15391
15392 PR target/39079
15393 * config.gcc (supported_defaults): Add synci.
15394 (with_synci): Add validation.
15395 (all_defaults): Add synci.
15396 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
15397 ISA_HAS_SYNCI.
15398 (synci): Same.
15399 * config/mips/mips.opt (msynci): New option.
15400 * config/mips/mips.c (mips_override_options): Warn on use of
15401 -msynci for targets that do now support it.
15402 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
15403 msynci.
15404 * gcc/doc/invoke.texi (-msynci): Document the new option.
15405 * doc/install.texi (--with-synci): Document the new option.
15406
182e00b1
RG
154072009-07-10 Richard Guenther <rguenther@suse.de>
15408
15409 PR tree-optimization/40496
15410 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
15411 the PHI result with a compatible type.
15412
156f545a
MLI
154132009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
15414
15415 PR 25509
15416 PR 40614
15417 * c.opt (Wunused-result): New.
15418 * doc/invoke.texi: Document it.
15419 * c-common.c (c_warn_unused_result): Use it.
15420
06c43499
DD
154212009-07-09 DJ Delorie <dj@redhat.com>
15422
5cec9f59
DD
15423 * targhooks.c (default_target_can_inline_p): Rename from
15424 default_target_option_can_inline_p.
15425 * targhooks.h (default_target_can_inline_p): Likewise.
15426 * target-def.h (TARGET_CAN_INLINE_P): Rename from
15427 TARGET_OPTION_CAN_INLINE_P.
15428 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
15429 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
15430 (mep_target_can_inline_p): Rename from
15431 mep_target_option_can_inline_p.
15432
15433 PR target/40626
b9263ae5
DD
15434 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
15435 registers used to pass vectors.
15436
06c43499
DD
15437 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
15438
a80b0574
TT
154392009-07-09 Tom Tromey <tromey@redhat.com>
15440
15441 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
15442 * config/mmix/mmix.c: Include dwarf2.h.
15443 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
15444 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
15445 * config/sh/sh.c: Include dwarf2.h.
15446 * config/i386/i386.c: Include dwarf2.h.
15447 * Makefile.in (DWARF2_H): Remove 'elf'.
15448 * except.c: Include dwarf2.h.
15449 * unwind-dw2.c: Include dwarf2.h.
15450 * dwarf2out.c: Include dwarf2.h.
15451 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
15452 * unwind-dw2-fde.c: Include dwarf2.h.
15453 * dwarf2asm.c: Include dwarf2.h.
15454
356c23b3 154552009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
7c8b1a77 15456
356c23b3 15457 * haifa-sched.c (insn_finishes_cycle_p): New static function.
7c8b1a77
UB
15458 (max_issue): Use it.
15459 * sched-int.h (struct sched_info: insn_finishes_block_p): New
15460 scheduler hook.
15461 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
15462 (region_sched_info): Update.
15463 * sched-ebb.c (ebb_sched_info): Update.
15464 * modulo-sched.c (sms_sched_info): Update.
356c23b3
MK
15465 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
15466
5223c588
MK
154672009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
15468
15469 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
8d4cf6d7
BS
15470
154712009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
15472
f100a4a8 15473 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
8d4cf6d7 15474
b9da76de
JJ
154752009-07-09 Jakub Jelinek <jakub@redhat.com>
15476
15477 PR middle-end/40692
15478 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
15479 arg1 with arg01 if arg1 is already INTEGER_CST.
15480
fcaf7e12
AN
154812009-07-08 Adam Nemet <anemet@caviumnetworks.com>
15482
7c8b1a77
UB
15483 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
15484 Transform (and (truncate)) into (truncate (and)).
fcaf7e12 15485
3f36bac2
AN
154862009-07-08 Adam Nemet <anemet@caviumnetworks.com>
15487
15488 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
15489 creating LHS paradoxical subregs. Fix surrounding returns to
15490 use NULL_RTX rather than 0.
15491
ae30c1fa
DD
154922009-07-08 DJ Delorie <dj@redhat.com>
15493
bd62d832 15494 * config/mep/mep.c (mep_option_can_inline_p): New.
ae30c1fa
DD
15495 (TARGET_OPTION_CAN_INLINE_P): Define.
15496
3d78d293
MW
154972009-07-08 Mark Wielaard <mjw@redhat.com>
15498
15499 PR debug/40659
15500 * dwarf2out.c (add_data_member_location_attribute): When we have
15501 only a constant offset don't emit a new location description using
15502 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
15503 dwarf_version > 2.
15504
ac2e563f
RH
155052009-07-08 Richard Henderson <rth@redhat.com>
15506
15507 PR target/38900
15508 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
15509 (enum reg_class): Add CLOBBERED_REGS.
15510 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
15511 * config/i386/i386.c (ix86_conditional_register_usage): Moved
15512 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
15513 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
15514 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
15515 force 64-bit sibcalls into R11.
15516 * config/i386/constraints.md (U): New constraint.
15517 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
15518 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
15519 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
15520
8ed77e22
SZ
155212009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
15522
15523 * basic-block.h (dump_regset, debug_regset): Remove duplicate
15524 prototypes.
15525 * c-objc-common.h (c_initialize_diagnostics): Ditto.
15526 * ebitmap.h (dump_ebitmap): Ditto.
15527 * optabs.h (optab_libfunc): Ditto.
15528 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
15529 * tree-flow.h (vect_can_force_dr_alignment_p,
3f36bac2 15530 get_vectype_for_scalar_type): Ditto.
8ed77e22 15531 (vectorize_loops): Move prototype to ...
3f36bac2 15532 * tree-vectorizer.h: ... here. Also, adjust comment.
8ed77e22
SZ
15533 (vect_set_verbosity_level): Remove duplicate prototype.
15534 * tree-ssa-loop.c: Include tree-vectorizer.h.
15535 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
15536
c6075b13
NC
155372009-07-08 Nick Clifton <nickc@redhat.com>
15538
15539 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
15540 forward slash.
15541
d1b5afd5
DD
155422009-07-08 DJ Delorie <dj@redhat.com>
15543
15544 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
15545 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
15546 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
15547 written to.
15548 * config/mep/intrinsics.md: Regenerated.
15549 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
15550 registers when asm() or calls are detected.
3f36bac2 15551
d665b6e5
MLI
155522009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
15553
15554 PR c++/31246
15555 * gimplify.c (gimplify_expr): Propagate no_warning flag when
15556 gimplifying.
15557 * gimple (gimple_build_call_from_tree): Likewise.
15558 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
15559 no_warning flag before warning.
3f36bac2 15560
5e278028
MLI
155612009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15562
15563 * tree.c (set_expr_locus): Remove.
15564 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
15565 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
15566 EXPR_LOCATION.
15567 * gimplify.c (internal_get_tmp_var): Likewise.
15568 (gimplify_call_expr): Likewise.
15569 (gimplify_one_sizepos): Likewise.
15570
ed3346c2
EB
155712009-07-07 Eric Botcazou <ebotcazou@adacore.com>
15572
15573 PR debug/40666
15574 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
15575 to variables for debugging purposes.
15576
4db19cc7
ML
155772009-06-23 Mark Loeser <mark@halcy0n.com>
15578
15579 PR build/40010
15580 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
15581
72f90fde
MLI
155822009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15583
15584 * pretty-print.c (pp_base_format): Remove %J.
15585 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
15586 gcc_cxxdiag_char_table): Likewise.
15587 (init_dynamic_diag_info): Likewise.
4db19cc7 15588
dcb91ebe
MLI
155892009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15590
15591 * pretty-print.c (pp_base_format): Remove %H.
15592 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
15593 gcc_cxxdiag_char_table): Likewise.
15594 (init_dynamic_diag_info): Likewise.
15595 * config/mep/mep.c (mep_select_section): Likewise.
15596
cf400ddb
DS
155972009-07-07 Duncan Sands <baldrick@free.fr>
15598
7c8b1a77
UB
15599 * final.c (pass_clean_state): Give the pass a name.
15600 * passes.c (pass_rest_of_compilation): Likewise.
15601 * tree-optimize.c (pass_all_optimizations): Likewise.
cf400ddb 15602
d575725b
L
156032009-07-07 H.J. Lu <hongjiu.lu@intel.com>
15604
15605 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
15606 an extra 'decl' for error_at.
15607
535536b4
JJ
156082009-07-07 Jakub Jelinek <jakub@redhat.com>
15609
15610 PR middle-end/40669
15611 * tree-tailcall.c (adjust_return_value_with_ops,
15612 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
15613 if it has complex or vector type.
15614
f062f8f2
OH
156152009-07-07 Olivier Hainque <hainque@adacore.com>
15616
d575725b
L
15617 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
15618 pthread symbols.
f062f8f2 15619
cac1b0ee
BS
156202009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
15621
15622 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
15623
c5d75364
MLI
156242009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15625
7c8b1a77 15626 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
c5d75364
MLI
15627 * c-decl.c: Likewise.
15628 * function.c: Likewise.
15629 * varasm.c: Likewise.
15630 * tree-ssa.c: Likewise.
15631 * c-common.c: Likewise.
15632 * tree-cfg.c: Likewise.
15633 * config/spu/spu.c: Likewise.
15634 * config/ia64/ia64.c: Likewise.
15635 * config/v850/v850.c: Likewise.
15636
b932c20b
DD
156372009-07-06 DJ Delorie <dj@redhat.com>
15638
15639 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
15640 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
15641 unspecified accesses to control registers.
15642 * config/mep/intrinsics.md: Regenerate.
15643 * config/mep/intrinsics.h: Regenerate.
15644 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 15645
fab922b1
MLI
156462009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
15647
15648 * c-lex.c: Replace %H by an explicit location. Update all calls.
15649 * c-common.c: Likewise.
15650 * c-decl.c: Likewise.
15651 * c-typeck.c: Likewise.
15652 * fold-const.c: Likewise.
15653 * gimplify.c: Likewise.
15654 * stmt.c: Likewise.
15655 * tree-cfg.c: Likewise.
15656 * tree-ssa-loop-niter.c: Likewise.
15657 * tree-vrp.c: Likewise.
15658 * value-prof.c: Likewise.
15659
66350781
DN
156602009-07-06 Diego Novillo <dnovillo@google.com>
15661
15662 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
15663 if it has one. Handle cases where VAR does not have an
15664 annotation or cfun is NULL.
15665
d251bfca
DN
156662009-07-06 Diego Novillo <dnovillo@google.com>
15667
15668 * tree.c: Include debug.h.
15669 (initialize_tree_contains_struct): New.
15670 (init_ttree): Call it.
15671 (tree_node_structure_for_code): Factor out of ...
15672 (tree_node_structure): ... here.
15673 * treestruct.def (TS_PHI_NODE): Remove.
15674 (TS_GIMPLE_STATEMENT): Remove.
15675
e923c8ea
DN
156762009-07-06 Diego Novillo <dnovillo@google.com>
15677
7c8b1a77 15678 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
e923c8ea
DN
15679 (debug_tree_chain): Handle cycles.
15680
7a61cf6f
NC
156812009-07-06 Nick Clifton <nickc@redhat.com>
15682 DJ Delorie <dj@redhat.com>
15683
15684 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
15685 __FMOVD_ENABLED__ is defined.
15686 * config/sh/sh.h
15687 (TARGET_FMOVD): Provide a default definition.
15688 (MASK_FMOVD): Likewise.
15689 (TARGET_CPU_CPP_BUILTINS): Define
15690 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
15691 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
7c8b1a77 15692 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
7a61cf6f
NC
15693 (split for DF load from memory into register): Also handle
15694 MEMs which consist of REG+DISP addressing.
15695 (split for DF store from register to memory): Likewise.
15696 (movsf_ie): Always use single fp_mode.
15697 * config/sh/sh.c (sh_override_options): Do not automatically
15698 enable TARGET_MOVD for the SH2A when supporting doubles - leave
15699 that to the -mfmovd command line switch.
15700 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
15701 (fldi_ok): Always allow.
15702 * config/sh/sh.opt (mfmovd): Remove this switch.
15703 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
15704
83f63251
R
157052009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
15706 Kaz Kojima <kkojima@gcc.gnu.org>
15707
15708 PR rtl-optimization/30807
15709 * postreload.c (reload_combine): For every new use of REG_SUM,
15710 record the use of BASE.
15711
172d54e0
JH
157122009-07-06 Jan Hubicka <jh@suse.cz>
15713
15714 * params.def: Revert my accidental commit at 2009-06-30.
15715
34097e36
ILT
157162009-07-04 Ian Lance Taylor <iant@google.com>
15717
15718 PR target/40636
15719 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
15720 EXPORTED_CONST.
15721 (mingw_format_attribute_overrides): Likewise.
15722
bd5b2c2d
JJ
157232009-07-04 Jakub Jelinek <jakub@redhat.com>
15724
15725 PR debug/40596
15726 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
15727 don't check cfa.reg. Instead of cfa.indirect use
15728 fde && fde->drap_reg != INVALID_REGNUM test.
15729
39ba6ab7
EB
157302009-07-04 Eric Botcazou <ebotcazou@adacore.com>
15731
15732 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
15733
54a0ac2d
VM
157342009-07-03 Vladimir Makarov <vmakarov@redhat.com>
15735
15736 PR target/40587
7c8b1a77 15737 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
3f36bac2 15738
fae1034e
RG
157392009-07-03 Richard Guenther <rguenther@suse.de>
15740
15741 PR tree-optimization/40640
15742 * tree-switch-conversion.c (build_arrays): Perform arithmetic
15743 in original type.
15744
ba8978d0
JH
157452009-07-03 Jan Hubicka <jh@suse.cz>
15746
15747 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
15748 for size, reduce amount of inlining.
15749
d73fb533
RG
157502009-07-03 Richard Guenther <rguenther@suse.de>
15751
15752 PR middle-end/34163
7c8b1a77
UB
15753 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
15754 if t +- x is known to not overflow and the conversion widens the
15755 operation.
d73fb533
RG
15756 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
15757
7351bcaa
JH
157582009-07-03 Jan Hubicka <jh@suse.cz>
15759
15760 * ipa-pure-const.c (analyze): Update loop optimizer init.
15761 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
15762 try_remove_empty_loop, remove_empty_loops): Remove.
15763 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
15764 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
15765 to mark regular loops as neccesary.
15766 (degenerate_phi_p): New function.
15767 (propagate_necessity, remove_dead_phis): Use it.
15768 (forward_edge_to_pdom): Likewise.
15769 (eliminate_unnecessary_stmts): Take care to remove uses of results of
15770 virtual PHI nodes that became unreachable.
15771 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
15772 * tree-flow.h (remove_empty_loops): Remove.
15773 * passes.c (init_optimization_passes): Remove.
15774
5071eab7
UB
157752009-07-03 Uros Bizjak <ubizjak@gmail.com>
15776
15777 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
15778 can_create_pseudo_p.
15779 (*fix_trunc<mode>_i387_1): Ditto.
15780 (*floathi<mode>2_1): Ditto.
15781 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
15782 (*fistdi2_1): Ditto.
15783 (*fist<mode>2_1): Ditto.
15784 (frndintxf2_floor): Ditto.
15785 (*fist<mode>2_floor_1): Ditto.
15786 (frndintxf2_ceil): Ditto.
15787 (*fist<mode>2_ceil_1): Ditto.
15788 (frndintxf2_trunc): Ditto.
15789 (frndintxf2_mask_pm): Ditto.
15790 (fxam<mode>2_i387_with_temp): Ditto.
15791 * config/i386/sse.md (mulv16qi3): Ditto.
15792 (*sse2_mulv4si3): Ditto.
15793 (mulv2di3): Ditto.
15794 (sse4_2_pcmpestr): Ditto.
15795 (sse4_2_pcmpistr): Ditto.
15796
1fc41282
JH
157972009-07-03 Jan Hubicka <jh@suse.cz>
15798
15799 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
15800 (mark_stmt_necessary): Set it.
15801 (mark_operand_necessary): Set it.
15802 (mark_control_dependent_edges_necessary): Set it.
15803 (mark_virtual_phi_result_for_renaming): New function.
15804 (get_live_post_dom): New function.
15805 (forward_edge_to_pdom): New function.
15806 (remove_dead_stmt): Fix handling of control dependences.
15807 (tree_dce_init): Init new bitmap.
15808 (tree_dce_done): Free it.
15809
02583d3c
RG
158102009-07-02 Richard Guenther <rguenther@suse.de>
15811
15812 PR bootstrap/40617
15813 * tree-ssa-structalias.c (new_var_info): Initialize
15814 is_restrict_var.
15815
3c1832c3
JH
158162009-07-02 Jan Hubicka <jh@suse.cz>
15817
15818 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
15819 local.
15820
92355a9c
PB
158212009-07-02 Paolo Bonzini <bonzini@gnu.org>
15822
15823 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
15824 instead of recomputing it. Adjust calls.
15825 (emit_store_flag): Adjust recursive calls.
15826
91deb937
RG
158272009-07-02 Richard Guenther <rguenther@suse.de>
15828
15829 * tree-ssa-live.c (remove_unused_locals): Do not remove
15830 heap variables.
15831 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
15832 of DECL_EXTERNAL for HEAP variables.
15833 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
15834 HEAP variables. Do not adjust RESTRICT vars.
15835 (find_what_var_points_to): Nobody cares if something
15836 points to READONLY.
15837
2011dbb0
BE
158382009-07-02 Ben Elliston <bje@au.ibm.com>
15839
15840 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
15841 pc_low and pc_high declarations to the top of the function.
15842
f2082f90
DD
158432009-07-01 DJ Delorie <dj@redhat.com>
15844
15845 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
15846 registers as fixed.
5071eab7 15847 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
f2082f90
DD
15848 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
15849 unspecified accesses to control registers.
15850 * config/mep/intrinsics.md: Regenerate.
15851 * config/mep/intrinsics.h: Regenerate.
15852 * config/mep/mep-intrin.h: Regenerate.
3f36bac2 15853
9df748c0
AG
158542009-07-01 Anthony Green <green@moxielogic.com>
15855
15856 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
15857 instruction when possible.
15858 (moxie_expand_prologue): Ditto. Also, save an instruction and
3f36bac2 15859 some complexity by popping off of $r12 instead of $sp.
9df748c0
AG
15860 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
15861 operands.
3f36bac2 15862
997704f1
RH
158632009-07-01 Richard Henderson <rth@redhat.com>
15864
15865 PR bootstrap/40347
15866 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
15867 contained no insns, reposition note before last insn.
15868
9f2af3ce
RH
158692009-07-01 Richard Henderson <rth@redhat.com>
15870
15871 PR debug/40431
15872 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
15873 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
15874
d66a97e2
MM
158752009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
15876
15877 PR bootstrap/40558
15878 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
15879 darwin9 for printing reg addresses with %y.
15880
479b1013
AN
158812009-07-01 Adam Nemet <anemet@caviumnetworks.com>
15882
15883 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
15884 truncation from operands in binary operations.
15885
c600a155
AN
158862009-07-01 Adam Nemet <anemet@caviumnetworks.com>
15887
15888 Revert:
15889 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
15890 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
15891 subreg of op0 to the original op0.
15892
15893 * expmed.c (store_bit_field_1): Use a temporary as the destination
15894 instead of a paradoxical subreg when we need to truncate the result.
15895
a12e9a5f
DD
158962009-07-01 DJ Delorie <dj@redhat.com>
15897
5071eab7
UB
15898 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
15899 names to VLIW variants.
a12e9a5f
DD
15900 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
15901 * config/mep/intrinsics.md: Regenerate.
15902 * config/mep/intrinsics.h: Regenerate.
15903 * config/mep/mep-intrin.h: Regenerate.
15904
2a5bd62a
JJ
159052009-07-01 Jakub Jelinek <jakub@redhat.com>
15906
15907 PR debug/40462
15908 * jump.c (returnjump_p): Revert last patch.
15909 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
15910
3232e9d8
JDA
159112009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15912
4aa7f896
JDA
15913 PR target/40575
15914 * pa.md (casesi32p): Use jump table label to determine the offset
15915 of the jump table.
15916 (casesi64p): Likewise.
15917
5071eab7
UB
15918 * pa.c (forward_branch_p): Return bool type. Use instruction
15919 addresses when available. Assert that INSN has a jump label.
3232e9d8
JDA
15920 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
15921 have a jump label.
15922
14c41b9b
RG
159232009-07-01 Richard Guenther <rguenther@suse.de>
15924
15925 PR tree-optimization/19831
15926 * tree-ssa-dce.c (propagate_necessity): Calls to functions
5071eab7 15927 that only act as barriers do not make any previous stores necessary.
14c41b9b
RG
15928 * tree-ssa-structalias.c (handle_lhs_call): Delay making
15929 HEAP variables global, do not add a constraint from nonlocal.
15930 (find_func_aliases): Handle escapes through return statements.
15931 (compute_points_to_sets): Make escaped HEAP variables global.
15932
1ed20a40
PB
159332009-07-01 Paolo Bonzini <bonzini@gnu.org>
15934
15935 PR bootstrap/40597
15936 * expmed.c (emit_store_flag): Perform a conversion if necessary,
15937 after reducing a DImode cstore to SImode.
15938
ce3aea35
PB
159392009-07-01 Paolo Bonzini <bonzini@gnu.org>
15940
15941 * expr.c (expand_expr_real_1): Reinstate fallthrough to
15942 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
15943
1df34d4d
MR
159442009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
15945
15946 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
15947 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
15948 to 0.
15949 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
15950 and umod_optab if TARGET_BSD_DIVMOD.
15951 * config/vax/lib1funcs.asm: New file.
15952 * config/vax/t-linux: New file.
15953 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
15954
085e05ac
JJ
159552009-06-30 Jakub Jelinek <jakub@redhat.com>
15956
5ccde5a0
JJ
15957 PR c++/40566
15958 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
15959 to type arguments that have void type.
15960
085e05ac
JJ
15961 PR debug/40573
15962 * dwarf2out.c (gen_formal_parameter_die): Call
15963 equate_decl_number_to_die if node is different from origin.
15964
9fb374d6
AG
159652009-06-30 Anthony Green <green@moxielogic.com>
15966
15967 Clean up moxie port for --enable-build-with-cxx.
15968 * config/moxie/moxie.c (moxie_function_value): First two
15969 parameters are const_tree, not tree.
15970 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
15971 (REG_CLASS_NAMES): Ditto.
15972 (REGNO_REG_CLASS): Ditto.
15973 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
15974 (moxie_function_value): Fix constyness of arguments.
15975
f82a627c
EB
159762009-06-30 Eric Botcazou <ebotcazou@adacore.com>
15977
15978 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
15979 finalize_size_functions before further processing.
15980 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
15981 (variable_size): Call self_referential_size on size expressions
15982 that contain a PLACEHOLDER_EXPR.
15983 (size_functions): New static variable.
15984 (copy_self_referential_tree_r): New static function.
15985 (self_referential_size): Likewise.
15986 (finalize_size_functions): New global function.
15987 * tree.c: Include tree-inline.h.
15988 (push_without_duplicates): New static function.
15989 (find_placeholder_in_expr): New global function.
15990 (substitute_in_expr) <tcc_declaration>: Return the replacement object
15991 on equality.
15992 <tcc_expression>: Likewise.
15993 <tcc_vl_exp>: If the replacement object is a constant, try to inline
15994 the call in the expression.
15995 * tree.h (finalize_size_functions): Declare.
15996 (find_placeholder_in_expr): Likewise.
15997 (FIND_PLACEHOLDER_IN_EXPR): New macro.
15998 (substitute_placeholder_in_expr): Update comment.
15999 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
16000 is true.
16001 (copy_tree_body_r): Likewise.
16002 (copy_tree_body): New static function.
16003 (maybe_inline_call_in_expr): New global function.
16004 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
16005 (maybe_inline_call_in_expr): Declare.
16006 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
16007 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
16008 GIMPLE_H.
16009
67635176
RG
160102009-06-30 Richard Guenther <rguenther@suse.de>
16011
16012 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
16013 continue walking.
16014 (propagate_necessity): Do not mark reaching defs of stores
16015 as necessary.
16016
2de58650
JH
160172009-06-30 Jan Hubicka <jh@suse.cz>
16018
16019 * cfgloopanal.c (check_irred): Move into ...
16020 (mark_irreducible_loops): ... here; return true if ireducible
16021 loops was found.
16022 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
16023 (analyze_function): Try to prove loop finiteness.
16024 * cfgloop.h (mark_irreducible_loops): Update prototype.
16025 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
16026
46db44cc
BS
160272009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
16028
16029 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
16030
1825a1f3
IR
160312009-06-30 Ira Rosen <irar@il.ibm.com>
16032
16033 PR tree-optimization/40542
f100a4a8 16034 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
1825a1f3
IR
16035 types.
16036
71d4d3eb
MJ
160372009-06-30 Martin Jambor <mjambor@suse.cz>
16038
16039 PR tree-optimization/40582
16040 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
16041 than useless_type_conversion_p.
16042 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
16043 proper place.
16044
f57017cd
MJ
160452009-06-30 Martin Jambor <mjambor@suse.cz>
16046
16047 PR middle-end/40554
16048 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
16049
42bc61e0
RG
160502009-06-30 Richard Guenther <rguenther@suse.de>
16051
16052 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
16053 use ao_ref references.
16054 (walk_aliased_vdefs): Likewise.
16055 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
16056 * tree-ssa-dce.c (struct ref_data): Remove.
16057 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
16058 (mark_aliased_reaching_defs_necessary): Adjust.
16059 (mark_all_reaching_defs_necessary_1): Likewise.
16060
ef12ae45
PB
160612009-06-30 Paolo Bonzini <bonzini@gnu.org>
16062
16063 PR boostrap/40597
16064 * expmed.c (emit_cstore): New name of emit_store_flag_1.
16065 (emit_store_flag_1): Extract from emit_store_flag, adjust
16066 calls to (what now is) emit_cstore.
16067 (emit_store_flag): Call emit_store_flag_1 and also use it
16068 for what used to be recursive calls.
16069
791b59e3
WG
160702009-06-30 Wei Guozhi <carrot@google.com>
16071
16072 PR/40416
16073 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
16074 if the target bb post dominates from bb.
16075 * config/i386/i386.c (memory_address_length): Check existence of base
16076 register before using it.
16077
7a61cf6f
NC
160782009-06-30 Nick Clifton <nickc@redhat.com>
16079 DJ Delorie <dj@redhat.com>
16080
16081 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
16082 __FMOVD_ENABLED__ is defined.
16083 * config/sh/sh.h
16084 (TARGET_FMOVD): Provide a default definition.
16085 (MASK_FMOVD): Likewise.
16086 (TARGET_CPU_CPP_BUILTINS): Define
16087 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
16088 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
16089 two fmov instructions depending upon whether TARGET_FMOVD is
16090 enabled.
16091 (split for DF load from memory into register): Also handle
16092 MEMs which consist of REG+DISP addressing.
16093 (split for DF store from register to memory): Likewise.
16094 * config/sh/sh.opt (mfmovd): Remove this switch.
16095 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
16096 * config/sh/sh.c (sh_override_options): Do not automatically
16097 enable TARGET_MOVD for the SH2A when supporting doubles - leave
16098 that to the -mfmovd command line switch.
16099
16100 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
16101 the SH4 and SH4A.
16102 (fldi_ok): Always allow.
16103 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
16104
5a99fe3e
DD
161052009-06-29 DJ Delorie <dj@redhat.com>
16106
16107 * doc/install.texi (mep-x-elf): Correct chip's full name.
16108
ddaa3488
L
161092009-06-29 H.J. Lu <hongjiu.lu@intel.com>
16110
16111 * doc/extend.texi: Fix typo.
16112
bbf531f0
TT
161132009-06-29 Tom Tromey <tromey@redhat.com>
16114
16115 * dwarf2.h: Remove.
16116 * Makefile.in (DWARF2_H): New variable.
16117 (except.o): Use it.
16118 (dwarf2out.o): Likewise.
16119 (dwarf2asm.o): Likewise.
16120 * config/i386/t-i386: Use DWARF2_H.
16121 * except.c: Include elf/dwarf2.h.
16122 * unwind-dw2.c: Include elf/dwarf2.h.
16123 * dwarf2out.c: Include elf/dwarf2.h.
16124 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
16125 <dtprel>: New field.
16126 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
16127 (size_of_loc_descr): Likewise.
16128 (output_loc_operands_raw): Likewise.
16129 (output_loc_operands): Handle new dtprel field.
16130 (loc_checksum): Update.
16131 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
16132 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
16133 * unwind-dw2-fde.c: Include elf/dwarf2.h.
16134 * dwarf2asm.c: Include elf/dwarf2.h.
16135 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
16136 * config/mmix/mmix.c: Include elf/dwarf2.h.
16137 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
16138 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
16139 * config/sh/sh.c: Include elf/dwarf2.h.
16140 * config/i386/i386.c: Include elf/dwarf2.h.
16141
e2491744
DD
161422009-06-29 DJ Delorie <dj@redhat.com>
16143
bae38135
DD
16144 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
16145
e2491744
DD
16146 * doc/extend.texi: Add MeP attributes and pragmas.
16147 * doc/invoke.text: Add MeP Options.
16148 * doc/contrib.texi: Add MeP contribution.
16149 * doc/md.texi: Add MeP constraints.
16150 * doc/install.texi: Add MeP target.
16151
b52b1749
AS
161522009-06-30 Anatoly Sokolov <aesok@post.ru>
16153
16154 * target.h (struct gcc_target): Add frame_pointer_required field.
16155 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
16156 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
16157 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
16158 hook.
16159 * reload1.c (update_eliminables): (Ditto.).
16160 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
16161 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
16162 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
16163
16164 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
16165
16166 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
16167 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16168 (arm_frame_pointer_required): New function.
16169
16170 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
16171 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16172 (avr_frame_pointer_required_p): Declare as static.
16173 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
16174
16175 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
16176 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16177 (bfin_frame_pointer_required): Make as static, change return type
16178 to bool.
16179 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
16180
16181 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
16182 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16183 (cris_frame_pointer_required): New function.
f100a4a8 16184
b52b1749
AS
16185 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
16186
16187 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
16188 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16189 (fr30_frame_pointer_required): New function.
f100a4a8 16190
b52b1749
AS
16191 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
16192 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16193 (frv_frame_pointer_required): Make as static, change return type
16194 to bool.
16195 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
16196
16197 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
16198 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16199 (ix86_frame_pointer_required): Make as static, change return type to
16200 bool.
16201 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
16202
16203 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
16204 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16205
16206 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
16207
16208 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
f100a4a8 16209
b52b1749
AS
16210 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
16211
16212 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
16213 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16214 (mips_frame_pointer_required): Make as static.
16215 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
f100a4a8 16216
b52b1749
AS
16217 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
16218 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16219 (mmix_frame_pointer_required): Mew function.
16220
16221 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
16222 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16223
16224 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
16225
16226 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
16227
16228 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
16229
16230 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
16231 (CAN_ELIMINATE): Redefine.
16232 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
16233 (sparc_frame_pointer_required): New function.
16234 (sparc_can_eliminate): New function.
16235 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
16236
16237 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
16238 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16239
16240 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
16241 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
16242 (xtensa_frame_pointer_required): Make as static, change return type
16243 to bool.
16244 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
16245 Remove.
16246
5071eab7 162472009-06-29 Olatunji Ruwase <tjruwase@google.com>
78bf7bd0
OR
16248
16249 * doc/plugins.texi: Document PLUGIN_START_UNIT.
16250 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
16251 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
16252 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
16253 (register_callback): Handle PLUGIN_START_UNIT.
16254 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
16255
96da8066
EB
162562009-06-29 Eric Botcazou <ebotcazou@adacore.com>
16257
16258 * tree.c (process_call_operands): Propagate TREE_READONLY from the
16259 operands.
16260 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
16261 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
16262
356ecb15
DJ
162632009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
16264
16265 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
16266 move cost.
16267
897eef7b
UB
162682009-06-29 Uros Bizjak <ubizjak@gmail.com>
16269
16270 * doc/extend.texi (Additional Floating Types): __float128 is also
16271 supported on i386 targets.
16272
74d27244
RG
162732009-06-29 Richard Guenther <rguenther@suse.de>
16274
16275 PR middle-end/14187
16276 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
16277 flag.
16278 (pt_solutions_same_restrict_base): Declare.
16279 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
16280 flag.
16281 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
16282 (make_constraint_from, make_copy_constraint): Move earlier.
16283 (make_constraint_from_heapvar): New function.
16284 (make_constraint_from_restrict): Likewise.
16285 (handle_lhs_call): Use it.
16286 (find_func_aliases): Use it to track conversions to restrict
16287 qualified pointers.
16288 (struct fieldoff): Add only_restrict_pointers flag.
16289 (push_fields_onto_fieldstack): Initialize it.
16290 (create_variable_info_for): Track global restrict qualified pointers.
16291 (intra_create_variable_infos): Use make_constraint_from_heapvar.
16292 Track restrict qualified pointer arguments.
16293 (set_uids_in_ptset): Use varinfo is_global_var flag.
16294 (find_what_var_points_to): Set the vars_contains_restrict flag.
16295 Always create the points-to solution for sets including restrict tags.
16296 (pt_solutions_same_restrict_base): New function.
16297 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
16298 qualified pointers use pt_solutions_same_restrict_base as
16299 additional source for disambiguation.
16300
5b21f0f3
RG
163012009-06-29 Richard Guenther <rguenther@suse.de>
16302
16303 PR middle-end/38212
16304 * alias.c (find_base_decl): Remove.
16305 (get_deref_alias_set_1): Remove restrict handling.
16306 * c-common.c (c_apply_type_quals_to_decl): Do not set
16307 DECL_POINTER_ALIAS_SET.
16308 * gimplify.c (find_single_pointer_decl_1): Remove.
16309 (find_single_pointer_decl): Likewise.
16310 (internal_get_tmp_var): Remove restrict handling.
16311 (gimple_regimplify_operands): Likewise.
16312 * omp-low.c (expand_omp_atomic_pipeline): Do not set
16313 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
16314 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
16315 * tree.c (restrict_base_for_decl): Remove.
16316 (init_ttree): Do not allocate it.
16317 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
16318 LABEL_DECL_UID for label decls.
16319 (copy_node_stat): Do not copy restrict information.
16320 (decl_restrict_base_lookup): Remove.
16321 (decl_restrict_base_insert): Likewise.
16322 (print_restrict_base_statistics): Likewise.
16323 (dump_tree_statistics): Do not call print_restrict_base_statistics.
16324 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
16325 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
16326 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
16327 (LABEL_DECL_UID): Adjust.
16328 (DECL_BASED_ON_RESTRICT_P): Remove.
16329 (DECL_GET_RESTRICT_BASE): Likewise.
16330 (SET_DECL_RESTRICT_BASE): Likewise.
16331 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
16332
16333 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
16334 instead of DECL_POINTER_ALIAS_SET.
16335 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
16336 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
16337 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
16338
09a782eb
RG
163392009-06-29 Richard Guenther <rguenther@suse.de>
16340
16341 PR tree-optimization/40579
16342 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
16343 the IL to simplify has constants that overflowed.
16344
1e9ae5ab
UB
163452009-06-28 Uros Bizjak <ubizjak@gmail.com>
16346
16347 PR tree-optimization/40550
16348 * tree-vect-generic.c (expand_vector_operations_1): Compute in
16349 vector_compute_type only when the size of vector_compute_type is
16350 less than the size of type.
16351
c703e618
EB
163522009-06-28 Eric Botcazou <ebotcazou@adacore.com>
16353
16354 * fold-const.c (contains_label_1): Fix comments.
16355 (contains_label_p): Do not walk trees multiple time.
16356
0948ccb2
PB
163572009-06-28 Paolo Bonzini <bonzini@gnu.org>
16358
897eef7b
UB
16359 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
16360 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
16361 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
16362 ix86_fp_comparison_operator.
16363 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
16364 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
16365 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
16366 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
16367 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
16368 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
16369 (related splits): Change predicate to ix86_fp_comparison_operator.
16370 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
16371 instead of ix86_fp_comparison_codes.
16372 (ix86_trivial_fp_comparison_operator,
16373 ix86_fp_comparison_operator): New.
16374 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
16375 (ix86_expand_compare): Eliminate last two parameters.
16376 (ix86_fp_jump_nontrivial_p): Kill.
16377 * config/i386/i386.c (put_condition_code): Eliminate call to
16378 ix86_fp_comparison_codes and subsequent assertion.
16379 (ix86_fp_comparison_codes): Eliminate.
16380 (ix86_fp_swap_condition): New.
16381 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
16382 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
16383 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
16384 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
16385 and ix86_fp_swap_condition.
16386 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
16387 Use ix86_fp_comparison_strategy.
16388 (ix86_expand_compare): Likewise. Eliminate last two arguments.
16389 (ix86_fp_jump_nontrivial_p): Eliminate.
16390 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
16391 call to ix86_expand_compare.
16392 (ix86_split_fp_branch, ix86_expand_setcc,
16393 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
16394 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
0948ccb2 16395
accbd151
PB
163962009-06-28 Paolo Bonzini <bonzini@gnu.org>
16397
897eef7b
UB
16398 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
16399 related to jump_clobbers.
16400 * config/arm/arm.md (conds): Remove jump_clob case.
16401 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
16402 splits): Change comparison_operator to arm_comparison_operator.
16403 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
16404 Eliminate.
accbd151 16405
45475a3f
PB
164062009-06-28 Paolo Bonzini <bonzini@gnu.org>
16407
897eef7b
UB
16408 * dojump.c (do_compare_rtx_and_jump): Try swapping the
16409 condition for floating point modes.
16410 * expmed.c (emit_store_flag_1): Move here a bigger part
16411 of emit_store_flag.
16412 (emit_store_flag): Try swapping the condition for floating point
16413 modes.
16414 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
45475a3f 16415
495499da
PB
164162009-06-28 Paolo Bonzini <bonzini@gnu.org>
16417
897eef7b
UB
16418 * expr.c (expand_expr_real_1): Just use do_store_flag.
16419 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
16420 emit_store_flag_force.
16421 * expmed.c (emit_store_flag_force): Copy here trick
16422 previously in expand_expr_real_1. Try reversing the comparison.
16423 (emit_store_flag_1): Work if target is NULL.
16424 (emit_store_flag): Work if target is NULL, using the result mode
16425 from the comparison. Use split_comparison, restructure final part
16426 to simplify conditionals.
495499da 16427
337e5d98
PB
164282009-06-28 Paolo Bonzini <bonzini@gnu.org>
16429
897eef7b
UB
16430 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
16431 * dojump.c (do_jump): Change handling of floating-point
16432 ops to use just do_compare_and_jump.
16433 (split_comparison): New.
16434 (do_compare_rtx_and_jump): Add here logic coming previously
16435 in do_jump, using split_comparison.
337e5d98 16436
2ca57608
L
164372009-06-27 H.J. Lu <hongjiu.lu@intel.com>
16438
16439 PR target/40489
16440 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
16441
8122ccf1
PB
164422009-06-27 Paolo Bonzini <bonzini@gnu.org>
16443
16444 * tree-ssa-alias.c: Fix unintentional commit.
16445
b9cafe60
PB
164462009-06-27 Paolo Bonzini <bonzini@gnu.org>
16447
16448 * passes.c (execute_one_pass): Fix unintentional commit.
16449
4c78c26b
PB
164502009-06-27 Paolo Bonzini <bonzini@gnu.org>
16451
2ca57608
L
16452 * df-problems.c (df_set_seen, df_unset_seen): Delete.
16453 (df_rd_local_compute, df_md_local_compute): Inline them.
4c78c26b 16454
2ca57608
L
16455 (df_md_scratch): New.
16456 (df_md_alloc, df_md_free): Allocate/free it.
16457 (df_md_local_compute): Only include live registers in init.
16458 (df_md_transfer_function): Prune the in-set computed by
16459 the confluence function, and the gen-set too.
4c78c26b
PB
16460
164612009-06-27 Paolo Bonzini <bonzini@gnu.org>
c6741572
PB
16462
16463 PR rtl-optimization/26854
2ca57608
L
16464 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
16465 * df-problems.c (df_rd_add_problem): Fix comment.
16466 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
16467 df_md_simulate_artificial_defs_at_top,
16468 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
16469 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
16470 df_md_transfer_function, df_md_init, df_md_confluence_0,
16471 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
16472 problem_MD, df_md_add_problem): New.
16473 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
16474 df_md_get_bb_info): New.
1e9ae5ab 16475 (DF_LAST_PROBLEM_PLUS1): Adjust.
2ca57608
L
16476
16477 * Makefile.in (fwprop.o): Include domwalk.h.
16478 * fwprop.c: Include domwalk.h.
16479 (reg_defs, reg_defs_stack): New.
16480 (bitmap_only_bit_between): Remove.
16481 (process_defs): New.
16482 (process_uses): Use reg_defs and local_md instead of
16483 bitmap_only_bit_between and local_rd.
16484 (single_def_use_enter_block): New, from build_single_def_use_links.
16485 (single_def_use_leave_block): New.
16486 (build_single_def_use_links): Remove code moved to
16487 single_def_use_enter_block, invoke domwalk.
16488 (use_killed_between): Adjust comment.
c6741572 16489
7ff23740
PB
164902009-06-27 Paolo Bonzini <bonzini@gnu.org>
16491
16492 * bitmap.h (bitmap_ior_and_into): New.
16493 * bitmap.c (bitmap_ior_and_into): New.
16494
ccf5c864
PB
164952009-06-27 Paolo Bonzini <bonzini@gnu.org>
16496
2ca57608
L
16497 * domwalk.h (struct dom_walk_data): Remove all callbacks except
16498 before_dom_children_before_stmts and after_dom_children_after_stmts.
f100a4a8 16499 Rename the two remaining callbacks to just before_dom_children and
2ca57608
L
16500 after_dom_children. Remove other GIMPLE statement walking bits.
16501 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
16502 * graphite.c: Do not include domwalk.h.
16503 * tree-into-ssa.c (interesting_blocks): New global.
16504 (struct mark_def_sites_global_data): Remove it and names_to_rename.
16505 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
16506 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
16507 now that they're not domwalk callbacks.
16508 (rewrite_initialize_block): Rename to...
16509 (rewrite_enter_block): ... this, place after called functions. Test
16510 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
16511 (rewrite_finalize_block): Rename to...
16512 (rewrite_leave_block): ... this, place after called functions.
16513 (rewrite_update_init_block): Rename to...
16514 (rewrite_update_enter_block): ... this, place after called functions.
f100a4a8 16515 Test interesting_blocks, call rewrite_update_stmt and
2ca57608
L
16516 rewrite_update_phi_arguments.
16517 (rewrite_update_fini_block): Rename to...
16518 (rewrite_leave_block): ... this, place after called functions.
16519 (rewrite_blocks): Remove last argument, simplify initialization of
16520 walk_data.
16521 (mark_def_sites_initialize_block): Rename to...
16522 (mark_def_sites_block): ... this, call mark_def_sites.
16523 (mark_def_sites_blocks): Remove argument, simplify initialization of
16524 walk_data.
16525 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
16526 (update_ssa): Likewise.
16527 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
16528 callback.
16529 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
16530 (dom_opt_initialize_block): Rename to...
16531 (dom_opt_enter_block): ... this, place after called functions. Walk
16532 statements here, inline propagate_to_outgoing_edges.
16533 (dom_opt_finalize_block): Rename to...
16534 (dom_opt_leave_block): ... this, place after called functions.
16535 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
16536 domwalk callback.
16537 (dse_enter_block, dse_record_phi): New.
16538 (dse_record_phis): Delete.
16539 (dse_finalize_block): Rename to...
16540 (dse_leave_block): ... this.
16541 (tree_ssa_dse): Simplify initialization of walk_data.
16542 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
16543 Adjust initialization of walk_data.
16544 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
16545 * tree-ssa-loop-phiopt.c (get_non_trapping):
16546 Adjust initialization of walk_data.
16547 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
16548 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
16549 it's not a domwalk callback.
16550 (uncprop_initialize_block): Rename to...
16551 (dse_enter_block): ... this, call uncprop_into_successor_phis.
16552 (dse_finalize_block): Rename to...
16553 (dse_leave_block): ... this.
16554 (tree_ssa_uncprop): Simplify initialization of walk_data.
16555 * Makefile.in: Adjust dependencies.
ccf5c864 16556
75d28030
RE
165572009-06-27 Richard Earnshaw <rearnsha@arm.com>
16558
16559 * arm.md (casesi): Fix test for Thumb1.
16560 (thumb1_casesi_internal_pic): Likewise.
16561 (thumb1_casesi_dispatch): Likewise.
16562
9833720d
DG
165632009-06-26 Daniel Gutson <dgutson@codesourcery.com>
16564
16565 * config/arm/arm-cores.def: Added core cortex-m0.
16566 * config/arm/arm-tune.md: Regenerated.
16567 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
16568
bb7681bf
DD
165692009-06-26 DJ Delorie <dj@redhat.com>
16570
16571 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
16572
16573 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
16574 the scheduler doesn't tag jump insns.
16575
a35120a3
L
165762009-06-26 H.J. Lu <hongjiu.lu@intel.com>
16577
16578 * c-decl.c (merge_decls): Re-indent.
16579
4b6e55df
JJ
165802009-06-26 Janis Johnson <janis187@us.ibm.com>
16581
16582 PR c/39902
16583 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
16584 Special-case decimal float constants.
16585
27dbd3ac
RH
165862009-06-26 Richard Henderson <rth@redhat.com>
16587
16588 * function.h (struct function): Add cannot_be_copied_reason,
16589 and cannot_be_copied_set.
16590 * tree-inline.c (has_label_address_in_static_1): Rename from
16591 inline_forbidden_p_2; don't set inline_forbidden_reason here.
16592 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
16593 don't set inline_forbidden_reason.
16594 (copy_forbidden): New function, split out of inline_forbidden_p.
16595 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
16596 (inline_forbidden_p): Use copy_forbidden.
16597 (tree_versionable_function_p): Likewise.
16598 (inlinable_function_p): Merge into tree_inlinable_function_p.
16599 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
16600 * ipa-cp.c (ipcp_versionable_function_p): New function.
16601 (ipcp_cloning_candidate_p): Use it.
16602 (ipcp_node_modifiable_p): Likewise.
16603
efb303b1
OR
166042009-06-26 Olatunji Ruwase <tjruwase@google.com>
16605
16606 * builtins.c (expand_builtin_alloca): Handle builtin alloca
16607 that is marked not to be inlined. Remove flag_mudflap use.
16608 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
16609 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
16610
947e21c1
SE
166112009-06-26 Steve Ellcey <sje@cup.hp.com>
16612
16613 PR bootstrap/40338
16614 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
16615 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
16616
bae4cf87
KT
166172009-06-26 Kai Tietz <kai.tietz@onevision.com>
16618
16619 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
16620 shared libgcc.
16621 (__mingwthr_remove_key_dtor): Likewise.
16622
46aaa417
RG
166232009-06-26 Richard Guenther <rguenther@suse.de>
16624
1e9ae5ab 16625 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
46aaa417 16626
b3c54c8f
SB
166272009-06-26 Steven Bosscher <steven@gcc.gnu.org>
16628
16629 PR middle-end/40525
16630 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
16631 try the non-cond_exec path also.
16632
f5e66865
JDA
166332009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16634
16635 PR target/40468
16636 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
16637 (output_cbranch): Use new functions.
16638 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
16639 Likewise.
16640
8beb65e3
MM
166412009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
16642 Pat Haugen <pthaugen@us.ibm.com>
16643 Revital Eres <ERES@il.ibm.com>
16644
d66a97e2
MM
16645 * config/rs6000/rs6000.c (print_operand): Correct lossage message
16646 for %c error. Add %x support to print VSX registers as a unified
16647 register set, instead of separate float and altivec registers.
16648 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
16649 %y case, and add support for VSX pre-modify addresses.
16650 (output_toc): Add assert for CONST containing an integer constant
16651 in the PLUS case.
16652 (rs6000_adjust_cost): Add POWER7 support.
16653 (insn_must_be_first_in_group): Ditto.
16654 (insn_must_be_last_in_group): Ditto.
16655 (rs6000_emit_popcount): Ditto.
16656 (rs6000_vector_mode_supported_p): Ditto.
16657
8beb65e3
MM
16658 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
16659 Change some of the functions called by macros to being called
16660 through a pointer, so debug functions can be inserted if
f100a4a8 16661 -mdebug=addr or -mdebug=cost.
8beb65e3
MM
16662 (rs6000_preferred_reload_class_ptr): Ditto.
16663 (rs6000_secondary_reload_class_ptr): Ditto.
16664 (rs6000_secondary_memory_needed_ptr): Ditto.
16665 (rs6000_cannot_change_mode_class_ptr): Ditto.
16666 (rs6000_secondary_reload_inner): Ditto.
16667 (rs6000_legitimize_reload_address): Ditto.
16668 (rs6000_legitimize_reload_address_ptr): Ditto.
16669 (rs6000_mode_dependent_address): Ditto.
16670 (rs6000_mode_dependent_address_ptr): Ditto.
16671
16672 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
16673 function to return true if the mode allows reg + integer
16674 addresses.
16675 (virtual_stack_registers_memory_p): New function to return true if
16676 the address refers to a virtual stack register.
16677 (rs6000_legitimate_offset_address_p): Move code to say whether a
16678 mode supports reg+int addressing to reg_offset_addressing_ok_p and
16679 call it.
16680 (rs6000_legitimate_address_p): Add checks for modes that only can
16681 do reg+reg addressing. Start adding VSX support.
16682 (rs6000_legitimize_reload_address): Ditto.
16683 (rs6000_legitimize_address): Ditto.
16684 (rs6000_debug_legitimate_address_p): New debug functions for
16685 -mdebug=addr and -mdebug=cost.
16686 (rs6000_debug_rtx_costs): Ditto.
16687 (rs6000_debug_address_costs): Ditto.
16688 (rs6000_debug_adjust_cost): Ditto.
16689 (rs6000_debug_legitimize_address): Ditto.
16690 (rs6000_legitimize_reload_address_ptr): Point to call normal
16691 function or debug function. Make functions called via pointer
16692 static.
16693 (rs6000_mode_dependent_address_ptr): Ditto.
16694 (rs6000_secondary_reload_class_ptr): Ditto.
16695 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
16696 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
16697 into a friendlier error.
16698 (rs6000_init_builtins): Add initial VSX support.
16699 (rs6000_adjust_cost): Fix some spacing issues.
16700
16701 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
16702 (REG_CLASS_NAMES): Ditto.
16703 (REG_CLASS_CONTENTS): Ditto.
16704 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
16705 pointer, to add -mdebug=addr support.
16706 (CANNOT_CHANGE_MODE_CLASS): Ditto.
16707 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
16708 -mdebug=addr support.
16709 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
16710 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
16711 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
16712
16713 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
16714 16-bit values.
16715 (bswapsi*): Set attribute types for load/store. Add combiner
16716 patterns to eliminate zero extend on 64-bit.
16717 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
16718 stdbrx if the hardware supports those instructions.
16719
96be7a11
ILT
167202009-06-25 Ian Lance Taylor <iant@google.com>
16721
16722 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
16723 (Link Options): Document -static-libstdc++.
16724
777a3a6a
AP
167252009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
16726
16727 PR target/38731
16728 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
16729 DATA_ALIGNMENT instead.
16730
1cb367ae
RG
167312009-06-25 Richard Guenther <rguenther@suse.de>
16732
16733 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
16734 indirect references against the callused/escaped solutions.
16735 (call_may_clobber_ref_p_1): Likewise.
16736
fac52fdd
MJ
167372009-06-25 Martin Jambor <mjambor@suse.cz>
16738
16739 PR tree-optimization/40493
16740 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
16741 (enum unscalarized_data_handling): New type.
16742 (handle_unscalarized_data_in_subtree): Return what has been done.
16743 (load_assign_lhs_subreplacements): Handle left flushes differently.
16744 (sra_modify_assign): Use unscalarized_data_handling, simplified
16745 condition determining whether to remove the statement.
16746
3cb71167 167472009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
c8aca64f
EB
16748
16749 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
16750 excerpt - @ should be doubled for texinfo.
3cb71167 16751
5a82ecd9
ILT
167522009-06-24 Ian Lance Taylor <iant@google.com>
16753
16754 * config/arc/arc.c: Include "df.h".
16755 (arc_attribute_table): Make static. Move higher in file.
16756 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
16757 (output_shift): Initialize n later to avoid warning.
16758 * config/arm/arm.c (arm_attribute_table): Make static. Move
16759 higher in file.
16760 * config/avr/avr.c (avr_attribute_table): Make static. Move
16761 higher in file.
16762 (reg_class_tab): Change array type from int to enum reg_class.
16763 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
16764 LABEL_REF.
16765 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
16766 (lshrhi3_out): Likewise.
16767 (class_likely_spilled_p): Change return type to bool.
16768 (avr_rtx_costs): Use local code variable with enum type.
16769 * config/avr/avr.md (movmemhi): Use add_reg_note.
16770 (andhi3, andsi3): Don't use AS2 with "and".
16771 (iorhi3, iorsi3): Don't use AS2 with "or".
1e9ae5ab 16772 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
5a82ecd9
ILT
16773 * config/crx/crx.c: Include "df.h".
16774 (crx_attribute_table): Make static.
16775 * config/m32r/m32r.c: Include "df.h".
16776 (m32r_attribute_table): Make static. Move higher in file.
16777 (pop): Use add_reg_note.
16778 (block_move_call): Change 0 to LCT_NORMAL in function call.
16779 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
16780 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
16781 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
16782 declare, not just when TREE_CODE is defined.
16783 * config/m68hc11/m68hc11.c: Include "expr.h".
16784 (m68hc11_attribute_table): Make static. Move higher in file.
16785 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
16786 function call.
16787 (m68hc11_register_indirect_p): Likewise.
16788 (m68hc11_function_arg_padding): Change return type to enum
16789 direction.
16790 (emit_move_after_reload): Use add_reg_note.
16791 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
16792 (m68hc11_split_logical): Likewise.
16793 (m68hc11_rtx_costs): Add local code_and outer_code variables with
16794 enum type.
16795 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
16796 to VOIDmode in function call.
16797 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
16798 tree is defined.
16799 (m68hc11_split_logical): Update declaration.
16800 (m68hc11_function_arg_padding): Update declaration.
16801 * config/mcore/mcore.c (regno_reg_class): Change form array of int
16802 to array of enum reg_class.
16803 (mcore_attribute_table): Make static. Move higher in file.
16804 (mcore_rtx_costs): Add cast to enum type.
16805 * config/mcore/mcore.h (regno_reg_class): Update declaration.
16806 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
16807 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
16808 in file.
16809 * config/sh/predicates.md (trapping_target_operand): Rename and to
16810 and_expr.
16811 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
16812 higher in file.
16813 * config/spu/spu.c (spu_attribute_table): Make static. Move
16814 higher in file.
16815 * config/v850/v850.c (v850_attribute_table): Make static. Move
16816 higher in file.
16817 (v850_rtx_costs): Use local code with enum type.
16818 (expand_epilogue): Add cast.
16819 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
16820
b4589acc
TY
168212009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
16822
16823 PR target/40515
16824 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
16825 -m2a-single-only and -m2a-nofpu.
f100a4a8 16826 * config/sh/sh.opt: Document m2a generates FPU code.
b4589acc 16827
3be639f7
AS
168282009-06-24 Anatoly Sokolov <aesok@post.ru>
16829
16830 * defaults.h (CAN_ELIMINATE): Provide default.
16831 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
16832 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
16833 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
16834 * config/spu/spu.h (CAN_ELIMINATE): Delete.
16835 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
16836 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
16837 * config/cris/cris.h (CAN_ELIMINATE): Delete.
16838 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
16839 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
16840 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
16841
b6402fc3
DD
168422009-06-24 DJ Delorie <dj@redhat.com>
16843
16844 * mep-ext-cop.cpu: Fix copyright notice.
16845 * mep-default: Fix copyright notice.
16846 * mep-core: Fix copyright notice.
16847 * mep: Fix copyright notice.
16848 * mep-ivc2: Fix copyright notice.
16849 * mep-c5: Fix copyright notice.
16850
ead1eb1d
DC
168512009-06-24 Denis Chertykov <chertykov@gmail.com>
16852
f100a4a8 16853 * doc/contrib.texi (Contributors):
ead1eb1d 16854
fb6234e0 168552009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
f100a4a8 16856
fb6234e0
AK
16857 PR middle-end/40501
16858 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
16859 src and dst operands if necessary.
16860
7acf4da6
DD
168612009-06-23 DJ Delorie <dj@redhat.com>
16862
16863 Add MeP port.
16864 * config.gcc: Add mep support.
16865 * recog.c: Resurrect validate_replace_rtx_subexp().
16866 * recog.h: Likewise.
16867 * config/mep/: Add new port:
16868 * config/mep/constraints.md: New file.
16869 * config/mep/default.h: New file.
16870 * config/mep/intrinsics.h: New file.
16871 * config/mep/intrinsics.md: New file.
16872 * config/mep/ivc2-template.h: New file.
16873 * config/mep/mep-c5.cpu: New file.
16874 * config/mep/mep-core.cpu: New file.
16875 * config/mep/mep-default.cpu: New file.
16876 * config/mep/mep-ext-cop.cpu: New file.
16877 * config/mep/mep-intrin.h: New file.
16878 * config/mep/mep-ivc2.cpu: New file.
16879 * config/mep/mep-lib1.asm: New file.
16880 * config/mep/mep-lib2.c: New file.
16881 * config/mep/mep-pragma.c: New file.
16882 * config/mep/mep-protos.h: New file.
16883 * config/mep/mep-tramp.c: New file.
16884 * config/mep/mep.c: New file.
16885 * config/mep/mep.cpu: New file.
16886 * config/mep/mep.h: New file.
16887 * config/mep/mep.md: New file.
16888 * config/mep/mep.opt: New file.
16889 * config/mep/predicates.md: New file.
16890 * config/mep/t-mep: New file.
16891
00020c16
ILT
168922009-06-23 Ian Lance Taylor <iant@google.com>
16893
16894 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
16895 from loose_warn into c_loose_warn and from strict_warn into
16896 c_strict_warn. Set and substitute warn_cxxflags. Check for
16897 --enable-build-with-cxx. Set and substitute
16898 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
16899 * Makefile.in (CXXFLAGS): New variable.
16900 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
16901 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
16902 the default is the same as $(STRICT_WARN).
16903 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
16904 (CXX): New variable.
16905 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
16906 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
16907 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
16908 (HOST_LIBS): New variable.
16909 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
16910 (ALL_CXXFLAGS): New variable.
16911 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
16912 * doc/install.texi (Configuration): Document
16913 --enable-build-with-cxx, --with-stage1-ldflags,
16914 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
16915 * configure: Rebuild.
16916
2d8b752f 169172009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9df5bfe4 16918
2d8b752f
EB
16919 * config/arm/arm.c (arm_override_options): Fix braces and formatting
16920 from previous commit.
9df5bfe4 16921
73267076
ILT
169222009-06-23 Ian Lance Taylor <iant@google.com>
16923
16924 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
16925
9a476c9c
ILT
169262009-06-23 Ian Lance Taylor <iant@google.com>
16927
16928 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
16929 with ATTRIBUTE_UNUSED.
16930
cacf1ca8
MM
169312009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16932 Pat Haugen <pthaugen@us.ibm.com>
2d8b752f 16933 Revital Eres <eres@il.ibm.com>
cacf1ca8
MM
16934
16935 * config.in (HAVE_AS_POPCNTD): Add default definition.
16936 (HAVE_AS_LWSYNC): Ditto.
16937
16938 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
16939 release number.
16940 (gcc_cv_as_powerpc_cmpb): Ditto.
16941 (gcc_cv_as_powerpc_dfp): Ditto.
16942 (gcc_cv_as_powerpc_vsx): Ditto.
16943 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
16944 supporting the popcntd/lwsync instructions.
16945 (gcc_cv_as_powerpc_lwsync): Ditto.
16946 * configure: Regenerate.
16947
16948 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
16949 -mcpu=native and -mcpu=power7.
16950 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
16951
16952 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
16953 a variable instead of a mask to reduce the number of mask bits.
16954 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
16955 (-mbit-word): Ditto.
16956 (-mregnames): Ditto.
16957 * config/rs6000/rs6000.opt (-mupdate): Ditto.
16958 (-mfused-madd): Ditto.
16959
16960 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
16961 2.06 instructions.
16962 (-mvsx): New switch for VSX instructions.
16963 (-misel): Move from a variable to a mask to allow it to be set by
16964 -mcpu=.
16965
16966 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
16967 function declaration to an array declaration.
16968 (rs6000_hard_regno_nregs): New external array declaration.
16969
16970 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
16971 files included by rs6000.md.
16972
16973 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
16974 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
16975
16976 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
16977 a target mask.
16978 (rs6000_debug_reg): New -mdebug= variables.
16979 (rs6000_debug_addr): Ditto.
16980 (rs6000_debug_cost): Ditto.
16981 (rs6000_pmode): New variable to hold Pmode.
16982 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
16983 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
16984 calculated at compiler start.
16985 (rs6000_hard_regno_nregs): Change function to an array which holds
16986 HARD_REGNO_NREGS calculated at compiler start.
16987 (rs6000_explicit_options): Delete isel field.
16988 (rs6000_vector_unit): New array to hold which vector unit
16989 supports arithmetic options for a given type.
16990 (rs6000_vector_mem): New array to hold which vector unit supports
16991 memory reference operations for a given type.
16992 (rs6000_vector_align): New array to given the alignment of each
16993 vector type.
16994 (power7_cost): New basic costs for power7.
16995 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
16996 (rs6000_hard_regno_nregs_internal): New function, moved from
16997 HARD_REGNO_NREGS, to calculate the number of registers each hard
16998 register takes for each type.
16999 (rs6000_debug_reg_print): New function for -mdebug=reg support.
1e9ae5ab 17000 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
cacf1ca8
MM
17001 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
17002 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
17003 unit information here so it is calculated once at compiler startup
17004 time.
17005 (rs6000_override_options): Make -misel a target mask. Add more
17006 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
17007 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
17008 -mdebug=cost.
17009 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
17010 (rs6000_handle_option): Move -misel from variable to target mask.
17011 (rs6000_builtin_mask_for_load): Add VSX support.
17012 (rs6000_conditional_register_usage): Ditto.
17013 (USE_ALTIVEC_FOR_ARG_P): Ditto.
17014 (function_arg_boundary): Ditto.
17015 (rs6000_expand_builtin): Ditto.
17016 (def_builtin): Make abort message a little friendlier.
17017 (rs6000_emit_int_cmove): Add support for 64-bit isel.
17018
17019 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
17020 assembler support the popcntd instruction instead of a vsx
17021 instruction to enable power7 support.
17022 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
17023 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
17024 option to the assembler if -mcpu=native.
17025 (ASM_CPU_NATIVE_SPEC): Ditto.
17026 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
17027 ISA 2.06 features.
17028 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
17029 the lwsync instruction.
17030 (enum processor_type): Add PROCESSOR_POWER7.
17031 (rs6000_debug_reg): New -mdebug= options.
17032 (rs6000_debug_addr): Ditto.
17033 (rs6000_debug_cost): Ditto.
17034 (rs6000_isel): Delete.
17035 (enum rs6000_vector): New enum to say what vector unit we have.
17036 (VECTOR_UNIT_*): New macros to say which vector unit has
17037 arithmetic operations for a given type.
17038 (VECTOR_MEM_*): New macros to say which vector unit has memory
17039 operations for a given type.
17040 (TARGET_LDBRX): Whether the machine supports the ldbrx
17041 instruction.
17042 (TARGET_ISEL): Delete, -misel moved to be a mask.
17043 (TARGET_ISEL64): New macro for 64-bit isel support.
17044 (UNITS_PER_VSX_WORD): New macro.
17045 (POINTER_SIZE): Move to be an external variable, rather than
17046 calculating whether we are generating 32 ot 64-bit code.
17047 (Pmode): Ditto.
17048 (STACK_BOUNDARY): Add VSX support.
17049 (LOCAL_ALIGNMENT): Ditto.
17050 (SLOW_UNALIGNED_ACCESS): Ditto.
17051 (VSX_REGNO_P): New macro for VSX support.
17052 (VFLOAT_REGNO_P): Ditto.
17053 (VINT_REGNO_P): Ditto.
17054 (VLOGICAL_REGNO_P): Ditto.
17055 (VSX_VECTOR_MODE): Ditto.
17056 (VSX_SCALAR_MODE): Ditto.
17057 (VSX_MODE): Ditto.
17058 (VSX_MOVE_MODE): Ditto.
17059 (VSX_REG_CLASS_P): Ditto.
17060 (HARD_REGNO_NREGS): Instead of calling a function, use an array
17061 lookup.
17062 (UNITS_PER_SIMD_WORD): Add VSX support.
17063 (MODES_TIEABLE_P): Ditto.
17064 (STARTING_FRAME_OFFSET): Ditto.
17065 (STACK_DYNAMIC_OFFSET): Ditto.
17066 (EPILOGUE_USES): Ditto.
17067 (REGNO_REG_CLASS): Move to array lookup.
17068 (CLASS_MAX_NREGS): Ditto.
17069 (rs6000_vector_reg_class): Add declaration.
17070 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
17071 overlap with the floating point and Altivec registers.
17072
17073 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
17074
17075 * config/rs6000/driver-rs6000.c (asm_names): New static array to
17076 give the appropriate asm switches if -mcpu=native.
17077 (host_detect_local_cpu): Add support for "asm".
17078 (host_detect_local_cpu): Follow GNU code guidelines for name.
17079
17080 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
17081 -mbit-word to a variable instead of being a target mask.
17082
17083 * config/rs6000/sync.md (lwsync): If the assembler supports it,
17084 emit the lwsync instruction instead of emitting the instruction as
17085 an integer constant.
17086
17087 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
17088 fixuns_trundfsi2, move expander into rs6000.md.
17089
17090 * config/rs6000/rs6000.md (cpu): Add power7.
17091 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
17092 (logical predicate patterns): Change the single instruction
17093 primitives that set CR0 to be fast_compare instead of compare.
17094 (norsi*): Ditto.
17095 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
17096 (popcntddi2): Ditto.
17097 (popcount<mode>): Ditto.
17098 (floating multiply/add insns): Name the floating point
17099 multiply/add insns.
17100 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
17101 (isel_unsigned_<mode>): Ditto.
17102 (fixuns_trundfsi2): Move expander here from spe.md.
17103 (smindi3): Define if we have -misel on 64-bit systems.
17104 (smaxdi3): Ditto.
17105 (umindi3): Ditto.
17106 (umaxdi3): Ditto.
17107
59ab92d2
AS
171082009-06-23 Anatoly Sokolov <aesok@post.ru>
17109
17110 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
17111 extra_objs.
17112 * config/avr/avr.c (avr_current_device): New variable.
17113 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
17114 (avr_arch, mcu_type_s): Move to avr.h.
17115 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
17116 default_data_section_start fields.
17117 (avr_arch): Moved from avr.c.
17118 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
17119 library_name fields.
17120 (avr_current_device, avr_mcu_types, avr_arch_types,
17121 avr_device_to_arch, avr_device_to_data_start,
17122 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
17123 (EXTRA_SPEC_FUNCTIONS): Define.
17124 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
17125 options mapping. Use device_to_arch and device_to_data_start insted.
17126 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
17127 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
17128 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
17129 * config/avr/driver-avr.c: New file.
17130 * config/avr/avr-devices.c: New file.
17131
8593e0b6
JJ
171322009-06-23 Jakub Jelinek <jakub@redhat.com>
17133
7eb3f1f7
JJ
17134 * var-tracking.c (unshare_variable): Force initialized to
17135 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
17136 (set_variable_part): Likewise.
17137 (struct variable_union_info): Remove pos_src field.
17138 (vui_vec, vui_allocated): New variables.
17139 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
17140 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
17141 == 1 use a simpler sorting algorithm. Compute pos field right
17142 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
17143 Avoid quadratic comparison if !flag_var_tracking_uninit.
17144 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
f100a4a8 17145 unshare_variable unconditionally.
7eb3f1f7
JJ
17146 (dataflow_set_different_2): Removed.
17147 (dataflow_set_different): Don't traverse second hash table.
17148 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
17149 unconditionally to var_reg_set or var_mem_set.
17150 (emit_notes_in_bb): Likewise.
17151 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
17152 unshare_variable.
17153 (emit_note_insn_var_location): Don't set initialized to
17154 VAR_INIT_STATUS_INITIALIZED early.
17155 (vt_finalize): Free vui_vec if needed, clear vui_vec and
17156 vui_allocated.
17157 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
17158
8593e0b6
JJ
17159 * tree-object-size.c (addr_object_size): Instead of checking
17160 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
17161 are no FIELD_DECLs following it.
17162
fef015a8
AK
171632009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
17164
17165 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
17166 order to match bswaps with signed source operands.
17167
b6d83244
RO
171682009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
17169
17170 * sdbout.c (sdbout_one_type): Fix braces in switch.
17171
0bbf2ffa
RG
171722009-06-23 Richard Guenther <rguenther@suse.de>
17173
17174 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
17175 member.
17176 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
17177 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
17178 var_callused, callused_tree, var_storedanything, storedanything_tree,
17179 var_integer, integer_tree): Remove global variables.
17180 (new_var_info): Do not pass new id, append the new var to the
17181 global variable vector.
17182 (do_ds_constraint): Use is_global_var member of the variable-info.
17183 (new_scalar_tmp_constraint_exp): Adjust.
17184 (create_function_info_for): Likewise.
17185 (create_variable_info_for): Likewise.
17186 (find_what_var_points_to): Remove dead code.
17187 (init_base_vars): Simplify.
17188 (compute_points_to_sets): Adjust.
17189
28a5fb2e
AN
171902009-06-22 Adam Nemet <anemet@caviumnetworks.com>
17191
17192 * combine.c (try_combine): Dump information about the insns we're
17193 combining.
17194
cfb8805e
AN
171952009-06-22 Adam Nemet <anemet@caviumnetworks.com>
17196
17197 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
17198 check when calling force_to_mode on TRUNCATE's operand.
17199
df4ba119
ILT
172002009-06-22 Ian Lance Taylor <iant@google.com>
17201
897eef7b 17202 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
df4ba119 17203
c986683b
SB
172042009-06-22 Steven Bosscher <steven@gcc.gnu.org>
17205
17206 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
17207
5c6927bd
RW
172082009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17209
17210 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
17211 override library linkage flags such as -static-libgcc or
17212 -shared-libgcc.
17213
19973be2
MK
172142009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
17215
17216 * config/m68k/m68k-devices.def: Add line for MCF5221x.
17217
7a5d2eb8
ILT
172182009-06-22 Ian Lance Taylor <iant@google.com>
17219
17220 * config/linux.opt: Put mglibc ahead of muclibc.
17221
17222 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
17223 for duplicate decls.
17224
86e3c83a
MK
172252009-06-22 Matthias Klose <doko@ubuntu.com>
17226
17227 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
17228
0a7d7dea
MK
172292009-06-22 Steven Bosscher <steven@gcc.gnu.org>
17230
17231 PR objc/28050
17232 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
17233 instead of NULL if a parser error occurs.
17234
a77264d5
RO
172352009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
17236
17237 * dwarf2out.c (dwarf2_debug_hooks): Initialize
17238 non-DWARF2_DEBUGGING_INFO version.
17239
54f549af
KT
172402009-06-22 Kai Tietz <kai.tietz@onevision.com>
17241
34481f28
UB
17242 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
17243 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
17244
17245 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
54f549af
KT
17246 (LIBGCC2_TF_CEXT): Define.
17247 (TF_SIZE): Define.
17248
7cea01df
RR
172492009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17250
17251 PR target/40463
17252 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
17253
3ce14752
RR
172542009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17255
34481f28
UB
17256 * config/arm/arm.c (arm_override_options): Disable
17257 -mcaller-super-interworking and -mcallee-super-interworking.
17258 * doc/invoke.texi (ARM Options): Document this.
3ce14752 17259
d58bc084
NS
172602009-06-22 Nathan Sidwell <nathan@codesourcery.com>
17261
17262 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
17263 * config/arm/constraints.md (j): New constraint for movw operands.
17264 (N): Remove thumb2 meaning.
17265 * config/arm/arm.md (*arm_movw): Delete.
17266 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
17267 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
17268 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
17269
ac6cb60c
MJ
172702009-06-22 Martin Jambor <mjambor@suse.cz>
17271
17272 PR tree-optimization/40492
17273 * tree-sra.c (sra_modify_assign): Pass zero offsets to
17274 build_ref_for_offset.
17275
481683e1
SZ
172762009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
17277
17278 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
17279 JUMP_TABLE_DATA_P predicates where applicable.
17280 * auto-inc-dec.c: Ditto.
17281 * builtins.c: Ditto.
17282 * caller-save.c: Ditto.
17283 * calls.c: Ditto.
17284 * cfgcleanup.c: Ditto.
17285 * cfglayout.c: Ditto.
17286 * cfgrtl.c: Ditto.
17287 * combine.c: Ditto.
17288 * combine-stack-adj.c: Ditto.
17289 * cse.c: Ditto.
17290 * cselib.c: Ditto.
17291 * dbxout.c: Ditto.
17292 * df-scan.c: Ditto.
17293 * dse.c: Ditto.
17294 * dwarf2asm.c: Ditto.
17295 * dwarf2out.c: Ditto.
17296 * emit-rtl.c: Ditto.
17297 * except.c: Ditto.
17298 * explow.c: Ditto.
17299 * expmed.c: Ditto.
17300 * expr.c: Ditto.
17301 * final.c: Ditto.
17302 * function.c: Ditto.
17303 * fwprop.c: Ditto.
17304 * gcse.c: Ditto.
17305 * genpreds.c: Ditto.
17306 * genrecog.c: Ditto.
17307 * ifcvt.c: Ditto.
17308 * ira-costs.c: Ditto.
17309 * ira-lives.c: Ditto.
17310 * jump.c: Ditto.
17311 * loop-iv.c: Ditto.
17312 * lower-subreg.c: Ditto.
17313 * modulo-sched.c: Ditto.
17314 * optabs.c: Ditto.
17315 * postreload.c: Ditto.
17316 * print-rtl.c: Ditto.
17317 * recog.c: Ditto.
17318 * reginfo.c: Ditto.
17319 * regmove.c: Ditto.
17320 * reload1.c: Ditto.
17321 * reload.c: Ditto.
17322 * reorg.c: Ditto.
17323 * rtlanal.c: Ditto.
17324 * rtl.c: Ditto.
17325 * sched-vis.c: Ditto.
17326 * sdbout.c: Ditto.
17327 * sel-sched-ir.c: Ditto.
17328 * simplify-rtx.c: Ditto.
17329 * targhooks.c: Ditto.
17330 * var-tracking.c: Ditto.
17331 * vmsdbgout.c: Ditto.
17332
1407d6cf
MK
173332009-06-22 Matthias Klose <doko@ubuntu.com>
17334
17335 * Makefile.in (install-plugin): Always use DESTDIR.
17336
28326880 173372009-06-22 Olivier Hainque <hainque@adacore.com>
f100a4a8 17338
28326880
OH
17339 * config/pa/pa.c (output_call): Don't optimize post call jumps
17340 into return address adjustments if the call may throw.
17341
907dd0c7
RE
173422009-06-21 Richard Earnshaw <rearnsha@arm.com>
17343
17344 * arm.c (thumb1_output_casesi): New function.
17345 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
17346 optimizing for size or PIC.
17347 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
17348 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
17349 (casesi): Handle Thumb-1 when optimizing for size or PIC.
17350 (thumb1_casesi_internal_pic): New expand rule.
17351 (thumb1_casesi_dispatch): New pattern.
17352 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
17353 thumb-1 mode.
17354 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
17355 in the text seciton when PIC or optimizing for size.
17356 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
17357 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
17358 preservation properties of code.
17359 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
17360 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
17361 (__gnu_thumb1_case_si): New function.
17362 * t-arm (LIB1ASMSRC): Define here.
17363 (LIB1ASMFUNCS): Add some common functions.
17364 * t-arm-elf (LIB1ASMSRC): Delete.
17365 (LIB1ASMFUNCS): Append to existing set.
17366 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17367 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17368 * t-symbian (LIB1ASMFUNCS): Likewise.
17369 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17370 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
17371
2cee1509
RG
173722009-06-21 Richard Guenther <rguenther@suse.de>
17373
17374 PR tree-optimization/38729
17375 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
17376 to loops with a single exit if -fno-expensive-optimizations.
17377
d24686d7
JJ
173782009-06-21 Jakub Jelinek <jakub@redhat.com>
17379
17380 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
17381 (dataflow_set): Change vars type from htab_t to shared_hash.
17382 (shared_hash_pool, empty_shared_hash): New variables.
17383 (vars_clear): Removed.
17384 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
17385 shared_hash_find_slot_unshare, shared_hash_find_slot,
17386 shared_hash_find_slot_noinsert, shared_hash_find): New
17387 static inlines.
17388 (shared_hash_unshare, shared_hash_destroy): New functions.
17389 (unshare_variable): Unshare set->vars if shared, use
17390 shared_hash_htab.
17391 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
17392 (get_init_value, find_src_set_src, dump_dataflow_set,
17393 clobber_variable_part, emit_notes_for_differences): Use
17394 shared_hash_htab.
17395 (dataflow_set_init): Remove second argument, set vars to
17396 empty_shared_hash instead of creating a new htab.
17397 (dataflow_set_clear): Call shared_hash_destroy and set vars
17398 to empty_shared_hash instead of calling vars_clear.
17399 (dataflow_set_copy): Don't call vars_copy, instead just share
17400 the src htab with dst.
17401 (variable_union): Use shared_hash_*, use initially NO_INSERT
17402 lookup if set->vars is shared. Don't keep slot cleared before
17403 calling unshare_variable. Unshare set->vars if needed.
17404 Even ->refcount == 1 vars must be unshared if set->vars is shared
17405 and var needs to be modified.
17406 (variable_canonicalize): New function.
17407 (dataflow_set_union): If dst->vars is empty, just share src->vars
17408 with dst->vars and traverse with variable_canonicalize to canonicalize
17409 and unshare what is needed.
17410 (dataflow_set_different): If old_set and new_set use the same shared
17411 htab, they aren't different. If number of htab elements is different,
17412 htabs are different. Use shared_hash_*.
17413 (dataflow_set_destroy): Call shared_hash_destroy instead of
17414 htab_delete.
17415 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
17416 second argument to dataflow_set_init.
17417 (vt_initialize): Likewise. Initialize shared_hash_pool and
17418 empty_shared_hash, move bb in/out initialization afterwards.
17419 Use variable_htab_free instead of NULL as changed_variables del hook.
17420 (variable_was_changed): Change type of second argument to pointer to
17421 dataflow_set. When inserting var into changed_variables, bump
17422 refcount. Unshare set->vars if set is shared htab and slot needs to
17423 be cleared.
17424 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
17425 lookup if set->vars is shared. Unshare set->vars if needed.
17426 Even ->refcount == 1 vars must be unshared if set->vars is shared
17427 and var needs to be modified. Adjust variable_was_changed caller.
17428 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
17429 vars must be unshared if set->vars is shared and var needs to be
17430 modified. Adjust variable_was_changed caller.
17431 (emit_note_insn_var_location): Don't pool_free var.
17432 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
17433 instead of 1.
17434 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
17435 free_alloc_pool on shared_hash_pool.
17436
525b459f
AG
174372009-06-20 Anthony Green <green@moxielogic.com>
17438
17439 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
17440 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
17441
825be69e
RG
174422009-06-20 Richard Guenther <rguenther@suse.de>
17443
17444 * tree-ssa-structalias.c (find_func_aliases): For memset use
17445 a constraint from NULL if we memset to zero.
17446 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
17447 we explicitly handle that do not read from memory.
17448 (call_may_clobber_ref_p_1): Properly handle builtins that may
17449 set errno.
17450
b14e9388
RG
174512009-06-20 Richard Guenther <rguenther@suse.de>
17452
17453 PR tree-optimization/40495
17454 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
17455 (new_scalar_tmp_constraint_exp): New function.
17456 (process_constraint): Do not create temporary decls.
17457 (process_all_all_constraints): Likewise.
17458 (handle_const_call): Likewise.
17459 (create_function_info_for): Do not set decl.
17460
c885ca89
ILT
174612009-06-19 Ian Lance Taylor <iant@google.com>
17462
17463 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
17464 (rs6000_attribute_table): Make static; move before use.
17465
6569d386
EB
174662009-06-19 Eric Botcazou <ebotcazou@adacore.com>
17467
17468 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
17469 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
17470 Propagate the TREE_READONLY flag without overwriting it.
17471 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
17472 Propagate the TREE_READONLY flag onto the result.
17473 (process_call_operands): Move around. Use correct constant value.
17474
ce41c38b
RR
174752009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17476
17477 PR target/40482
897eef7b 17478 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
ce41c38b
RR
17479 * config/arm/arm.md: Likewise.
17480
96be7a11 174812009-06-19 Ian Lance Taylor <iant@google.com>
d130ae11
ILT
17482
17483 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
17484 to GIMPLE_ERROR_MARK.
17485
17486 * c-typeck.c (build_conditional_expr): Add op1_original_type and
897eef7b 17487 op2_original_type parameters. Warn about using different enum types.
d130ae11
ILT
17488 * c-parser.c (c_parser_conditional_expression): Pass original
17489 types to build_conditional_expr.
17490 * c-tree.h (build_conditional_expr): Update declaration.
17491
d4aa4f4b
ILT
174922009-06-19 Ian Lance Taylor <iant@google.com>
17493
17494 * config/i386/i386.c (ix86_function_specific_save): Test that
17495 fields match values, rather than testing the values are in a
17496 certain range.
17497
779704e7
RG
174982009-06-19 Richard Guenther <rguenther@suse.de>
17499
17500 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
17501 ADDR_EXPR pointers.
17502 (ptr_derefs_may_alias_p): Likewise.
17503 (ptr_deref_may_alias_ref_p_1): New function.
17504 (ptr_deref_may_alias_ref_p): Likewise.
17505 (ref_maybe_used_by_call_p_1): Handle builtins that are not
17506 covered by looking at the ESCAPED solution.
17507 (call_may_clobber_ref_p_1): Likewise.
17508 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
17509 Handle NULL_TREE offset. Do not produce redundant constraints.
17510 (process_all_all_constraints): New helper function.
17511 (do_structure_copy): Use it.
17512 (handle_lhs_call): Likewise.
17513 (find_func_aliases): Handle some builtins with pointer arguments
17514 and/or return values explicitly.
17515
217655da
ILT
175162009-06-19 Ian Lance Taylor <iant@google.com>
17517
17518 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
17519
50ae5fea
ILT
175202009-06-19 Ian Lance Taylor <iant@google.com>
17521
17522 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
17523
642324bb
ILT
175242009-06-19 Ian Lance Taylor <iant@google.com>
17525
17526 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
17527 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
17528 version.
17529
17530 * c-decl.c (finish_decl): If -Wc++-compat, warn about
17531 uninitialized const.
17532
dc491a25
ILT
175332009-06-19 Ian Lance Taylor <iant@google.com>
17534
17535 * dse.c (struct store_info): Rename bitmap field to bmap. Change
17536 all uses.
17537
17538 * c-decl.c (in_struct, struct_types): Remove.
17539 (struct c_binding): Add in_struct field.
17540 (c_binding_ptr): Define type, along with VEC.
17541 (struct c_struct_parse_info): Define.
17542 (struct_parse_info): New static variable.
17543 (bind): Initialize in_struct field.
17544 (start_struct): Remove enclosing_in_struct and
17545 enclosing_struct_types parameters. Add
17546 enclosing_struct_parse_info parameter. Change all callers. Set
17547 struct_parse_info rather than in_struct and struct_types.
17548 (grokfield): If -Wc++-compat and there is a symbol binding for the
17549 field name, set the in_struct flag and push it on the
17550 struct_parse_info->fields vector.
17551 (warn_cxx_compat_finish_struct): New static function.
17552 (finish_struct): Remove enclosing_in_struct and
17553 enclosing_struct_types parameters. Add
17554 enclosing_struct_parse_info parameter. Change all callers. Don't
17555 set C_TYPE_DEFINED_IN_STRUCT here. Call
17556 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
17557 parameter. Only push on struct_types if warn_cxx_compat.
17558 (finish_enum): Only push on struct_types if warn_cxx_compat.
17559 (declspecs_add_type): Add loc parameter. Change all callers.
17560 Change all error calls to error_at. Pass loc, not input_location,
17561 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
17562 defined in a struct. If -Wc++-compat and parsing a struct, record
17563 that a typedef name was used.
17564 * c-parser.c (c_parser_declspecs): Get location to pass to
17565 declspecs_add_type.
17566 (c_parser_struct_or_union_specifier): Update calls to start_struct
17567 and finish_struct.
17568 * c-tree.h (struct c_struct_parse_info): Declare.
17569 (finish_struct, start_struct): Update declarations.
17570 (declspecs_add_type): Update declaration.
17571
88eeff6f
ILT
175722009-06-19 Ian Lance Taylor <iant@google.com>
17573
17574 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
17575 variable with an anonymous type.
17576
28a876a4
UB
175772009-06-19 Uros Bizjak <ubizjak@gmail.com>
17578
17579 * see.c: Remove for real.
17580
dc6707b8
UB
175812009-06-19 Uros Bizjak <ubizjak@gmail.com>
17582
17583 * optabs.h (enum optab_index): Add new OTI_significand.
17584 (significand_optab): Define corresponding macro.
17585 * optabs.c (init_optabs): Initialize significand_optab.
17586 * genopinit.c (optabs): Implement significand_optab using
17587 significand?f2 patterns.
17588 * builtins.c (expand_builtin_mathfn): Handle
17589 BUILT_IN_SIGNIFICAND{,F,L}.
17590 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
17591 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
17592
17593 * config/i386/i386.md (significandxf2, significand<mode>2): New
17594 expanders to implement significandf, significand and significandl
17595 built-ins as inline x87 intrinsics.
17596
dd26af70
AS
175972009-06-18 Anatoly Sokolov <aesok@post.ru>
17598
17599 * config/avr/avr.c (avr_override_options): Remove setting value of
17600 PARAM_INLINE_CALL_COST.
17601
394bd84d
RH
176022009-06-18 Richard Henderson <rth@redhat.com>
17603
17604 PR 40488
17605 * tree-pass.h (TDF_ASMNAME): New.
17606 * tree-dump.c (dump_options): Add asmname.
17607 * doc/invoke.texi: Document it.
17608
17609 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
17610 (dump_decl_name): ...here.
17611 (dump_function_name): New flags arg; mind TDF_ASMNAME.
17612 (dump_generic_node): Update dump_function_name calls.
17613 (print_call_name): New flags arg; update all dump calls.
17614 * diagnostic.h (print_call_name): Update.
17615 * gimple-pretty-print.c (dump_gimple_call): Update.
17616
2a457a9b
L
176172009-06-18 H.J. Lu <hongjiu.lu@intel.com>
17618
17619 PR target/40470
17620 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
17621
fca5bb5c
DN
176222009-06-18 Diego Novillo <dnovillo@google.com>
17623
17624 * doc/plugins.texi: Document plugin_is_GPL_compatible.
17625 * plugin.c (str_license): Declare.
17626 (try_init_one_plugin): Assert that the symbol
17627 'plugin_is_GPL_compatible' exists.
17628
b6680d72
SD
176292009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
17630
17631 * see.c: Remove.
17632 * Makefile.in (OBJS-common): Remove see.o.
17633 (see.o): Remove.
17634 * common.opt (fsee): Mark as preserved for backward compatibility.
f100a4a8 17635 * opts.c (common_handle_option): Add OPT_fsee to the backward
b6680d72
SD
17636 compatibility section.
17637 * passes.c (init_optimization_passes, pass_see): Remove pass.
17638 * timevar.def (TV_SEE): Remove.
17639 * tree-pass.h (pass_see): Remove declaration.
17640 * doc/invoke.texi (-fsee): Remove documentation.
f100a4a8 17641
2a45675f
MJ
176422009-06-18 Martin Jambor <mjambor@suse.cz>
17643
17644 * tree-sra.c: Include statistics.h
17645 (sra_stats): New variable.
17646 (sra_initialize): Clear sra_stats.
17647 (create_access_replacement): Increment sra_stats.replacements.
17648 (get_access_replacement): Do not return twice.
17649 (analyze_all_variable_accesses): Increment statistics counter by the
17650 number of scalarized aggregates.
17651 (generate_subtree_copies): Increment sra_stats.subtree_copies.
17652 (sra_modify_expr): Increment sra_stats.exprs.
17653 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
17654 (sra_modify_assign): Increment sra_stats.exprs,
17655 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
17656 (perform_intra_sra): Update statistics counters.
17657 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
17658
bdc4827b
SL
176592009-06-18 Sandra Loosemore <sandra@codesourcery.com>
17660
17661 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
17662 (arm_scalar_mode_supported_p): New function.
17663
d9dd51dc
PB
176642009-06-18 Paul Brook <paul@codesourcery.com>
17665 Sandra Loosemore <sandra@codesourcery.com>
17666
17667 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
17668 (__extendhfsf2, __truncsfhf2): Define.
17669 * config/arm/fp16.c: New file.
17670 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
17671 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
17672
0fd8c3ad
SL
176732009-06-18 Sandra Loosemore <sandra@codesourcery.com>
17674
17675 * doc/extend.texi (Half-Precision): New section.
17676 * doc/invoke.texi (Option Summary): List -mfp16-format.
17677 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
17678 * config/arm/arm.opt (mfp16-format=): New.
17679 * config/arm/arm.c: Include intl.h.
17680 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
17681 (TARGET_INVALID_RETURN_TYPE): Redefine.
17682 (TARGET_PROMOTED_TYPE): Redefine.
17683 (TARGET_CONVERT_TO_TYPE): Redefine.
17684 (arm_fp16_format): Define.
17685 (all_fpus): Add entry for neon-fp16.
17686 (fp_model_for_fpu): Likewise.
17687 (struct fp16_format): Declare.
17688 (all_fp16_formats): Define.
17689 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
17690 functions.
17691 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
17692 and no ldrh.
17693 (arm_legitimate_index_p): Treat HFmode like HImode.
17694 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
17695 (coproc_secondary_reload_class): Special-case HFmode.
17696 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
17697 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
17698 (arm_init_fp16_builtins): New.
17699 (arm_init_builtins): Call it.
17700 (arm_invalid_parameter_type): New.
17701 (arm_invalid_return_type): New.
17702 (arm_promoted_type): New.
17703 (arm_convert_to_type).
17704 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
17705 format.
17706 (arm_emit_fp16_const): New function.
17707 (arm_mangle_type): Mangle __fp16 as "Dh".
17708 * config/arm/arm.h (TARGET_VFPD32): Make it know about
17709 FPUTYPE_NEON_FP16.
17710 (TARGET_NEON_FP16): New.
17711 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
17712 (enum fputype): Add FPUTYPE_NEON_FP16.
17713 (enum arm_fp16_format_type): Declare.
17714 (arm_fp16_format): Declare.
17715 (LARGEST_EXPONENT_IS_NORMAL): Define.
17716 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
17717 * config/arm/arm-modes.def (HFmode): Define.
bd62d832 17718 * config/arm/vfp.md (*movhf_vfp): New.
0fd8c3ad
SL
17719 (extendhfsf2): New.
17720 (truncsfhf2): New.
bd62d832 17721 * config/arm/arm.md (fpu): Add neon_fp16.
0fd8c3ad
SL
17722 (floatsihf2, floatdihf2): New.
17723 (fix_trunchfsi2, fix_trunchfdi2): New.
17724 (truncdfhf2): New.
17725 (extendhfdf2): New.
17726 (movhf): New.
17727 (*arm32_movhf): New.
17728 (*thumb1_movhf): New.
17729 (consttable_2): Add check for HFmode constants.
17730 (consttable_4): Handle HFmode constants.
17731
2c2f70e1
UB
177322009-06-18 Uros Bizjak <ubizjak@gmail.com>
17733
17734 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
17735
db4fa1c1
OH
177362009-06-17 Olivier Hainque <hainque@adacore.com>
17737
17738 * collect2.c (main): Use CONST_CAST2 to perform char ** to
17739 const char ** conversion in AIX specific section.
f100a4a8 17740
6bec4135
L
177412009-06-17 H.J. Lu <hongjiu.lu@intel.com>
17742
17743 * config/i386/i386.c (ix86_special_builtin_type): Remove
17744 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
17745 (bdesc_special_args): Updated.
17746 (ix86_init_mmx_sse_builtins): Likewise.
17747 (ix86_expand_special_args_builtin): Likewise.
17748
958d6d58
RH
177492009-06-17 Richard Henderson <rth@redhat.com>
17750
17751 * tree-pretty-print.c (maybe_dump_asm_name): New.
17752 (dump_decl_name): Use it.
17753 (PRINT_FUNCTION_NAME): Merge into...
17754 (dump_function_name): ... here. Use maybe_dump_asm_name.
17755
ed5ef2e4
CC
177562009-06-17 Cary Coutant <ccoutant@google.com>
17757
17758 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
17759 Change caller.
17760 * debug.c (struct gcc_debug_hooks): Change placeholder for
17761 source_line hook.
17762 (debug_nothing_int_charstar_int): Replaced by...
17763 (debug_nothing_int_charstar_int_bool): ...this.
17764 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
17765 source_line prototype.
17766 (debug_nothing_int_charstar_int): Replaced by...
17767 (debug_nothing_int_charstar_int_bool): ...this.
17768 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
17769 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
17770 Output is_stmt operand when necessary.
01a0acb7 17771 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
ed5ef2e4
CC
17772 (notice_source_line): Add is_stmt parameter.
17773 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
17774 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
17775 Change callers.
17776 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
17777 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
17778
b0f43ca0
ILT
177792009-06-17 Ian Lance Taylor <iant@google.com>
17780
17781 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
17782 Change all uses.
17783 (struct store_by_pieces_d): Rename from store_by_pieces. Change
17784 call uses.
17785
23314e77
AN
177862009-06-17 Adam Nemet <anemet@caviumnetworks.com>
17787
17788 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
17789 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
17790 tree_strip_sign_nop_conversions and
17791 tree_ssa_strip_useless_type_conversions rather than stripping
17792 the operations here.
17793 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
17794 Declare them.
17795 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
17796 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
17797 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
17798 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
17799 functions.
17800
799dbb0f
ME
178012009-06-17 Michael Eager <eager@eagercon.com>
17802
c637b0fa
UB
17803 * config/rs6000/constraints.md (register_constraint "d"): New.
17804 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
17805 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
17806 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
17807 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
17808 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
17809 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
17810 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
17811 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
799dbb0f
ME
17812 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
17813 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
c637b0fa
UB
17814 __fctiwz): Same.
17815 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
799dbb0f
ME
17816 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
17817 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
17818 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
c637b0fa
UB
17819 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
17820 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
17821 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
17822 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
17823 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
17824 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
17825 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
17826 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
17827 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
799dbb0f
ME
17828 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
17829
1469de3c
ILT
178302009-06-16 Ian Lance Taylor <iant@google.com>
17831
17832 * profile.c (total_num_never_executed): Don't define.
17833 (compute_branch_probabilities): Don't count or print
17834 num_never_executed.
17835 (init_branch_prob): Don't set total_num_never_executed.
17836 (end_branch_prob): Don't print total_num_never_executed.
17837
2cb0a60d
DD
178382009-06-17 David Daney <ddaney@caviumnetworks.com>
17839
c637b0fa 17840 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
2cb0a60d 17841
82882240
DE
178422009-06-17 David Edelsohn <edelsohn@gnu.org>
17843
17844 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
17845 (nabstd2_fpr): Same.
17846
a1a65f89
SE
178472009-06-17 Steve Ellcey <sje@cup.hp.com>
17848
17849 * expr.c (expand_assignment): Change complex type check.
17850
07ae5620
BS
178512009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
17852
f100a4a8 17853 * doc/plugins.texi (Building GCC plugins): Added new section.
07ae5620 17854
5eb4df45
ILT
178552009-06-17 Ian Lance Taylor <iant@google.com>
17856
17857 * c-pch.c (get_ident): Don't set size of templ array.
17858 (pch_init): Don't set size of partial_pch array.
17859
17860 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
17861 string constant to intialize an array whose size is the length of
17862 the string.
17863
4d61856d
RG
178642009-06-17 Richard Guenther <rguenther@suse.de>
17865
17866 PR tree-optimization/40389
17867 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
17868 to addressable types.
17869 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
17870
3cb8677c
RG
178712009-06-17 Richard Guenther <rguenther@suse.de>
17872
17873 PR middle-end/40460
17874 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
17875 if there is no evolution of left in the loop bail out.
17876 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
17877 chrec_fold_multiply.
17878
a4d99c86
R
178792009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
17880 Janis Johnson <janis187@us.ibm.com>
17881
17882 PR target/39254
17883 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
17884 for the symbol ref of a constant that is the source of a move
17885 - nor for any other not-obvious-label-ref constants.
17886
8dd1bca0
OR
178872009-06-16 Olatunji Ruwase <tjruwase@google.com>
17888
1469de3c 17889 * plugin.c (position_pass): Skip newly inserted pass during list
8dd1bca0
OR
17890 traversal to avoid repeated insertion.
17891
8019538f
ILT
178922009-06-16 Ian Lance Taylor <iant@google.com>
17893
17894 * vec.h (VEC_stack_alloc): Define different version if
17895 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
17896 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
17897 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
17898 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
17899
7c45393e
L
179002009-06-16 H.J. Lu <hongjiu.lu@intel.com>
17901
17902 * config.gcc (extra_headers): Add ia32intrin.h for x86.
17903
17904 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
17905 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
17906 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
17907 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
17908 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
17909 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 17910 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
17911 (bdesc_special_args): Add __builtin_ia32_rdtsc and
17912 __builtin_ia32_rdtscp.
17913 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
17914 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
c637b0fa 17915 and __builtin_ia32_rorhi.
7c45393e
L
17916 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
17917 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
c637b0fa 17918 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
7c45393e
L
17919 (ix86_expand_args_builtin): Likewise.
17920 (ix86_expand_special_args_builtin): Likewise.
17921
17922 * config/i386/i386.md (UNSPECV_RDTSCP): New.
17923 (UNSPECV_RDTSC): Likewise.
17924 (UNSPECV_RDPMC): Likewise.
c637b0fa 17925 (*bsr): Renamed to ...
7c45393e 17926 (bsr): This
c637b0fa 17927 (*bsr_rex64): Renamed to ...
7c45393e
L
17928 (bsr_rex64): This.
17929 (rdpmc): New.
17930 (*rdpmc): Likewise.
17931 (*rdpmc_rex64): Likewise.
17932 (rdtsc): Likewise.
17933 (*rdtsc): Likewise.
17934 (*rdtsc_rex64): Likewise.
17935 (rdtscp): Likewise.
17936 (*rdtscp): Likewise.
17937 (*rdtscp_rex64): Likewise.
17938
17939 * config/i386/ia32intrin.h: New.
17940
17941 * config/i386/x86intrin.h: Include <ia32intrin.h>.
17942
504b33d8
ILT
179432009-06-16 Ian Lance Taylor <iant@google.com>
17944
17945 * ira-build.c (copy_info_to_removed_store_destinations):
17946 Initialize parent_a.
17947
f9551830
ILT
179482009-06-16 Ian Lance Taylor <iant@google.com>
17949
17950 * c-decl.c (grokdeclarator): Change size_varies to bool.
17951
c32e2175
ILT
179522009-06-16 Ian Lance Taylor <iant@google.com>
17953
17954 * sel-sched.c: Make forward declarations of move_op_hooks and
17955 fur_hooks explicitly extern.
17956
415a06c2
ILT
179572009-06-16 Ian Lance Taylor <iant@google.com>
17958
c637b0fa 17959 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
415a06c2
ILT
17960 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
17961
675f99c9
ILT
179622009-06-16 Ian Lance Taylor <iant@google.com>
17963
17964 * resource.c (mark_referenced_resources): Change
17965 include_delayed_effects parameter to bool. Change all callers.
17966 (mark_end_of_function_resources): Likewise.
17967 * reorg.c (insn_references_resource_p): Likewise.
17968 (insn_sets_resource_p): Likewise.
17969 * resource.h (mark_referenced_resources): Update declaration.
17970 (mark_end_of_function_resources): Update declaration.
17971
a322799d
DE
179722009-06-16 David Edelsohn <edelsohn@gnu.org>
17973
17974 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
17975
c58c92f5
DE
179762009-06-16 David Edelsohn <edelsohn@gnu.org>
17977
17978 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
17979 GCC can bootstrap on AIX with GNU Binutils 2.20.
17980
95228603
ILT
179812009-06-16 Ian Lance Taylor <iant@google.com>
17982
17983 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
17984
9c727c9a
ILT
179852009-06-16 Ian Lance Taylor <iant@google.com>
17986
17987 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
17988 inline, not extern inline.
17989 (exact_log2): Likewise.
17990 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
17991 test CLZ_HWI.
17992 (exact_log2): Likewise, but don't test CTZ_HWI.
17993
5fd8300b
ILT
179942009-06-16 Ian Lance Taylor <iant@google.com>
17995
17996 * bitmap.c (bitmap_clear): Don't declare as inline.
17997 * gimple.c (gimplify_assign): Likewise.
17998 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
17999 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
18000 (sched_scan_info): Remove duplicate definition.
18001
7d882b83
ILT
180022009-06-16 Ian Lance Taylor <iant@google.com>
18003
18004 * c-common.c (skip_evaluation): Don't define.
18005 (c_inhibit_evaluation_warnings): Define global variable.
18006 (overflow_warning): Check c_inhibit_evaluation_warnings rather
18007 than skip_evaluation.
18008 (convert_and_check, warn_for_div_by_zero): Likewise.
18009 * c-common.h (skip_evaluation): Don't declare.
18010 (c_inhibit_evaluation_warnings): Declare.
18011 * c-parser.c (c_parser_typeof_specifier): Set
18012 c_inhibit_evaluation_warnings rather than skip_evaluation.
18013 (c_parser_conditional_expression): Likewise.
18014 (c_parser_binary_expression): Likewise.
18015 (c_parser_sizeof_expression): Likewise.
18016 (c_parser_alignof_expression): Likewise.
18017 * c-typeck.c (build_indirect_ref): Check
18018 c_inhibit_evaluation_warnings rather than skip_evaluation.
18019 (build_conditional_expr, build_binary_op): Likewise.
18020
2e407842
RG
180212009-06-16 Richard Guenther <rguenther@suse.de>
18022
18023 * tree-ssa-alias.c (is_escape_site): Remove.
18024 * tree-ssa-alias.h (enum escape_type): Remove.
18025 (is_escape_site): Likewise.
18026 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
18027 via casts and asms without deferring to is_escape_site.
18028
f2ff8872
JJ
180292009-06-16 Jakub Jelinek <jakub@redhat.com>
18030
18031 PR middle-end/40446
18032 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
18033 use gen_lowpart if op0 has complex mode.
18034
de70bb20
RG
180352009-06-16 Richard Guenther <rguenther@suse.de>
18036
18037 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
18038 variables add them to ESCAPED.
c637b0fa 18039 (find_func_aliases): Do not make all indirectly stored values escaped.
de70bb20 18040
daa0eeb8
RAE
180412009-06-16 Rafael Avila de Espindola <espindola@google.com>
18042
18043 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
18044 make_decl_one_only.
18045
0ec19b8c
MJ
180462009-06-16 Martin Jambor <mjambor@suse.cz>
18047
18048 PR tree-optimization/40432
18049 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
18050 check whether we need to force gimple register operand.
18051
2b26b801
MJ
180522009-06-16 Martin Jambor <mjambor@suse.cz>
18053
18054 PR tree-optimization/40413
18055 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
18056 build_ref_for_offset.
18057 (propagate_subacesses_accross_link): Fix a typo in a comment.
18058
7c5222ff
IR
180592009-06-16 Ira Rosen <irar@il.ibm.com>
18060
18061 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
18062 with additional parameter.
c637b0fa 18063 * tree-vectorizer.h (enum vect_def_type): Add new value
7c5222ff
IR
18064 vect_nested_cycle.
18065 (enum vect_relevant): Add comments.
18066 (vect_is_simple_reduction): Add new argument.
18067 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
18068 Detect nested cycles.
18069 (vect_is_simple_reduction): Update documentation, add an argument to
18070 distinguish inner-loop reduction from nested cycle, detect nested
18071 cycles, fix printings and indentation, don't swap operands in case
18072 of nested cycle.
18073 (get_initial_def_for_reduction): Handle subtraction.
18074 (vect_create_epilog_for_reduction): Add new argument to specify
18075 reduction variable.
18076 (vect_finalize_reduction): Handle subtraction, fix comments.
c637b0fa 18077 (vectorizable_reduction): Handle nested cycles. In case of nested
f100a4a8 18078 cycle keep track of the reduction variable position. Call
7c8b1a77 18079 vect_is_simple_reduction with additional parameter. Use original
7c5222ff
IR
18080 statement code in reduction epilogue for nested cycle. Call
18081 vect_create_epilog_for_reduction with additional parameter.
c637b0fa
UB
18082 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
18083 inner-loop vectorization.
7c5222ff
IR
18084 (vect_recog_widen_sum_pattern): Likewise.
18085 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
18086 and reductions.
18087 (vect_mark_stmts_to_be_vectorized): Likewise.
18088 (vect_get_vec_def_for_operand): Handle nested cycles.
18089
d376d545
RW
180902009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18091
18092 * doc/invoke.texi (Debugging Options): Fix option index entries
18093 for -fdump-statistics, -frandom-seed add entries for
18094 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
18095 (FRV Options): Fix entries for -mTLS, -mtls.
18096 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
18097 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
18098 (M68hc1x Options): Fix @itemx for -mnominmax.
18099 (MCore Options): Fix entry for -mno-lsim.
18100 (MMIX Options): Fix entry for -mabi=mmixware.
18101 (PDP-11 Options): Fix entry for -mbcopy-builtin.
18102
bd117bb6
BS
181032009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
18104
18105 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
18106 Mention the plugin mode of gengtype.
c637b0fa 18107 * doc/gty.texi (Source Files Containing Type Information): Likewise.
bd117bb6
BS
18108 * gengtype.c: Updated copyright.
18109 (plugin_files, nb_plugin_files) Added new static variables.
18110 (measure_input_list) Care about plugin_files.
18111 (write_rtx_next): Added early return in plugin mode.
18112 (create_file): Updated copyright year in generated file. Added
18113 asserts.
18114 (oprintf): Added early return if NULL outf.
18115 (get_output_file_with_visibility): Care of plugin_files.
18116 (get_output_file_name): May return null.
18117 (write_local): Added early return.
18118 (put_mangled_filename): Ditto.
18119 (finish_root_table): Added check for base_files.
18120 (write_roots): Care about null when plugins.
18121 (main): Added plugin mode.
18122
e1b7793c
ILT
181232009-06-15 Ian Lance Taylor <iant@google.com>
18124
c637b0fa 18125 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
e1b7793c
ILT
18126 * gcov.c (read_count_file): Add braces around variables declared
18127 before label.
18128
18129 * c.opt (Wjump-misses-init): New warning.
18130 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
18131 -Wall and -Wc++-compat if not already set.
18132 (c_common_post_options): Clear warn_jump_misses_init if it was not
18133 set.
18134 * c-decl.c (struct c_binding): Change type field to a union with
18135 new label field. Make it the first field in the struct. Update
18136 references to type to use u.type instead.
18137 (struct c_spot_bindings): Define.
18138 (struct c_goto_bindings): Define.
18139 (c_goto_bindings_p): Define, along with VECs.
18140 (struct c_label_vars): Define.
18141 (struct c_scope): Add has_label_bindings field.
18142 (bind_label, set_spot_bindings): New static functions.
18143 (decl_jump_unsafe, update_spot_bindings): New static functions.
18144 (update_label_decls): New static function.
18145 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
18146 Update binding u.label field to shadowed field.
18147 (c_binding_start_stmt_expr): New function.
18148 (c_binding_end_stmt_expr): New function.
18149 (pushdecl): Don't call c_begin_vm_scope.
18150 (make_label): Add defining and p_label_vars parameters. Change
18151 all callers.
18152 (lookup_label): Correct test for whether a label has not yet been
18153 defined. Call bind_label rather than bind.
18154 (warn_about_goto): New static function.
18155 (lookup_label_for_goto): New function.
18156 (declare_label): Call bind_label rather than bind.
18157 (check_earlier_gotos): New static function.
18158 (define_label): Don't give errors about jumping into statement
18159 expressions or scopes of variably modified types. Call
18160 set_spot_bindings and check_earlier_gotos. Call bind_label
18161 instead of bind. Don't set label_context_stack_se or
18162 label_context_stack_vm.
18163 (c_get_switch_bindings): New function.
18164 (c_release_switch_bindings): New function.
18165 (c_check_switch_jump_warnings): New function.
18166 (start_function): Don't set label_context_stack_se or
18167 label_context_stack_vm.
18168 (finish_function): Likewise.
18169 * c-typeck.c (label_context_stack_se): Don't define.
18170 (label_context_stack_vm): Don't define.
18171 (c_finish_goto_label): Call lookup_label_for_goto rather than
18172 lookup_label. Don't give errors about jumping into a statement
18173 expression or the scope of a variably modified type. Don't set
18174 label_context_stack_se or label_context_stack_vm.
18175 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
18176 fields. Add bindings field.
18177 (c_start_case): Don't set deleted fields. Set bindings field.
18178 (do_case): Rework order of tests. Don't check blocked_stmt_expr
18179 or blocked_vm. Call c_check_switch_jump_warnings.
18180 (c_finish_case): Don't test blocked_stmt_expr field. Call
18181 c_release_switch_bindings.
18182 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
18183 c_switch_stack. Don't walk label_context_stack_se labels. Don't
18184 set label_context_stack_se. Call c_bindings_start_stmt_expr.
18185 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
18186 c_switch_stack. Don't walk label_context_stack_se labels. Don't
18187 set label_context_stack_se. Call c_bindings_end_stmt_expr.
18188 (c_begin_vm_scope, c_end_vm_scope): Don't define.
18189 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
18190 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
18191 (C_DECL_UNJUMPABLE_VM): Don't define.
18192 (C_DECL_UNDEFINABLE_VM): Don't define.
18193 (struct c_label_list): Don't define.
18194 (struct c_label_context_se): Don't define.
18195 (struct c_label_context_vm): Don't define.
18196 (struct c_spot_bindings): Declare.
18197 (c_bindings_start_stmt_expr): Declare.
18198 (c_bindings_end_stmt_expr): Declare.
18199 (lookup_label_for_goto): Declare.
18200 (c_get_switch_bindings, c_release_switch_bindings): Declare.
18201 (c_check_switch_jump_warnings): Declare.
18202 (label_context_stack_se, label_context_stack_vm): Don't declare.
18203 (c_finish_goto_label): Update declaration.
18204 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
18205 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
18206 (Warning Options): Document -Wjump-misses-init.
18207
98a129b9
JJ
182082009-06-15 Jakub Jelinek <jakub@redhat.com>
18209
18210 * tree-object-size.c (addr_object_size): Fix a pasto in the last
18211 change.
18212
19751f1f
RAE
182132009-06-15 Rafael Avila de Espindola <espindola@google.com>
18214
18215 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
18216
d40eb158
AH
182172009-06-15 Aldy Hernandez <aldyh@redhat.com>
18218
18219 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
18220
182212009-06-15 Aldy Hernandez <aldyh@redhat.com>
18222
18223 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
18224
fc26fae3
RAE
182252009-06-15 Rafael Avila de Espindola <espindola@google.com>
18226
18227 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
18228 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
18229 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
18230 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
c637b0fa
UB
18231 * dwarf2asm.c (dw2_force_const_mem): Update call to
18232 make_decl_one_only.
fc26fae3
RAE
18233 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
18234 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
18235 * langhooks.c (lhd_comdat_group): Remove.
18236 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
18237 * tree.h (DECL_COMDAT_GROUP): New.
18238 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
18239 (tree_decl_with_vis): Add comdat_group. Remove one_only.
18240 (make_decl_one_only): Change signature.
18241 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
18242 make_decl_one_only.
18243 (make_decl_one_only): Change signature.
18244 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
18245
0eb92735
RG
182462009-06-15 Richard Guenther <rguenther@suse.de>
18247
18248 PR middle-end/40439
18249 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
18250
0ab352d5
AK
182512009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18252
18253 * tree-ssa-math-opts.c: Remove extra divide.
18254
677fbff4
AK
182552009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18256
18257 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
18258
03bd2f1a
AK
182592009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18260
18261 * passes.c: Add bswap pass.
18262 * tree-pass.h: Add pass_optimize_bswap declaration.
18263 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
18264 Include rtl.h, expr.h and optabs.h for optab_handler check.
18265 (struct symbolic_number, pass_optimize_bswap): New definition.
18266 (do_shift_rotate, verify_symbolic_number_p): New functions.
18267 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
18268 (gate_optimize_bswap): New function.
18269 * tree.c (widest_int_cst_value): New function.
18270 * tree.h (widest_int_cst_value): Prototype added.
18271
fb4c4640
SB
182722009-06-14 Steven Bosscher <steven@gcc.gnu.org>
18273
18274 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
18275 REG_EQUAL/REG_EQUIV notes.
18276
1d24fdd9
RG
182772009-06-14 Richard Guenther <rguenther@suse.de>
18278
18279 PR middle-end/40389
18280 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
18281 has its address taken if NRV was applied and it is addressable.
18282 * tree-ssa-structalias.c (get_constraint_for_address_of): New
18283 function split out from ...
18284 (get_constraint_for_1): ... here.
18285 (handle_rhs_call): Use it to mark the return slot escaped if
18286 it is addressable and NRV was applied.
18287
4b29c5e5
AH
182882009-06-13 Aldy Hernandez <aldyh@redhat.com>
18289
18290 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
18291 Change first argument type to location_t.
18292 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
18293 Do not set input_location.
18294 Use loc instead of input_location throughout.
18295
e1e6dc73
RG
182962009-06-13 Richard Guenther <rguenther@suse.de>
18297
1d24fdd9 18298 PR tree-optimization/40421
e1e6dc73
RG
18299 * tree-predcom.c (should_unroll_loop_p): Remove.
18300 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
18301
8012b923
MM
183022009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
18303
18304 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18305 Add location argument.
18306
4c4bde29
AH
183072009-06-13 Aldy Hernandez <aldyh@redhat.com>
18308
18309 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
18310 build_decl.
18311 * config/s390/s390.c (s390_build_builtin_va_list): Same.
18312 (s390_gimplify_va_arg): Pass location to create_artificial_label.
18313 * config/spu/spu-protos.h: Add location to
18314 spu_resolve_overloaded_builtin.
18315 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
18316 spu_build_builtin_va_list.
18317 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
18318 argument. Pass location to build_function_call_vec.
18319 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
18320 build_decl.
18321 (emit_fpu_switch): Same.
18322 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
18323 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
18324 to build_decl and create_artificial_label.
18325 (xtensa_gimplify_va_arg_expr): Same.
18326 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
18327 (xstormy16_gimplify_va_arg_expr): Same.
18328 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
18329 * config/arm/arm.c (arm_build_builtin_va_list): Same.
18330 * config/mips/mips.c (mips_build_builtin_va_list): Same.
18331 (mips16_build_function_stub): Same.
18332 (mips16_build_call_stub): Same.
18333
81beb031
RE
183342009-06-13 Richard Earnshaw <rearnsha@arm.com>
18335
18336 PR target/40327
18337 * arm/constraints.md (Pa, Pb): New constraints.
f100a4a8 18338 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
81beb031
RE
18339 split pattern to deal with them.
18340
98f6c600
JS
183412009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
18342
18343 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
18344 fix index entry for -Xpreprocessor.
18345
71856685
AH
183462009-06-12 Aldy Hernandez <aldyh@redhat.com>
18347
18348 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18349 Add location argument to build_decl call.
18350 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
18351 (rs6000_init_builtins): Same.
18352 (spe_init_builtins): Same.
18353 (rs6000_gimplify_va_arg): Add location argument to
18354 create_artificial_label call.
18355
756b65f5
SB
183562009-06-12 Steven Bosscher <steven@gcc.gnu.org>
18357
18358 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
18359 * combine-stack-adj.c (pass_stack_adjustments): Use it.
18360 * Makefile.in: Fix GGC dependency for gcse.o.
18361
c2255bc4
AH
183622009-06-12 Aldy Hernandez <aldyh@redhat.com>
18363
18364 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
18365 * gimple-pretty-print.c (dump_gimple_stmt): Same.
18366 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
18367 created.
18368 * c-parser.c (c_parser_binary_expression): Use current column while
18369 building binary operations.
18370 * common.opt (fshow-column): Enable by default.
18371 * tree-vrp.c (check_array_ref): Use warning_at.
18372 (check_array_bounds): Use location from call back if expr has no
18373 location.
18374 * tree.h: Add location argument to maybe_fold_*.
18375 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
18376 (maybe_fold_offset_to_array_ref): Add location argument and use it.
18377 (maybe_fold_offset_to_component_ref): Same.
18378 (maybe_fold_offset_to_reference): Same.
18379 (maybe_fold_offset_to_address): Same.
18380 (maybe_fold_stmt_indirect): Same.
18381 (maybe_fold_stmt_addition): Same.
18382 (fold_stmt_r): Pass location to maybe_fold_*.
18383 (fold_gimple_assign): Same.
18384 * c-tree.h: Add location argument to finish_decl,
18385 default_function_array_conversion, store_init_value.
18386 * c-decl.c (define_label): Use error_at.
18387 (c_make_fname_decl): Pass location to finish_decl.
18388 (finish_decl): New location argument.
18389 (build_compound_literal): Pass location to store_init_value.
18390 (grokdeclarator): Pass location to finish_decl.
18391 (grokfield): Same.
18392 * c-typeck.c (array_to_pointer_conversion): New location argument.
18393 (function_to_pointer_conversion): Same.
18394 (default_function_array_conversion): Same.
18395 (parser_build_unary_op): Pass location to overflow_warning.
18396 (parser_build_binary_op): Same. Use warning_at.
18397 (build_unary_op): Pass location to array_to_pointer_conversion.
18398 (build_c_cast): Pass location to digest_init.
18399 (build_modify_expr): New location argument.
18400 (convert_for_assignment): Same.
18401 (store_init_value): Same.
18402 (digest_init): Same.
18403 (output_init_element): Pass location to digest_init and
18404 array_to_pointer_conversion.
18405 (c_finish_return): Pass location to convert_for_assignment.
18406 * gimplify.c (gimplify_conversion): Pass location to
18407 maybe_fold_offset_to_address.
18408 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
18409 to maybe_fold_stmt_addition.
18410 * c-omp.c (c_finish_omp_atomic): Pass new location to
18411 build_modify_expr.
18412 (c_finish_omp_for): Same.
18413 * c-common.c (overflow_warning): New argument.
18414 * c-common.h: New argument to build_modify_expr, overflow_warning.
18415 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
18416 finish_decl.
18417 (c_parser_initializer): Pass location to
18418 default_function_array_conversion.
18419 (c_parser_initelt): Same.
18420 (c_parser_initval): Same.
18421 (c_parser_asm_operands): Same.
18422 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
18423 (c_parser_conditional_expression): Same.
18424 (c_parser_binary_expression): Add location info to stack. Use it.
18425 (c_parser_unary_expression): Pass location to
18426 default_function_array_conversion, parser_build_unary_op,
18427 build_indirect_ref, c_parser_postfix_expression_after_primary.
18428 (c_parser_postfix_expression_after_primary): New location argument.
18429 Use it.
18430 (c_parser_expression_conv): Pass location to
18431 default_function_array_conversion.
18432 (c_parser_expr_list): Same.
18433 (c_parser_omp_atomic): Same.
18434 (c_parser_omp_for_loop): Same.
bd62d832 18435 * c-tree.h (struct c_declarator): Add comment to id_loc.
c2255bc4
AH
18436 (build_array_declarator): New argument.
18437 * c-decl.c (build_array_declarator): Add location argument.
18438 (grokdeclarator): Set id_loc for cdk_array.
18439 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
18440 build_array_declarator.
18441 * tree.c (build_omp_clause): Add location argument.
18442 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
18443 (OMP_CLAUSE_LOCATION): New macro.
18444 (struct tree_omp_clause): Add location field.
18445 (build_omp_clause): Add argument.
c2255bc4
AH
18446 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
18447 build_omp_clause.
18448 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
18449 (cp_parser_omp_clause_collapse): Same.
18450 (cp_parser_omp_clause_default): Same.
18451 (cp_parser_omp_clause_if): Same.
18452 (cp_parser_omp_clause_nowait): Same.
18453 (cp_parser_omp_clause_num_threads): Same.
18454 (cp_parser_omp_clause_ordered): Same.
18455 (cp_parser_omp_clause_schedule): Same.
18456 (cp_parser_omp_clause_untied): Same.
18457 (cp_parser_omp_for_loop): Same.
18458 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
18459 * c-tree.h (c_start_case): Add location argument.
18460 (c_process_expr_stmt): Same.
18461 (c_finish_goto_*): Same.
18462 * tree-parloops.c (initialize_reductions): Pass location to
18463 build_omp_clause.
18464 (create_parallel_loop): Same.
18465 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
18466 (gfc_trans_omp_reduction_list): Same.
18467 (gfc_trans_omp_clauses): Same.
18468 (gfc_trans_omp_do): Same.
18469 * c-typeck.c (c_finish_goto_label): Same.
18470 (c_finish_goto_ptr): New location argument.
18471 (c_start_case): Same.
18472 (emit_side_effect_warnings): Same.
18473 (c_process_expr_stmt): Same.
18474 (c_finish_stmt_expr): Same.
18475 (c_finish_omp_clauses): Use error_at instead of error.
18476 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
18477 build_omp_clause.
18478 * c-omp.c (c_split_parallel_clauses): New location argument.
18479 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
18480 to build_omp_clause.
18481 (convert_local_reference_stmt): Same.
18482 (convert_gimple_call): Same.
18483 * c-common.h (c_split_parallel_clauses): New argument.
18484 * c-parser.c (c_parser_statement_after_labels): Pass location to
18485 c_finish_goto_label.
18486 (c_parser_switch_statement): Pass location to c_start_case.
18487 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
18488 and c_process_expr_stmt.
18489 (c_parser_omp_variable_list): Add location argument.
c637b0fa 18490 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
c2255bc4
AH
18491 (c_parser_omp_clause_default): Same.
18492 (c_parser_omp_clause_if): Same.
18493 (c_parser_omp_clause_num_threads): Same.
18494 (-c_parser_omp_clause_ordered): Same.
18495 (c_parser_omp_clause_reduction): Pass location to
18496 c_parser_omp_variable_list.
18497 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
18498 (c_parser_omp_clause_untied): Same.
18499 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
c637b0fa 18500 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
c2255bc4
AH
18501
18502 * c-tree.h (check_for_loop_decls, undeclared_variable,
18503 build_component_ref, build_array_ref, build_external_ref,
18504 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
18505 build_conditional_expr, build_compound_expr, c_cast_expr,
18506 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
18507 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
18508 argument.
18509 * c-semantics.c (build_stmt): Same.
18510 (build_case_label): Same.
18511 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
18512 (undeclared_variable): New argument.
18513 (make_label): Same.
18514 (lookup_label): Pass location on down.
18515 (define_label): Same.
18516 (finish_decl): Same.
18517 (build_compound_literal): Same.
18518 (finish_struct): Same.
18519 (finish_function): Do not set location here.
18520 (check_for_loop_decls): New argument.
18521 * tree.c (save_expr): Set location.
18522 (build_empty_stmt): New argument.
18523 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
18524 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
18525 * builtins.c (gimplify_va_arg_expr): Use locations.
18526 (expand_builtin_sync_operation): Same.
18527 * c-typeck.c (build_component_ref): New argument.
18528 (build_array_ref): Same.
18529 (build_external_ref): Same.
18530 (c_expr_sizeof_expr): Same.
18531 (c_expr_sizeof_type): Same.
18532 (parser_build_unary_op): Same.
18533 (build_conditional_expr): Same.
18534 (build_compound_expr): Pass location on down.
18535 (build_compound_expr): New argument.
18536 (build_c_cast): Same.
18537 (c_cast_expr): Same.
18538 (build_asm_expr): Same.
18539 (c_finish_return): Same.
18540 (c_process_expr_stmt): Pass location on down.
18541 (c_finish_stmt_expr): New argument.
18542 (push_clenaup): Same.
18543 (c_finish_omp_parallel): Same.
18544 (c_finish_omp_task): Same.
18545 * gimplify.c (gimplify_call_expr): Pass location on down.
18546 * c-omp.c (c_finish_omp_master): New argument.
18547 (c_finish_omp_critical): Same.
18548 (c_finish_omp_ordered): Same.
18549 (c_finish_omp_barrier): Same.
18550 (-c_finish_omp_taskwait): Same.
18551 (c_finish_omp_atomic): Same.
18552 (c_finish_omp_flush): Same.
18553 * tree-inline.c (copy_tree_body_r): Pass location on down.
18554 (inline_forbidden_p): Remove use of input_location.
18555 * c-gimplify.c (c_build_bind_expr): New argument.
18556 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
18557 (c_sizeof_or_alignof_type): New argument.
18558 (c_alignof_expr): Same.
18559 (build_va_arg): Same.
18560 (c_add_case_label): Same.
18561 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
18562 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
18563 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
18564 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
18565 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
18566 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
18567 New argument.
18568 * stub-objc.c (objc_build_selector_expr): Same.
18569 (objc_build_throw_stmt): Same.
18570 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
18571 (c_parser_initelt): Same.
18572 (c_parser_compound_statement): Same.
18573 (c_parser_compound_statement_nostart): Same.
18574 (c_parser_label): Same.
18575 (c_parser_statement_after_labels): Same.
18576 (c_parser_if_body): Same.
18577 (c_parser_else_body): Same.
18578 (c_parser_if_statement): Same.
18579 (c_parser_switch_statement): Same.
18580 (c_parser_while_statement): Same.
18581 (c_parser_do_statement): Same.
18582 (c_parser_for_statement): Same.
18583 (c_parser_asm_statement): Same.
18584 (c_parser_conditional_expression): Same.
18585 (c_parser_binary_expression): Same.
18586 (c_parser_cast_expression): Same.
18587 (c_parser_unary_expression): Same.
18588 (c_parser_sizeof_expression): Same.
18589 (c_parser_alignof_expression): Same.
18590 (c_parser_postfix_expression): Same.
18591 (c_parser_expression): Same.
18592 (c_parser_objc_receiver): Same.
18593 (c_parser_omp_variable_list): Same.
18594 (c_parser_omp_structured_block): Same.
18595 (c_parser_omp_atomic): New argument.
18596 (c_parser_omp_barrier): Same.
18597 (c_parser_omp_critical): Same.
18598 (c_parser_omp_flush): Pass location on down.
18599 (c_parser_omp_for_loop): New argument.
18600 (c_parser_omp_for): Same.
18601 (c_parser_omp_master): Same.
18602 (c_parser_omp_ordered): Same.
18603 (c_parser_omp_sections_scope): Same.
18604 (c_parser_omp_sections): Same.
18605 (c_parser_omp_parallel): Same.
18606 (c_parser_omp_single): Same.
18607 (c_parser_omp_task): Same.
18608 (c_parser_omp_taskwait): Pass location on down.
18609 (c_parser_omp_construct): Same.
18610 (c_parser_omp_threadprivate): Same.
18611 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
18612 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
18613 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
18614 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
18615 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
18616 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
18617 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
18618 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
18619 config/i386/i386.c, stmt.c:
18620 Add location argument to the following function definitions and/or
18621 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
18622 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
18623 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
18624 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
18625 do_case, c_finish_bc_stmt, build_compound_literal,
18626 build_function_call.
18627 * c-decl.c (build_compound_literal): Add location argument.
18628 Make all diagnostic calls use location.
18629 (start_struct): Same.
18630 (finish_struct): Same.
18631 (start_enum): Same.
18632 (build_enumerator): Same.
18633 (start_function): Same.
18634 (grokdeclarator): Make all diagnostic calls use location.
18635 (store_parm_decls_oldstyle): Same.
18636 * c-typeck.c (build_function_call): Add location argument.
18637 Make all diagnostic calls use location.
18638 (do_case): Same.
18639 (c_finish_bc_stmt): Same.
18640 * tree-nested.c (get_trampoline_type): Add argument.
18641 Pass location to build_decl.
18642 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
18643 * rtl.h (RTL_LOCATION): New.
18644 * c-common.c (c_add_case_label): Add location argument.
18645 Make all diagnostic calls use location.
18646 * c-common.h: Add location argument to make_fname_decl, do_case,
18647 c_add_case_label, build_function_call, resolve_overloaded_builtin.
18648 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
18649 Set it appropriately for every case. Pass enum_loc to start_enum
18650 call. Pass value_loc first to build_enumerator. Pass enum_loc to
18651 parser_xref_tag.
18652 (c_parser_struct_or_union_specifier): Save location. Use it for
18653 start_struct, finish_struct, and parser_xref_tag.
18654
3d8b2a98
ILT
186552009-06-12 Ian Lance Taylor <iant@google.com>
18656
c637b0fa 18657 * fold-const.c (fold_unary): Rename local variable and to and_expr.
3d8b2a98
ILT
18658
18659 * c-opts.c (c_common_handle_option): For -Wc++-compat set
18660 cpp_opts->warn_cxx_operator_names.
18661
737142ce
AP
186622009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
18663
18664 PR tree-opt/38865
18665 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
18666 is returns NULL and OP is a VCE, look through the VCE.
18667
d3a0d55d
ILT
186682009-06-12 Ian Lance Taylor <iant@google.com>
18669
18670 PR bootstrap/40430
18671 * collect2.c (main): Use CONST_CAST2 in code inside #if
18672 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
18673
f85882d8
JY
186742009-06-12 Joey Ye <joey.ye@intel.com>
18675
18676 PR middle-end/39146
18677 * cfgexpand.c (get_decl_align_unit): Update
18678 max_used_stack_slot_alignment with align instead of
18679 stack_alignment_needed.
18680
18681 * function.c (assign_stack_local_1): Update
18682 max_used_stack_slot_alignment with alignment_in_bits instead
18683 of stack_alignment_needed.
18684 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
18685 here.
18686
fc9f468b
JJ
186872009-06-12 Jakub Jelinek <jakub@redhat.com>
18688
18689 * dwarf2out.c (last_var_location_insn): New variable.
18690 (dwarf2out_end_epilogue): Clear last_var_location_insn.
18691 (dwarf2out_var_location): Don't record anything after last real
18692 insn. Only change labels if there were any real instructions
18693 in between last note and this one, or if changed sections.
18694
7c1db202
RH
186952009-06-11 Richard Henderson <rth@redhat.com>
18696
f85882d8 18697 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
15cb981a
RH
18698 note when storing the frame pointer in a register.
18699 (FRP): Don't redefine to nothing for epilogue.
18700 (alpha_expand_epilogue): Mark register and sp restores.
18701 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
18702
7c1db202
RH
18703 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
18704 when gen_lowpart is needed.
18705
f2ae7631
RH
187062009-06-11 Richard Henderson <rth@redhat.com>
18707
42755c21
RH
18708 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
18709
f2ae7631
RH
18710 * dwarf2out.c (need_data_align_sf_opcode): New.
18711 (div_data_align): Move earlier.
18712 (def_cfa_1, reg_save): Use it.
18713
8ed0ce99
L
187142009-06-11 H.J. Lu <hongjiu.lu@intel.com>
18715
18716 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
18717 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
18718 (ix86_handle_option): Handle OPT_mcrc32.
18719 (ix86_target_string): Add -mcrc32.
18720 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
18721
18722 * config/i386/i386.h (TARGET_CRC32): New.
18723
c637b0fa 18724 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
8ed0ce99
L
18725 (sse4_2_crc32di): Likewise.
18726
c637b0fa 18727 * config/i386/i386.opt (mcrc32): New.
8ed0ce99
L
18728
18729 * doc/invoke.texi: Document -mcrc32.
18730
9fd68a1f
RH
187312009-06-11 Richard Henderson <rth@redhat.com>
18732
8ed0ce99 18733 * common.opt (gdwarf-): Accept a version number.
9fd68a1f
RH
18734 * doc/invoke.texi (gdwarf-): Update docs.
18735 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
18736 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
18737 version level, and record it.
18738
18739 * dwarf2.h (DW_CIE_VERSION): Remove.
18740 * dwarf2out.c (DWARF_VERSION): Remove.
18741 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
18742 (output_call_frame_info): Use CIE version 3 for dwarf3,
18743 or if the return register column is out of range for version 1.
18744 (dwarf_stack_op_name): Add all dwarf3 values.
18745 (DEBUG_PUBTYPES_SECTION): New.
18746 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
18747 encoding change for dwarf3.
18748 (output_die) [dw_val_class_die_ref]: Likewise.
18749 (output_compilation_unit_header): Emit correct version for dwarf3.
18750 (output_line_info): Likewise.
18751 (output_pubnames): Update for DWARF_VERSION removal.
18752 (output_aranges): Likewise.
18753 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
18754 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
18755 (dwarf2out_finish): Likewise.
18756
4de8ce3b
DD
187572009-06-11 David Daney <ddaney@caviumnetworks.com>
18758
18759 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
18760 in r148403.
18761
468059bc
DD
187622009-06-11 David Daney <ddaney@caviumnetworks.com>
18763
18764 PR c/39252
18765 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
18766 * builtins.c (expand_builtin_unreachable): New function.
18767 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
18768 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
18769 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
18770 successors.
18771 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
18772 searching for missing barriers.
18773
b5a6e96f
FXC
187742009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
18775
18776 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
18777 when -fprofile-generate* was passed.
18778 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
18779
6be6462e
AG
187802009-06-11 Anthony Green <green@moxielogic.com>
18781
c637b0fa 18782 * config/moxie/moxie.md: Define length attribute for all instructions.
6be6462e
AG
18783 (rCC): Define.
18784 (*b<cond:code>): Support limited branch ranges for new PC-relative
18785 branch instructions.
18786 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
18787
caaabe0a
JJ
187882009-06-11 Jakub Jelinek <jakub@redhat.com>
18789
e5219642
JJ
18790 * config/i386/i386.c (min_insn_size): Use get_attr_length
18791 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
18792 For __asm return 0.
18793
caaabe0a
JJ
18794 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
18795 instead of emit_insn_before.
18796
a567fa6a
ILT
187972009-06-10 Ian Lance Taylor <iant@google.com>
18798
18799 PR bootstrap/40408
18800 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
18801 GIMPLE_SWITCH.
18802
6a753d5f
RE
188032009-06-10 Revital Eres <eres@il.ibm.com>
18804
18805 * passes.c (init_optimization_passes): Reschedule
18806 predictive-commoning pass before complete unroll pass.
18807
a550d677
MJ
188082009-06-10 Martin Jambor <mjambor@suse.cz>
18809
18810 * cgraph.c (cgraph_node_can_be_local_p): New function.
18811 (cgraph_make_node_local): New function.
18812 * cgraph.h (cgraph_node_can_be_local_p): Declare.
18813 (cgraph_make_node_local): Declare.
18814
d8259b07
NF
188152009-06-10 Nathan Froyd <froydnj@codesourcery.com>
18816
18817 * tree.h (tree_base): Add packed_flag and user_align fields.
18818 Decrease size of spare field.
18819 (TYPE_USER_ALIGN): Use user_align from tree_base.
18820 (DECL_USER_ALIGN): Likewise.
18821 (TYPE_PACKED): Use packed_flag from tree_base.
18822 (DECL_PACKED): Likewise.
18823 (tree_type): Delete packed_flag and user_align fields. Widen
18824 precision field. Widen mode field and shuffle fields to align
18825 mode on an 8-bit boundary.
18826 (tree_decl_common): Delete decl_flag_1 and user_align fields.
18827 Renumber decl_flag_* fields. Fix comments. Widen
18828 decl_common_unused field.
c637b0fa 18829 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
d8259b07
NF
18830 (DECL_EXTERNAL): Likewise.
18831 (DECL_BIT_FIELD): Likewise.
18832 (DECL_NONADDRESSABLE_P): Likewise.
18833 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
18834 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
18835
c2569604
ILT
188362009-06-10 Ian Lance Taylor <iant@google.com>
18837
18838 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
18839 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
18840 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
18841 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
18842 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
18843 DEF_VEC_ALLOC_FUNC_P.
18844 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
18845 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
18846 DEF_VEC_ALLOC_FUNC_O.
18847 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
18848 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
18849 DEF_VEC_ALLOC_FUNC_I.
18850 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
18851 (vec_stack_p_reserve_exact_1): Declare.
18852 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
18853 (vec_stack_free): Declare.
18854 (VEC_stack_alloc): Define.
18855 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
18856 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
18857 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
18858 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
18859 for void_p.
18860 (stack_vecs): New static variable.
18861 (vec_stack_p_reserve_exact_1): New function.
18862 (vec_stack_o_reserve_1): New static function.
18863 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
18864 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
18865 (vec_stack_free): New function.
18866 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
18867 (VEC_df_ref_stack_alloc): Define.
18868 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
18869 DEF_VEC_ALLOC_P_STACK.
18870 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
18871 (struct df_collection_rec): Change _vec fields to VEC. Remove
18872 _use fields.
18873 (df_free_collection_rec): Adjust for new fields.
18874 (df_insn_rescan): Use new df_collection_rec fields.
18875 (df_notes_rescan, df_canonize_collection_rec): Likewise.
18876 (df_ref_create_structure, df_ref_record): Likewise.
18877 (df_get_conditional_uses, df_get_call_refs): Likewise.
18878 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
18879 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
18880 (df_record_exit_block_uses, df_bb_verify): Likewise.
c637b0fa 18881 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
c2569604
ILT
18882 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
18883 Remove count parameter. Change return type to void. Change all
18884 callers.
18885 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
18886 Remove count parameter. Change return type to void. Change all
18887 callers.
18888 (df_install_refs): Change old_vec parameter to VEC. Remove count
18889 parameter. Change all callers.
18890 (df_install_mws): Change old_vec parameter to VEC. Remove count
18891 parameter. Change all callers.
18892 (df_refs_verify): Change new_rec parameter to VEC. Change call
18893 callers.
18894 (df_mws_verify): Likewise.
18895
e7aae3e8
AO
188962009-06-10 Alexandre Oliva <aoliva@redhat.com>
18897
18898 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
18899
412ac8d5
L
189002009-06-10 H.J. Lu <hongjiu.lu@intel.com>
18901
18902 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
18903
cceb575c
AG
189042009-06-10 Anthony Green <green@moxielogic.com>
18905
18906 * config/moxie/crti.asm: New file.
18907 * config/moxie/crtn.asm: New file.
18908 * config/moxie/moxie.c: New file.
18909 * config/moxie/moxie.h: New file.
18910 * config/moxie/sfp-machine.h: New file.
18911 * config/moxie/moxie-protos.h: New file.
18912 * config/moxie/t-moxie: Created.
18913 * config/moxie/t-moxie-softfp: Created.
18914 * config/moxie/moxie.md: Created.
18915 * config/moxie/constraints.md: Created.
18916 * config.gcc: Add moxie support.
18917 * doc/md.texi (Machine Constraints): Add moxie constraints.
18918 * doc/contrib.texi (Contributors): Mention moxie port.
18919 * doc/install.texi (Specific): Mention the moxie port.
18920
bf406687
ILT
189212009-06-09 Ian Lance Taylor <iant@google.com>
18922
18923 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
18924 compiling with C++.
18925 * optabs.c (optab_table): Only use designated initializers if
18926 HAVE_DESIGNATED_INITIALIZERS is defined.
18927 (convert_optab_table): Likewise.
18928 (init_optabs): Always call init_insn_codes if
18929 HAVE_DESIGNATED_INITIALIZERS is not defined.
18930
744aa42f
ILT
189312009-06-09 Ian Lance Taylor <iant@google.com>
18932
18933 * targhooks.c (default_builtin_vectorized_function): Change fn
18934 parameter to unsigned int.
18935 (default_builtin_vectorized_conversion): Change code parameter to
18936 unsigned int.
18937 (default_builtin_reciprocal): Change fn parameter to unsigned int.
18938 * targhooks.h: Update declarations.
18939 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
18940 parameter to unsigned int.
18941
18942 * c-typeck.c (comptypes_check_enum_int): New static function.
18943 (comptypes_internal): Add enum_and_int_p parameter. Change all
18944 callers.
18945 (comp_target_types): Add location parameter. Change all callers.
18946 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
18947 Change all callers.
18948 (function_types_compatible_p, type_lists_compatible_p): Likewise.
18949 (build_conditional_expr): Add colon_loc parameter. Change all
18950 callers.
c637b0fa 18951 (convert_for_assignment): Add location parameter. Change all callers.
744aa42f
ILT
18952 * c-parser.c (c_parser_conditional_expression): Pass location of
18953 colon to build_conditional_expr.
18954 * c-tree.h (build_conditional_expr): Update declaration.
18955
bcbe3b25
SP
189562009-06-09 Sebastian Pop <sebastian.pop@amd.com>
18957
18958 * graphite.c: Revert previous patch.
18959
dc2a6925
SP
189602009-06-09 Sebastian Pop <sebastian.pop@amd.com>
18961
18962 PR bootstrap/40103
18963 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
18964
d81f5387
GS
189652009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
18966
8ed0ce99
L
18967 * tree-ssa-loop-prefetch.c
18968 (loop_prefetch_arrays): Fixed a portability problem in printf format
18969 string.
d81f5387 18970
8056eb4f
MJ
189712009-06-09 Martin Jambor <mjambor@suse.cz>
18972
18973 PR tree-optimization/40351
c637b0fa
UB
18974 * tree-sra.c (propagate_subacesses_accross_link): Check that a
18975 refrence to a potential artifical subaccess can be constructed.
8056eb4f 18976
bd9a3465
KK
189772009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
18978
18979 * config/sh/sh-protos.h (sh_optimization_options): Declare.
18980 (sh_override_options): Likewise.
18981 * config/sh/sh.c: Include params.h.
18982 (sh_optimization_options): New.
18983 (sh_override_options): Likewise.
18984 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
18985 (OVERRIDE_OPTIONS): Use sh_override_options.
18986
8845deab
JJ
189872009-06-08 Jakub Jelinek <jakub@redhat.com>
18988
18989 * dwarf2out.c (emit_cfa_remember): New variable.
18990 (add_fde_cfi): If emit_cfa_remember, recurse to add
18991 DW_CFA_remember_state first.
18992 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
18993 instead just set emit_cfa_remember.
18994
9ea81b0c
JH
189952009-06-08 Jan Hubicka <jh@suse.cz>
18996
18997 PR debug/40126
18998 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
18999
21ecdec5
JH
190002009-06-08 Jan Hubicka <jh@suse.cz>
19001
19002 PR middle-end/39834
c637b0fa
UB
19003 * cgraphunit.c (save_inline_function_body): Do not copy transform
19004 hooks for saved inline bodies.
21ecdec5
JH
19005 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
19006 for given function.
19007
72e48218
AN
190082009-06-08 Adam Nemet <anemet@caviumnetworks.com>
19009
19010 * jump.c (returnjump_p): Handle delayed branches. Add missing
19011 function comment.
19012
6ce2002b
JH
190132009-06-08 Jan Hubicka <jh@suse.cz>
19014
19015 PR middle-end/40102
19016 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
19017 original node might've been modified.
19018 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
19019
eb9ed98a
JJ
190202009-06-08 Jakub Jelinek <jakub@redhat.com>
19021
19022 * tree-object-size.c (addr_object_size): Add OSI argument.
19023 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
19024 (compute_builtin_object_size, expr_object_size): Adjust callers.
19025 (plus_stmt_object_size): Call addr_object_size instead of
19026 compute_builtin_object_size.
19027
db34470d 190282009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
8ed0ce99 19029 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
f100a4a8
UB
19030
19031 * tree-ssa-loop-prefetch.c
19032 (gather_memory_references): Introduced a counter for the number of
db34470d 19033 memory references.
f100a4a8 19034 (anything_to_prefetch_p): Introduced a counter for the number of
db34470d 19035 prefetches.
f100a4a8 19036 (is_loop_prefetching_profitable): New function with a cost model
db34470d 19037 for prefetching.
f100a4a8 19038 (loop_prefetch_arrays): Use the new cost model to determine if
db34470d 19039 prefetching is profitable.
f100a4a8 19040 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 19041 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 19042 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
db34470d 19043 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 19044 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO,
db34470d 19045 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
f100a4a8 19046
eb7adebc
MM
190472009-06-08 Michael Matz <matz@suse.de>
19048
19049 PR debug/40012
eb7adebc
MM
19050 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
19051 partitions use the same.
19052 (expand_one_var): Deal with DECL_RTL sometimes begin set also
19053 for basevars of SSA_NAMEs.
19054 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
19055 to not expand them twice.
19056 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
19057 multiple places.
19058
2153915d
AO
190592009-06-08 Alexandre Oliva <aoliva@redhat.com>
19060
19061 * common.opt (fcompare-debug=, fcompare-debug-second): New.
19062 (fdump-final-insns=, gtoggle): New.
19063 * doc/invoke.texi: Document them.
19064 * final.c (rest_of_clean_state): Dump final insn stream.
19065 * gcc.c (invoke_as): Hook in -fcompare-debug.
19066 (static_spec_functions): Add compare-debug-dump-opt,
19067 compare-debug-self-opt and compare-debug-auxbase-opt.
19068 (compare_debug, compare_debug_second, compare_debug_opt): New.
19069 (switches_debug_check, n_switches_debug_check): New.
19070 (debug_auxbase_opt, debug_check_temp_file): New.
19071 (process_command): Handle -fno-compare-debug, -fcompare-debug and
19072 -fcompare-debug=*.
19073 (do_self_spec): Handle arguments after switches.
19074 (do_spec_1): Add .gk extension to temp file basenames for compare.
19075 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
19076 (cc1_options): Use it instead of normal auxbase computation for
19077 the second compare-debug compilation.
19078 (compare_files): New.
19079 (main): Set up and implement compare debug mode.
19080 (compare_debug_dump_opt_spec_function): New.
19081 (compare_debug_self_opt_spec_function): New.
19082 (compare_debug_auxbase_opt_spec_function): New.
19083 * toplev.c (process_options): Handle flag_gtoggle,
19084 flag_dump_final_insns.
19085 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
19086 during -fcompare-debug-second compilation.
19087
cdb88468
ILT
190882009-06-07 Ian Lance Taylor <iant@google.com>
19089
c637b0fa 19090 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
cdb88468
ILT
19091 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
19092
19093 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
19094 with no default node. Change warning with %H to warning_at.
19095 Don't clear warn_switch around case checking.
19096 * doc/invoke.texi (Warning Options): Clarify distinction between
19097 -Wswitch and -Wswitch-enum.
19098
4fe8e1a2
BRF
190992009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19100
19101 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
19102
69952c1d
BRF
191032009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19104
19105 * gbl-ctors.h: Add header guard.
19106
b2ad0284
BRF
191072009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19108
19109 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
19110 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
19111 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
19112 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
19113 prototypes for removed functions.
19114 (expressions_equal_p): Move to ...
19115 * tree-ssa-sccvn.h: ... here and ...
19116 * matrix-reorg.c: ... adjust includes.
19117
c3df55f9
BRF
191182009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19119
19120 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
19121
b5a7159f
BRF
191222009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19123
19124 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
19125 (finish_function): Remove erroneous whitespace.
19126
95bca6b0
BRF
191272009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19128
2cd713a0
BRF
19129 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
19130 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
249eb506
BRF
19131
191322009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19133
19134 * errors.c (internal_error): Commentary typo fix.
19135 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
19136 * tree-ssa-pre.c: Ditto.
95bca6b0 19137
2cd713a0
BRF
191382009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
19139
19140 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
19141 them is supposed to hold actual statements.
19142
5bca4e80
ILT
191432009-06-06 Ian Lance Taylor <iant@google.com>
19144
19145 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
19146 empty statements can now have attributes.
19147
47ac44d6
SZ
191482009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
19149
19150 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
19151 * config/mips/mips.md: Ditto.
19152
19b905ce
NF
191532009-06-05 Nathan Froyd <froydnj@codesourcery.com>
19154
19155 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
19156 _RELOCATABLE.
19157 (__eabi_uconvert): Likewise.
19158
16702e19
NF
191592009-06-05 Nathan Froyd <froydnj@codesourcery.com>
19160
19161 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
19162 CFI_* definitions with IN_GCC.
19163
a735afd1
DE
191642009-06-05 David Edelsohn <edelsohn@gnu.org>
19165
19166 * xcoffout.h (xcoffout_source_line): Update prototype.
19167
26a347c5
KG
191682009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19169
19170 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
19171 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
19172
9f706f23
JJ
191732009-06-05 Jakub Jelinek <jakub@redhat.com>
19174
19175 PR middle-end/40340
19176 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
19177 inlined_function_outer_scope_p blocks for artificial inlines
19178 even at -g0/-g1.
19179 * tree.c (tree_nonartificial_location): Rewrite using
19180 block_nonartificial_location.
19181
8f439681
RE
191822009-06-05 Revital Eres <eres@il.ibm.com>
19183 Leehod Baruch <leehod@il.ibm.com>
19184
19185 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
19186 (expand_expr_real_1): Remove comment.
19187 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19188 Vectorize misaligned access when the target supports it.
c637b0fa 19189 (vect_supportable_dr_alignment): Check for unaligned access support.
8f439681
RE
19190 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
19191 and remove asset.
19192
b89f8e3c
JB
191932009-06-05 Julian Brown <julian@codesourcery.com>
19194
19195 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
19196 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
19197
47d1f191
RG
191982009-06-05 Richard Guenther <rguenther@suse.de>
19199
19200 PR bootstrap/40350
19201 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
19202 as possibly unused.
19203
9f706f23 192042009-06-05 Jakub Jelinek <jakub@redhat.com>
75707b28
JJ
19205
19206 * config/s390/s390.c (global_not_special_regno_p): New static inline.
19207 (save_gprs): Don't tell unwinder when a global register is saved.
19208 (s390_emit_epilogue): Emit needed epilogue unwind info.
19209
90f06248
AO
192102009-06-05 Alexandre Oliva <aoliva@redhat.com>
19211
19212 * dwarf2out.c (deferred_asm_name): New.
19213 (add_name_and_src_coords_attributes): Defer creation of
19214 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
19215 computed yet.
19216 (move_linkage_attr): New.
19217 (dwarf2out_finish): Revisit deferrals and emit attributes at the
19218 right place.
19219
c10348e5
AO
192202009-06-05 Alexandre Oliva <aoliva@redhat.com>
19221
19222 * tree-nested.c (finalize_nesting_tree_1): Declare the
19223 frame_decl in the binding tree.
19224
6c52e687
CC
192252009-06-04 Cary Coutant <ccoutant@google.com>
19226
19227 * basic-block.h (struct basic_block_def): Add discriminator field.
19228 * dbxout.c (dbxout_source_line): Add new parameter. Change all
19229 callers.
19230 * debug.c (do_nothing_debug_hooks): Add additional entry.
19231 (debug_nothing_int_charstar_int): New function.
c637b0fa 19232 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6c52e687
CC
19233 (debug_nothing_int_charstar_int): New declaration.
19234 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
19235 discriminator value in .loc directive.
19236 * final.c (last_discriminator): New variable.
19237 (discriminator): New variable.
19238 (final_start_function): Initialize above variables, pass current
19239 discriminator to debug hook.
19240 (notice_source_line): Check for discriminator change.
19241 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
19242 * sdbout.c (sdbout_source_line): New parameter.
19243 * tree-cfg.c (struct locus_discrim_map): New structure type.
19244 (discriminator_per_locus): New hash table.
19245 (build_gimple_cfg): Allocate and free discriminator hash table.
19246 (make_edges): Call assign_discriminator.
19247 (locus_map_hash): New function.
19248 (locus_map_eq): New function.
19249 (next_discriminator_for_locus): New function.
19250 (same_line_p): New function.
19251 (assign_discriminator): New function.
19252 (make_cond_expr_edges): Call assign_discriminator.
19253 (make_gimple_switch_edges): Likewise.
19254 (first_non_label_stmt): New function.
19255 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
19256 all callers.
19257 * xcoffout.c (xcoffout_source_line): Add new parameter.
19258
19259 * configure.ac (gcc_cv_as_discriminator): New configury check for
19260 gas support for discriminator.
19261 * configure: Regenerate.
19262 * config.in: Regenerate.
19263
e07e020b
RR
192642009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19265
19266 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
19267 val after checking for integers.
19268
72fa3605
UB
192692009-06-04 Uros Bizjak <ubizjak@gmail.com>
19270
19271 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
19272 X64_REGPARM_MAX.
19273 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
19274 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
19275 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
19276 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
19277 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
19278 X64_SSE_REGPARM_MAX.
19279 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
19280 X64_SSE_REGPARM_MAX.
19281
bdde878c
AO
192822009-06-04 Alexandre Oliva <aoliva@redhat.com>
19283
19284 * gcc.c (report_times_to_file): New.
19285 (execute): Implement it.
19286 (process_command): Support -time=.
19287 * doc/invoke.texi: Document it.
19288
2ce59df7
AO
192892009-06-04 Alexandre Oliva <aoliva@redhat.com>
19290
19291 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
19292 that have value exprs.
19293
78bd9046
AO
192942009-06-04 Alexandre Oliva <aoliva@redhat.com>
19295
19296 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
19297 declarations for constants until...
19298 (dw2_output_indirect_constant_1): ... this point.
19299
e63d4106
RE
193002009-06-04 Richard Earnshaw <rearnsha@arm.com>
19301
19302 PR target/10242
19303 * arm.md (arm_addsi3): Don't try to split an add with an
19304 eliminable register until after reload has completed.
19305
6bc7bc14
ILT
193062009-06-03 Ian Lance Taylor <iant@google.com>
19307
19308 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
19309 * genattrtab.c (write_length_unit_log): Likewise.
19310 * genchecksum.c (dosum): Likewise.
19311 * gengtype.c (write_rtx_next): Likewise.
19312 (finish_root_table, write_roots): Likewise.
19313 * gimple.c (gimple_ops_offset_): Likewise.
19314 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
19315 * config/arc/arc.c (arc_attribute_table): Likewise.
19316 * config/arm/arm.c (arm_attribute_table): Likewise.
19317 * config/avr/avr.c (avr_attribute_table): Likewise.
19318 * config/crx/crx.c (crx_attribute_table): Likewise.
19319 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
19320 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
19321 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
19322 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
19323 * config/sh/sh.c (sh_attribute_table): Likewise.
19324 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
19325 * config/spu/spu.c (spu_attribute_table): Likewise.
19326 * config/v850/v850.c (v850_attribute_table): Likewise.
19327
19328 * config/alpha/alpha.c (vms_attribute_table): Make static.
19329 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
19330 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
19331 * config/mips/mips.c (mips_attribute_table): Likewise.
19332
19333 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
19334 $(SYSTEM_H).
19335 (cc1-checksum.o): Likewise.
19336
19d892fd
SE
193372009-06-03 Steve Ellcey <sje@cup.hp.com>
19338
19339 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
19340
679f3354
JJ
193412009-06-03 Jakub Jelinek <jakub@redhat.com>
19342
ff35822b
JJ
19343 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
19344 insn if it is changing sp. Use gen_add3_insn instead of
19345 conditionally gen_addsi3 and gen_adddi3.
19346 (offset_below_red_zone_p): New static inline function.
19347 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
19348 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
19349 * config/rs6000/ppc-asm.h: Include auto-host.h.
19350 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
19351 CFI_RESTORE): Define.
19352 * config/rs6000/crtresxgpr.asm: Add unwind info.
19353 * config/rs6000/crtresxfpr.asm: Likewise.
19354 * config/rs6000/crtresgpr.asm: Likewise.
19355 * config/rs6000/crtresfpr.asm: Likewise.
19356 * config/rs6000/crtsavgpr.asm: Likewise.
19357 * config/rs6000/crtsavfpr.asm: Likewise.
19358
dc6707b8
UB
19359 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
19360 argument of DWARF2_FRAME_REG_OUT macros.
679f3354 19361
2e94c12d
JB
193622009-06-03 Julian Brown <julian@codesourcery.com>
19363
19364 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
19365 words or less (including TImode) in core registers.
19366
3111cce0
RG
193672009-06-03 Richard Guenther <rguenther@suse.de>
19368
19369 PR middle-end/40328
19370 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
19371
5e1b50f6
AB
193722009-06-03 Andrey Belevantsev <abel@ispras.ru>
19373
f100a4a8 19374 * statistics.c (statistics_counter_event): Do not record event
5e1b50f6 19375 in pass dump if its number == -1.
f100a4a8 19376 (curr_statistics_hash): Add assert that we never get passes
5e1b50f6
AB
19377 with static number == -1.
19378
6f11d690
RG
193792009-06-03 Richard Guenther <rguenther@suse.de>
19380 Andrey Belevantsev <abel@ispras.ru>
19381
f100a4a8 19382 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
6f11d690
RG
19383 non-BLKmode arrays addressable.
19384
88961471
MK
193852009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
19386
19387 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
19388 * config/m68k/m68k.h: ... here.
88961471 19389
9961eb45
MJ
193902009-06-03 Martin Jambor <mjambor@suse.cz>
19391
19392 PR tree-optimization/40323
19393 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
19394 assignment.
19395
2f2c62a0
RG
193962009-06-03 Richard Guenther <rguenther@suse.de>
19397
19398 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
19399 consistently.
19400
d6ced3b7
SZ
194012009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
19402
19403 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
19404 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
19405 JUMP_TABLE_DATA_P where applicable.
19406 * config/sh/sh.c: Ditto.
19407 * config/sh/sh.h: Ditto.
19408 * config/sh/sh.md: Ditto.
19409 * config/sh/symbian.c: Ditto.
19410
f3afc8a7
UB
194112009-06-03 Uros Bizjak <ubizjak@gmail.com>
19412
19413 * config/i386/driver-i386.c (describe_cache): Optimize
19414 concatenation of strings. Use snprintf instead of sprintf.
19415 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
19416 target when not compiling with GCC.
19417
1964788a
KK
194182009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
19419
19420 * config/sh/sh.c: Revert last change.
19421 (sh_expand_epilogue): Emit a blockage insn before the frame
19422 pointer adjustment unconditionally.
19423
8633c315
RS
194242009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19425
19426 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
19427 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
19428 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
19429 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
19430 to COLLECT_GCC_OPTIONS.
19431
781a1758
RS
194322009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19433
19434 * collect2.c (target_system_root): New variable.
19435 (main): Handle --sysroot=.
19436 (ignore_library): Strip the sysroot from the library path.
19437
dfb636dc
RS
194382009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19439
19440 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
19441 (collect2.o): Depend on collect2-aix.h.
19442 (collect2-aix.o): New rule.
19443 * collect2-aix.h: New file.
19444 * collect2-aix.c: Likewise.
19445 * collect2.c: Include collect2-aix.h. Don't undefine
19446 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
19447 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
19448 Use TARGET_AIX_VERSION instead of _AIX51.
19449 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
19450 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
19451 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
19452 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
19453 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
19454
51136ae8
RS
194552009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19456
19457 * collect2.c (ignore_library): Avoid premature post-increment
19458 and null deference.
19459
7f142d33
RS
194602009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
19461
19462 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
19463 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
19464 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
19465 CROSS_DIRECTORY_STRUCTURE too.
19466 (LINK_LIBG_SPEC): Likewise.
19467 (LIB_SPEC): Add %R to sysroot paths.
19468 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
19469 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
19470 * config/rs6000/aix51.h: As for aix43.h.
19471 * config/rs6000/aix52.h: Likewise.
19472 * config/rs6000/aix53.h: Likewise.
19473 * config/rs6000/aix61.h: Likewise.
19474 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
19475 to the beginning of sysroot paths.
19476
9e74b7d2
AO
194772009-06-02 Alexandre Oliva <aoliva@redhat.com>
19478
19479 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
19480 INSN_LISTs that are out of the REG_NOTE range.
19481
a9f6ecee
AO
194822009-06-02 Alexandre Oliva <aoliva@redhat.com>
19483
19484 * loop-unroll.c (struct iv_to_split): Add pointer to next.
19485 (struct var_to_expand): Likewise.
19486 (struct opt_info): Add head and tail for linked lists of the above.
19487 (analyze_insn_to_expand_var): Initialize next.
19488 (analyze_iv_to_split_insn): Likewise.
19489 (analyze_insns_in_loop): Create linked lists.
19490 (allocate_basic_variable): Simplify for use without hash table.
19491 (insert_var_expansion_initialization): Likewise, make it type-safer.
19492 (combine_var_copies_in_loop_exit): Likewise.
19493 (apply_opt_in_copies): Walk lists rather than hash tables.
19494 (release_var_copies): Simplified and inlined by hand into...
19495 (free_opt_info): ... this function.
19496
69596c69
RG
194972009-06-02 Richard Guenther <rguenther@suse.de>
19498
19499 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
19500 for field decls.
19501
fe8a7779
AO
195022009-06-02 Alexandre Oliva <aoliva@redhat.com>
19503
19504 * cfgexpand.c (gimple_expand_cfg): Discard the source location
19505 only for builtins that are not overridden.
19506
1bcca2c5
AO
195072009-06-02 Alexandre Oliva <aoliva@redhat.com>
19508
19509 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
19510 label string.
19511
8588f797
AO
195122009-06-02 Alexandre Oliva <aoliva@redhat.com>
19513
19514 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
19515
45f39d78
AO
195162009-06-02 Alexandre Oliva <aoliva@redhat.com>
19517
19518 * combine.c (move_deaths): Compare LUIDs within the same BB only.
19519
2aa7c49b
AO
195202009-06-02 Alexandre Oliva <aoliva@redhat.com>
19521
19522 * common.opt (fdump-unnumbered-links): New.
19523 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
19524 * print-rtl.c (flag_dump_unnumbered_links): New.
19525 (print_rtx): Test it.
19526
55b2829b
RE
195272009-06-02 Richard Earnshaw <rearnsha@arm.com>
19528
19529 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
19530 push/pop multiple to 8-byte alignment.
e63d4106 19531
6c0d7021
JJ
195322009-06-01 Jakub Jelinek <jakub@redhat.com>
19533
0aa34d44
JJ
19534 * config/i386/i386.c (queued_cfa_restores): New static variable.
19535 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
19536 functions.
19537 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
19538 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
19539 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
19540 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
19541 note unconditionally.
19542 (ix86_emit_restore_regs_using_mov): Likewise.
19543 (ix86_emit_restore_sse_regs_using_mov): Likewise.
19544 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
19545 it through to ix86_emit_restore_reg_using_pop.
19546 (ix86_emit_leave): Add RED_OFFSET argument. Call
19547 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
19548 instead of adding REG_CFA_OFFSET note unconditionally.
19549 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
19550 the above functions. Call ix86_add_queued_cfa_restore_notes when
19551 needed.
19552
19553 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
19554 force output of the label even for dwarf2out_do_cfi_asm.
19555 (add_fde_cfi): If -g2 and above and cfi might change CFA,
19556 force creation of CFI label and chain DW_CFA_set_loc jumping to it
19557 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
19558 caller.
19559 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
19560 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
19561 dwarf2out_cfi_label callers.
19562 * tree.h (dwarf2out_cfi_label): Adjust prototype.
19563 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
19564 Adjust dwarf2out_cfi_label callers.
19565 * config/vax/vax.c (vax_output_function_prologue): Likewise.
19566
604a6be9
JJ
19567 * config/i386/i386.h (struct machine_cfa_state,
19568 struct machine_function): Guard with ifndef USED_FOR_TARGET
19569 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
19570
df0026a7
JJ
19571 PR other/40024
19572 * emutls.c (__emutls_get_address): Change arr->size to mean number
19573 of allocated arr->data entries instead of # of slots + 1.
19574
6c0d7021
JJ
19575 PR middle-end/40316
19576 * recog.c (peep2_reinit_state): New function.
19577 (peephole2_init_state): Use it at the end of a basic block and also
19578 when seeing a RTX_FRAME_RELATED_P insn.
19579
49df2fb8
SE
195802009-06-01 Steve Ellcey <sje@cup.hp.com>
19581
19582 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
19583 fixuns_truncrfdi2): New.
19584 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
19585 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
19586 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
19587 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
19588 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
19589 *recip_approx): Remove.
19590 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
19591 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
19592 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
19593 move to div.md.
19594 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
19595 setf_exp_rf): New.
19596
67165eb3
ILT
195972009-06-01 Ian Lance Taylor <iant@google.com>
19598
19599 * attribs.c (register_attribute): Use CONST_CAST.
19600 * collect2.c (main): Use CONST_CAST2.
19601 (scan_prog_file): Likewise.
19602 * gcc.c (process_command, main): Likewise.
19603 * toplev.c (toplev_main): Likewise.
19604
19605 * c-typeck.c (handle_warn_cast_qual): New static function,
19606 partially broken out of build_c_cast.
19607 (build_c_cast): Call handle_warn_cast_qual.
19608 * doc/invoke.texi (Warning Options): Document new effect of
19609 -Wcast-qual.
19610
e74fe492
AH
196112009-06-01 Aldy Hernandez <aldyh@redhat.com>
19612
19613 * diagnostic.c (diagnostic_build_prefix): Always print columns.
19614 (diagnostic_report_current_module): Print columns.
19615 * common.opt (flag_show_column): Enable by default.
19616
7eba2d1f
LM
196172009-06-01 Luis Machado <luisgpm@br.ibm.com>
19618
19619 * alias.c (find_base_term): Check for NULL term before returning.
19620
ee88d9aa
MK
196212009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19622
19623 Revert due to PR40320:
ee88d9aa
MK
19624 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19625 * calls.c (emit_library_call_value_1): Don't force_operand for move
19626 and push insns.
19627
324c9b02 196282009-06-01 Olivier Hainque <hainque@adacore.com>
40d0d9e4 19629 Eric Botcazou <ebotcazou@adacore.com>
324c9b02
OH
19630
19631 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
19632 to be processed as a bitfield for constructor output purposes.
19633 * output.h (initializer_constant_valid_for_bitfield_p): Declare
19634 new function.
19635 * varasm.c (oc_local_state): New type, output_constructor
19636 local state to support communication with helpers.
19637 (oc_outer_state): New type, output_constructor outer state of
19638 relevance in recursive calls.
19639 (output_constructor_array_range): New output_constructor helper,
19640 extracted code for an array range element.
19641 (output_constructor_regular_field): New output_constructor helper,
19642 extracted code for an element that is not a bitfield.
19643 (output_constructor_bitfield): New output_constructor helper,
19644 extracted code for a bitfield element. Accept an OUTER state
19645 argument for recursive processing. Recurse on record or array
19646 CONSTRUCTOR values, possibly past noop conversions.
62295314 19647 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
324c9b02
OH
19648 VALUE is a valid constant-valued expression for use in a static
19649 bit-field initializer.
62295314
OH
19650 (output_constructor): Rework to use helpers. Accept and honor an
19651 OUTER state argument for recursive calls. Return total size. Be
324c9b02
OH
19652 prepared for nested constructors initializing bitfields.
19653 (output_constant): Feed OUTER in calls to output_constructor.
19654
0980d7fe
MK
196552009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19656
19657 * calls.c (emit_library_call_value_1): Don't force_operand for move
19658 and push insns.
19659
29661412
NC
196602009-06-01 Nick Clifton <nickc@redhat.com>
19661
19662 * doc/invoke.texi (IA-64 Options): Fix typo.
19663
e9dbe7bb
IR
196642009-06-01 Ira Rosen <irar@il.ibm.com>
19665
19666 PR tree-optimization/39129
7c8b1a77 19667 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
e9dbe7bb 19668 printed message.
7c8b1a77 19669 (vect_do_peeling_for_loop_bound): Use
e9dbe7bb
IR
19670 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
19671 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
19672 (vect_loop_versioning): Likewise.
19673 (vect_create_cond_for_alias_checks): Fix indentation.
7c8b1a77 19674 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
e9dbe7bb
IR
19675 macros.
19676 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
19677 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
7c8b1a77 19678 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
e9dbe7bb 19679 "control flow in loop".
7c8b1a77 19680 (vect_estimate_min_profitable_iters): Use
e9dbe7bb
IR
19681 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
19682 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
19683 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
19684 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
7c8b1a77
UB
19685 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
19686 statement belongs to a group of strided accesses with the exact code
e9dbe7bb
IR
19687 check.
19688 (vectorizable_load): Likewise.
19689 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
19690 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
19691
5ac69a80
GP
196922009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
19693
19694 * config/freebsd-stdint.h: New file.
19695 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
19696 Add freebsd-stdint.h to tm_file.
19697
54b2b460
RE
196982009-06-01 Richard Earnshaw <rearnsha@arm.com>
19699
19700 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
19701 (thumb2_extendhidi2): Likewise.
19702
a7ca77cf
ILT
197032009-05-31 Ian Lance Taylor <iant@google.com>
19704
f3afc8a7 19705 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
c50d84e3
ILT
19706
197072009-05-31 Ian Lance Taylor <iant@google.com>
19708
f3afc8a7 19709 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
a7ca77cf
ILT
19710 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
19711 (ipa-reference.o): Depend upon gt-ipa-reference.h.
19712
1aec401e
JM
197132009-05-31 Jason Merrill <jason@redhat.com>
19714
19715 * tree-pretty-print.c (print_call_name): Take the callee, not the
f3afc8a7 19716 call itself. Make non-static. Use dump_function_name for functions.
1aec401e
JM
19717 (dump_generic_node): Adjust.
19718 * diagnostic.h: Declare print_call_name.
19719 * gimple-pretty-print.c (dump_gimple_call): Use it.
19720
ed7910bb
KK
197212009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
19722
19723 * config/sh/sh.md (ashldi3_std): New define_expand.
19724 (ashldi3): Use it.
19725
47ea8d4e
KK
197262009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
19727
19728 PR target/40313
19729 * config/sh/sh.c: Include debug.h.
19730 (sh_expand_epilogue): Emit a blockage insn before the frame
19731 pointer adjustment also when dwarf2out_do_frame returns true.
19732
405e8b49
RE
197332009-05-31 Richard Earnshaw <rearnsha@arm.com>
19734
19735 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
19736 (thumb2_extendqidi2): New pattern.
19737
71ece343
IR
197382009-05-31 Ira Rosen <irar@il.ibm.com>
19739
19740 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
19741 mark phis for renaming.
19742 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
19743 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
19744 Call mark_sym_for_renaming.
19745 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
f3afc8a7
UB
19746 * tree-vect-loop.c (vect_transform_loop): Remove
19747 vect_memsyms_to_rename initialization and a call to
19748 mark_set_for_renaming.
71ece343 19749
b3041944
JJ
197502009-05-31 Jakub Jelinek <jakub@redhat.com>
19751
19752 PR middle-end/40304
19753 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
19754 frame related even if !set_cfa && style < 0.
19755
a1bda0d7
KT
197562009-05-30 Kai Tietz <kai.tietz@onevision.com>
19757
19758 * config/i386/mingw-tls.c: New file.
f3afc8a7
UB
19759 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
19760 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
19761 defining _WIN32 but not __CYGWIN__.
a1bda0d7 19762
acd26225
KG
197632009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
19764
19765 * configure.ac: Add MPC support.
f100a4a8
UB
19766
19767 * config.in, configure: Regenerate.
acd26225 19768
cd9c1ca8
RH
197692009-05-29 Richard Henderson <rth@redhat.com>
19770
19771 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
19772 NOTE_INSN_BASIC_BLOCK.
19773 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
19774 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
19775 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
19776 to be deleted.
19777 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
19778 add in_use field.
19779 (add_cfi): Disable check redefining cfa away from drap.
19780 (lookup_cfa_1): Add remember argument; handle remember/restore.
19781 (lookup_cfa): Pass remember argument.
19782 (cfa_remember): New.
19783 (compute_barrier_args_size_1): Remove sibcall check.
19784 (dwarf2out_frame_debug_def_cfa): New.
19785 (dwarf2out_frame_debug_adjust_cfa): New.
19786 (dwarf2out_frame_debug_cfa_offset): New.
19787 (dwarf2out_frame_debug_cfa_register): New.
19788 (dwarf2out_frame_debug_cfa_restore): New.
19789 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
19790 (dwarf2out_begin_epilogue): New.
19791 (dwarf2out_frame_debug_restore_state): New.
19792 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
19793 DW_CFA_restore_state.
19794 (output_cfi_directive): Likewise.
19795 (convert_cfa_to_fb_loc_list): Likewise.
19796 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
19797 * dwarf2out.h: Update.
19798 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
19799 (copy_insn_1): Early out for null.
19800 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
19801 and dwarf2out_frame_debug_restore_state.
19802 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
19803 (prologue_insn_hash, epilogue_insn_hash): New.
19804 (free_after_compilation): Adjust freeing accordingly.
19805 (record_insns): Create hash table if needed; push insns into
19806 hash instead of array.
19807 (maybe_copy_epilogue_insn): New.
19808 (contains): Search hash table instead of array.
19809 (sibcall_epilogue_contains): Remove.
19810 (thread_prologue_and_epilogue_insns): Split eh_return insns
19811 and mark them as epilogues.
19812 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
19813 scanning in terms of basic blocks.
19814 * insn-notes.def (CFA_RESTORE_STATE): New.
19815 * jump.c (returnjump_p_1): Accept EH_RETURN.
19816 (eh_returnjump_p_1, eh_returnjump_p): New.
19817 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
19818 CFA_REGISTER, CFA_RESTORE): New.
19819 * rtl.def (EH_RETURN): New.
19820 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
19821
19822 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
19823 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
19824
19825 * config/i386/i386.c (gen_push): Update cfa state.
19826 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
19827 add a CFA_ADJUST_CFA note.
19828 (ix86_dwarf_handle_frame_unspec): Remove.
19829 (ix86_expand_prologue): Update cfa state.
19830 (ix86_emit_restore_reg_using_pop): New.
19831 (ix86_emit_restore_regs_using_pop): New.
19832 (ix86_emit_leave): New.
19833 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
19834 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
19835 * config/i386/i386.h (struct machine_cfa_state): New.
19836 (ix86_cfa_state): New.
19837 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
19838 (eh_return_internal): Merge from eh_return_<mode>,
19839 use eh_return rtx, split w/ epilogue.
19840
72b5577d
ILT
198412009-05-29 Ian Lance Taylor <iant@google.com>
19842
19843 * builtins.c (validate_gimple_arglist): Don't use va_arg with
19844 enum type.
19845 * calls.c (emit_library_call_value_1): Likewise.
19846
19847 * c-typeck.c (c_build_va_arg): New function.
19848 * c-tree.h (c_build_va_arg): Declare.
19849 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
19850 instead of build_va_arg.
19851
7a2faca1
EB
198522009-05-29 Eric Botcazou <ebotcazou@adacore.com>
19853
19854 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
19855 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
19856 (ptr_difference_cost): Use affine combinations to compute it.
19857 (difference_cost): Likewise.
19858 (get_computation_cost_at): Compute more accurate cost for addresses
19859 if the ratio is a multiplier allowed in addresses.
19860 For non-addresses, consider that an additional offset or symbol is
19861 added only once.
19862
725fd454
JJ
198632009-05-29 Jakub Jelinek <jakub@redhat.com>
19864
a0987204
JJ
19865 * config/i386/i386.c (ix86_decompose_address): Avoid useless
19866 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
19867
725fd454
JJ
19868 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
19869 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
19870 (prefix_rex): For UNIT_MMX don't imply the prefix by default
19871 if MODE_DI.
19872 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
19873 to 1 for TYPE_SSE{IADD1,CVT1}.
19874 (prefix_vex_imm8): Removed.
19875 (length_vex): Only pass 1 as second argument to
19876 ix86_attr_length_vex_default if prefix_extra is 0.
19877 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
19878 (length): For prefix vex computation use length_immediate
19879 attribute instead of prefix_vex_imm8.
19880 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
19881 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
19882 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
19883 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
19884 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
19885 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
19886 a space in between the operands.
19887 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
19888 if one operand is 0xff and the other one si, di, bp or sp.
19889 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
19890 other one si, di, bp or sp.
19891 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
19892 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
19893 type and mode attributes.
19894 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
19895 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
19896 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
19897 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
19898 prefix_data16 attribute iff MODE_DF.
19899 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
19900 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
19901 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
19902 constm128_operand in length_immediate computation.
19903 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
19904 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
19905 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
19906 length_immediate attribute to 1.
19907 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
19908 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
19909 for certain alternatives.
19910 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
19911 prefix_data16 attribute if MODE_V1DF.
19912 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
19913 length_immediate to 1.
19914 (set_got_rex64, set_rip_rex64): Remove length attribute, set
19915 length_address to 4, set mode attribute to MODE_DI.
19916 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
19917 (fxam<mode>2_i387): Set length attribute to 4.
19918 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
19919 *prefetch_3dnow_rex): Override length_address attribute.
19920 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
19921 attributes.
19922 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
19923 (constm128_operand): Removed.
19924 * config/i386/i386.c (memory_address_length): For
19925 disp && !index && !base in 64-bit mode account for SIB byte if
19926 print_operand_address can't optimize disp32 into disp32(%rip)
19927 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
19928 for fs: or gs: segment.
19929 (ix86_attr_length_immediate_default): When checking if shortform
19930 is possible, truncate immediate to the length of the non-shortened
19931 immediate.
19932 (ix86_attr_length_address_default): Ignore MEM_P operands
19933 with X constraint.
19934 (ix86_attr_length_vex_default): Only check for DImode on
19935 GENERAL_REG_P operands.
19936 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
19937 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
19938 (sse_cvttps2pi): Clear prefix_rep attribute.
19939 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
19940 attribute.
19941 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
19942 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
19943 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
19944 iff operand 2 is const_int_operand.
19945 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
19946 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
19947 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
19948 instead of vex.
19949 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
19950 prefix_data16.
19951 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
19952 prefix_data16 attribute for movlpd and movhpd instructions.
19953 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
19954 length_immediate for shufpd instruction.
19955 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
19956 (avx_cmpp<avxmodesuffixf2c><mode>3,
19957 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
19958 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
19959 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
f3afc8a7 19960 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
725fd454
JJ
19961 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
19962 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
19963 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
19964 prefix_data16 attribute for the first alternative to 1.
19965 (*avx_loadlps): Override length_immediate for the first alternative.
19966 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
19967 attributes for second alternative.
19968 (*vec_concatv2sf_sse4_1): Override length_immediate and
19969 prefix_data16 attributes for second alternative.
19970 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
19971 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
19972 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
19973 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
19974 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
19975 prefix_data16 and length_immediate to 1.
19976 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
19977 to 1.
19978 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
f3afc8a7 19979 prefix_extra attribute for variants that don't have 0f prefix alone.
725fd454
JJ
19980 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
19981 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
19982 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
19983 *sse4_1_pextrd): Set length_immediate to 1.
19984 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
19985 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
19986 to 1.
19987 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
19988 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
19989 length_immediate to 1 for second alternative.
19990 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
19991 prefix_extra and length_immediate attributes for the first
19992 alternative.
19993 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
19994 first alternative.
19995 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
19996 to 1 for the first and third alternative.
19997 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
19998 alternative.
19999 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
20000 attribute.
20001 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
20002 attribute to 0.
20003 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
20004 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
20005 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
20006 *avx_psign<mode>3): Set prefix_extra attribute to 1.
20007 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
20008 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
20009 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
20010 ssse3_psign<mode>3): Override prefix_rex attribute.
f3afc8a7 20011 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
725fd454
JJ
20012 (ssse3_palignrti): Override length_immediate to 1.
20013 (ssse3_palignrdi): Override length_immediate to 1, override
20014 prefix_rex attribute.
f3afc8a7 20015 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
725fd454
JJ
20016 (sse4a_extrqi): Override length_immediate to 2.
20017 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
20018 (sse4a_insertq): Override prefix_data16 to 0.
20019 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
20020 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
20021 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
20022 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
20023 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
20024 and length_immediate to 1.
20025 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
20026 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
20027 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
20028 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
20029 and length_immediate to 1.
20030 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
20031 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
20032 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
20033 avx_ptest256): Override prefix_extra to 1.
20034 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
20035 Override prefix_data16 and length_immediate to 1.
20036 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
20037 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
20038 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
20039 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
20040 prefix_data16 to 0 and prefix_extra to 2.
20041 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
20042 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
20043 attribute.
20044 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
20045 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
20046 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
20047 and prefix_extra to 2.
20048 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
20049 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
20050 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
20051 avx_vpermilvar<mode>3,
20052 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
20053 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
20054 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
20055 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
20056 Override prefix_extra to 1.
20057 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
20058 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
20059 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
20060 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
20061 prefix_extra and length_immediate to 1.
20062 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
20063 modrm to 0.
20064 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
20065 to 1 for the first alternative.
20066 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
20067 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
20068 cases.
20069 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
20070 *movv2sf_internal_avx, *movv2sf_internal): Override
20071 prefix_rep attribute for certain alternatives.
20072 (*mov<mode>_internal): Override prefix_rep or prefix_data16
20073 attributes for certain alternatives.
20074 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
20075 attributes for certain alternatives.
20076 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
20077 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
20078 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
20079 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
20080 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
20081 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
20082 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
20083 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
20084 length_immediate to 1 if operand 2 is const_int_operand.
20085 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
f3afc8a7 20086 *vec_extractv2si_1): Set length_immediate attribute to 1.
725fd454
JJ
20087 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
20088 using old 3DNOW insn rather than SSE/3DNOW_A.
20089 (mmx_emms, mmx_femms): Clear modrm attribute.
20090
0674b9d0
MJ
200912009-05-29 Martin Jambor <mjambor@suse.cz>
20092
20093 * tree-sra.c: New implementation of SRA.
20094
20095 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
20096 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
20097 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
20098 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
20099 (SRA_MAX_STRUCTURE_COUNT): Removed.
20100 (SRA_FIELD_STRUCTURE_RATIO): Removed.
20101 * doc/invoke.texi (sra-max-structure-size): Removed.
20102 (sra-field-structure-ratio): Removed.
20103
616f21df
JJ
201042009-05-29 Jakub Jelinek <jakub@redhat.com>
20105
20106 PR middle-end/40291
20107 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
20108 before expansion.
20109
da7ba240
AB
201102009-05-29 Andrey Belevantsev <abel@ispras.ru>
20111
20112 PR rtl-optimization/40101
20113 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
20114 seqno. Adjust comment.
f100a4a8 20115 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
da7ba240
AB
20116 inserting bookkeeping before a jump, the jump is not scheduled.
20117 When no positive seqno found, provide a value. Add comment.
20118
71dcd609
RG
201192009-05-29 Richard Guenther <rguenther@suse.de>
20120
20121 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
20122 short-cutting on the first component.
20123
a900ae6b
JJ
201242009-05-29 Jakub Jelinek <jakub@redhat.com>
20125
20126 PR middle-end/39958
20127 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
20128 for trees other than decls/types.
20129
821bb7f8
RG
201302009-05-29 Richard Guenther <rguenther@suse.de>
20131
20132 * tree-ssa-operands.c (get_expr_operands): Do not handle
20133 INDIRECT_REFs in the handled-component case. Remove
20134 unused get_ref_base_and_extent case.
20135 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
20136 tree_low_cst and host_integerp where possible.
20137 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
20138 codes for equivalence.
20139 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
20140
e997fb9c
DB
201412009-05-29 David Billinghurst <billingd@gcc.gnu.org>
20142
20143 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
f100a4a8 20144 to tmake_file for i[34567]86-*-cygwin*.
e997fb9c 20145
58195b74
JJ
201462009-05-29 Jakub Jelinek <jakub@redhat.com>
20147
20148 PR target/40017
20149 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
20150 (altivec_categorize_keyword, init_vector_keywords,
20151 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
20152 similar to bool.
20153
055df276
KT
201542009-05-29 Kai Tietz <kai.tietz@onevision.com>
20155
20156 * tree.c (handle_dll_attribute): Check if node is
20157 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
20158
f5939ef3
RE
201592009-05-29 Richard Earnshaw <rearnsha@arm.com>
20160
20161 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
20162 component.
20163 (thumb2_zero_extendqidi2): Likewise.
20164
c185de40
KK
201652009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
20166
20167 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
20168 instead of gen_movrt.
20169 * config/sh/sh.md (movrt): Remove.
20170
bf3c6caf
SE
201712009-05-28 Steve Ellcey <sje@cup.hp.com>
20172
f3afc8a7 20173 * doc/invoke.texi (IA-64 Options):
f100a4a8 20174 Add -msdata, -mfused-madd, -mno-inline-float-divide,
bf3c6caf
SE
20175 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
20176 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
20177 -msched-prefer-non-control-spec-insns,
20178 -msched-stop-bits-after-every-cycle,
20179 -msched-count-spec-in-critical-path,
20180 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
f3afc8a7 20181 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
bf3c6caf
SE
20182 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
20183 and -msched-spec-verbose.
20184
8a66e987
JM
201852009-05-28 Joseph Myers <joseph@codesourcery.com>
20186
f3afc8a7 20187 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
8a66e987
JM
20188 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
20189 error if used.
20190 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
20191
b45d2719
RG
201922009-05-28 Richard Guenther <rguenther@suse.de>
20193
20194 * tree-ssa-alias.c (ao_ref_init): New function.
20195 (ao_ref_base): Likewise.
20196 (ao_ref_base_alias_set): Likewise.
20197 (ao_ref_alias_set): Likewise.
20198 (refs_may_alias_p_1): Change signature.
20199 (refs_may_alias_p): Adjust.
20200 (refs_anti_dependent_p): Likewise.
20201 (refs_output_dependent_p): Likewise.
20202 (call_may_clobber_ref_p_1): Change signature.
20203 (call_may_clobber_ref_p): Adjust.
20204 (stmt_may_clobber_ref_p_1): New function split out from ...
20205 (stmt_may_clobber_ref_p): ... here.
20206 (maybe_skip_until): Adjust signature.
20207 (get_continuation_for_phi): Likewise.
20208 (walk_non_aliased_vuses): Likewise.
20209 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
20210 (ao_ref_init): Declare.
20211 (ao_ref_base): Likewise.
20212 (ao_ref_alias_set): Likewise.
20213 (stmt_may_clobber_ref_p_1): Likewise.
20214 (walk_non_aliased_vuses): Adjust.
20215 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
20216 (get_ref_from_reference_ops): remove.
20217 (vn_reference_lookup_2): Adjust signature.
20218 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
f3afc8a7 20219 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
b45d2719
RG
20220 (vn_reference_lookup): Adjust.
20221 (vn_reference_insert): Likewise.
20222 (vn_reference_insert_pieces): Adjust signature.
20223 (visit_reference_op_call): Adjust.
20224 * tree-ssa-pre.c (get_expr_type): Simplify.
20225 (phi_translate_1): Adjust.
20226 (compute_avail): Likewise.
20227 (translate_vuse_through_block): Do not re-build trees.
20228 (value_dies_in_block_x): Likewise.
20229 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
20230 fields.
20231 (vn_reference_lookup_pieces): Adjust declaration.
20232 (vn_reference_insert_pieces): Likewise.
20233
554223b6
BK
202342009-05-28 Benjamin Kosnik <bkoz@redhat.com>
20235
20236 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
20237 with checking disabled.
20238
233215fe
DK
202392009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
20240
20241 PR target/37216
20242
20243 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
20244 macro definition for support of three-operand format aligned
20245 .comm directive in assembler on cygwin/pe/mingw target OS.
20246 * configure: Regenerate.
20247 * config.h: Regenerate.
20248
20249 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
20250 aligned form of .comm directive if -mpe-aligned-commons is in effect.
20251 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
20252
20253 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
20254 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
20255
24adb18f
IR
202562009-05-28 Ira Rosen <irar@il.ibm.com>
20257
20258 PR tree-optimization/40254
20259 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
20260 in analysis of basic blocks.
20261
2c5bfdf7
AN
202622009-05-28 Adam Nemet <anemet@caviumnetworks.com>
20263
20264 PR middle-end/33699
f3afc8a7 20265 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
2c5bfdf7
AN
20266 * target-def.h (TARGET_CONST_ANCHOR): New macro.
20267 (TARGET_INITIALIZER): Use it.
20268 * cse.c (CHEAPER): Move it up to the other macros.
20269 (insert): Rename this ...
20270 (insert_with_costs): ... to this. Add cost parameters. Update
20271 function comment.
20272 (insert): New function. Call insert_with_costs.
20273 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
20274 find_reg_offset_for_const, try_const_anchors): New functions.
20275 (cse_insn): Call try_const_anchors. Adjust cost of src_related
20276 when using a const-anchor. Call insert_const_anchors.
f3afc8a7 20277 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
2c5bfdf7
AN
20278 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
20279
9e6aced0
AO
202802009-05-28 Alexandre Oliva <aoliva@redhat.com>
20281
20282 * tree-inline.c (remap_decls): Enable nonlocalized variables
20283 when not optimizing.
20284
89fbbe4e
AO
202852009-05-28 Alexandre Oliva <aoliva@redhat.com>
20286
20287 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
20288 Simplify other tests involving optimize.
20289
e455776a
TT
202902009-05-27 Tom Tromey <tromey@redhat.com>
20291
20292 * unwind-dw2.c (_Unwind_DebugHook): New function.
20293 (uw_install_context): Call _Unwind_DebugHook.
20294
cea32bca
TT
202952009-05-27 Tom Tromey <tromey@redhat.com>
20296
20297 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
20298
c607156f
ILT
202992009-05-27 Ian Lance Taylor <iant@google.com>
20300
20301 * Makefile.in (LINKER, LINKER_FLAGS): Define.
20302 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
20303 (ALL_LINKERFLAGS): Define.
20304 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
20305 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
20306 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
20307 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
20308 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
20309 $(LINKER_FOR_BUILD).
20310 (build/gcov-iov$(build_exeext)): Likewise.
20311
ec0a1343
JB
203122009-05-27 Julian Brown <julian@codesourcery.com>
20313
20314 * gcse.c (target.h): Include.
20315 (can_assign_to_reg_without_clobbers_p): Check that the target allows
20316 copy of argument to a pseudo register.
20317
ac80ba07
DN
203182009-05-27 Diego Novillo <dnovillo@google.com>
20319
20320 * tree-ssa-live.c (dump_scope_block): Document arguments.
20321 (dump_scope_blocks): Document.
20322 (debug_scope_blocks): New.
20323 * tree-flow.h (debug_scope_blocks): Declare.
20324
d1803a17
DC
203252009-05-21 Denis Chertykov <denisc@overta.ru>
20326
f3afc8a7 20327 * doc/contrib.texi (Contributors): Add myself to the list.
d1803a17 20328
51fb7760 203292009-05-27 Olivier Hainque <hainque@adacore.com>
ceadb728
OH
20330
20331 * expr.c (target_align): New function. Alignment the TARGET of an
20332 assignment may be assume to have.
20333 (highest_pow2_factor_for_target): Use it instead of relying on
20334 immediate tree attributes of TARGET, not necessarily honored when
20335 intermediate bitfields are involved.
f100a4a8 20336
634fa334
L
203372009-05-27 H.J. Lu <hongjiu.lu@intel.com>
20338
20339 PR target/40266
20340 * config/i386/driver-i386.c (host_detect_local_cpu): Support
20341 AVX, SSE4, AES, PCLMUL and POPCNT.
20342
65332587
DN
203432009-05-27 Diego Novillo <dnovillo@google.com>
20344
20345 * tree-pretty-print.c (dump_location): New.
20346 (dump_generic_node): Call it.
20347 Factor code to handle BLOCK nodes ...
20348 (dump_block_node): ... here.
20349
3e17e31d
RAE
203502009-05-27 Rafael Avila de Espindola <espindola@google.com>
20351
f3afc8a7
UB
20352 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
20353 with it.
3e17e31d
RAE
20354 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
20355 included.
20356 * gcc-plugin.h: Include config.h and system.h.
20357 (IN_GCC): Define if not defined.
20358
5e370570
HPN
203592009-05-27 Hans-Peter Nilsson <hp@axis.com>
20360
20361 PR middle-end/40249
20362 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
20363 with -fno-inline.
20364
d000f0d9
SZ
203652009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
20366
20367 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
20368 applicable.
20369 * config/m32r/m32r.h: Ditto.
20370 * config/m32r/m32r.md: Ditto.
20371 * config/m32r/predicates.md: Ditto.
20372
82f331ff
AO
203732009-05-27 Alexandre Oliva <aoliva@redhat.com>
20374
20375 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
20376
ae2392a9
BS
203772009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
20378
20379 * doc/plugins.texi
20380 (Loading plugins): typo.
20381 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
20382 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
20383 (Interacting with the GCC Garbage Collector): Added new section.
20384 (Giving information about a plugin): Added new section for
20385 PLUGIN_INFO.
ae2392a9
BS
20386 * ggc.h (ggc_register_root_tab): Added declaration.
20387 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
20388 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
20389 (register_callback): Improved comment in declaration.
f3afc8a7
UB
20390 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
20391 (extra_root_vec) Added static variable for dynamic roots registration.
ae2392a9
BS
20392 (ggc_register_root_tab) Added new routine.
20393 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
20394 PLUGIN_GGC_MARKING event.
20395 * ggc-zone.c: Include plugin.h.
20396 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
20397 * ggc-page.c: Include plugin.h.
20398 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
20399 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
20400 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
20401 (register_callback): check lack of callbacks for
20402 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
20403 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
20404 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
20405 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
20406 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
20407 dependency on plugin.h.
20408 (plugin.o): Added dependency on ggc.h...
20409
f0cfd3a8
RG
204102009-05-26 Richard Guenther <rguenther@suse.de>
20411
20412 PR middle-end/40248
20413 Revert
20414 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
20415 with mismatched comparison modes.
20416
20417 * expr.c (expand_expr_real_1): Expand the operand of a
20418 VIEW_CONVERT_EXPR in its natural mode.
20419
7980bfb8
ILT
204202009-05-26 Ian Lance Taylor <iant@google.com>
20421
20422 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
20423 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
20424 (ALL_COMPILERFLAGS): Define.
20425 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
20426 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
20427 (collect2$(exeext), collect2.o): Likewise.
20428 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
20429 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
20430 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
20431 (libbackend.o, intl.o, cppdefault.o): Likewise.
20432 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
20433 (build/%.o): Use $(COMPILER_FOR_BUILD).
20434 (build/gen%$(build_exeext)): Likewise.
20435 (build/gcov-iov$(build_exeext)): LIkewise.
20436 * config/t-darwin (darwin.o): Use $(COMPILER).
20437 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
20438 * config/t-sol2 (sol2-c.o): Likewise.
20439 (sol2.o): Likewise.
20440 * config/t-vxworks (vxworks.o): Likewise.
20441 * config/x-darwin (host-darwin.o): Likewise.
20442 * config/x-hpux (host-hpux.o): Likewise.
20443 * config/x-linux (host-linux.o): Likewise.
20444 * config/x-solaris (host-solaris.o): Likewise.
20445 * config/alpha/x-alpha (driver-alpha.o): Likewise.
20446 * config/arm/t-arm (arm-c.o): Likewise.
20447 * config/arm/t-pe (pe.o): Likewise.
20448 * config/arm/t-wince-pe (pe.o): Likewise.
20449 * config/i386/t-cygming (winnt.o): Likewise.
20450 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
20451 * config/i386/t-cygwin (cygwin1.o): Likewise.
20452 (cygwin2.o): Likewise.
20453 * config/i386/t-i386 (i386-c.o): Likewise.
20454 * config/i386/t-interix (winnt.o): Likewise.
20455 * config/i386/t-netware (netware.o): Likewise.
20456 * config/i386/t-nwld (nwld.o): Likewise.
20457 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
20458 * config/i386/x-i386 (driver-i386.o): Likewise.
20459 * config/i386/x-cygwin (host-cygwin.o): Likewise.
20460 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
20461 * config/ia64/t-ia64 (ia64-c.o): Likewise.
20462 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
20463 * config/mips/x-native (driver-native.o): Likewise.
20464 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
20465 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
20466 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
20467 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
20468 * config/score/t-score-elf (score7.o): Likewise.
20469 (score3.o): Likewise.
20470 * config/sh/t-sh (sh-c.o): Likewise.
20471 * config/sh/t-symbian (sh-c.o): Likewise.
20472 (symbian.o): Likewise.
20473 * config/spu/t-spu-elf (spu-c.o): Likewise.
20474 * config/v850/t-v850 (v850-c.o): Likewise.
20475 * config/v850/t-v850e (v850-c.o): Likewise.
20476
23977d3c
RG
204772009-05-26 Richard Guenther <rguenther@suse.de>
20478
20479 PR tree-optimization/40122
20480 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
20481 VECTOR_CSTs if possible.
20482 (fold_gimple_assign): Likewise.
20483
3d62b895
RG
204842009-05-26 Richard Guenther <rguenther@suse.de>
20485
20486 PR middle-end/40252
20487 * fold-const.c (fold_binary): Use the correct types for building
20488 rotates.
20489
12346147
RG
204902009-05-26 Richard Guenther <rguenther@suse.de>
20491
20492 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
20493 redundant calls to merge_alias_info.
20494 (bump_vector_ptr): Likewise.
20495 * tree-ssa-copy.c (merge_alias_info): Remove.
20496 (replace_exp_1): Remove call to merge_alias_info.
20497 (propagate_tree_value): Likewise.
20498 (fini_copy_prop): Propagate points-to info.
20499 * tree-flow.h (merge_alias_info): Remove.
20500
807d5e6f
HS
205012009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
20502
20503 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
20504
85057983
JH
205052009-05-25 Jan Hubicka <jh@suse.cz>
20506
20507 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
20508 * cgraph.h (struct inline_summary): New filed self_wize,
20509 size_inlining_benefit, self_time and time_inlining_benefit.
20510 (struct cgraph_global_info): Replace insns by time ans size fields.
20511 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
20512 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
20513 (ipcp_update_callgraph): Do not touch function bodies.
20514 * ipa-inline.c: Include except.h
20515 (MAX_TIME): New constant.
20516 (overall_insns): Remove.
20517 (leaf_node_p): New.
20518 (overall_size, max_benefit): New static variables.
20519 (cgraph_estimate_time_after_inlining): New function.
20520 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
20521 (cgraph_clone_inlined_nodes): Update size.
20522 (cgraph_mark_inline_edge): Update size.
20523 (cgraph_estimate_growth): Use size info.
20524 (cgraph_check_inline_limits): Check size.
20525 (cgraph_default_inline_p): Likewise.
20526 (cgraph_edge_badness): Compute badness based on benefit and size cost.
20527 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
20528 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
20529 and times.
85057983
JH
20530 (cgraph_decide_inlining): Likewise.
20531 (cgraph_decide_inlining_incrementally): Likewise; honor
20532 PARAM_EARLY_INLINING_INSNS.
20533 (likely_eliminated_by_inlining_p): New predicate.
20534 (estimate_function_body_sizes): New function.
20535 (compute_inline_parameters): Use it.
20536 * except.c (must_not_throw_labels): New function.
20537 * except.h (must_not_throw_labels): Declare.
20538 * tree-inline.c (init_inline_once): Kill inlining_weigths
20539 * tree-ssa-structalias.c: Avoid uninitialized warning.
20540 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
20541 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
20542 (PARAM_INLINE_CALL_COST): Remove.
20543 (PARAM_EARLY_INLINING_INSNS): New.
20544
01df5c8a
RG
205452009-05-25 Richard Guenther <rguenther@suse.de>
20546
20547 PR tree-optimization/36327
20548 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
f3afc8a7 20549 callback for reference translation or lookup at the point of may-defs.
01df5c8a
RG
20550 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
20551 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
20552 for union COMPONENT_REFs.
20553 (vn_reference_lookup_3): New callback. Lookup from memset
20554 and CONSTRUCTOR assignment, translate through struct copies.
20555 (vn_reference_lookup_pieces): Make sure to not free the
20556 passed operands array. Adjust walk_non_aliased_vuses call.
20557 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
20558 make sure we do not leak memory.
20559
6b8ed145
RG
205602009-05-25 Richard Guenther <rguenther@suse.de>
20561
20562 * tree-ssa-alias.h (dump_points_to_solution): Declare.
20563 * tree-inline.c (expand_call_inline): Reset the escaped and
20564 callused solutions.
20565 * tree-ssa-structalias.c (pass_build_ealias): New.
20566 * tree-pass.h (pass_build_ealias): Declare.
f100a4a8 20567 * passes.c (init_optimization_passes): Add PTA during
6b8ed145
RG
20568 early optimizations.
20569 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
20570 and CALLUSED solutions.
20571 (dump_points_to_solution): New function, split out from ...
20572 (dump_points_to_info_for): ... here.
20573 * tree-parloops.c (parallelize_loops): Reset the escaped and
20574 callused solutions.
20575
0adcf178
RO
205762009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20577
20578 PR bootstrap/40027
20579 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
20580 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
20581
12aaf609
IR
205822009-05-25 Ira Rosen <irar@il.ibm.com>
20583
20584 PR tree-optimization/40238
20585 * tree-vect-stmts.c (vect_init_vector): Insert initialization
20586 statements after basic block's labels.
f100a4a8 20587 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
12aaf609
IR
20588 to free the allocated memory.
20589
7f9a14e3
KK
205902009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
20591
20592 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
20593 return address with a USE.
20594
b842d478
RG
205952009-05-24 Richard Guenther <rguenther@suse.de>
20596
20597 PR middle-end/40233
20598 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
20599 array type from the main variant of the inner type.
20600
8db7b33f
JBG
206012009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20602
20603 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
20604 definition to bool (from int) to un-break build.
20605 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
20606
cff4e50d
PB
206072009-05-24 Paolo Bonzini <bonzini@gnu.org>
20608
20609 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
20610 discard_stmt_changes): Delete.
20611 * tree-ssa-operands.c (scb_stack): Delete.
20612 (init_ssa_operands): Do not initialize it.
20613 (fini_ssa_operands): Do not free it.
20614 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
20615
f100a4a8 20616 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
cff4e50d
PB
20617 update_stmt, remove the others. Fix comments.
20618 * tree-dfa.c (optimize_stack_restore): Likewise.
20619 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
20620 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
20621 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
20622 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
20623 Likewise.
20624 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
20625 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
f3afc8a7
UB
20626 (dom_opt_finalize_block): Likewise, adjusting access to
20627 stmts_to_rescan.
cff4e50d
PB
20628 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
20629 (stmts_to_rescan): Change item type to gimple.
20630 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
20631
a70d6342
IR
206322009-05-24 Ira Rosen <irar@il.ibm.com>
20633
20634 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
20635 * tree-pass.h (pass_slp_vectorize): New pass.
20636 * params.h (SLP_MAX_INSNS_IN_BB): Define.
20637 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
20638 * tree-vectorizer.c (timevar.h): Include.
20639 (user_vect_verbosity_level): Declare.
20640 (vect_location): Fix comment.
20641 (vect_set_verbosity_level): Update user_vect_verbosity_level
20642 instead of vect_verbosity_level.
20643 (vect_set_dump_settings): Add an argument. Ignore user defined
20644 verbosity if dump flags require higher level of verbosity. Print to
20645 stderr only for loop vectorization.
20646 (vectorize_loops): Update call to vect_set_dump_settings.
20647 (execute_vect_slp): New function.
20648 (gate_vect_slp): Likewise.
20649 (struct gimple_opt_pass pass_slp_vectorize): New.
20650 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
20651 access its members.
20652 (vec_info_for_bb): New function.
20653 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
20654 (VECTORIZATION_ENABLED): New macro.
20655 (SLP_ENABLED, SLP_DISABLED): Likewise.
20656 (vect_is_simple_use): Add bb_vec_info argument.
20657 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
20658 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
20659 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
20660 vect_schedule_slp, vect_analyze_slp): Likewise.
20661 (vect_analyze_stmt): Add slp_tree argument.
20662 (find_bb_location): Declare.
20663 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
20664 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
20665 (vect_analyze_loop_operations, vect_analyze_loop,
20666 get_initial_def_for_induction, vect_create_epilog_for_reduction,
20667 vect_finalize_reduction, vectorizable_reduction,
20668 vectorizable_live_operation, vect_transform_loop): Likewise.
20669 * tree-data-ref.c (dr_analyze_innermost): Update comment,
20670 skip evolution analysis if analyzing a basic block.
20671 (dr_analyze_indices): Likewise.
20672 (initialize_data_dependence_relation): Skip the test whether the
20673 object is invariant for basic blocks.
20674 (compute_all_dependences): Skip dependence analysis for data
20675 references in basic blocks.
20676 (find_data_references_in_stmt): Don't fail in case of invariant
20677 access in basic block.
20678 (find_data_references_in_bb): New function.
20679 (find_data_references_in_loop): Move code to
782dc37a 20680 find_data_references_in_bb and add a call to it.
a70d6342
IR
20681 (compute_data_dependences_for_bb): New function.
20682 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
20683 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
20684 that STEP is 0.
20685 (vect_analyze_data_ref_dependence): Check for interleaving in case of
20686 unknown dependence in basic block and fail in case of dependence in
20687 basic block.
20688 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
20689 dependence instances from either loop or basic block vectorization
20690 info.
20691 (vect_compute_data_ref_alignment): Check if it is loop vectorization
20692 before calling nested_in_vect_loop_p.
20693 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
20694 dependence instances from either loop or basic block vectorization
20695 info.
20696 (vect_verify_datarefs_alignment): Likewise.
20697 (vect_enhance_data_refs_alignment): Adjust function calls.
20698 (vect_analyze_data_refs_alignment): Likewise.
20699 (vect_analyze_group_access): Fix printing. Skip different checks if
20700 DR_STEP is 0. Keep strided stores either in loop or basic block
20701 vectorization data structure. Fix indentation.
20702 (vect_analyze_data_ref_access): Fix comments, allow zero step in
20703 basic blocks.
20704 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
20705 dependence instances from either loop or basic block vectorization
20706 info.
20707 (vect_analyze_data_refs): Update comment. Call
20708 compute_data_dependences_for_bb to analyze basic blocks.
20709 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
20710 case of loop vectorization. In case of basic block vectorization use
782dc37a 20711 data-ref itself as a base.
a70d6342
IR
20712 (vect_create_data_ref_ptr): In case of basic block vectorization:
20713 don't advance the pointer, add new statements before the current
20714 statement. Adjust function calls.
20715 (vect_supportable_dr_alignment): Support only aligned accesses in
20716 basic block vectorization.
20717 * common.opt (ftree-slp-vectorize): New flag.
20718 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
20719 (vect_pattern_recog_1): Likewise.
20720 * tree-vect-stmts.c (process_use): Likewise.
20721 (vect_init_vector): Add new statements in the beginning of the basic
20722 block in case of basic block SLP.
20723 (vect_get_vec_def_for_operand): Adjust function calls.
20724 (vect_finish_stmt_generation): Likewise.
20725 (vectorizable_call): Add assert that it is loop vectorization, adjust
20726 function calls.
20727 (vectorizable_conversion, vectorizable_assignment): Likewise.
20728 (vectorizable_operation): In case of basic block SLP, take
20729 vectorization factor from statement's type and skip the relevance
20730 check. Adjust function calls.
20731 (vectorizable_type_demotion): Add assert that it is loop
20732 vectorization, adjust function calls.
20733 (vectorizable_type_promotion): Likewise.
20734 (vectorizable_store): Check for outer loop only in case of loop
20735 vectorization. Adjust function calls. For basic blocks, skip the
20736 relevance check and don't advance pointers.
20737 (vectorizable_load): Likewise.
20738 (vectorizable_condition): Add assert that it is loop vectorization,
20739 adjust function calls.
20740 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
20741 that it is not reduction, get vector type, call only supported
782dc37a 20742 functions, skip loop specific parts.
a70d6342
IR
20743 (vect_transform_stmt): Check for outer loop only in case of loop
20744 vectorization.
20745 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
20746 (vect_is_simple_use): Fix comment, add new argument, fix conditions
20747 for external definition.
20748 * passes.c (pass_slp_vectorize): New pass.
20749 * tree-vect-slp.c (find_bb_location): New function.
20750 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
20751 check for patterns only in loops.
20752 (vect_build_slp_tree): Add argument, adjust function calls, fail in
20753 case of multiple types in basic block SLP.
20754 (vect_mark_slp_stmts_relevant): New function.
20755 (vect_supported_load_permutation_p): Fix comment.
20756 (vect_analyze_slp_instance): Add argument. In case of basic block
20757 SLP, take vectorization factor from statement's type, check that
20758 unrolling factor is 1. Adjust function call. Save SLP instance in
20759 either loop or basic block vectorization structure. Return FALSE,
20760 if SLP failed.
20761 (vect_analyze_slp): Add argument. Get strided stores groups from
20762 either loop or basic block vectorization structure. Return FALSE
20763 if basic block SLP failed.
20764 (new_bb_vec_info): New function.
20765 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
20766 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
20767 (vect_schedule_slp): Add argument. Get SLP instances from either
20768 loop or basic block vectorization structure. Set vectorization factor
20769 to be 1 for basic block SLP.
20770 (vect_slp_transform_bb): New function.
20771 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
20772
0676c393
MM
207732009-05-23 Mark Mitchell <mark@codesourcery.com>
20774
20775 * final.c (shorten_branches): Do not align labels for jump tables.
20776 (final_scan_insn): Use JUMP_TABLE_DATA_P.
20777
94324dae
EB
207782009-05-23 Eric Botcazou <ebotcazou@adacore.com>
20779
20780 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
20781 Remove outdated reference to flow.c and fix nits.
20782 * doc/gccint.texi: Tweak RTL description.
20783 * doc/rtl.texi: Likewise.
20784
92bffc14
DC
207852009-05-23 Denis Chertykov <chertykov@gmail.com>
20786
20787 * config/avr/avr.c: Change my email address.
20788 * config/avr/avr.h: Likewise.
20789 * config/avr/avr.md: Likewise.
20790 * config/avr/avr-protos.h: Likewise.
20791 * config/avr/libgcc.S: Likewise.
20792
eec9405e
TS
207932009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
20794
20795 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
20796 (spu_split_load, spu_split_store): Change return type to int.
20797 (spu_split_convert): Declare.
20798 * config/spu/predicates.md (spu_mem_operand): Remove.
20799 (spu_mov_operand): Update.
20800 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
20801 * config/spu/spu.c (regno_aligned_for_load): Remove.
20802 (reg_aligned_for_addr, spu_expand_load): Define.
20803 (spu_expand_extv): Reimplement and handle MEM.
20804 (spu_expand_insv): Handle MEM.
20805 (spu_sched_reorder): Handle insn's with length 0.
20806 (spu_legitimate_address_p): Reimplement.
20807 (store_with_one_insn_p): Return TRUE for any mode with size
20808 larger than 16 bytes.
20809 (address_needs_split): Define.
20810 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
20811 operands.
20812 (spu_convert_move): Define.
782dc37a 20813 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
eec9405e
TS
20814 (spu_split_store): Change all MEM's to TImode.
20815 (spu_init_expanders): Preallocate registers that correspond to
20816 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
20817 mark_reg_pointer.
20818 (spu_split_convert): Define.
20819 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
20820 (_move<mode>, _movdi, _movti): Update predicate and condition.
20821 (load, store): Change to define_split.
20822 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
20823 extend<mode>ti2.
20824 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
20825 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
20826 define_insn_and_split of lshr<mode>3.
20827 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
20828 (<v>ashr<mode>3_imm): Define.
20829 (extv, extzv, insv): Allow MEM operands.
20830 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
20831 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
20832 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
20833 (_spu_convert2): Change to define_insn_and_split and remove the
20834 corresponding define_peephole2.
20835 (stack_protect_set, stack_protect_test, stack_protect_test_si):
20836 Change predicates to memory_operand.
20837
7d31a807
MM
208382009-05-22 Mark Mitchell <mark@codesourcery.com>
20839
20840 * config/arm/thumb2.md: Add 16-bit multiply instructions.
7d31a807 20841
d021d274
MM
208422009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
20843
20844 PR tree-optimization/40219
20845 * tree.c (iterative_hash_expr): Make sure the builtin function is
20846 a normal builtin function and not a front end or back end builtin
20847 before indexing into the built_in_decls array.
20848
4d7a65ea
RG
208492009-05-22 Richard Guenther <rguenther@suse.de>
20850
20851 PR middle-end/38964
20852 * alias.c (write_dependence_p): Do not use TBAA for answering
20853 anti-dependence or output-dependence.
782dc37a 20854 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
4d7a65ea
RG
20855 (emit_pointer_definition): Remove.
20856 (emit_alias_warning): Likewise.
20857 (find_what_var_points_to): Remove TBAA pruning code.
20858 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
20859 violations.
20860 (compute_points_to_sets): Remove code computing the set of
20861 dereferenced pointers.
20862 * tree-data-ref.c (dr_may_alias_p): Properly use the split
20863 oracle for querying anti and output dependencies.
20864 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
20865 if TBAA may be applied.
20866 (refs_anti_dependent_p): New function.
20867 (refs_output_dependent_p): Likewise.
20868 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
20869 (refs_output_dependent_p): Likewise.
20870 * doc/tree-ssa.texi (Memory model): New section.
20871 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
20872 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
20873 * cfgexpand.c (expand_gimple_basic_block): Do not handle
20874 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
20875 * expr.c (expand_expr_real_1): Likewise.
20876 * gimple-low.c (lower_stmt): Likewise.
20877 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
20878 (dump_gimple_cdt): Remove.
20879 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
20880 (gimple_size): Likewise.
20881 (walk_gimple_op): Likewise.
20882 (is_gimple_stmt): Likewise.
20883 (walk_stmt_load_store_addr_ops): Likewise.
20884 (gimple_build_cdt): Remove.
20885 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
20886 * gimple.h (gimple_cdt_new_type): Remove.
20887 (gimple_cdt_new_type_ptr): Likewise.
20888 (gimple_cdt_set_new_type): Likewise.
20889 (gimple_cdt_location): Likewise.
20890 (gimple_cdt_location_ptr): Likewise.
20891 (gimple_cdt_set_location): Likewise.
20892 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
20893 * tree-cfg.c (remove_useless_stmts_1): Do not handle
20894 GIMPLE_CHANGE_DYNAMIC_TYPE.
20895 (verify_types_in_gimple_stmt): Likewise.
20896 * tree-inline.c (estimate_num_insns): Likewise.
20897 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
20898 (copy_decl_to_var): Likewise.
20899 (copy_result_decl_to_var): Likewise.
20900 * tree-pretty-print.c (dump_generic_node): Do not handle
20901 CHANGE_DYNAMIC_TYPE_EXPR.
20902 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
20903 * tree-ssa-operands.c (get_expr_operands): Likewise.
20904 * tree-ssa-structalias.c (struct variable_info): Remove
20905 no_tbaa_pruning member.
20906 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
20907 (unify_nodes): Do not copy it.
20908 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
20909 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
20910 (set_uids_in_ptset): Do not check it.
20911 (find_what_var_points_to): Likewise.
20912 (compute_tbaa_pruning): Remove.
20913 (compute_points_to_sets): Do not call it.
20914 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
20915 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
20916 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
20917 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
20918 (DECL_NO_TBAA_P): Likewise.
20919 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
20920 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
20921 (expand_omp_atomic_pipeline): Do not set it.
20922 * print-tree.c (print_node): Do not dump it.
20923 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
20924 redundant check.
20925
83a6ac60
VM
209262009-05-22 Vladimir Makarov <vmakarov@redhat.com>
20927
20928 PR target/39856
20929 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
20930 for clobber.
20931
fe2978fb
MM
209322009-05-22 Mark Mitchell <mark@codesourcery.com>
20933
20934 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
20935 non-external.
20936
134ef638
BE
209372009-05-22 Ben Elliston <bje@au.ibm.com>
20938
20939 * Makefile.in (bversion.h, s-bversion): New targets.
20940 (TOPLEV_H): Add bversion.h.
20941 * toplev.h: Include "bversion.h".
20942 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
20943 the __format__ attribute only if compiling with the same version
20944 of GCC as the sources (the "build version").
20945
52fc669d
BE
209462009-05-22 Ben Elliston <bje@au.ibm.com>
20947
20948 * c-format.c (handle_format_attribute): Fix comment typo.
20949
583ca921
SE
209502009-05-21 Steve Ellcey <sje@cup.hp.com>
20951
20952 PR target/37846
20953 * config/ia64/ia64.opt (mfused-madd): New.
20954 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
20955 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
20956 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
20957 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
20958 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
20959 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
20960 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
f100a4a8 20961 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
583ca921
SE
20962 instruction if !TARGET_FUSED_MADD.
20963 (fpma, fpms): Remove colon from name.
20964
150e3929
RG
209652009-05-22 Richard Guenther <rguenther@suse.de>
20966
20967 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
20968 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
20969 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
20970 TARGET_MEM_REF.
20971 (create_expression_by_pieces): Only convert if necessary.
20972 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
20973 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
20974
9a2b090c
AN
209752009-05-21 Adam Nemet <anemet@caviumnetworks.com>
20976
20977 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
20978 regular pattern from a template and rename it ...
20979 (*extzv_truncsi_exts): ... to this.
20980
33b92c9d
RG
209812009-05-21 Richard Guenther <rguenther@suse.de>
20982
20983 * cgraph.h (struct cgraph_node): Remove inline_decl member.
20984 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
20985 (cgraph_default_inline_p): Likewise.
20986 (cgraph_decide_inlining_incrementally): Likewise.
20987
cabf85c3
L
209882009-05-21 H.J. Lu <hongjiu.lu@intel.com>
20989 Uros Bizjak <ubizjak@gmail.com>
20990
20991 * config/i386/cpuid.h (bit_MOVBE): New.
20992
20993 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
20994
20995 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
20996 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
20997 (ix86_handle_option): Handle OPT_mmovbe.
20998 (ix86_target_string): Add -mmovbe.
20999 (pta_flags): Add PTA_MOVBE.
21000 (processor_alias_table): Add PTA_MOVBE to "atom".
21001 (override_options): Handle PTA_MOVBE.
21002
21003 * config/i386/i386.h (TARGET_MOVBE): New.
21004
21005 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
21006 (*bswapsi_movbe): New.
21007 (*bswapdi_movbe): Likewise.
21008 (bswapdi2): Renamed to ...
21009 (*bswapdi_1): This.
21010 (bswapdi2): New expander.
21011
21012 * config/i386/i386.opt (mmovbe): New.
21013
21014 * doc/invoke.texi: Document -mmovbe.
21015
9fefa0aa
TG
210162009-05-21 Taras Glek <tglek@mozilla.com>
21017
21018 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
21019 * gcc-plugin.h (plugin_init): Updated signature.
21020 * gcc-plugin.h (plugin_name_args): Moved to this header.
cabf85c3
L
21021 * doc/plugins.texi (plugin_init): Updated documention to reflect
21022 API change.
9fefa0aa
TG
21023 * doc/plugins.texi (plugin_name_args): Added to documention.
21024
1ea9fe56
MM
210252009-05-21 Mark Mitchell <mark@codesourcery.com>
21026
21027 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
21028 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
21029
52f84254
SZ
210302009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
21031
21032 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
21033 JUMP_TABLE_DATA_P predicates where applicable.
21034 * config/i386/predicates.md: Ditto.
21035 * config/i386/sse.md: Ditto.
21036
a952487c
JJ
210372009-05-21 Jakub Jelinek <jakub@redhat.com>
21038
93cac287
JJ
21039 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
21040 operand2 -128 override length_immediate attribute to 1.
21041 * config/i386/predicates.md (constm128_operand): New predicate.
21042
a952487c
JJ
21043 * config/i386/i386.c (memory_address_length): Handle %r12
21044 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
21045 also check REGNO.
21046 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
21047 mode look through optional ZERO_EXTEND and SUBREG.
21048 * config/i386/i386.md (R12_REG): New define_constant.
21049 (prefix_data16): For sse unit set also for MODE_TI insns.
21050 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
21051 insns set if operand 1 is ext_QIreg_operand.
21052 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
21053 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
21054 immediate.
21055 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
21056 mode from MODE_DI to MODE_SI.
21057 (movdi_1_rex64): Override modrm and length_immediate attributes
21058 only for movabs (TYPE_IMOV, alternative 2).
21059 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
21060 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
21061 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
21062 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
21063 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
21064 prefix_rex attribute if DImode.
21065 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
21066 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
21067 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
21068 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
21069 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
21070 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
21071 Likewise. For TYPE_IMOV clear length_immediate attribute.
21072 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
21073 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
21074 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
21075 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
21076 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
21077 or one operand TYPE_ISHIFT.
21078 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
21079 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
21080 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
21081 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
21082 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
21083 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
21084 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
21085 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
21086 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
21087 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
21088 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
21089 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
21090 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
21091 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
21092 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
21093 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
21094 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
21095 set mode attribute, don't override length attribute.
21096 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
21097 to 1.
21098 (return_internal_long): Set length attribute to 2 instead of 1.
21099 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
21100 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
21101 prefix_rex attribute.
782dc37a
UB
21102 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
21103 New predicates.
21104 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
a952487c 21105
64af62c2
RR
211062009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21107
21108 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
21109
c166b898
ILT
211102009-05-20 Ian Lance Taylor <iant@google.com>
21111
21112 * tree.c (build_tree_list_vec_stat): New function.
21113 (ctor_to_vec): New function.
21114 (build_nt_call_vec): New function.
21115 (build_call_array): Change args to be a const pointer.
21116 (build_call_vec): New function.
21117 * tree.h (build_nt_call_vec): Declare.
21118 (build_tree_list_vec_stat): Declare.
21119 (build_tree_list_vec): Define.
21120 (build_call_array): Update declaration.
21121 (build_call_vec): Declare.
21122 (ctor_to_vec): Declare.
21123 * c-common.c (tree_vector_cache): New static variable.
21124 (make_tree_vector): New function.
21125 (release_tree_vector): New function.
21126 (make_tree_vector_single): New function.
21127 (make_tree_vector_copy): New function.
21128 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
21129 (make_tree_vector_single, make_tree_vector_copy): Declare.
21130 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
21131 (c_parser_expr_list): Don't manage cache here, instead call
21132 make_tree_vector.
21133 (c_parser_release_expr_list): Remove static function.
21134 (c_parser_vec_to_tree_list): Remove static function.
21135 (c_parser_attributes): Call build_tree_list_vec instead of
21136 c_parser_vec_to_tree_list. Call release_tree_vector instead of
21137 c_parser_release_expr_list.
21138 (c_parser_postfix_expression_after_primary): Likewise.
21139 (c_parser_objc_keywordexpr): Likewise.
21140
40449a90
SL
211412009-05-20 Sandra Loosemore <sandra@codesourcery.com>
21142
21143 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
21144 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
21145 TARGET_CONVERT_TO_TYPE.
21146 * hooks.c (hook_tree_const_tree_null): Define.
21147 * hooks.h (hook_tree_const_tree_null): Declare.
21148 * target.h (struct gcc_target): Add invalid_parameter_type,
21149 invalid_return_type, promoted_type, and convert_to_type fields.
bd62d832 21150 * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define.
40449a90
SL
21151 (TARGET_INVALID_RETURN_TYPE): Define.
21152 (TARGET_PROMOTED_TYPE): Define.
21153 (TARGET_CONVERT_TO_TYPE): Define.
21154 (TARGET_INITIALIZER): Update for new fields.
21155 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
21156 (grokparms): Check targetm.invalid_parameter_type.
21157 * c-typeck.c (default_conversion): Check targetm.promoted_type.
21158 * c-convert.c (convert): Check targetm.convert_to_type.
21159
642d97ff
AN
211602009-05-20 Adam Nemet <anemet@caviumnetworks.com>
21161
21162 * config/mips/mips.md (*extenddi_truncate<mode>,
21163 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
21164 defintions.
21165 (*extendhi_truncateqi): New define_insn_and_sptit.
21166
776248b8
JJ
211672009-05-20 Jakub Jelinek <jakub@redhat.com>
21168
21169 PR middle-end/40204
21170 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
782dc37a 21171 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
776248b8 21172
d98e8686
EB
211732009-05-20 Eric Botcazou <ebotcazou@adacore.com>
21174
21175 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
21176 the operand of VIEW_CONVERT_EXPR.
21177
37c50435
L
211782009-05-20 H.J. Lu <hongjiu.lu@intel.com>
21179
21180 * config/i386/driver-i386.c (host_detect_local_cpu): Check
f3afc8a7 21181 extended family and model for Intel processors. Support Intel Atom.
37c50435 21182
dbb6088f
OH
211832009-05-20 Olivier Hainque <hainque@adacore.com>
21184
21185 * gstab.h (stab_code_type): Define, to be used instead of the
21186 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
21187 notice.
21188 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
21189 occurrences by stab_code_type.
21190 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
21191
7ec49257
MJ
211922009-05-20 Martin Jambor <mjambor@suse.cz>
21193
21194 * tree-flow.h (insert_edge_copies_seq): Undeclare.
21195 (sra_insert_before): Likewise.
21196 (sra_insert_after): Likewise.
21197 (sra_init_cache): Likewise.
21198 (sra_type_can_be_decomposed_p): Likewise.
21199 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
21200 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
21201 (sra_insert_before): Likewise.
21202 (sra_insert_after): Likewise.
21203 (sra_init_cache): Likewise.
21204 (insert_edge_copies_seq): Made static and moved upwards.
21205
21206 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
21207 case.
21208
21209 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
21210
21211 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
21212 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
21213 simple copies.
21214
0328ae4d
RG
212152009-05-20 Richard Guenther <rguenther@suse.de>
21216
21217 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
21218 with mismatched comparison modes.
21219
a7994a57 212202009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
782dc37a 21221
a7994a57 21222 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
782dc37a
UB
21223 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
21224 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
21225 with shifts for Thumb2.
21226 (orsi_notsi): New for orn.
21227 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
21228 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
21229 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
21230 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
21231 Don't invert remainder for IOR.
f100a4a8 21232
e36dc339
ZD
212332009-05-19 Zdenek Dvorak <ook@ucw.cz>
21234
21235 PR tree-optimization/40087
21236 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
21237 number_of_iterations_ne): Rename never_infinite argument.
21238 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
21239 number_of_iterations_le): Handle pointer-type ivs when
21240 exit_must_be_taken is false.
21241 (number_of_iterations_cond): Do not always assume that
21242 exit_must_be_taken if the control variable is a pointer.
21243
5cfd5d9b
AP
212442009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
21245
21246 * c-typeck.c (build_binary_op): Allow % on integal vectors.
21247 * doc/extend.texi (Vector Extension): Document that % is allowed too.
21248
2f1c7156
L
212492009-05-19 H.J. Lu <hongjiu.lu@intel.com>
21250
21251 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
21252 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
21253
7bb27074
MLI
212542009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
21255
21256 PR c/40172
21257 * c.opt (Wlogical-op): Disabled by default.
21258 * c-opt (c_common_post_options): Do not enable Wlogical-op with
21259 Wextra.
21260 * doc/invoke.texi (Wlogical-op): Likewise.
f100a4a8 21261
5aefc6a0
EB
212622009-05-19 Eric Botcazou <ebotcazou@adacore.com>
21263
21264 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
21265 into CASE_CONVERT.
21266 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
21267 Propagate the type of the first operand.
21268 <ASSERT_EXPR>: Simplify.
21269 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
21270 Rewrite using the RHS code as discriminant.
21271 <NOP_EXPR>: Turn into CASE_CONVERT.
21272 <PLUS_EXPR>: Propagate the type of the first operand.
21273
f3a83111
SE
212742009-05-19 Steve Ellcey <sje@cup.hp.com>
21275
21276 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
21277 (ia64_dconst_0_375): New.
21278 * config/ia64/ia64.c (ia64_override_options): Remove
21279 -minline-sqrt-min-latency warning.
21280 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
21281 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
21282 * config/ia64/ia64.md (*sqrt_approx): Remove.
21283 (sqrtsf2): Remove #if 0.
21284 (sqrtsf2_internal_thr): Rewrite and move to div.md.
21285 (sqrtdf): Remove assert.
21286 (sqrtdf2_internal_thr): Rewrite and move to div.md.
21287 (sqrtxf2): Remove #if 0.
21288 (sqrtxf2_internal_thr): Rewrite and move to div.md.
21289 * div.md (sqrt_approx_rf): New.
21290 (sqrtsf2_internal_thr): New implementation.
21291 (sqrtsf2_internal_lat): New.
21292 (sqrtdf2_internal_thr: New implementation.
21293 (sqrtxf2_internal): New implementation.
21294
1ffc7157
FXC
212952009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
21296 Hans-Peter Nilsson <hp@axis.com>
21297
21298 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
21299 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
21300 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
21301 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
21302 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
21303 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
21304 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
21305 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
21306 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
21307 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
21308 * c-common.c: ...from here.
21309
db91d9ef
MLI
213102009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
21311
f3afc8a7 21312 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
db91d9ef 21313
bbb9d91f
KG
213142009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21315
21316 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
21317
ce883f54
BE
213182009-05-19 Ben Elliston <bje@au.ibm.com>
21319
21320 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
21321 assignments with memcpy calls.
21322 (add_fdes): Likewise.
21323 (binary_search_unencoded_fdes): Likewise.
21324 (linear_search_fdes): Eliminate type puns.
f100a4a8 21325
377f099a
RG
213262009-05-19 Richard Guenther <rguenther@suse.de>
21327
21328 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
21329 not falsely claim to have propagated into all uses.
21330
848bc769
BE
213312009-05-19 Ben Elliston <bje@au.ibm.com>
21332
21333 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
21334 version to v3.0.
21335
1bb99877
KK
213362009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
21337
21338 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
21339 * config/sh/sh.c (sh_legitimate_address_p): Make static.
21340 (TARGET_LEGITIMATE_ADDRESS_P): New.
21341 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21342 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
f100a4a8 21343
82725547
DS
213442009-05-18 Dodji Seketeli <dodji@redhat.com>
21345
21346 PR debug/40109
21347 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
21348 child of the containing namespace's DIE.
21349
f6a1e430
AN
213502009-05-18 Adam Nemet <anemet@caviumnetworks.com>
21351
21352 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
21353 *zero_extendhi_truncqi): Move after the zero_extend patterns.
21354 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
21355 extend patterns.
21356
6a90d232
L
213572009-05-18 H.J. Lu <hongjiu.lu@intel.com>
21358
21359 PR target/39942
21360 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
21361 gen_align with gen_pad.
21362 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
21363 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
21364
21365 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
21366 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
21367
21368 * config/i386/i386.md (align): Renamed to ...
21369 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
21370 ASM_OUTPUT_MAX_SKIP_PAD.
21371
c4406f74
AS
213722009-05-18 Andreas Schwab <schwab@linux-m68k.org>
21373
06555043
AS
21374 * config.gcc: Fix variable syntax.
21375
c4406f74
AS
21376 PR target/39531
21377 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
21378 before calling exact_log2.
21379 (output_iorsi3): Likewise.
21380 (output_xorsi3): Likewise.
21381
99052692
KK
213822009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
21383
21384 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
21385 for the none zero constant operand except for EQ and NE
21386 comprisons even when the first operand is R0.
21387
f4aa3848
AK
213882009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
21389
21390 * config/s390/2064.md: Remove trailing whitespaces.
21391 * config/s390/2084.md: Likewise.
21392 * config/s390/constraints.md: Likewise.
21393 * config/s390/fixdfdi.h: Likewise.
21394 * config/s390/libgcc-glibc.ver: Likewise.
21395 * config/s390/s390-modes.def: Likewise.
21396 * config/s390/s390-protos.h: Likewise.
21397 * config/s390/s390.c: Likewise.
21398 * config/s390/s390.h: Likewise.
21399 * config/s390/s390.md: Likewise.
21400 * config/s390/tpf-unwind.h: Likewise.
21401
ab7256e4
MK
214022009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
21403
21404 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
21405
75df395f
MK
214062009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
21407
21408 M68K TLS support.
21409 * configure.ac (m68k-*-*): Check if binutils support TLS.
21410 * configure: Regenerate.
21411 * config/m68k/predicates.md (symbolic_operand): Extend comment.
21412 * config/m68k/constraints.md (Cu): New constraint.
21413 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
21414 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
21415 (movsi): Handle TLS symbols.
21416 (addsi3_5200): Handle XTLS symbols, indent.
21417 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
21418 (m68k_tls_reference_p): Declare.
21419 (m68k_legitimize_address): Declare.
21420 (m68k_unwrap_symbol): Declare.
21421 * config/m68k/m68k.opt (mxtls): New option.
21422 * config/m68k/m68k.c (ggc.h): Include.
21423 (m68k_output_dwarf_dtprel): Implement hook.
21424 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
21425 (m68k_expand_prologue): Load GOT pointer when function needs it.
21426 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
21427 (m68k_legitimate_constant_address_p): Same.
21428 (m68k_decompose_address): Handle TLS references.
21429 (m68k_get_gp): New static function.
21430 (enum m68k_reloc): New contants.
21431 (TLS_RELOC_P): New macro.
21432 (m68k_wrap_symbol): New static function.
21433 (m68k_unwrap_symbol): New function.
21434 (m68k_final_prescan_insn_1): New static function.
21435 (m68k_final_prescan_insn): New function.
21436 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
21437 functions.
21438 (legitimize_pic_address): Handle TLS references..
21439 (m68k_tls_get_addr, m68k_get_tls_get_addr)
21440 (m68k_libcall_value_in_a0_p)
21441 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
21442 (m68k_call_m68k_read_tp): Helper variables and functions for ...
21443 (m68k_legitimize_tls_address): Handle TLS references.
21444 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
21445 New functions.
21446 (m68k_legitimize_address): Handle TLS symbols.
21447 (m68k_get_reloc_decoration): New static function.
21448 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
21449 UNSPEC_RELOC32.
21450 (m68k_output_dwarf_dtprel): Implement hook.
21451 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
21452 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
21453 m68k_call_* routines.
21454 (sched_attr_op_type): Handle TLS symbols.
21455 (gt-m68k.h): Include.
21456 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
21457 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
21458
8b75fc9b
MJ
214592009-05-18 Martin Jambor <mjambor@suse.cz>
21460
21461 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
21462 (visit_store_addr_for_mod_analysis): New function.
21463 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
21464 (determine_cst_member_ptr): Use gimple_assign_single_p.
21465 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
21466 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
21467 operands. Don't check number of operands of a NOP_EXPR.
21468
f133d4a2
EF
214692009-05-18 Eric Fisher <joefoxreal@gmail.com>
21470
21471 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
21472
ae8af500
L
214732009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
21474
21475 PR c/40172
21476 * c-common.c (warn_logical_operator): Don't warn if one of
21477 expression isn't always true or false.
21478
25e8fde8
KT
214792009-05-17 Kai Tietz <kai.tietz@onevision.com>
21480
ae8af500
L
21481 * config/i386/biarch32.h: New file.
21482 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
25e8fde8 21483
ef67af22
AN
214842009-05-17 Adam Nemet <anemet@caviumnetworks.com>
21485
21486 * config/mips/mips.md (*zero_extend<mode>_trunchi,
21487 *zero_extend<mode>_truncqi): Merge these into ...
21488 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
21489 Name the pattern following this as *zero_extendhi_truncqi.
21490
e2d87023
BL
214912009-05-16 Brad Lucier <lucier@math.purdue.edu>
21492
21493 PR middle-end/39301
21494 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
21495 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
21496 (output_info): Make field HOST_WIDEST_INT.
21497 (print_statistics): Use HOST_WIDEST_INT_PRINT.
21498 (dump_bitmat_statistics): Same.
21499
428ddbf0
FXC
215002009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
21501
21502 * config.gcc (use_gcc_stdint): Set to wrap.
21503 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
21504 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
21505 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21506 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
21507 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
21508 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
21509 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21510 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
21511
1ab8a8c2
JM
215122009-05-16 Joseph Myers <joseph@codesourcery.com>
21513
21514 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
21515 tune_64.
21516 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
21517 Move definitions earlier.
21518 (OPT_ARCH64, OPT_ARCH32): Define.
21519 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
21520 and tune_64.
21521
70544f44
RE
215222009-05-16 Richard Earnshaw <rearnsha@arm.com>
21523
21524 PR target/40153
21525 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
21526 implies.
21527
6241ded1
RE
215282009-05-16 Richard Earnshaw <rearnsha@arm.com>
21529
21530 * arm.md (movdi2): Copy non-reg values to DImode registers.
21531
a99c6711
JJ
215322009-05-16 Jakub Jelinek <jakub@redhat.com>
21533
40a8f07a
JJ
21534 PR target/39942
21535 * final.c (label_to_max_skip): New function.
21536 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
21537 CODE_LABEL_NUMBER <= max_labelno.
21538 * output.h (label_to_max_skip): New prototype.
21539 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
21540 (ix86_avoid_jump_mispredicts): ... this. Don't define if
21541 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
21542 Handle CODE_LABELs with >= 16 byte alignment or with
21543 max_skip == (1 << align) - 1.
21544 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
21545 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
21546
a99c6711
JJ
21547 PR target/39942
21548 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
21549 .p2align 3 if MAX_SKIP is smaller than 7.
21550 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
21551
7e5487a2
ILT
215522009-05-15 Ian Lance Taylor <iant@google.com>
21553
21554 * alias.c (struct alias_set_entry_d): Rename from struct
21555 alias_set_entry. Change all uses.
21556 * except.c (struct call_site_record_d): Rename from struct
21557 call_site_record. Change all uses.
21558 * except.h (struct eh_region_d): Rename from struct eh_region.
21559 Change all uses.
21560 * gcse.c (struct hash_table_d): Rename from struct hash_table.
21561 Change all uses.
21562 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
21563 ivtype_map_elt. Change all uses.
21564 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
21565 Change all uses.
21566 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
21567 * graphite.h (struct name_tree_d): Rename from struct name_tree.
21568 Change all uses.
21569 (struct sese_d): Rename from struct sese. Change all uses.
782dc37a
UB
21570 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
21571 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
7e5487a2
ILT
21572 * optabs.h (struct optab_d): Rename from struct optab. Change all
21573 uses.
21574 (struct convert_optab_d): Rename from struct convert_optab.
21575 Change all uses.
21576 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
21577 ipa_opt_pass. Change all uses.
21578 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
21579 all uses.
21580
21581 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
21582 defined as a typedef.
21583 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
21584 defined as a tag.
21585
a243fb4a
MLI
215862009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
21587
21588 PR 16302
21589 * fold-const.c (make_range,build_range_check,merge_ranges): Move
21590 declaration to...
f100a4a8 21591 (merge_ranges): Returns bool.
a243fb4a
MLI
21592 * tree.h (make_range): .. to here.
21593 (build_range_check): Likewise.
21594 (merge_ranges): Likewise. Renamed from merge_ranges.
21595 * c-typeck.c (parser_build_binary_op): Update calls to
21596 warn_logical_operator.
21597 * c-common.c (warn_logical_operator): Add new warning.
21598 * c-common.h (warn_logical_operator): Update declaration.
f100a4a8 21599
1b53c5f3
MLI
216002009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
21601
782dc37a 21602 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
f100a4a8 21603
c128599a
KG
216042009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21605
f9bab007
KG
21606 * doc/install.texi: Document MPC requirements, flags etc.
21607
c128599a
KG
21608 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
21609 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
21610 Evaluate constant arguments.
21611 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
21612 (fold_builtin_1): Likewise, also evaluate constant arguments.
21613 Remove superfluous break.
21614 (do_mpc_ckconv): New.
21615 * real.h: Include mpc.h.
21616 * toplev.c (print_version): Output MPC version info if available.
21617
d33e4b70
SL
216182009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21619
782dc37a 21620 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
d33e4b70 21621
a02ab464
L
216222009-05-15 H.J. Lu <hongjiu.lu@intel.com>
21623
21624 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
21625 only once.
21626
796bda22
JH
216272009-05-15 Jan Hubicka <jh@suse.cz>
21628
21629 * doc/invoke.texi (max-early-inliner-iterations): New flag.
21630 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
21631 (try_inline): Fix return value.
21632 (cgraph_decide_inlining_incrementally): Honor new value.
21633 (cgraph_early_inlining): Handle indirect inlining.
21634 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
21635
d88e5c37
JH
216362009-05-15 Jan Hubicka <jh@suse.cz>
21637
21638 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
21639 * cgraphunit.c (cgraph_finalize_function): Set it.
21640 (cgraph_expand_function): Use it.
21641
ae63687c
SL
216422009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21643
21644 * real.c (encode_ieee_half): Define.
21645 (decode_ieee_half): Define.
21646 (ieee_half_format): Define.
21647 (arm_half_format): Define.
21648 * real.h (ieee_half_format): Declare.
21649 (arm_half_format): Declare.
21650
1bd74ad9
SL
216512009-05-15 Sandra Loosemore <sandra@codesourcery.com>
21652
21653 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
21654 swapped, and reversed optabs exist before trying to use them.
21655
dc34db56
PB
216562009-05-15 Paul Brook <paul@codesourcery.com>
21657 Sandra Loosemore <sandra@codesourcery.com>
21658
dc34db56
PB
21659 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
21660 loads. Allow PRE_DEC.
21661 (output_move_neon): Handle PRE_DEC.
21662 (arm_print_operand): Add 'A' for neon structure loads.
21663 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
21664 * config/arm/neon.md (neon_mov): Update comment.
21665 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
21666 calls.
21667 (Um): New constraint.
21668
1d405d7b
JH
216692009-05-15 Jan Hubicka <jh@suse.cz>
21670
21671 Revert the following patch until testsuite fallout is fixed:
21672 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21673 * cgraph.h (struct inline_summary): New filed self_wize,
21674 size_inlining_benefit, self_time and time_inlining_benefit.
21675 (struct cgraph_global_info): Replace insns by time ans size fields.
21676 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
21677 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
21678 (ipcp_update_callgraph): Do not touch function bodies.
21679 * ipa-inline.c: Include except.h
782dc37a 21680 (MAX_TIME): New constant.
1d405d7b
JH
21681 (overall_insns): Remove
21682 (overall_size, max_benefit): New static variables.
21683 (cgraph_estimate_time_after_inlining): New function.
21684 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
21685 (cgraph_clone_inlined_nodes): Update size.
21686 (cgraph_mark_inline_edge): Update size.
21687 (cgraph_estimate_growth): Use size info.
21688 (cgraph_check_inline_limits): Check size.
21689 (cgraph_default_inline_p): Likewise.
21690 (cgraph_edge_badness): Compute badness based on benefit and size cost.
21691 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
21692 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
21693 and times.
1d405d7b 21694 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
21695 (cgraph_decide_inlining_incrementally): Likewise; honor
21696 PARAM_EARLY_INLINING_INSNS.
1d405d7b
JH
21697 (likely_eliminated_by_inlining_p): New predicate.
21698 (estimate_function_body_sizes): New function.
21699 (compute_inline_parameters): Use it.
21700 * except.c (must_not_throw_labels): New function.
21701 * except.h (must_not_throw_labels): Declare.
21702 * tree-inline.c (init_inline_once): Kill inlining_weigths
21703 * tree-ssa-structalias.c: Avoid uninitialized warning.
21704 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
21705 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
21706 (PARAM_INLINE_CALL_COST): Remove.
21707 (PARAM_EARLY_INLINING_INSNS): New.
21708
7ffa47ca
RG
217092009-05-15 Richard Guenther <rguenther@suse.de>
21710
21711 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
21712 not TODO_update_ssa.
21713
828552ed
RG
217142009-05-15 Richard Guenther <rguenther@suse.de>
21715
21716 PR tree-optimization/39999
21717 * gimple.h (gimple_expr_type): Use the expression type looking
21718 through useless conversions.
21719 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
21720 (vn_nary_op_insert_stmt): Likewise.
21721 (simplify_binary_expression): Likewise.
21722
248fc9f3
RG
217232009-05-15 Richard Guenther <rguenther@suse.de>
21724
21725 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
21726 New options, enabled by default.
21727 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
21728 Document.
21729 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
21730 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
21731 * tree-ssa-structalias.c (gate_tree_pta): New function.
21732 (pass_build_alias): Use it.
21733
16b29cc4
JM
217342009-05-15 Joseph Myers <joseph@codesourcery.com>
21735
21736 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
21737 recurse on an invariant address if a conversion from a pointer
21738 type to a wider integer type is involved.
21739
125cae84
JH
217402009-05-15 Jan Hubicka <jh@suse.cz>
21741
21742 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
21743 * cgraph.h (struct inline_summary): New filed self_wize,
21744 size_inlining_benefit, self_time and time_inlining_benefit.
21745 (struct cgraph_global_info): Replace insns by time ans size fields.
21746 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
21747 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
21748 (ipcp_update_callgraph): Do not touch function bodies.
21749 * ipa-inline.c: Include except.h
782dc37a 21750 (MAX_TIME): New constant.
125cae84
JH
21751 (overall_insns): Remove
21752 (overall_size, max_benefit): New static variables.
21753 (cgraph_estimate_time_after_inlining): New function.
21754 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
21755 (cgraph_clone_inlined_nodes): Update size.
21756 (cgraph_mark_inline_edge): Update size.
21757 (cgraph_estimate_growth): Use size info.
21758 (cgraph_check_inline_limits): Check size.
21759 (cgraph_default_inline_p): Likewise.
21760 (cgraph_edge_badness): Compute badness based on benefit and size cost.
21761 (cgraph_decide_recursive_inlining): Check size.
f3afc8a7
UB
21762 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
21763 and times.
125cae84 21764 (cgraph_decide_inlining): Likewise.
00c5fa1b
EB
21765 (cgraph_decide_inlining_incrementally): Likewise; honor
21766 PARAM_EARLY_INLINING_INSNS.
125cae84
JH
21767 (likely_eliminated_by_inlining_p): New predicate.
21768 (estimate_function_body_sizes): New function.
21769 (compute_inline_parameters): Use it.
21770 * except.c (must_not_throw_labels): New function.
21771 * except.h (must_not_throw_labels): Declare.
21772 * tree-inline.c (init_inline_once): Kill inlining_weigths
21773 * tree-ssa-structalias.c: Avoid uninitialized warning.
21774 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
21775 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
21776 (PARAM_INLINE_CALL_COST): Remove.
21777 (PARAM_EARLY_INLINING_INSNS): New.
21778 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
21779 (inline-call-cost): Remove.
21780 (early-inlining-insns): New.
21781
84fb43a1
EB
217822009-05-15 Eric Botcazou <ebotcazou@adacore.com>
21783
21784 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
21785 for bounds.
21786 (print_int_cst_bounds_in_octal_p): Likewise.
21787 (dbxout_type): Adjust calls to above functions. Be prepared to deal
21788 with subtypes.
21789 * dwarf2out.c (base_type_die): Likewise.
21790 (is_subrange_type): Delete.
21791 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
21792 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
f3afc8a7
UB
21793 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
21794 if the destination type is boolean.
84fb43a1
EB
21795 (build_range_check): Do not special-case subtypes.
21796 (fold_sign_changed_comparison): Likewise.
21797 (fold_unary): Likewise.
21798 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
21799 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
21800 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
f3afc8a7
UB
21801 * tree.c (subrange_type_for_debug_p): New predicate based on the
21802 former is_subrange_type.
84fb43a1
EB
21803 * tree.h (subrange_type_for_debug_p): Declare.
21804 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
21805 (convert_affine_scev): Remove call to above function.
21806 (chrec_convert_aggressive): Likewise.
21807 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
21808 false for conversions involving subtypes.
21809 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
21810 (vrp_val_min): Likewise.
21811 (needs_overflow_infinity): Likewise.
21812 (extract_range_from_unary_expr): Likewise.
21813
331d9186
PB
218142009-05-15 Paolo Bonzini <bonzini@gnu.org>
21815
e9351712
L
21816 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
21817 * config/frv/frv.c: Likewise.
21818 * config/s390/s390.c: Likewise.
21819 * config/sparc/sparc.h: Likewise.
21820 * config/i386/i386.h: Likewise.
21821 * config/i386/i386.c: Likewise.
21822 * config/crx/crx.c: Likewise.
21823 * config/m68hc11/m68hc11.h: Likewise.
21824 * config/iq2000/iq2000.c: Likewise.
21825 * config/mn10300/mn10300.h: Likewise.
21826 * config/mn10300/mn10300.c: Likewise.
21827 * config/m68k/m68k.c: Likewise.
21828 * config/rs6000/rs6000.c: Likewise.
21829 * config/rs6000/xcoff.h: Likewise.
21830 * config/rs6000/linux64.h: Likewise.
21831 * config/rs6000/sysv4.h: Likewise.
21832 * config/score/score3.c: Likewise.
21833 * config/score/score7.c: Likewise.
21834 * config/score/score.c: Likewise.
21835 * config/arm/arm.md: Likewise.
21836 * config/mips/mips.c: Likewise.
21837 * config/mips/mips.md: Likewise.
21838 * config/bfin/bfin.h: Likewise.
21839 * config/pa/pa.c: Likewise.
21840 * config/pa/constraints.md: Likewise.
21841
21842 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
21843 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
21844 * config/pdp11/pdp11.h: Use memory_address_p instead.
331d9186 21845
09639a83
ILT
218462009-05-14 Ian Lance Taylor <iant@google.com>
21847
21848 * passes.c (finish_optimization_passes): Change i to int.
21849 * plugin.c (plugins_active_p): Change event to int.
21850 (dump_active_plugins): Likewise.
21851 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
21852 Add cast.
21853 * tree.c (tree_range_check_failed): Change c to unsigned int.
21854 (omp_clause_range_check_failed): Likewise.
21855 (build_common_builtin_nodes): Change mode to int. Add cast.
21856 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
21857 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
21858
21859 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
21860 ++ or -- with a variable of enum type.
21861
c04a56bf
SB
218622009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21863
21864 PR driver/40144
21865 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
21866
237ee620
SB
218672009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21868
21869 * store-motion.c: Do not include params.h
21870 * Makefile.in: Fix dependencies for various files.
21871
1154c4fa
SB
218722009-05-14 Steven Bosscher <steven@gcc.gnu.org>
21873
21874 * auto-inc-dec.c: Fix pass description, remove apparent
21875 accidental duplication.
21876
61c27353
L
218772009-05-14 H.J. Lu <hongjiu.lu@intel.com>
21878
21879 PR middle-end/40147
21880 * ipa-utils.h (memory_identifier_string): Moved to ...
21881 * tree.h (memory_identifier_string): Here. Add GTY(()).
21882
c6c3dba9
PB
218832009-05-14 Paolo Bonzini <bonzini@gnu.org>
21884
21885 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
21886 in the former documentation of...
21887 (GO_IF_LEGITIMATE_ADDRESS): ... this.
21888 * ira-conflicts.c (get_dup_num): Use address_operand.
21889 * targhooks.c (default_legitimate_address_p): New.
21890 * targhooks.h (default_legitimate_address_p): New.
21891 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
21892 Call hook.
21893 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
21894 * target.h (struct target): Add legitimate_address_p.
21895 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
21896 (TARGET_INITIALIZER): Include it.
21897
21898 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21899 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
21900 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
21901 (TARGET_LEGITIMATE_ADDRESS_P): New.
21902
21903 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21904 (REG_OK_STRICT_P): Delete.
21905 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
21906 (frv_legitimate_address_p_1): ... this.
21907 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
21908 (frv_legitimate_address_p_1): ... the renamed old
21909 frv_legitimate_address_p.
21910 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
21911 (TARGET_LEGITIMATE_ADDRESS_P): New.
21912
21913 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21914 * config/s390/s390-protos.h (legitimate_address_p): Remove.
21915 * config/s390/s390.c (legitimate_address_p): Rename to...
21916 (s390_legitimate_address_p): ... this, make static.
21917 (legitimize_address): Adjust call.
21918 (TARGET_LEGITIMATE_ADDRESS_P): New.
21919 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
21920
21921 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21922 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
21923 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
21924 (TARGET_LEGITIMATE_ADDRESS_P): New.
21925
21926 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21927 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
21928 * config/spu/spu.c (spu_legitimate_address): Rename to...
21929 (spu_legitimate_address_p): ... this, make static.
21930 (TARGET_LEGITIMATE_ADDRESS_P): New.
21931
21932 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21933 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
21934 * config/sparc/sparc.c (legitimate_address_p): Rename to...
21935 (sparc_legitimate_address_p): ... this, make static and return bool.
21936 (legitimize_address): Adjust call.
21937 (TARGET_LEGITIMATE_ADDRESS_P): New.
21938
21939 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21940 * config/i386/i386-protos.h (legitimate_address_p): Remove.
21941 * config/i386/i386.c (legitimate_address_p): Rename to...
21942 (ix86_legitimate_address_p): ... this, make static.
21943 (constant_address_p): Move after it, adjust call.
21944 (TARGET_LEGITIMATE_ADDRESS_P): New.
21945
21946 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21947 * config/avr/avr-protos.h (legitimate_address_p): Remove.
21948 * config/avr/avr.c (legitimate_address_p): Rename to...
21949 (avr_legitimate_address_p): ... this, make static.
21950 (legitimize_address): Adjust call.
21951 (TARGET_LEGITIMATE_ADDRESS_P): New.
21952
21953 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21954 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
21955 * config/crx/crx.c (crx_legitimate_address_p): Make static.
21956 (TARGET_LEGITIMATE_ADDRESS_P): New.
21957
21958 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21959 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
21960 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
21961 (TARGET_LEGITIMATE_ADDRESS_P): New.
21962
21963 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21964 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
21965 Remove.
21966 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
21967 Make static.
21968 (TARGET_LEGITIMATE_ADDRESS_P): New.
21969
21970 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21971 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
21972 Remove.
21973 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
21974 Rename to...
21975 (m68hc11_legitimate_address_p): ... this, make static.
21976 (go_if_legitimate_address_internal): Rename to...
21977 (m68hc11_legitimate_address_p_1): ... this.
21978 (legitimize_address): Adjust call.
21979 (TARGET_LEGITIMATE_ADDRESS_P): New.
21980
21981 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782dc37a
UB
21982 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
21983 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
c6c3dba9
PB
21984 (TARGET_LEGITIMATE_ADDRESS_P): New.
21985
21986 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21987 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
21988 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
21989 (mn10300_legitimate_address_p): ... this, make static.
21990 (TARGET_LEGITIMATE_ADDRESS_P): New.
21991
21992 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21993 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
21994 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
21995 (TARGET_LEGITIMATE_ADDRESS_P): New.
21996
21997 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
21998 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
21999 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
22000 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22001 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
22002 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
22003 (rs6000_legitimate_address_p): ... this, make static.
22004 (TARGET_LEGITIMATE_ADDRESS_P): New.
22005 (REG_MODE_OK_FOR_BASE_P): Delete.
22006 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
22007
22008 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22009 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
22010 Delete.
22011 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
22012 static, adjust types.
22013 (TARGET_LEGITIMATE_ADDRESS_P): New.
22014
22015 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22016 * config/score/score.c (score_address_p): Rename to...
22017 (score_legitimate_address_p): ... this.
22018 (TARGET_LEGITIMATE_ADDRESS_P): New.
22019 * config/score/score3.c (score3_address_p): Rename to...
22020 (score3_legitimate_address_p): ... this.
22021 * config/score/score7.c (score7_address_p): Rename to...
22022 (score7_legitimate_address_p): ... this.
22023
22024 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
22025 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
22026 GO_IF_LEGITIMATE_ADDRESS): Delete.
22027 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
22028 thumb2_legitimate_address_p): Delete.
22029 (arm_legitimate_address_p): Rename to...
22030 (arm_legitimate_address_outer_p): ... this.
22031 * config/arm/constraints.md ("Uq"): Adjust call.
22032 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
f3afc8a7
UB
22033 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
22034 to...
c6c3dba9 22035 (arm_legitimate_address_outer_p): ... this.
f3afc8a7
UB
22036 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
22037 static.
c6c3dba9
PB
22038 (TARGET_LEGITIMATE_ADDRESS_P): New.
22039
22040 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22041 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
22042 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
22043 (TARGET_LEGITIMATE_ADDRESS_P): New.
22044
22045 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22046 * config/vax/vax-protos.h (legitimate_address_p): Remove.
22047 * config/vax/vax.c (legitimate_address_p): Rename to...
22048 (vax_legitimate_address_p): ... this, make static.
22049 (TARGET_LEGITIMATE_ADDRESS_P): New.
22050
22051 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22052 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
22053 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
22054 (TARGET_LEGITIMATE_ADDRESS_P): New.
22055
22056 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22057 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
22058 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
22059 (mmix_legitimate_address_p): ... this, make static.
22060 (TARGET_LEGITIMATE_ADDRESS_P): New.
22061
22062 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
22063 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
22064 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
22065 (TARGET_LEGITIMATE_ADDRESS_P): New.
22066
3bd0d9c8
PB
220672009-05-14 Paolo Bonzini <bonzini@gnu.org>
22068
22069 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
22070 of MODE_COMPLEX_INT.
22071
fe049033
RO
220722009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
22073
22074 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
22075 LCT_NORMAL in function call.
22076 * mips-tdump.c (print_file_desc): Add cast to enum type.
22077 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
22078 (mark_stabs): Add casts to enum types.
22079 (parse_stabs_common): Add casts to enum types.
16f7ad42 22080
b0907a6c
AN
220812009-05-13 Adam Nemet <anemet@caviumnetworks.com>
22082
22083 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
22084 Check for invalid values of LETTER.
22085
d1c8e08a
TG
220862009-05-13 Taras Glek <tglek@mozilla.com>
22087
f3afc8a7
UB
22088 * attribs.c (register_attribute): moved out attribute registration
22089 into register_attribute.
22090 * doc/plugins.texi: Documented register_attribute and
22091 PLUGIN_ATTRIBUTES.
16f7ad42
TG
22092 * gcc-plugin.h: Added forward decl for register_attribute.
22093 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
22094 * plugin.c (register_callback, invoke_plugin_callbacks): Added
22095 PLUGIN_ATTRIBUTES boilerplate.
d1c8e08a 22096
4ed7f970
DK
220972009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
22098
22099 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
22100 values even in sentinel and empty entries.
22101 (ms_printf_flag_specs): Likewise.
22102 (ms_scanf_flag_specs): Likewise.
22103 (ms_strftime_flag_specs): Likewise.
22104 (ms_print_char_table): Likewise.
22105 (ms_scan_char_table): Likewise.
22106 (ms_time_char_table): Likewise.
22107
3d8fa148
DK
221082009-05-13 Doug Kwan <dougkwan@google.com>
22109
22110 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
22111
f06257d3
AN
221122009-05-13 Adam Nemet <anemet@caviumnetworks.com>
22113
22114 * config/mips/mips.md (store): Add attributes for QI and HI.
22115 Update comment.
22116 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
22117 (truncdi<mode>2): ... this new pattern.
22118
fb201767
BH
221192009-05-13 Brad Hards <bradh@kde.org>
22120
22121 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
22122
c7bda60e 221232009-05-14 Jakub Jelinek <jakub@redhat.com>
efc3527a
BE
22124 Ben Elliston <bje@au.ibm.com>
22125
22126 PR middle-end/40035
22127 * dse.c (check_mem_read_rtx): Guard against width == -1.
22128
ce985b43
MM
221292009-05-13 Michael Matz <matz@suse.de>
22130
22131 PR middle-end/39976
22132 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
22133 (trivially_conflicts_p): New function.
22134 (insert_backedge_copies): Use it.
22135
7de1d221
JJ
221362009-05-13 Janis Johnson <janis187@us.ibm.com>
22137
22138 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
22139 (handle_stdc_pragma): Use new enum constant names.
22140 (handle_pragma_float_const_decimal64): Ditto.
22141
bfefafc6
ILT
221422009-05-13 Ian Lance Taylor <iant@google.com>
22143
22144 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
22145 tree.def.
22146
286c4fcb
NS
221472009-05-13 Nathan Sidwell <nathan@codesourcery.com>
22148
22149 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
22150 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
22151 multilibs.
22152 * config/m68k/m68k.h (FL_UCLINUX): Define.
22153
ebaa6ea7
JH
221542009-05-13 Jan Hubicka <jh@suse.cz>
22155
22156 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
22157
2b703e1a
KK
221582009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
22159
22160 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
22161 unless -fschedule-insns is specified.
22162
c3537723
KK
221632009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
22164
22165 PR target/39561
22166 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
22167 TARGET_EXPAND_CBRANCHDI4.
22168 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
22169 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
22170 (cmpeqdi): Fix comment.
22171
cdeed45a
KK
221722009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
22173
22174 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
22175 (sh_legitimate_address_p): Likewise.
22176 * config/sh/sh.c (sh_legitimate_index_p): New.
22177 (sh_legitimate_address_p): Likewise.
22178 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
22179 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
22180 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
22181 (MAYBE_BASE_REGISTER_RTX_P): New macro.
22182 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
22183 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
22184 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
22185 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
22186 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
22187
02f0b13a
JH
221882009-05-12 Jan Hubicka <jh@suse.cz>
22189
22190 * tree-inline.c (estimate_operator_cost): Add operands;
22191 when division happens by constant, it is cheap.
22192 (estimate_num_insns): Loads and stores are not having cost of 0;
22193 EH magic stuff is cheap; when computing runtime cost of switch,
22194 use log2 base of amount of its cases; builtin_expect has cost of 0;
22195 compute cost for moving return value of call.
22196 (init_inline_once): Initialize time_based flags.
22197 * tree-inline.h (eni_weights_d): Add time_based flag.
22198
ecb7f6de
PB
221992009-05-12 Paolo Bonzini <bonzini@gnu.org>
22200
22201 * df-core.c: Update head documentation.
22202
c24151ce
MM
222032009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
22204
22205 PR bootstrap/40118
22206 * rs6000.c (rs6000_generate_compare): Use op1b instead of
22207 shadowing exisiting variable op1.
22208
fbdf817d
UB
222092009-05-12 Uros Bizjak <ubizjak@gmail.com>
22210
704bf7c8 22211 PR target/37179
fbdf817d
UB
22212 * config/i386/driver-i386.c (processor_signatures): New enum.
22213 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
22214 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
22215 processor signature to detect geode processor.
22216
5e8d1826
PB
222172009-05-12 Paolo Bonzini <bonzini@gnu.org>
22218
22219 Revert:
22220
22221 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
22222
22223 * optabs.c (prepare_cmp_insn): Temporarily disable test that
22224 causes spurious differences between trunk and cond-optab branch.
22225
f90b7a5a
PB
222262009-05-12 Paolo Bonzini <bonzini@gnu.org>
22227
fbdf817d
UB
22228 * dojump.c (compare_from_rtx): Delete.
22229 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
22230 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
f90b7a5a
PB
22231 if the comparison does not satisfy the predicate; test predicates for
22232 operands 2 and 3 of a cstore pattern. Don't try cstore optab
22233 further if one existing pattern fails.
fbdf817d 22234 * expr.h (compare_from_rtx): Delete.
f90b7a5a 22235 (prepare_operand): Declare it.
fbdf817d 22236 * optabs.c: Change "lib call" to "libcall" throughout.
f90b7a5a 22237 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
fbdf817d
UB
22238 HAVE_conditional_trap, emit_cmp_insn): Delete.
22239 (can_compare_p): Delete cmp_optab case.
f90b7a5a 22240 (prepare_float_lib_cmp): Return an rtx and a machine mode.
fbdf817d
UB
22241 Accept other parameters by value.
22242 (prepare_operand): Make non-static.
22243 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
22244 other parameters by value. Try to widen operands here based on
22245 an optab_methods argument and looking at cbranch_optab.
22246 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
22247 loop. Use cbranch_optab directly.
22248 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
22249 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
22250 assertion.
22251 (emit_conditional_move, emit_conditional_add): Inline what's needed
22252 of compare_from_rtx, using new prepare_cmp_insn for the rest.
22253 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
22254 with COMPARE. Move cmov_optab and cstore_optab above
22255 with cbranch_optab, move cmp_optab down with ucmp_optab,
22256 remove tst_otpab. Do not initialize trap_rtx.
22257 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
f90b7a5a
PB
22258 for trap code. Do not check HAVE_conditional_trap. Use
22259 prepare_cmp_insn. Accept no predicate for operand 3.
fbdf817d
UB
22260 * optabs.h (OTI_cmp): Mark as used only for libcalls.
22261 (OTI_ctrap, ctrap_optab): New.
22262 (tst_optab): Delete.
22263 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
22264 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
22265 with lookup of ctrap_optab.
f3afc8a7
UB
22266 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
22267 Delete.
fbdf817d
UB
22268 (ctrap_optab): New.
22269
22270 * combine.c (combine_simplify_rtx, simplify_set): Do not
22271 special case comparing against zero for cc0 machines.
f90b7a5a
PB
22272 * simplify-rtx.c (simplify_binary_operation_1): Never remove
22273 COMPARE on cc0 machines.
22274 (simplify_relational_operation): Return a new expression when
22275 a COMPARE could be removed.
fbdf817d
UB
22276 * final.c (final_scan_insn): Compare cc_status values
22277 against LHS of a (compare FOO (const_int 0)) cc0 source.
22278 Also check if cc_status.value is the full compare.
f90b7a5a 22279
fbdf817d
UB
22280 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
22281 (cstoreMM4): Document.
f90b7a5a 22282 (conditional_trap): Document ctrapMM4 instead.
fbdf817d 22283 (sync_compare_and_swapMM): Refer to cbranchcc4.
f90b7a5a
PB
22284 (Dependent Patterns): Eliminate obsolete information referring to
22285 the old jump optimization phase.
fbdf817d 22286 (Canonicalization): Include cbranchcc4 case, omit canonicalization
f90b7a5a
PB
22287 of compares with 0 on cc0 machines.
22288 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
22289 avoiding references to cc0. Remove text about storing operands
22290 in cmpMM.
22291 * doc/tm.texi (Condition Codes): Include blurb on different
22292 condition code representations, separate into subsections for
22293 CC0, MODE_CC and conditional execution.
22294
fbdf817d
UB
22295 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
22296 alpha_emit_setcc): Accept operands and a machine mode.
22297 * config/alpha/alpha.c (alpha_emit_conditional_branch):
22298 Get code/op0/op1 from operands, use machine mode argument
22299 instead of alpha_compare.fp_p. Emit the branch here.
22300 (alpha_emit_setcc): Likewise, and return boolean.
22301 (alpha_emit_conditional_move): Likewise. Assert that
22302 cmp_op_mode == cmp_mode, and simplify accordingly.
22303 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
22304 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
22305 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
22306 Delete.
22307 (stack probe test): Use cbranchdi4.
22308 * config/alpha/predicates.md (alpha_cbranch_operator): New.
22309
f100a4a8 22310 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
fbdf817d
UB
22311 * config/arc/arc.h (movsicc, movsfcc): Use it.
22312 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
22313 (cbranchsi4, cstoresi4): New.
f100a4a8 22314 (cmpsi, bCC and sCC expanders): Remove.
fbdf817d
UB
22315
22316 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
22317 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
22318 * config/arm/predicates.md (arm_comparison_operator): Only include
22319 floating-point operators if there is a hardware floating-point unit.
22320 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
22321 deferring to cbranch_cc and cstore_cc respectively.
22322 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
22323 cbranch_cc, cstore_cc): New.
22324 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
f90b7a5a 22325 arm_compare_op1.
fbdf817d
UB
22326 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
22327
22328 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
22329 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
22330 as an argument.
22331 (adjust_insn_length): Adjust calls.
22332 (avr_reorg): Handle (compare (foo) (const_int 0)).
22333 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
22334 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
22335 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
22336 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
22337 (bCC): Remove.
22338 (cbranchqi4, cbranchhi4, cbranchsi4): New.
f90b7a5a
PB
22339 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
22340
fbdf817d
UB
22341 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
22342 (cbranchsi4, cstorebi4, cstoresi4): New.
f90b7a5a 22343 (movbisi): This insn is duplicate, split it to zero_extend.
fbdf817d
UB
22344 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
22345 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
22346 (bfin_optimize_loop): Use cbranch expander.
22347 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
22348 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
22349 (bfin_bimode_comparison_operator): ... this.
22350 (bfin_direct_comparison_operator): New.
f100a4a8 22351
fbdf817d
UB
22352 * config/cris/cris.c (cris_normal_notice_update_cc): Look
22353 inside (compare FOO (const_int 0)).
22354 (cris_rtx_costs): Handle ZERO_EXTRACT.
22355 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
22356 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
22357 (*tstdi_v32): Delete.
22358 (*cmpdi_non_v32): Add M alternative for operand 1.
22359 (cmpsi, cmp<mode>): Make private.
22360 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
22361 with COMPARE.
22362 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
22363
22364 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
22365 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
22366 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
f90b7a5a
PB
22367 (cc_reg_operand): New.
22368 (any_cond): Delete.
fbdf817d
UB
22369 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
22370 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
22371 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
22372 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
22373 crx_expand_scond): Delete.
22374
22375 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
22376 (cbranchsi4): New.
22377 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
22378 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
22379
22380 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
22381 cstoresi4, cstoresf4, cstoredf4): New.
22382 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
22383 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
22384 Receive the entire operands array.
22385 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
22386 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
22387 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
22388 Get test/op0/op1 from the operands array.
22389 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
22390
22391 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
22392 (h8300_expand_store): New.
22393 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
22394 (const_int 0)).
22395 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
22396 (h8300_expand_store): New.
22397 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
22398 or do not try to produce (set (cc0) REG).
22399 (peepholes): Wrap arguments with COMPARE. Add a peephole to
22400 change a compare into a move to a scratch register. Disable some
22401 peepholes when comparing with zero.
22402 (tstsi, tsthi, tstsi, cmpqi): Make private.
22403 (cmphi): Delete.
22404 (bCC, sCC): Delete.
22405 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
22406 cstoresi4): New.
f90b7a5a
PB
22407
22408 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
22409 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
22410 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
22411 (ix86_emit_i387_log1p): Use cbranchxf2.
22412 (ix86_expand_setcc): Return void.
22413 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
22414 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
22415 cmp<MODEF>, cmpcc): Remove.
fbdf817d
UB
22416 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
22417 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
22418 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
f90b7a5a
PB
22419 (sCC and bCC expanders): Remove.
22420 (stack_protect_test): Use cbranchcc4.
22421
fbdf817d
UB
22422 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
22423 Delete.
22424 (ia64_expand_compare): Accept three rtx by reference and return void.
22425 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
22426 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
22427 from *expr. Update *expr with the BImode comparison to do.
22428 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
22429 cmptf, bCC, sCC, conditional_trap): Delete.
f100a4a8 22430 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
fbdf817d
UB
22431 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
22432 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
22433 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
22434 * config/ia64/predicates.md (ia64_cbranch_operator): New.
22435
22436 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
22437 type of last argument.
22438 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
22439 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
22440 use machine mode argument instead of branch_type. Remove dead
22441 code for floating-point comparisons.
22442 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
22443 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
22444 Remove.
22445 (cbranchsi4, cstoresi4): New.
22446 * config/iq2000/predicates.md (reg_or_const_operand): New.
22447
22448 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
22449 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
22450 (b<code>_op): Rewrite to...
22451 (bcc_op): ... this, using match_operator.
22452 (s<code>_op): Rewrite to...
22453 (scc_op): ... this, using match_operator.
22454 (s<code>_24_op): Rewrite to...
22455 (scc_op_24): ... this, using match_operator.
22456 (s<code>_<mode>): Rewrite to...
22457 (cstore<mode>4): ... this, using match_operator.
22458 (s<code>_<mode>_24): Rewrite to...
22459 (cstore<mode>4_24): ... this, using match_operator.
22460 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
22461 m32c_unpend_compare, m32c_expand_scc): Delete.
22462 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
22463 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
22464 (m32c_expand_movcc): Change NE to EQ if necessary.
22465 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
22466
22467 * config/m32r/m32r-protos.h (gen_cond_store): New.
22468 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
22469 (gen_cond_store): New, from sCC patterns.
22470 (m32r_expand_block_move): Use cbranchsi4.
22471 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
22472 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
22473 (cbranchsi4, cstoresi4): New.
f100a4a8 22474
fbdf817d
UB
22475 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
22476 Delete.
22477 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
f90b7a5a 22478 (m68hc11_notice_update_cc): Look into a compare with 0.
fbdf817d
UB
22479 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
22480 Delete.
22481 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
22482 cmphi, cmpqi, bCC): Delete.
22483 (cbranchsi4, cbranchhi4, cbranchqi4): New.
22484 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
22485 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
22486 sets with COMPARE.
22487
22488 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
22489 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
22490 * config/m68k/constraints.md (H): New.
22491 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
22492 the define_insn below.
22493 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
22494 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
22495 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
22496 patterns): Wrap RHS with COMPARE.
22497 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
22498 (*cmpdi_internal): Name this pattern.
22499 (cmpdi): Change to define_insn.
22500 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
22501 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
22502 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
22503 predicate.
22504 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
22505 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
22506 (conditional_trap): Change to...
22507 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
22508 (*conditional_trap): Use the ordered_comparison_operator and
22509 const1_operand predicates.
22510 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
22511 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
22512 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
22513 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
22514
22515 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
22516 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
f100a4a8 22517 (mcore_gen_compare): New.
fbdf817d
UB
22518 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
22519 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
22520 (mcore_gen_compare): ... this.
22521 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
22522 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
22523 (stack probe pattern): Use cbranchsi4.
22524
22525 * config/mips/predicates.md (mips_cstore_operator): New.
22526 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
22527 * config/mips/mips.md (any_cond): Delete.
22528 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
22529 always succeed.
22530 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
22531 fixuns_truncsfdi2): Use cbranch patterns.
f100a4a8 22532 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
fbdf817d
UB
22533 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
22534 Adjust call to mips_expand_conditional_branch.
22535 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
22536 cstore<GPR:mode>4.
22537 * config/mips/mips-protos.h (mips_expand_conditional_branch,
22538 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
22539 * config/mips/mips.c (cmp_operands): Delete.
22540 (mips_emit_compare): Get comparison operands from *op0/*op1.
22541 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
22542 that it succeeds. Use op0/op1 instead of cmp_operands.
22543 (mips_expand_conditional_branch, mips_expand_conditional_move,
22544 mips_expand_conditional_trap): Likewise.
f100a4a8 22545 (mips_block_move_loop): Use cbranch patterns.
fbdf817d
UB
22546 * config/mips/mips.h (cmp_operands): Delete.
22547
22548 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
22549 (mmix_gen_compare_reg): Just return a register in the right CC mode.
22550 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
22551 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
22552 (*cmpcc_folded): Rename to...
22553 (*cmpdi_folded): this.
22554 (*cmpcc): Rename to...
22555 (*cmps): ... this.
22556 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
22557 (bCC): Remove.
22558 (cbranchdi4): New.
22559 (cbranchdf4): New. Handle invalid comparisons here.
22560 * config/mmix/predicates.md (float_comparison_operator): New.
22561
22562 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
22563 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
22564 * config/mn10300/mn10300.md (tst): Delete.
22565 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
22566 Name these patterns and wrap RHS in a compare.
22567 (*cmpsi): Make this pattern private. Include tst.
22568 (*cmpsf): Make this pattern private.
22569 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
22570 (compare with zero peepholes): Likewise.
22571 (bCC): Remove.
22572 (cbranchsi4, cbranchsf4): New.
22573 (casesi): Use cbranchsi4.
22574
22575 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
22576 hppa_branch_type): Delete.
22577 (return_addr_rtx): Use cbranchsi4.
22578 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
22579 Emit CCFPmode comparison here.
22580 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
22581 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
22582 hppa_branch_type): Delete.
22583 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
22584 (movsicc, movdicc): Remove references to hppa_compare_op0,
22585 hppa_compare_op1 and compare_from_rtx.
22586 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
22587 (casesi): Use cbranchsi4.
22588
22589 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
22590 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
22591 * config/pdp11/pdp11.md (register_or_const0_operand): New.
22592 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
22593 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
22594 (bCC): Delete.
22595 (cbranchdf4, cbranchhi4, cbranchqi4): New.
22596 (*branch, *branch_inverted): New.
22597
22598 * config/picochip/picochip.md (cbranchhi4): Use
22599 ordered_comparison_operator.
22600 (cmphi, bCC): Remove.
22601
22602 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
22603 (trap_comparison_operator): Delete.
22604 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
22605 rs6000_emit_cbranch): Accept mode and operands.
22606 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
f100a4a8 22607 rs6000_compare_fp_p): Delete.
fbdf817d
UB
22608 (rs6000_generate_compare): Accept mode and comparison. Extract code
22609 and op0/op1 from there. Replace references to rs6000_compare_op0
22610 and rs6000_compare_op1.
22611 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
22612 extract result from passed operands.
22613 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
22614 extract loc from passed operands.
22615 (rs6000_emit_cmove): Likewise.
22616 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
22617 rs6000_compare_fp_p): Delete.
22618 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
22619 (cbranch<GPR>4, cbranch<FP>4): New.
22620 (cstore<mode>4): New. Consolidate here all choices about when to use
22621 portable or specialized sCC sequences.
22622 (stack_protect_test): Use cbranchsi4.
22623 (conditional_trap): Replace with ctrap<GPR>4.
22624 (conditional trap insn): Replace trap_comparison_operator with
f100a4a8 22625 ordered_comparison_operator.
fbdf817d
UB
22626
22627 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
22628 (s390_emit_prologue): Use ctrap.
22629 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
22630 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
22631 New predicates replacing...
22632 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
22633 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
22634 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
22635 (add<mode>cc): Do not use s390_compare_op0/op1.
22636 (s<code>): Change to...
22637 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
22638 (seq): Change to...
22639 (cstorecc4): ... this. Handle EQ or NE equally.
22640 (*sne): Un-privatize for use in cstorecc4.
22641 (b<code>): Change to...
22642 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
22643 (conditional_trap): Replace with...
22644 (ctrap<GPR>4, ctrap<FP>4): ... these.
22645 (stack_protect): Use cbranchcc4.
22646
22647 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
22648 * config/score/score-protos.h (score_gen_cmp): Delete.
22649 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
22650 (score_block_move-loop): Use cbranchsi4.
22651 * config/score/score.md (cbranchsi4): New.
22652 (cmpsi, bCC): Delete.
22653 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
22654 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
22655 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
22656 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
22657 * config/score/score3.h (score3_gen_cmp): Delete.
22658 * config/score/score7.h (score7_gen_cmp): Delete.
22659
22660 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
22661 (sh_emit_scc_to_t): ... this. Return void.
22662 (from_compare): Rename to...
22663 (sh_emit_compare_and_branch): ... this.
22664 (sh_emit_compare_and_set): New.
22665 (sh_expand_t_scc): Accept operands.
22666 * config/sh/predicates.md (sh_float_comparison_operator): New.
22667 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
22668 (prepare_scc_operands): Rename to...
22669 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
22670 arguments.
22671 (sh_emit_cheap_store_flag): New.
f90b7a5a 22672 (sh_emit_set_t_insn): New.
fbdf817d
UB
22673 (from_compare): Rename to...
22674 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
22675 handling of TARGET_SH2E floating point to avoid recursive call.
22676 Generate branch here.
22677 (sh_emit_compare_and_set): New.
22678 (sh_expand_t_scc): Get op0/op1 from arguments.
22679 (sh_emit_cheap_store_flag): New.
22680 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
22681 cases.
f90b7a5a 22682 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
fbdf817d
UB
22683 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
22684 (movsicc, movdicc): Do nothing when it recreated operands from
22685 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
22686 prepare_scc_operands (now sh_emit_scc_to_t).
22687 (udivdi3): Use cstoresi4.
22688 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
22689 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
22690 (cbranchint4_media, cbranchfp4_media): New.
22691 (casesi): Use cbranchdi4.
22692 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
22693 Delete.
22694 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
22695 (movnegt): Remove second operand.
22696 (cbranchsf4, cbranchdf4): New.
22697 (stack_protect): Use cbranchdi4/cbranchsi4.
22698
22699 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
22700 (gen_compare_reg): Accept comparison, extract part of it to...
f100a4a8 22701 (gen_compare_reg_1): ... this.
fbdf817d
UB
22702 (gen_compare_operator): Delete.
22703 (gen_v9_scc): Accept separate destination, comparison code and arms.
22704 Do not use sparc_compare_op0/sparc_compare_op1.
22705 (emit_scc_insn, emit_conditional_branch_insn): New.
22706 (emit_v9_brxx): Make static. Remove useless assertion.
22707 (sparc_emit_float_lib_cmp): Return RTL instead of calling
22708 emit_cmp_insn.
22709 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
22710 * config/sparc/sparc-protos.h (gen_compare_reg,
f90b7a5a
PB
22711 sparc_emit_float_lib_cmp): Adjust prototype.
22712 (emit_scc_insn, emit_conditional_branch_insn): New.
22713 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
fbdf817d
UB
22714 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
22715 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
22716 iterators to the top.
22717 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
22718 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
f90b7a5a 22719 snedi_special_trunc): Delete.
fbdf817d 22720 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
f90b7a5a 22721 and snedi_special_trunc.
fbdf817d
UB
22722 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
22723 cbranchdi4, cbranch<F:mode>4): New.
22724 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
22725 here. Use gen_compare_reg instead of gen_compare_operator.
22726 (conditional_trap): Replace with...
22727 (ctrapsi4, ctrapdi4): ... this.
22728 (stack_protect_test): Use cbranchcc4.
22729
22730 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
22731 argument to rtx.
f100a4a8 22732 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
fbdf817d
UB
22733 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
22734 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
22735 from operands[0] or operands[3] depending on is_set.
22736 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
22737 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
22738 cmpdf, bCC), sCC: Remove.
f100a4a8 22739 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
fbdf817d
UB
22740 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
22741 cstoredf4): New.
22742 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
22743 spu_emit_branch_or_set.
22744
22745 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
22746 Add two arguments.
22747 * config/stormy16/stormy16.h (xstormy16_compare_op0,
22748 xstormy16_compare_op1): Delete.
22749 * config/stormy16/stormy16.c (xstormy16_compare_op0,
f100a4a8 22750 xstormy16_compare_op1): Delete.
fbdf817d
UB
22751 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
22752 Adjust calls.
22753 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
22754 (cmphi, cmpsi, bCC): Remove.
22755
22756 * config/v850/v850.md (tstsi, cmpsi): Fold into...
22757 (*cmpsi): ... this one.
22758 (cbranchsi4, cstoresi4): New.
22759 (bCC expanders): Delete.
22760 (sCC insns): Fold into...
22761 (*setcc): ... this one.
f100a4a8 22762 (casesi): Do not use gen_cmpsi and gen_bgtu.
f90b7a5a
PB
22763 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
22764 (movsicc): Simplify.
22765 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
22766
fbdf817d
UB
22767 * config/vax/vax-protos.h (cond_name): New.
22768 (vax_output_conditional_branch): Remove.
22769 * config/vax/vax.c (cond_name): New.
22770 (vax_output_conditional_branch): Remove.
22771 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
22772 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
22773 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
22774 (bit<VAXint>): Wrap source with (compare).
22775 (b<code> and following unnamed pattern): Rename to *branch and
22776 *branch_reversed. Change macroization to match_operator.
22777 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
22778
22779 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
22780 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
22781 Change last argument to machine_mode.
22782 (xtensa_expand_scc): Add machine_mode argument.
22783 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
22784 (gen_conditional_move, xtensa_expand_conditional_branch,
22785 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
22786 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
22787 Adjust operand numbers.
22788 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
22789 Delete.
22790 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
22791 (cmpsi, cmpsf, b<code>, s<code>): Delete.
22792 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
f90b7a5a 22793
16670495
PB
227942009-05-12 Paolo Bonzini <bonzini@gnu.org>
22795
22796 * optabs.c (prepare_cmp_insn): Temporarily disable test that
22797 causes spurious differences between trunk and cond-optab branch.
22798
4a4a4e99
AO
227992009-05-12 Alexandre Oliva <aoliva@redhat.com>
22800
22801 PR target/37137
22802 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
22803
72b9acff
AO
228042009-05-12 Alexandre Oliva <aoliva@redhat.com>
22805
22806 * tree.c (iterative_hash_pointer): Delete.
22807 (iterative_hash_expr): Short-circuit handling of NULL pointer.
22808 Hash UIDs and versions of SSA names. Don't special-case built-in
22809 function declarations.
22810
b7dd69ac
ILT
228112009-05-11 Ian Lance Taylor <iant@google.com>
22812
22813 PR bootstrap/40103
22814 * graphite.c: Force -Wc++-compat to only be a warning before
22815 #including "cloog/cloog.h".
22816
ed102b70
MJ
228172009-05-11 Martin Jambor <mjambor@suse.cz>
22818
22819 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
f100a4a8 22820
08f1af2e
JH
228212009-05-11 Jan Hubicka <jh@suse.cz>
22822
22823 * tree-ssa-loop-ivcanon.c: Include target.h
22824 (struct loop_size): new structure.
22825 (constant_after_peeling): New predicate.
22826 (tree_estimate_loop_size): New function.
22827 (estimated_unrolled_size): Rewrite for new estimates.
22828 (try_unroll_loop_completely): Use new estimates.
22829 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
22830
a7d39bd3
AP
228312009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
22832
22833 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
22834 libcpp interface change.
22835 (spu_macro_to_expand): Likewise.
22836
f5a1f0d0
PB
228372009-05-11 Paolo Bonzini <bonzini@gnu.org>
22838
22839 PR tree-optimization/40026
22840 * gimplify.c (gimplify_init_constructor): Change initial conditional
22841 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
22842 optimize_compound_literals_in_ctor.
22843
c260f01f
NS
228442009-05-11 Nathan Sidwell <nathan@codesourcery.com>
22845
22846 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
22847 New devices.
22848 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
22849
df398a37
L
228502009-05-11 H.J. Lu <hongjiu.lu@intel.com>
22851
22852 * tree-vect-data-refs.c (vect_analyze_group_access): Use
22853 HOST_WIDE_INT for gap.
22854
4da39468
IR
228552009-05-11 Ira Rosen <irar@il.ibm.com>
22856
22857 PR tree-optimization/40074
22858 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
22859 account in group size and step comparison.
22860
4effdf02
RG
228612009-05-11 Richard Guenther <rguenther@suse.de>
22862
22863 * passes.c (init_optimization_passes): Strip now incorrect comment.
22864 (execute_function_todo): Do not set PROP_alias.
22865 * tree-pass.h (PROP_alias): Remove.
22866 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
22867 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
22868 * tree-nrv.c (pass_return_slot): Likewise.
22869 * tree-object-size.c (pass_object_sizes): Likewise.
22870 * tree-ssa-dom.c (pass_dominator): Likewise.
22871 (pass_phi_only_cprop): Likewise.
22872 * tree-ssa-dse.c (pass_dse): Likewise.
22873 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
22874 (pass_cselim): Likewise.
22875 * tree-ssa-pre.c (pass_pre): Likewise.
22876 (pass_fre): Likewise.
22877 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
22878 * tree-ssa-sink.c (pass_sink_code): Likewise.
22879 * tree-stdarg.c (pass_stdarg): Likewise.
22880 * tree-tailcall.c (pass_tail_calls): Likewise.
22881 * tree-vrp.c (pass_vrp): Likewise.
22882
24b97832
ILT
228832009-05-10 Ian Lance Taylor <iant@google.com>
22884
22885 * basic-block.h (enum profile_status): Break out of struct
22886 control_flow_graph.
22887 * cgraph.h (struct inline_summary): Break out of struct
22888 cgraph_local_info.
22889 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
22890 of struct cgraph_order_sort.
fbdf817d 22891 * combine.c (enum undo_kind): New enum, broken out of struct undo.
24b97832
ILT
22892 * cse.c (struct branch_path): Break out of struct
22893 cse_basic_block_data.
22894 * except.h (enum eh_region_type): Break out of struct eh_region.
22895 * gcc.c (enum add_del): Break out of struct modify_target.
fbdf817d 22896 * genrecog.c (enum decision_type): Break out of struct decision_test.
24b97832
ILT
22897 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
22898 ggc_pch_data.
fbdf817d
UB
22899 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
22900 * regmove.c (enum match_use): New enum, broken out of struct match.
24b97832
ILT
22901 * sched-int.h (enum post_call_group): New enum, broken out of
22902 struct deps.
22903 (struct deps_reg): Break out of struct deps.
22904 * target.h (struct asm_int_op): Break out of struct gcc_target.
22905 * tree-eh.c (struct goto_queue_node): Break out of struct
22906 leh_tf_state.
22907 * tree-inline.h (enum copy_body_cge_which): Break out of
22908 copy_body_data.
22909 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
22910
22911 * c-decl.c (in_struct, struct_types): New static variables.
22912 (pushtag): Add loc parameter. Change all callers.
22913 (lookup_tag): Add ploc parameter. Change all callers.
22914 (check_compound_literal_type): New function.
22915 (parser_xref_tag): Add loc parameter. Change all callers. If
22916 -Wc++-compat, warn about struct/union/enum types defined within a
22917 struct or union.
22918 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
22919 and loc parameters. Change all callers. Change error calls to
22920 error_at, using loc. For a redefinition, if the location of the
22921 original definition is known, report it. Set in_struct and
fbdf817d 22922 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
24b97832
ILT
22923 (finish_struct): Add new parameters enclosing_in_struct and
22924 enclosing_struct_types. Change all callers. Set
22925 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
22926 in the struct. If in a struct, add this struct to struct_types.
22927 (start_enum): Add loc parameter. Change all callers. Use
22928 error_at for errors, using loc. For a redefinition, if the
22929 location of the original definition is known, report it. If in a
22930 struct, add this enum type to struct_types. If -Wc++-compat warn
22931 if in sizeof, typeof, or alignof.
fbdf817d
UB
22932 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
22933 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
24b97832
ILT
22934 (c_parser_enum_specifier): Get enum location for start_enum.
22935 (c_parser_struct_or_union_specifier): Get struct location for
22936 start_struct. Save in_struct and struct_types status between
22937 start_struct and finish_struct.
22938 (c_parser_cast_expression): Get location of cast.
22939 (c_parser_alignof_expression): Get location of type.
22940 (c_parser_postfix_expression): Likewise.
22941 (c_parser_postfix_expression_after_paren_type): Add type_loc
fbdf817d
UB
22942 parameter. Change all callers. Call check_compound_literal_type.
22943 Use type_loc for error about variable size type.
22944 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
22945 of an enum constant from an enum type defined in a struct or union.
24b97832
ILT
22946 (c_cast_expr): Add loc parameter. Change all callers. If
22947 -Wc++-compat, warn about defining a type in a cast.
22948 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
22949 (start_enum, start_struct, finish_struct): Update declarations.
22950 (parser_xref_tag, c_cast_expr): Update declarations.
22951 (check_compound_literal_type): Declare.
22952
7a2738fa
BE
229532009-05-11 Ben Elliston <bje@au.ibm.com>
22954
22955 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
22956 for recent libcpp interface change.
22957 (rs6000_macro_to_expand): Likewise.
22958
af618949
MM
229592009-05-10 Michael Matz <matz@suse.de>
22960
22961 PR target/40031
22962 * config/arm/arm.c (require_pic_register): Emit on entry edge,
22963 not at entry of function.
22964
b7d7a473
RG
229652009-05-10 Richard Guenther <rguenther@suse.de>
22966
22967 PR tree-optimization/40081
22968 Revert
22969 * tree-sra.c (instantiate_element): Instantiate scalar replacements
22970 using the main variant of the element type. Do not fiddle with
22971 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
22972
22973 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
22974 structs with volatile fields.
22975
078c3644
JH
229762009-05-10 Jan Hubicka <jh@suse.cz>
22977
22978 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
fbdf817d
UB
22979 (estimate_move_cost): Assert that it does not get called for
22980 VOID_TYPE_P.
078c3644
JH
22981 (estimate_num_insns): Skip VOID types in argument handling.
22982 (optimize_inline_calls): Delete unreachable blocks and verify that
22983 callgraph is valid.
22984
39ff5a96
JH
229852009-05-10 Jan Hubicka <jh@suse.cz>
22986
22987 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
22988 * cgraph.c (cgraph_mark_address_taken_node): New function.
22989 (dump_cgraph_node): Dump new flag.
22990 * cgraph.h (struct cgraph_node): Add address_taken.
22991 (cgraph_mark_address_taken_node): New function.
39ff5a96
JH
22992 * ipa.c (cgraph_postorder): Prioritize functions with address taken
22993 since new direct calls can be born.
22994
9a0c6187
JM
229952009-05-10 Joseph Myers <joseph@codesourcery.com>
22996
22997 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
22998 tok->val.node.node.
22999
4b685e14
JH
230002009-05-10 Jan Hubicka <jh@suse.cz>
23001
23002 PR middle-end/40084
fb0be169
EB
23003 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
23004 argument; rewrite.
4b685e14
JH
23005 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
23006 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
23007 * tree-inline.c (copy_bb): Set frequency correctly.
fb0be169
EB
23008 (fold_marked_statements): Update call to
23009 cgraph_update_edges_for_call_stmt.
4b685e14 23010
29d08eba
JM
230112009-05-10 Joseph Myers <joseph@codesourcery.com>
23012
23013 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
23014 identifiers in diagnostics.
23015 * config/arm/arm.c (arm_handle_fndecl_attribute,
23016 arm_handle_isr_attribute): Likewise.
23017 * config/avr/avr.c (avr_handle_progmem_attribute,
782dc37a 23018 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
29d08eba
JM
23019 * config/bfin/bfin.c (handle_int_attribute,
23020 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
23021 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
23022 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
23023 Likewise.
23024 * config/darwin.c (darwin_handle_kext_attribute,
23025 darwin_handle_weak_import_attribute): Likewise.
23026 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
23027 h8300_handle_eightbit_data_attribute,
23028 h8300_handle_tiny_data_attribute): Likewise.
23029 * config/i386/i386.c (ix86_handle_cconv_attribute,
782dc37a 23030 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
29d08eba
JM
23031 * config/i386/winnt.c (ix86_handle_shared_attribute,
23032 ix86_handle_selectany_attribute): Likewise.
23033 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
23034 * config/m32c/m32c.c (function_vector_handler): Likewise.
23035 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
23036 m68hc11_handle_fntype_attribute): Likewise.
23037 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
23038 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
23039 * config/mips/mips.c (mips_insert_attributes,
23040 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
23041 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
23042 rs6000_handle_struct_attribute): Likewise.
23043 * config/sh/sh.c (sh_insert_attributes,
23044 sh_handle_resbank_handler_attribute,
23045 sh_handle_interrupt_handler_attribute,
23046 sh2a_handle_function_vector_handler_attribute,
23047 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
23048 Likewise.
23049 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
23050 * config/spu/spu.c (spu_handle_fndecl_attribute,
23051 spu_handle_vector_attribute): Likewise.
23052 * config/stormy16/stormy16.c
23053 (xstormy16_handle_interrupt_attribute): Likewise.
23054 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
23055 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
23056
f41c4af3
JM
230572009-05-10 Joseph Myers <joseph@codesourcery.com>
23058
782dc37a 23059 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
f41c4af3
JM
23060 (pp_translate_identifiers): New.
23061 (pp_identifier): Only conditionally translate identifier to locale
23062 character set.
23063 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
23064 (pp_base_tree_identifier): Only conditionally translate identifier
23065 to locale character set.
23066 * c-pretty-print.c (M_): Define.
23067 (pp_c_type_specifier, pp_c_primary_expression): Mark English
23068 fragments for conditional translation with M_.
23069 * tree-pretty-print.c (maybe_init_pretty_print): Disable
23070 identifier translation.
23071
896d7dbd
RG
230722009-05-10 Richard Guenther <rguenther@suse.de>
23073
23074 PR tree-optimization/40081
23075 * tree-sra.c (instantiate_element): Instantiate scalar replacements
23076 using the main variant of the element type. Do not fiddle with
23077 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
23078
9a23acef
JH
230792009-05-09 Jan Hubicka <jh@suse.cz>
23080
23081 PR middle-end/40080
23082 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
23083 indirect calls; verify cgraph afterwards.
23084
d563610d
JH
230852009-05-09 Jan Hubicka <jh@suse.cz>
23086
23087 PR bootstrap/40082
23088 * ipa.c (update_inlined_to_pointer): New function.
23089 (cgraph_remove_unreachable_nodes): Use it.
23090
f08a18d0
JH
230912009-05-09 Jan Hubicka <jh@suse.cz>
23092
23093 * tree-eh.c (struct leh_state): Remove prev_try.
23094 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
23095 not track prev_try.
f100a4a8 23096 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
f08a18d0
JH
23097 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
23098 remove_eh_handler_and_replace, foreach_reachable_handler,
23099 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
23100 * except.h (struct eh_region): Remove eh_region_u_cleanup.
23101 (gen_eh_region_cleanup): Update prototype.
23102
0afd7219
JH
231032009-05-09 Jan Hubicka <jh@suse.cz>
23104
23105 PR middle-end/40043
23106 * except.c (copy_eh_region): Always set prev_try.
23107 (redirect_eh_edge_to_label): Find outer try.
23108 (foreach_reachable_handler): When looking for prev try
23109 handle case where previous try is not going to be taken.
23110
ad6c0864
MM
231112009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
23112
23113 PR tree-optimization/40049
23114 * tree-vect-stmts.c (vectorizable_operation): If the machine has
23115 only vector/vector shifts, convert the type of the constant to the
23116 appropriate type to avoid building incorrect trees, which
23117 eventually have problems with garbage collection.
23118
c94f9067
JM
231192009-05-08 Joseph Myers <joseph@codesourcery.com>
23120
23121 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
23122 -1 for complex floating-point types if honoring signed zeros.
23123
9187e02d
JH
231242009-05-08 Jan Hubicka <jh@suse.cz>
23125
20acb8a2
EB
23126 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
23127 argument; handle correctly when profile is absent.
9187e02d
JH
23128 (build_cgraph_edges): Update.
23129 (rebuild_cgraph_edges): Update.
20acb8a2
EB
23130 * cgraph.c: Do not include varray.h.
23131 (cgraph_set_call_stmt_including_clones): New function.
23132 (cgraph_create_edge_including_clones): Likewise
23133 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
9187e02d
JH
23134 (cgraph_update_edges_for_call_stmt): Handle clones.
23135 (cgraph_remove_node): Handle clone tree.
23136 (cgraph_remove_node_and_inline_clones): New function.
23137 (dump_cgraph_node): Dump clone tree.
23138 (cgraph_clone_node): Handle clone tree.
20acb8a2 23139 (clone_function_name): Bring here from tree-inline.c.
9187e02d 23140 (cgraph_create_virtual_clone): New function.
20acb8a2
EB
23141 * cgraph.h (ipa_replace_map): Move here from ipa.h.
23142 (cgraph_clone_info): New function.
9187e02d 23143 (strut cgraph_node): Add clone_info and new clone tree pointers.
20acb8a2
EB
23144 (cgraph_remove_node_and_inline_clones,
23145 cgraph_set_call_stmt_including_clones,
23146 cgraph_create_edge_including_clones,
23147 cgraph_create_virtual_clone): Declare.
9187e02d
JH
23148 (cgraph_function_versioning): Use VEC argument.
23149 (compute_call_stmt_bb_frequency): Update prototype.
23150 (cgraph_materialize_all_clones): New function.
23151 * ipa-cp.c (ipcp_update_cloned_node): Remove.
23152 (ipcp_create_replace_map): Update to VECtors.
23153 (ipcp_update_callgraph): Use virtual clones.
23154 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
23155 (ipcp_update_profiling): Do not update local profiling.
23156 (ipcp_insert_stage): Use VECtors and virtual clones.
23157 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
23158 (clone_of_p): New function.
23159 (cgraph_preserve_function_body_p): Use clone tree.
23160 (cgraph_optimize): Materialize clones.
23161 (cgraph_function_versioning): Update for VECtors.
23162 (save_inline_function_body): Use clone tree.
20acb8a2
EB
23163 (cgraph_materialize_clone): New function.
23164 (cgraph_materialize_all_clones): Likewise.
9187e02d
JH
23165 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
23166 * ipa.c: Include gimple.h.
23167 (cgraph_remove_unreachable_nodes): Use clone tree.
20acb8a2
EB
23168 * ipa-prop.c (ipa_note_param_call): Update call to
23169 compute_call_stmt_bb_frequencycall.
9187e02d 23170 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
20acb8a2 23171 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
9187e02d
JH
23172 (copy_bb): Handle updating of clone tree; add new edge when new call
23173 appears.
23174 (expand_call_inline): Be strict about every call having edge.
23175 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
23176 (delete_unreachable_blocks_update_callgraph): New function.
20acb8a2
EB
23177 (tree_function_versioning): Use VECtors; always remove unreachable
23178 blocks and fold conditionals.
23179 * tree-inline.h: Do not include varray.h.
9187e02d
JH
23180 (tree_function_versioning): Remove.
23181 * Makefile.in (GTFILES): Remove tree-inline.c
23182 * passes.c (do_per_function): Do only functions having body.
20acb8a2
EB
23183 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
23184 tree.
9187e02d 23185
9b86d6bb
L
231862009-05-08 H.J. Lu <hongjiu.lu@intel.com>
23187 Andrew Morrow <acm@google.com>
23188
23189 PR c/36892
23190 * c-common.c (c_common_attribute_table): Permit deprecated
23191 attribute to take an optional argument.
23192 (handle_deprecated_attribute): If the optional argument to
23193 __attribute__((deprecated)) is not a string ignore the attribute
23194 and emit a warning.
23195
23196 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
23197 * c-typeck.c (build_component_ref): Likewise.
23198 (build_external_ref): Likewise.
23199
23200 * toplev.c (warn_deprecated_use): Add an attribute argument.
23201 Emit the message associated with __attribute__((deprecated)).
23202
23203 * toplev.h (warn_deprecated_use): Updated.
23204
23205 * doc/extend.texi: Document new optional parameter to
23206 __attribute__((deprecated))
23207
82ad047f
ME
232082009-05-08 Michael Eager <eager@eagercon.com>
23209
23210 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
23211 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
23212
788d3075
RG
232132009-05-08 Richard Guenther <rguenther@suse.de>
23214
23215 PR tree-optimization/40062
23216 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
23217 Avoid exponential behavior.
23218
00952e97
PB
232192009-05-08 Paolo Bonzini <bonzini@gnu.org>
23220
23221 PR rtl-optimization/33928
23222 PR 26854
23223 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
23224 process_uses, build_single_def_use_links): New.
23225 (update_df): Update use_def_ref.
23226 (forward_propagate_into): Use get_def_for_use instead of use-def
23227 chains.
23228 (fwprop_init): Call build_single_def_use_links and let it initialize
23229 dataflow.
23230 (fwprop_done): Free use_def_ref.
23231 (fwprop_addr): Eliminate duplicate call to df_set_flags.
f100a4a8 23232 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
23233 df_rd_simulate_one_insn): New.
23234 (df_rd_bb_local_compute_process_def): Update head comment.
23235 (df_chain_create_bb): Use the new RD simulation functions.
f100a4a8 23236 * df.h (df_rd_simulate_artificial_defs_at_top,
00952e97
PB
23237 df_rd_simulate_one_insn): New.
23238 * opts.c (decode_options): Enable fwprop at -O1.
23239 * doc/invoke.texi (-fforward-propagate): Document this.
23240
2ca862e9
JM
232412009-05-08 Joseph Myers <joseph@codesourcery.com>
23242
23243 PR c/24581
23244 * c-typeck.c (build_binary_op): Handle arithmetic between one real
23245 and one complex operand specially.
23246 * tree-complex.c (some_nonzerop): Do not identify a real value as
23247 zero if flag_signed_zeros.
23248
3e807ffc
PB
232492009-05-08 Paolo Bonzini <bonzini@gnu.org>
23250
23251 PR rtl-optimization/33928
7925c06c 23252 * loop-invariant.c (record_use): Fix && vs. || mishap.
3e807ffc 23253
1bfdbb29
PB
232542009-05-08 Paolo Bonzini <bonzini@gnu.org>
23255
23256 PR rtl-optimization/33928
e913423f
EB
23257 * loop-invariant.c (struct use): Add addr_use_p.
23258 (struct def): Add n_addr_uses.
23259 (struct invariant): Add cheap_address.
23260 (create_new_invariant): Set cheap_address.
23261 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
23262 (record_uses): Pass df_ref to record_use.
23263 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
23264 used only as such.
1bfdbb29 23265
702cb2a0
KK
232662009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
23267
23268 * config/sh/sh.c: Do not include c-pragma.h.
23269
5e8df753
AP
232702009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
23271
23272 * config/spu/spu.c: Remove include of c-common.h.
23273
6ec637a4
JJ
232742009-05-07 Janis Johnson <janis187@us.ibm.com>
23275
23276 PR c/39037
23277 * c-common.h (mark_valid_location_for_stdc_pragma,
23278 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
23279 clear_float_const_decimal64, float_const_decimal64_p): New.
23280 * c.opt (Wunsuffixed-float-constants): New.
23281 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
23282 unsuffixed float constant, handle new warning.
23283 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
23284 * c-decl.c (c_scope): New flag float_const_decimal64.
23285 (set_float_const_decimal64, clear_float_const_decimal64,
23286 float_const_decimal64_p): New.
23287 (push_scope): Set new flag.
23288 * c-parser.c (c_parser_translation_unit): Mark when it's valid
23289 to use STDC pragmas.
23290 (c_parser_external_declaration): Ditto.
23291 (c_parser_compound_statement_nostart): Ditto.
23292 * c-pragma.c (valid_location_for_stdc_pragma,
23293 mark_valid_location_for_stdc_pragma,
23294 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
23295 handle_pragma_float_const_decimal64): New.
23296 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
23297 * cp/semantics.c (valid_location_for_stdc_pragma_p,
23298 set_float_const_decimal64, clear_float_const_decimal64,
23299 float_const_decimal64_p): New dummy functions.
23300 * doc/extend.texi (Decimal Float): Remove statement that the
23301 pragma, and suffix for double constants, are not supported.
23302 * doc/invoke.texi (Warning Options): List new option.
23303 (-Wunsuffixed-float-constants): New.
23304
45b9b2e9
SB
233052009-05-08 Steven Bosscher <steven@gcc.gnu.org>
23306
23307 * config/i386/i386.c: Do not include c-common.h.
23308
e71da632
MH
233092009-05-07 Mark Heffernan <meheff@google.com>
23310
23311 * doc/invoke.texi (Debugging Options): Document change of debugging
23312 dump location.
e913423f 23313 * opts.c (decode_options): Make dump_base_name relative to
e71da632
MH
23314 aux_base_name directory.
23315
fe4c7bc6
HS
233162009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
23317
23318 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
23319 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
23320
3b3e44eb
RAE
233212009-05-07 Rafael Avila de Espindola <espindola@google.com>
23322
23323 * Makefile.in (install-plugin): Simplify a bit.
23324
fac41238
PB
233252009-05-07 Paolo Bonzini <bonzini@gnu.org>
23326
23327 * Makefile.in (OBJS-common): Add regcprop.o.
23328 (regcprop.o): New.
23329 * timevar.def (TV_CPROP_REGISTERS): New.
23330 * regrename.c (regrename_optimize): Return 0.
23331 (rest_of_handle_regrename): Delete.
23332 (pass_rename_registers): Point to regrename_optimize.
f100a4a8 23333 (struct value_data_entry, struct value_data,
fac41238
PB
23334 kill_value_one_regno, kill_value_regno, kill_value,
23335 set_value_regno, init_value_data, kill_clobbered_value,
23336 kill_set_value, kill_autoinc_value, copy_value,
23337 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
23338 replace_oldest_value_reg, replace_oldest_value_addr,
23339 replace_oldest_value_mem, copyprop_hardreg_forward_1,
23340 debug_value_data, validate_value_data): Move...
23341 * regcprop.c: ... here.
23342 (rest_of_handle_cprop): Delete.
23343 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
23344
472e0df9
JJ
233452009-05-07 Jakub Jelinek <jakub@redhat.com>
23346
23347 PR middle-end/40057
23348 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
23349 GEN_INT for 1 << bitnum.
23350 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
23351 build_int_cst_type.
23352
0d50d55a
UB
233532009-05-07 Uros Bizjak <ubizjak@gmail.com>
23354
23355 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
7925c06c 23356 Remove wrong description of "nand" operation.
0d50d55a 23357
22f597f1
RG
233582009-05-06 Richard Guenther <rguenther@suse.de>
23359 Adam Nemet <anemet@caviumnetworks.com>
23360
23361 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
23362 comment. Add that if LHS is not a gimple register, then RHS1 has
23363 to be a single object (GIMPLE_SINGLE_RHS).
23364
641cac0b
AN
233652009-05-06 Adam Nemet <anemet@caviumnetworks.com>
23366
23367 * expr.c (get_def_for_expr): Move it up in the file.
23368 (store_field): When expanding a bit-field store, look at the
23369 defining gimple stmt for the masking conversion.
23370
5a5c6435
JJ
233712009-05-06 Janis Johnson <janis187@us.ibm.com>
23372
23373 PR middle-end/39986
23374 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
23375 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
23376 32-bit memcpy into long.
23377
96474f36
JJ
233782009-05-06 Jakub Jelinek <jakub@redhat.com>
23379
23380 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
23381 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
23382 new_reg_loc_descr.
23383 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
23384 instead of appending DW_OP_deref*.
23385
529ff441
MM
233862009-05-06 Michael Matz <matz@suse.de>
23387
23388 PR middle-end/40021
23389 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
23390 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
23391
9419a9fd
RAE
233922009-05-06 Rafael Avila de Espindola <espindola@google.com>
23393
23394 * Makefile.in (install-plugin): Fix srcdir handling.
23395
fff1894c
AB
233962009-05-06 Andrey Belevantsev <abel@ispras.ru>
23397
23398 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
23399 when processing for not_regs_needed bitmap.
23400 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
f100a4a8
UB
23401 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
23402 handling it for rhs.
fff1894c 23403
700ae70c
L
234042009-05-06 H.J. Lu <hongjiu.lu@intel.com>
23405
ab3426a7 23406 * config/i386/i386.md (unnamed inc/dec peephole): Use
aa016ff7 23407 optimize_insn_for_size_p instead of optimize_size.
700ae70c
L
23408 * config/i386/predicates.md (incdec_operand): Likewise.
23409 (aligned_operand): Likewise.
23410 * config/i386/sse.md (divv8sf3): Likewise.
23411 (sqrtv8sf2): Likewise.
23412
67341fb5
L
234132009-05-06 H.J. Lu <hongjiu.lu@intel.com>
23414
23415 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
23416
23417 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
23418
87946f42
L
234192009-05-06 H.J. Lu <hongjiu.lu@intel.com>
23420
23421 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
23422 ssemodesuffixf2c with avxmodesuffixf2c.
23423
1202aec1
JM
234242009-05-06 Joseph Myers <joseph@codesourcery.com>
23425
23426 PR c/40032
aa016ff7 23427 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
1202aec1 23428
6e57a01d
JJ
234292009-05-05 Jakub Jelinek <jakub@redhat.com>
23430
23431 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
23432 (struct tree_base): Adjust spacing for 8 bit boundaries.
23433 (struct tree_decl_common): Add decl_by_reference_flag bit.
23434 (DECL_BY_REFERENCE): Adjust.
23435 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
23436 print DECL_BY_REFERENCE bit.
23437 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
23438 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
23439 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
23440 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
23441 unconditionally.
23442
32f579f6
JJ
23443 PR middle-end/39666
23444 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
23445 range of the type, but default label is missing, add it with one
23446 of the existing labels instead of adding a new label for it.
23447
617ab743
JM
234482009-05-05 Joseph Myers <joseph@codesourcery.com>
23449
23450 * dwarf.h: Remove.
23451
bf016de8
RAE
234522009-05-05 Rafael Avila de Espindola <espindola@google.com>
23453
23454 * Makefile.in (enable_plugin, plugin_includedir): New.
23455 (install): Depend on install-plugin.
23456 (PLUGIN_HEADERS): New.
23457 (install-plugin): New.
23458 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
23459
7f8fdb9f
RG
234602009-05-05 Richard Guenther <rguenther@suse.de>
23461
23462 PR tree-optimization/40022
23463 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
23464 the only vuse.
23465 (phivn_valid_p): Fix tuplification error, simplify.
23466 (phiprop_insert_phi): Add dumps.
23467 (propagate_with_phi): Simplify.
23468
8d972839
RG
234692009-05-05 Richard Guenther <rguenther@suse.de>
23470
23471 PR middle-end/40023
aa016ff7 23472 * builtins.c (gimplify_va_arg_expr): Properly build the address.
8d972839 23473
66ba9b0b
SZ
234742009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
23475
23476 * tree.h (strip_float_extensions): Remove duplicate declaration.
aa016ff7
UB
23477 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
23478 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
23479 block_ultimate_origin): Rearrange the declarations line to match the
23480 comment that indicates the .c file which the functions are defined.
23481 (dwarf2out_*, set_decl_rtl): Add comment.
23482 (get_base_address): Adjust comment.
23483 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
23484 declarations line and add comment.
23485 (is_builtin_name): Add blank after function name, for clarity.
66ba9b0b 23486
4f1e4960
JM
234872009-05-04 Joseph Myers <joseph@codesourcery.com>
23488
23489 * attribs.c (decl_attributes): Use %qE for identifiers in
23490 diagnostics.
23491 * cgraphunit.c (verify_cgraph_node): Translate function names to
23492 locale character set in diagnostics.
23493 * coverage.c (get_coverage_counts): Use %qE for identifiers in
23494 diagnostics.
23495 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
23496 Document that functions are named in UTF-8.
23497 * expr.c (expand_expr_real_1): Translate function names to locale
23498 character set in diagnostics.
23499 * gimplify.c (omp_notice_variable, omp_is_private,
23500 gimplify_scan_omp_clauses): Use %qE for identifiers in
23501 diagnostics.
23502 * langhooks.c (lhd_print_error_function): Translate function names
23503 to locale character set.
23504 * langhooks.h (decl_printable_name): Document that return value is
23505 in internal character set.
23506 * stmt.c: Include pretty-print.h
23507 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
23508 diagnostics.
23509 (resolve_operand_name_1): Translate named operand name to locale
23510 character set.
23511 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
23512 diagnostics.
23513 * toplev.c (announce_function): Translate function names to locale
23514 character set.
23515 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
23516 (default_tree_printer): Use pp_identifier or translate identifiers
23517 to locale character set. Mark "<anonymous>" for translation.
23518 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
23519 for identifiers in diagnostics.
23520 * tree.c (handle_dll_attribute): Use %qE for identifiers in
23521 diagnostics.
23522 * varasm.c (output_constructor): Use %qE for identifiers in
23523 diagnostics.
23524
40540e68
RAE
235252009-05-04 Rafael Avila de Espindola <espindola@google.com>
23526
23527 * configure.ac: use ` ` instead of $()
23528 * configure: Regenerate.
23529
33fc884c
BE
235302009-05-05 Ben Elliston <bje@au.ibm.com>
23531
23532 * config/pa/linux-atomic.c: Eliminate conditional include of
23533 errno.h on non-LP64 systems to simplify build requirements.
23534
88388a52
JM
235352009-05-04 Joseph Myers <joseph@codesourcery.com>
23536
23537 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
23538 diagnostics.
23539 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
23540 and pass value to identifier_to_locale.
23541 (warn_variable_length_array): Make name a tree.
23542 (grokdeclarator): Separate diagnostic texts for named and unnamed
23543 declarators. Use %qE for named declarators.
23544 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
23545 diagnostics.
23546 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
23547 identifiers in diagnostics.
23548 * c-typeck.c (push_member_name, start_init): Pass identifiers to
23549 identifier_to_locale. Mark "anonymous" strings for translation.
23550
960c5c79
ME
235512009-05-04 Michael Eager <eager@eagercon.com>
23552
23553 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
aa016ff7 23554 address for DImode/DFmode only if double-precision FP regs.
960c5c79 23555
d083fbba
ME
235562009-05-04 Michael Eager <eager@eagercon.com>
23557
23558 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
23559 TARGET_SINGLE_FLOAT check.
23560
c3ba8d32
ME
235612009-05-04 Michael Eager <eager@eagercon.com>
23562
23563 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
23564
edce9f18
ME
235652009-05-04 Michael Eager <eager@eagercon.com>
23566
bd62d832 23567 * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx
edce9f18
ME
23568 * config/rs6000/t-xilinx: New
23569
506d7b68
PB
235702009-05-04 Paolo Bonzini <bonzini@gnu.org>
23571
e913423f 23572 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
506d7b68
PB
23573 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
23574 * gcc/explow.c (memory_address): Use target hook.
23575 * gcc/targhooks.c (default_legitimize_address): New.
23576 * gcc/targhooks.h (default_legitimize_address): New.
23577 * gcc/target.h (legitimize_address): New.
23578 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
23579 (TARGET_INITIALIZER): Include it.
23580 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
23581
23582 * config/bfin/bfin-protos.h (legitimize_address): Remove.
23583 * config/bfin/bfin.c (legitimize_address): Remove.
23584 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
aa016ff7
UB
23585 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
23586 Remove.
506d7b68
PB
23587 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
23588 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
23589
23590 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
23591 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
23592 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
23593 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
23594 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
23595 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
23596 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
23597 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
23598 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
23599 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
23600 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
23601 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
23602 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
23603 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
23604 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
23605 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
23606 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
23607 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
23608 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
23609 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
23610 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
23611 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
23612 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
23613
23614 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
23615 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
23616 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
23617 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
23618 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
23619 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
23620 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
23621 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
23622 (thumb_legitimize_address): Delete.
23623 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
23624 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
23625 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
23626 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
23627 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
aa016ff7
UB
23628 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
23629 Delete.
23630 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
23631 Delete.
506d7b68
PB
23632
23633 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
23634 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
23635 * config/m32r/m32r.c (m32r_legitimize_address): New.
23636 * config/m68k/m68k.c (m68k_legitimize_address): New.
23637 * config/score/score.c (score_legitimize_address): Standardize.
23638 * config/score/score3.c (score3_legitimize_address): Standardize.
23639 * config/score/score3.h (score3_legitimize_address): Adjust.
23640 * config/score/score7.c (score7_legitimize_address): Standardize.
23641 * config/score/score7.h (score7_legitimize_address): Adjust.
23642 * config/sh/sh.c (sh_legitimize_address): New.
23643 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
23644
23645 * gcc/config/s390/s390.c (legitimize_address): Rename to...
23646 (s390_legitimize_address): ... this.
23647 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
23648 (sparc_legitimize_address): ... this.
23649 * gcc/config/i386/i386.c (legitimize_address): Rename to...
23650 (ix86_legitimize_address): ... this.
23651 * gcc/config/avr/avr.c (legitimize_address): Rename to...
23652 (avr_legitimize_address): ... this.
23653 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
23654 (mn10300_legitimize_address): ... this.
23655 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
23656 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
23657 (alpha_expand_mov): Adjust call.
23658
23659 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
23660 * config/spu/spu.c (spu_legitimize_address): Likewise.
23661 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
23662 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
23663
a3af5087
JM
236642009-05-04 Joseph Myers <joseph@codesourcery.com>
23665
23666 * intl.c (locale_encoding, locale_utf8): New.
23667 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
23668 * intl.h (locale_encoding, locale_utf8): Declare.
23669 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
23670 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
23671 New.
23672 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
23673 argument.
23674 (pp_tree_identifier): Define to call pp_base_tree_identifier.
23675 (pp_base_tree_identifier): Declare as function.
23676 (identifier_to_locale): Declare.
23677 * Makefile.in (pretty-print.o): Update dependencies.
aa016ff7 23678 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
a3af5087 23679
ea5cd5f1
RG
236802009-05-04 Richard Guenther <rguenther@suse.de>
23681
23682 PR middle-end/40015
23683 * builtins.c (fold_builtin_memory_op): Do not decay to element
23684 type if the size matches the whole array.
23685
ddc2690a
KH
236862009-05-04 Kazu Hirata <kazu@codesourcery.com>
23687
23688 * expmed.c (synth_mult): When trying out a shift, pass the result
23689 of a signed shift.
23690
ef268d34
KH
236912009-05-04 Kazu Hirata <kazu@codesourcery.com>
23692
23693 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
23694 (shiftsub1_cost): New.
23695 (init_expmed): Compute shiftsub1_cost.
23696 (synth_mult): Optimize multiplications by constants of the form
23697 -(2^^m-1) for some constant positive integer m.
23698
255d3827
RG
236992009-05-03 Richard Guenther <rguenther@suse.de>
23700
23701 PR c/39983
23702 * c-typeck.c (array_to_pointer_conversion): Do not built
23703 ADDR_EXPRs of arrays of pointer-to-element type.
23704 * c-gimplify.c (c_gimplify_expr): Revert change fixing
23705 up wrong ADDR_EXPRs after-the-fact.
23706 * c-common.c (strict_aliasing_warning): Strip pointer
23707 conversions for obtaining the original type.
23708 * builtins.c (fold_builtin_memset): Handle array types.
23709 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
23710 and array types
23711
16c33770
RG
237122009-05-03 Richard Guenther <rguenther@suse.de>
23713
23714 PR middle-end/23329
23715 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
23716 Do not lose casts from array types with unknown extent to array
23717 types with known extent.
23718 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
23719 alias set compatibility.
23720
62a67c94
MLI
237212009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
23722
23723 * flags.h (extra_warnings): Delete.
23724 * toplev.c (process_options): Handle Wuninitialized here.
23725 * opts.c (extra_warnings): Delete.
23726 (set_Wextra): Delete.
23727 (common_handle_option): -Wextra can be handled automatically.
23728 * c-opts.c (c_common_handle_option): Delete obsolete code.
23729 (c_common_post_options): Simplify comment.
23730 * common.opt (W): Add Var.
23731 (Wextra): Add Var.
23732 (Wuninitialized): Initialize to -1.
23733
8c7926c4
AN
237342009-05-03 Adam Nemet <anemet@caviumnetworks.com>
23735 Richard Guenther <rguenther@suse.de>
23736
23737 * expr.c (get_def_for_expr): New function.
23738 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
23739 SSA rather than trees.
23740 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
23741 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
f100a4a8 23742
fa5da7de
JM
237432009-05-03 Joseph Myers <joseph@codesourcery.com>
23744
23745 * c-common.c (reswords): Add _Imaginary.
23746 * c-common.c (enum rid): Add RID_IMAGINARY.
23747
2ddd5020
PB
237482009-05-03 Paolo Bonzini <bonzini@gnu.org>
23749
23750 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
23751 Patch by Richard Guenther.
23752
aea88c05
AS
237532009-05-03 Anatoly Sokolov <aesok@post.ru>
23754
23755 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
23756 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
23757 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
23758 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
23759 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
23760 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
23761 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
23762 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
23763 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
23764 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
23765 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
23766 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
23767 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
23768 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
23769 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
23770 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
23771 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
23772 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
23773
85e59f3a
RG
237742009-05-02 Richard Guenther <rguenther@suse.de>
23775
23776 PR tree-optimization/39940
23777 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
23778 doing so.
23779
4636b850
RG
237802009-05-02 Richard Guenther <rguenther@suse.de>
23781
23782 PR middle-end/40001
23783 * tree-ssa.c (execute_update_addresses_taken): Properly check
23784 if we can mark a variable DECL_GIMPLE_REG_P.
23785 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
23786 back to the end of the function.
23787 (is_gimple_reg_type): Remove complex type special casing.
23788 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
23789 if not optimizing.
23790
5e10cb5a
BE
237912009-05-02 Ben Elliston <bje@au.ibm.com>
23792
23793 * doc/collect2.texi (Collect2): Document search path behaviour
23794 when configured with --with-ld.
23795
048bf48b
JH
237962009-05-02 Jan Hubicka <jh@suse.cz>
23797
23798 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
23799 parameter; update callers.
aa016ff7
UB
23800 (coalesce_cost_edge): EH edges are costier because they needs
23801 splitting even if not critical and even more costier when there are
23802 multiple EH predecestors.
048bf48b 23803
d5c5f9ab
JH
238042009-05-02 Jan Hubicka <jh@suse.cz>
23805
23806 * except.c (remove_eh_handler_and_replace): Handle updating after
23807 removing TRY blocks.
23808
2ed1959a
EB
238092009-05-02 Eric Botcazou <ebotcazou@adacore.com>
23810
23811 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
23812
d363a7e7
SB
238132009-05-02 Steven Bosscher <steven@gcc.gnu.org>
23814
23815 * varasm.c: Do not include c-pragma.h.
23816 * attribs.c: Do not incude c-common.h.
23817
9c3d55b4
MM
238182009-05-01 Michael Matz <matz@suse.de>
23819
23820 * calls.c (initialize_argument_information): Handle SSA names like
23821 decls with a non MEM_P DECL_RTL.
23822
ea264ca5
SB
238232009-05-01 Steven Bosscher <steven@gcc.gnu.org>
23824
23825 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
23826 * ipa-utils.c: Likewise.
23827 * ipa-type-escape.c: Likewise.
23828 * cgraphunit.c Do not include c-common.h.
23829 * ipa-pure-const.c: Likewise.
23830 * tree-if-conv.c: Likewise.
23831 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
23832 * ipa-struct-reorg.c: Likewise.
23833 * tree-nomudflap.c: Likewise.
23834 * tree-ssa-structalias.c: Likewise.
23835
6c5d4d1a
SB
238362009-05-01 Steven Bosscher <steven@gcc.gnu.org>
23837
23838 * store-motion.c: Many cleanups to make this pass a first-class
23839 citizen instead of an appendix to gcse load motion. Add TODO list
23840 to make this pass faster/cleaner/better.
23841
23842 (struct ls_expr): Post gcse.c-split cleanups.
23843 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
23844 "stores" field to "avail_stores".
23845 (pre_ldst_mems): Rename to store_motion_mems.
23846 (pre_ldst_table): Rename to store_motion_mems_table.
23847 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
23848 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
23849 (ldst_entry): Rename to st_expr_entry, update users.
23850 (free_ldst_entry): Rename to free_st_expr_entry, update users.
23851 (free_ldst_mems): Rename to free_store_motion_mems, update users.
aa016ff7
UB
23852 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
23853 update caller.
6c5d4d1a
SB
23854 (first_ls_expr): Rename to first_st_expr, update users.
23855 (next_ls_expr): Rename to next_st_expr, update users.
23856 (print_ldst_list): Rename to print_store_motion_mems. Print names of
23857 fields properly for store motion instead of names inherited from load
23858 motion in gcse.c.
23859 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
23860 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
23861 are done with it.
23862
23863 (ae_kill): Rename to st_kill, update users.
23864 (ae_gen): Rename to st_avloc, update users.
23865 (transp): Rename to st_transp, update users.
23866 (pre_insert_map): Rename to st_insert_map, update users.
23867 (pre_delete_map): Rename to st_delete_map, update users.
23868 (insert_store, build_store_vectors, free_store_memory,
23869 one_store_motion_pass): Update for abovementioned changes.
23870
23871 (gcse_subst_count, gcse_create_count): Remove.
23872 (one_store_motion_pass): New statistics counters "n_stores_deleted"
23873 and "n_stores_created", local variables.
23874
23875 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
23876 use for_each_rtx.
23877
23878 (regvec, compute_store_table_current_insn): Remove.
23879 (reg_set_info, reg_clear_last_set): Remove.
23880 (compute_store_table): Use DF caches instead of local dataflow
23881 solvers.
23882
b02cec6e
JM
238832009-05-01 Joseph Myers <joseph@codesourcery.com>
23884
23885 * c-objc-common.c (c_tree_printer): Print identifiers with
23886 pp_identifier, not pp_string. Mark "({anonymous})" for
23887 translation.
23888 * c-pretty-print.c (pp_c_ws_string): New.
23889 (pp_c_cv_qualifier, pp_c_type_specifier,
23890 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
23891 pp_c_storage_class_specifier, pp_c_function_specifier,
23892 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
23893 pp_c_primary_expression, pp_c_postfix_expression,
23894 pp_c_unary_expression, pp_c_shift_expression,
23895 pp_c_relational_expression, pp_c_equality_expression,
23896 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
23897 use pp_string and pp_c_ws_string in place of pp_identifier and
23898 pp_c_identifier for non-identifiers. Mark English strings for
23899 translation.
23900 * c-pretty-print.h (pp_c_ws_string): Declare.
23901
cd533689
PP
239022009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
23903 Roland McGrath <roland@redhat.com>
23904
aa016ff7 23905 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
cd533689
PP
23906 (ENABLE_LD_BUILDID): New configuration option.
23907 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
23908 (LINK_BUILDID_SPEC): New macro.
23909 (init_spec): If defined, prepend it between LINK_EH_SPEC and
23910 link_spec.
23911 * doc/install.texi: Document --enable-linker-build-id option.
23912 * configure: Rebuild.
23913 * config.in: Rebuild.
23914
ba6adec4
AN
239152009-04-30 Adam Nemet <anemet@caviumnetworks.com>
23916
23917 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
23918 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
23919 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
23920 MIPS_GP_SAVE_AREA_SIZE.
23921 * config/mips/mips.c (struct mips_frame_info): Update comment
23922 before arg_pointer_offset and hard_frame_pointer_offset.
23923 (mips_compute_frame_info): Update diagram before function: to
23924 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
23925 indicate the position of frame_pointer_rtx with -fstack-protector and
23926 to show args_size. Don't allocate cprestore area for leaf functions
23927 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
23928 cprestore_size.
23929 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
23930
48f5b722
MM
239312009-04-30 Michael Matz <matz@suse.de>
23932
ba6adec4
AN
23933 PR tree-optimization/39955
23934 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
48f5b722 23935
b65d6744
DK
239362009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
23937
23938 * ira.c (setup_cover_and_important_classes): Use safe macro
23939 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
23940 directly.
23941 * genpreds.c (write_tm_preds_h): Output suitable definition of
23942 REG_CLASS_FOR_CONSTRAINT.
23943
f136c8ae
RAE
239442009-04-30 Rafael Avila de Espindola <espindola@google.com>
23945
23946 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
23947 instead of an int.
23948 * bitmap.c (bitmap_descriptor): Likewise.
23949 * ggc-common.c (loc_descriptor): Likewise.
23950 * varray.c (varray_descriptor): Likewise.
23951 * vec.c (vec_descriptor): Likewise.
23952
43fcece8 239532009-04-30 Eric Botcazou <ebotcazou@adacore.com>
35debead
EB
23954
23955 * Makefile.in (dce.o): Add $(EXCEPT_H).
23956 * dce.c: Include except.h and delete redundant vector definitions.
23957 (deletable_insn_p): Return false for non-call insns that can throw
23958 if DF is running.
23959
df35c271
SB
239602009-04-30 Steven Bosscher <steven@gcc.gnu.org>
23961
23962 * gcse.c (ae_gen): Remove.
23963 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
23964 and make non-static function to make it available in store-motion.c.
23965 Update call sites with search-and-replace.
23966 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
23967 extract_mentioned_regs, extract_mentioned_regs_helper,
23968 find_moveable_store, compute_store_table, load_kills_store, find_loads,
23969 store_killed_in_insn, store_killed_after, store_killed_before,
23970 build_store_vectors, insert_insn_start_basic_block, insert-store,
23971 remove_reachable_equiv_notes, replace_store_insn, delete_store,
23972 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
23973 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
23974 * store-motion.c: ...new file. Also copy data structures from gcse.c
23975 and clean up to remove parts not used by store motion.
23976 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
23977 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
23978
f711a87a
RR
239792009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
23980
23981 PR target/38571
23982 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
23983 when optimizing for size.
23984
fa5ed76e
HPN
239852009-04-30 Hans-Peter Nilsson <hp@axis.com>
23986
23987 * gcse.c (gcse_constant_p): Fix typo in last change.
23988
0acbbdb0
RAE
239892009-04-30 Rafael Avila de Espindola <espindola@google.com>
23990
23991 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
23992
82f5c05d
AK
239932009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
23994
23995 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
23996
6d8f135b
JW
239972009-04-29 James E. Wilson <wilson@codesourcery.com>
23998
23999 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
24000 CONST_HIGH_PART result.
24001
c21ca196
AS
240022009-04-29 Anatoly Sokolov <aesok@post.ru>
24003
24004 * config/avr/avr.c (initial_elimination_offset): Rename to
24005 avr_initial_elimination_offset.
24006 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
24007 change return type to bool.
24008 (avr_can_eliminate): New function.
24009 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
24010 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
24011 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
0d50d55a 24012 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
c21ca196
AS
24013 avr_initial_elimination_offset.
24014 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
24015 (avr_initial_elimination_offset): Define.
24016
2a34bece 240172009-04-29 Eric Botcazou <ebotcazou@adacore.com>
aa016ff7 24018 Steven Bosscher <steven@gcc.gnu.org>
2a34bece
EB
24019
24020 PR rtl-optimization/39938
24021 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
24022 * cfgrtl.c: Include insn-attr.h.
24023 (rest_of_pass_free_cfg): New function.
24024 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
24025 * resource.c (init_resource_info): Remove call to df_analyze.
24026
5dc7911e
RG
240272009-04-29 Richard Guenther <rguenther@suse.de>
24028
24029 PR target/39943
24030 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
24031 allow conversion to signed integers.
24032
1fe479fd
RG
240332009-04-29 Richard Guenther <rguenther@suse.de>
24034
24035 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
24036 shifts of floating point vectors if the shift amount is
24037 a constant multiple of the element size.
24038
8e001680
AK
240392009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
24040 Michael Matz <matz@suse.de>
24041
24042 PR middle-end/39927
24043 PR bootstrap/39929
24044 * tree-outof-ssa.c (emit_partition_copy): New function.
24045 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
24046 insert_part_to_rtx_on_edge): Perform the partition base var
24047 copy using emit_partition_copy.
24048 (insert_value_copy_on_edge): Convert constants to the right mode.
24049 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
24050 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
24051
e50e3081
BS
240522009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
24053
24054 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
24055 scan backwards to try to find a constant to initialize it.
24056
4e5d521b
BS
24057 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
24058 insn before the loop_end instruction, don't look past labels.
24059
7c90021d
RG
240602009-04-29 Richard Guenther <rguenther@suse.de>
24061
24062 PR middle-end/39937
24063 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
24064 loose type conversions.
24065 (forward_propagate_addr_expr): Fix tuplification bug. Remove
24066 stmts only if there are no uses of its definition.
24067
97a988bc
BS
240682009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
24069
24070 * config/bfin/bfin.h (splitting_loops): Declare.
24071 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
24072 Reorder bit definitions to be ascending.
24073 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
24074 * config/bfin/bfin.c (splitting_loops): New variable.
24075 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
24076 (struct loop_info): Remove members INIT and LOOP_INIT.
24077 (bfin_optimize_loop): Don't set them. Reorder the code that generates
aa016ff7
UB
24078 the LSETUP sequence. Allow LC to be loaded from any register, but
24079 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
97a988bc
BS
24080 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
24081 set to 1.
24082 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
24083 of reload_completed.
aa016ff7 24084
97a988bc
BS
24085 From Jie Zhang:
24086 * config/bfin/bfin.md (movsi_insn): Refine constraints.
24087
0c463e16
RAE
240882009-04-29 Rafael Avila de Espindola <espindola@google.com>
24089
24090 * Makefile.in (PLUGIN_VERSION_H): New.
24091 (OBJS-common): Remove plugin-version.o.
24092 (plugin.o): Depend on (PLUGIN_VERSION_H).
24093 (plugin-version.o): Remove.
24094 * configure: Regenerate
24095 * configure.ac: Create plugin-version.h.
24096 * gcc-plugin.h (plugin_gcc_version): Remove.
24097 (plugin_default_version_check): Change signature.
24098 * plugin-version.c: Remove.
24099 * plugin.c: Include plugin-version.h.
24100 (str_plugin_gcc_version_name): Remove.
24101 (try_init_one_plugin): Pass gcc version to plugin_init.
24102 (plugin_default_version_check): Both gcc and plugin versions are now
24103 arguments.
24104
307e7eab 241052009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
f100a4a8 24106
307e7eab
BS
24107 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
24108 problematic last insns. Test for TYPE_CALL rather than CALL_P.
aa016ff7
UB
24109 Remove special case testing for last insn of inner loops. Don't fail
24110 if the loop ends with a jump, emit an extra nop instead.
307e7eab 24111
c5d96723
BS
24112 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
24113 DREGS rather than comparing directly. Remove code that tries to
24114 account for latencies.
24115
de0b4ad5
RG
241162009-04-29 Richard Guenther <rguenther@suse.de>
24117
24118 PR tree-optimization/39941
24119 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
24120 eliminating an indirect call.
24121
3a19701a
RG
241222009-04-29 Richard Guenther <rguenther@suse.de>
24123
24124 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
24125 parameter. Allow invariants as base if !require_lvalue.
24126 (verify_gimple_assign_single): Adjust.
24127
a0a31d1e
BS
241282009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
24129
24130 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
24131 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
aa016ff7
UB
24132 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
24133 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
a0a31d1e
BS
24134 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
24135 a VEC_SELECT.
aa016ff7
UB
24136 * config/bfin/bfin.c (bfin_expand_builtin,
24137 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
a0a31d1e 24138
795bd26a
RG
241392009-04-28 Richard Guenther <rguenther@suse.de>
24140
24141 * tree-vect-loop.c (get_initial_def_for_induction): Use
24142 correct types for pointer increment.
24143
04be270f
KG
241442009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24145
24146 * toplev.c (print_version): Update GMP version string calculation.
24147
e1a3b85c
EB
241482009-04-28 Eric Botcazou <ebotcazou@adacore.com>
24149
24150 PR rtl-optimization/39938
24151 * resource.c (init_resource_info): Add call to df_analyze.
24152
8224166e
UB
241532009-04-28 Uros Bizjak <ubizjak@gmail.com>
24154
24155 * config/alpha/alpha.md (usegp): Cast the result of
24156 alpha_find_lo_sum_using_gp to enum attr_usegp.
24157 * config/alpha/alpha.c (override_options): Remove end-of-structure
24158 marker element from cpu_table. Use array size of cpu_table to handle
24159 -mcpu and -mtune options.
24160 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
24161
c5f0fe67
JM
241622009-04-28 Joseph Myers <joseph@codesourcery.com>
24163
24164 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
24165 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
24166 tune_32 and tune_64.
24167 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
24168 support on PowerPC.
24169 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
24170 * config/rs6000/option-defaults.h: ... here. New file.
24171 (OPT_64, OPT_32): Define.
24172 (MASK_64BIT): Define to 0 if not already defined.
24173 (OPT_ARCH64, OPT_ARCH32): Define.
24174 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
24175 and tune_64.
24176
0c48a567
RR
241772009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24178
24179 * config/arm/arm.c (arm_override_options): Emit error on using
24180 fpa with AAPCS.
24181
f1028b9d
UB
241822009-04-28 Uros Bizjak <ubizjak@gmail.com>
24183
24184 PR rtl-optimization/39914
24185 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
24186 registers for allocnos created from user-defined variables only
24187 when not optimizing.
24188
e0dd989a
RG
241892009-04-28 Richard Guenther <rguenther@suse.de>
24190
24191 PR middle-end/39937
24192 * fold-const.c (fold_binary): Use distribute_real_division only
24193 on float types.
24194
9a17c91d
SE
241952009-04-28 Steve Ellcey <sje@cup.hp.com>
24196
24197 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
24198 add hpux-stdint.h to tm_file.
24199 (hppa[12]*-*-hpux11*): Ditto.
24200 (ia64*-*-hpux*): Ditto.
24201 * config/hpux-stdint.h: New.
60839f5d 24202 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
9a17c91d 24203 __STDC_EXT__ for all compiles.
60839f5d
EB
24204 * config/pa/pa-hpux.h: Ditto.
24205 * config/pa/pa-hpux10.h: Ditto.
24206 * config/pa/pa-hpux11.h: Ditto.
9a17c91d 24207
af04e659
CM
242082009-04-28 Catherine Moore <clm@codesourcery.com>
24209
24210 * debug.h (set_name): Add comment.
24211
04ef80ce
AP
242122009-04-28 Andrew Pinski <pinskia@gmail.com>
24213
24214 PR target/39929
24215 * config/darwin.c (machopic_gen_offset): Check
24216 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
24217 * config/arm/arm.c (require_pic_register): Likewise.
24218
65ad77af
PB
242192009-04-28 Paolo Bonzini <bonzini@gnu.org>
24220
8224166e
UB
24221 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
24222 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
24223 m32c_promote_prototypes): Delete.
65ad77af 24224
1b15a008
MM
242252009-04-28 Michael Matz <matz@suse.de>
24226
24227 PR middle-end/39922
24228 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
24229 constants.
24230
7569a6cc
RG
242312009-04-28 Richard Guenther <rguenther@suse.de>
24232
f1028b9d 24233 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
7569a6cc 24234
ead204d9
RR
242352009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24236
24237 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
24238 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
24239 * config/arm/arm-tune.md: Regenerate.
24240
f2c45f08 242412009-04-28 Alexander Monakov <amonakov@ispras.ru>
60839f5d 24242
f2c45f08
AM
24243 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
24244 block if there are complex incoming edges.
24245 (sel_merge_blocks): Remove useless assert.
24246 (sel_redirect_edge_and_branch): Check that edge was redirected.
24247 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
24248 (sel_find_rgns): Delete declaration.
24249 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
24250 the region when it is not a preheader.
24251
7a00d767
UB
242522009-04-28 Uros Bizjak <ubizjak@gmail.com>
24253
24254 PR c/39323
24255 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
24256
448ee662
RG
242572009-04-28 Richard Guenther <rguenther@suse.de>
24258
24259 * tree.h (SSA_NAME_VALUE): Remove.
24260 (struct tree_ssa_name): Remove value_handle member.
24261 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
24262 array for jump threading.
24263 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
24264 SSA_NAME_VALUEs.
24265 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
24266 * tree-flow.h (threadedge_initialize_values): Declare.
24267 (threadedge_finalize_values): Likewise.
24268 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
24269 (SSA_NAME_VALUE): Define.
24270 (threadedge_initialize_values): New function.
24271 (threadedge_finalize_values): Likewise.
24272 * tree-ssa-dom.c (ssa_name_values): New global variable.
24273 (SSA_NAME_VALUE): Define.
f1028b9d 24274 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
448ee662 24275
8644a673
IR
242762009-04-28 Ira Rosen <irar@il.ibm.com>
24277
24278 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
f100a4a8 24279 Use REPORT_VECTORIZED_LOCATIONS instead
8644a673
IR
24280 REPORT_VECTORIZED_LOOPS.
24281 * tree-vectorizer.c (vect_verbosity_level): Make static.
24282 (vect_loop_location): Rename to vect_location.
24283 (vect_set_verbosity_level): Update comment.
24284 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
24285 and vect_location.
24286 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
24287 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
24288 instead REPORT_UNVECTORIZED_LOOPS.
fbdf817d
UB
24289 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
24290 and vect_loop_def to vect_external_def and vect_internal_def.
8644a673 24291 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
f100a4a8 24292 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
8644a673
IR
24293 REPORT_UNVECTORIZED_LOCATIONS.
24294 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
f100a4a8 24295 and vect_used_in_loop and to vect_unused_in_scope and
8644a673
IR
24296 vect_used_in_scope.
24297 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
24298 (vect_verbosity_level): Remove declaration.
24299 (vect_analyze_operations): Likewise.
24300 (vect_analyze_stmt): Declare.
24301 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
24302 REPORT_UNVECTORIZED_LOCATIONS.
24303 (vect_get_loop_niters): Fix indentation.
24304 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
24305 (vect_analyze_loop_operations): New function.
24306 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
24307 vect_analyze_operations.
24308 (vect_is_simple_reduction): Use new names.
24309 (vectorizable_live_operation, vect_transform_loop): Likewise.
fbdf817d
UB
24310 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
24311 to specify whether the data references can be a part of interleaving
24312 chain.
8644a673
IR
24313 (vect_analyze_data_ref_dependence): Use new names.
24314 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
24315 (vect_create_addr_base_for_vector_ref): Remove redundant code.
24316 * tree-vect-patterns.c (widened_name_p): Use new names.
24317 (vect_recog_dot_prod_pattern): Likewise.
24318 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
f100a4a8 24319 (process_use, vect_mark_stmts_to_be_vectorized,
8644a673
IR
24320 vect_model_simple_cost, vect_model_store_cost,
24321 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
24322 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
24323 vectorizable_operation, vectorizable_type_demotion,
24324 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
24325 vectorizable_condition): Likewise.
24326 (vect_analyze_operations): Split into vect_analyze_loop_operations
24327 and ...
24328 (vect_analyze_stmt): ... new function.
24329 (new_stmt_vec_info): Use new names.
24330 (vect_is_simple_use): Use new names and fix comment.
24331 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
24332 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
24333
b91322f2
UB
243342009-04-28 Uros Bizjak <ubizjak@gmail.com>
24335
24336 PR target/39911
24337 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
24338 and integer modes for x87 operands. Do not ICE for unsupported size,
24339 generate error instead. Generate error for unsupported operand types.
24340 ['z']: Do not handle HImode memory operands specially. Warning
24341 for floating-point operands. Fallthru to 'Z' for unsupported operand
24342 types. Do not ICE for unsupported size, generate error instead.
24343 (output_387_binary_op): Use %Z to output operands.
24344 (output_fp_compare): Ditto.
24345 (output_387_reg_move): Ditto.
24346
b2ed71b6
BE
243472009-04-28 Ben Elliston <bje@au.ibm.com>
24348
24349 PR c++/35652
24350 Revert:
24351
24352 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
24353
24354 * builtins.c (c_strlen): Do not warn here.
24355 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
24356 * c-common.c (pointer_int_sum): Take an explicit location.
24357 Warn about offsets out of bounds.
24358 * c-common.h (pointer_int_sum): Adjust declaration.
24359
81f40b79
ILT
243602009-04-27 Ian Lance Taylor <iant@google.com>
24361
24362 * collect2.c (is_ctor_dtor): Change type of ret field in struct
24363 names to symkind.
24364 * dce.c (run_fast_df_dce): Change type of old_flags to int.
24365 * df-core.c (df_set_flags): Change return type to int. Change
24366 type of old_flags to int.
24367 (df_clear_flags): Likewise.
24368 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
24369 (df_get_conditional_uses): Likewise.
24370 * df.h (df_set_flags, df_clear_flags): Update declarations.
24371 * dwarf2out.c (struct indirect_string_node): Change type of form
24372 field to enum dwarf_form.
24373 (AT_string_form): Change return type to enum dwarf_form.
24374 * fixed-value.c (fixed_compare): Add cast to enum type.
24375 * fwprop.c (update_df): Change 0 to VOIDmode.
24376 * gensupport.c: Change 0 to UNKNOWN.
24377 * gimple.h (gimple_cond_code): Add cast to enum type.
24378 * haifa-sched.c (reemit_notes): Add cast to enum type.
24379 * hooks.c (hook_int_void_no_regs): Remove function.
24380 * hooks.h (hook_int_void_no_regs): Remove declaration.
24381 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
7a00d767 24382 * predict.c (combine_predictions_for_insn): Add casts to enum type.
81f40b79
ILT
24383 * real.c (real_arithmetic): Add cast to enum type.
24384 (real_compare): Likewise.
24385 * target.h (struct gcc_target): Change return type of
24386 branch_target_register_class to enum reg_class.
24387 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
24388 default_branch_target_register_class.
7a00d767 24389 * targhooks.c (default_branch_target_register_class): New function.
81f40b79 24390 * targhooks.h (default_branch_target_register_class): Declare.
7a00d767 24391 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
81f40b79
ILT
24392 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
24393 cast to int.
24394 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
24395 ERROR_MARK.
24396 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
24397 vect_uninitialized_def. Change 0 to ERROR_MARK.
24398 * tree-vect-stmts.c (supportable_widening_operation): Don't
24399 initialize icode1 and icode2.
7a00d767 24400 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
81f40b79
ILT
24401 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
24402 and to STD_C89.
24403 (cmn_err_flag_specs): Change 0 to STD_C89.
24404 (cmn_err_char_table): Likewise.
24405 * config/arm/arm.c (get_arm_condition_code): Change type of code
24406 to enum arm_cond_code.
24407 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
24408 (IWMMXT_BUILTIN2): Likewise.
24409 (neon_builtin_type_bits): Don't define typedef.
24410 (neon_builtin_datum): Change type of bits field to int.
24411 (arm_expand_neon_args): Add cast to enum type.
24412 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
24413 TLS_MODEL_NONE.
24414 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
24415 casts to enum type.
24416 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
24417 MIPS_FP_COND_f.
24418 * config/mips/mips.md (jal_macro): Return enum constant.
24419 (single_insn): Likewise.
24420 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
24421 CODE_FOR_nothing.
24422 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
24423 casts to enum type.
24424 * config/s390/s390.c (s390_tune_flags): Change type to int.
24425 (s390_arch_flags): Likewise.
7a00d767 24426 (s390_handle_arch_option): Change flags field of struct pta to int.
81f40b79
ILT
24427 * config/s390/s390.h (s390_tune_flags): Update declaration.
24428 (s390_arch_flags): Likewise.
24429 * config/sh/sh.c (prepare_move_operands): Compare
24430 tls_symbolic_operand result with enum constant.
24431 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
24432 (sh_expand_prologue): Add cast to enum type.
24433 (sh_expand_epilogue): Likewise.
24434 (tls_symbolic_operand): Change return type to enum tls_model.
24435 (fpscr_set_from_mem): Add cast to enum type.
24436 (legitimize_pic_address): Compare tls_symbolic_operand result with
24437 enum constant.
24438 (sh_target_reg_class): Change return type to enum reg_class.
24439 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
24440 PROCESSOR_xxx.
7a00d767
UB
24441 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
24442 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
81f40b79
ILT
24443 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
24444 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
24445 (delayed_branch, tls_call_delay): Likewise.
24446 (eligible_for_sibcall_delay): Likewise.
f100a4a8 24447 (eligible_for_return_delay): Likewise.
81f40b79
ILT
24448 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
24449 (spu_expand_builtin_1): Likewise.
24450
24451 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
24452 for all types of conversions.
24453 (output_init_element): Issue -Wc++-compat warning if needed when
24454 initializing a bitfield with enum type.
24455 * c-parser.c (c_parser_expression): Set original_type to
9302a061 24456 original_type of right hand operand of comma operator.
81f40b79 24457
e4ae5e77
RW
244582009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24459
24460 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
24461 grammar nits.
7a00d767 24462 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
e4ae5e77
RW
24463 * doc/cpp.texi (Standard Predefined Macros)
24464 (Implementation-defined behavior): Likewise.
7a00d767 24465 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
e4ae5e77
RW
24466 * doc/gimple.texi (GIMPLE Exception Handling)
24467 (@code{GIMPLE_ASSIGN}): Likewise.
7a00d767 24468 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
e4ae5e77
RW
24469 * doc/invoke.texi (Warning Options, Optimize Options)
24470 (AVR Options, Darwin Options): Likewise.
24471 (Optimize Options): Reformulate -fwhole-program description.
24472 * doc/loop.texi (Lambda): Likewise.
24473 * doc/md.texi (Output Template, Define Constraints)
24474 (Standard Names, Insn Splitting): Likewise.
24475 * doc/options.texi (Option properties): Likewise.
24476 * doc/passes.texi (Tree-SSA passes): Likewise.
24477 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
24478 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
24479 (File Names and DBX): Likewise.
24480 * doc/trouble.texi (Incompatibilities): Likewise.
24481
1883802f 244822009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
6e37f6d4
TS
24483
24484 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
24485 instruction is correct.
24486
1883802f 244872009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
5345cf68
TS
24488
24489 Allow non-constant arguments to conversion intrinsics.
24490 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
24491 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
24492 * spu.c (print_operand): Handle 'v' and 'w'.
24493 (exp2_immediate_p, spu_gen_exp2): Define.
24494 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
24495 spu_convtf_1): Update parameter descriptions.
7a00d767 24496 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
5345cf68
TS
24497 * constraints.md ('v', 'w'): New.
24498 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
24499 Remove.
24500 (i2f, I2F): New define_mode_attr.
24501 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
24502 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
24503 fixuns_truncv4sfv4si2): Update to use mode attribute.
24504 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
24505 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
24506 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
24507 patterns for combine.
24508
5f39ad47
SB
245092009-04-27 Steven Bosscher <steven@gcc.gnu.org>
24510
24511 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
24512 (cprop, hoist, pre, store_motion): New debug counters.
24513 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
24514 is not an RTL pass anymore.
24515 (pass_profiling): Remove extern decl for pass removed in 2005.
24516 (pass_gcse, pass_jump_bypass): Remove.
24517 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
24518 to 0 for clean state.
24519 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
24520 * cse.c (gate_handle_cse_after_global_opts,
24521 rest_of_handle_cse_after_global_opts): New functions.
24522 (pass_cse_after_global_opts): New pass, does local CSE.
24523 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
24524 (TV_CPROP): New timevar.
24525 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
24526 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
24527 (gcse_main, recompute_all_luids): Remove.
24528 (compute_hash_table_work): Call max_reg_num instead of reading
24529 max_gcse_regno.
24530 (cprop_jump): Don't set run_jump_opt_after_gcse.
24531 (constprop_register): Always allow to alter jumps.
24532 (cprop_insn): Likewise.
24533 (do_local_cprop): Likewise.
24534 (local_cprop_pass): Likewise. Return non-zero if something changed.
24535 (cprop): Remove function, fold interesting bits into one_cprop_pass.
24536 (find_implicit_sets): Add note about missed optimization opportunity.
24537 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
24538 pass_rtl_cprop execute function.
24539 Don't bother tracking the pass number, each pass gets its own dumpfile
24540 now anyway.
24541 Always allow to alter jumpsand bypass jumps.
24542 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
24543 will just find no suitable set.
24544 (pre_edge_insert): Fix dumping, this function is for PRE only.
24545 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
24546 pass_rtl_pre execute function.
24547 (hoist_code): Return non-zero if something changed. Keep track of
24548 substitutions and insertions for statistics gathering similar to PRE.
24549 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
24550 called from the pass_rtl_hoist execute function. Show pass statistics.
24551 (compute_store_table): Use max_reg_num directly instead of using the
24552 formerly global max_gcse_regno.
24553 (build_store_vectors): Likewise.
24554 (replace_store_insn): Fix dumping.
24555 (store_motion): Rename to ...
24556 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
24557 pass, called from the pass_rtl_store_motion execute function. Keep
24558 track of substitutions and insertions for statistics gathering similar
24559 to PRE.
24560 (bypass_jumps): Remove, fold interesting bits into ...
24561 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
24562 from the pass_rtl_cprop execute function.
24563 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
24564 pass_jump_bypass): Remove.
24565 (gate_handle_gcse, rest_of_handle_gcse): Remove.
24566 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
24567 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
24568 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
24569 (gate_rtl_store_motion, execute_rtl_store_motion,
24570 pass_rtl_store_motion): New.
24571 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
24572 make it clear that -fcse-skip-blocks is a no-op for backward compat.
24573 * passes.c (init_optimization_passes): Remove pass_gcse and
24574 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
24575 and cse_after_global_opts in place of pass_gcse. Schedule cprop
24576 instead of pass_jump_bypass.
24577
c685de4a
RG
245782009-04-27 Richard Guenther <rguenther@suse.de>
24579
24580 PR middle-end/39928
24581 * gimplify.c (gimplify_expr): If we are required to create
24582 a temporary make sure it ends up as register.
24583
72d41f29
L
245842009-04-27 H.J. Lu <hongjiu.lu@intel.com>
24585
24586 PR target/39903
24587 * config/i386/i386.c (construct_container): Don't call
24588 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
24589 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
24590
e97809c6
MM
245912009-04-27 Michael Matz <matz@suse.de>
24592
24593 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
24594 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
bd62d832 24595 * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap.
e97809c6
MM
24596 (dump_replaceable_exprs): Take a bitmap.
24597 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
24598 array.
24599 (expand_gimple_basic_block): Likewise.
24600 * tree-ssa-ter.c (struct temp_expr_table_d): Make
24601 replaceable_expressions member a bitmap.
24602 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
24603 (mark_replaceable): Likewise.
24604 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
24605 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
24606
211ca15c
RG
246072009-04-27 Richard Guenther <rguenther@suse.de>
24608
24609 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
24610 (verify_stmts): Dispatch to gimple/type verification code.
24611 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
24612 issue with call argument types.
24613
fca5f3d1
MM
246142009-04-27 Michael Matz <matz@suse.de>
24615
24616 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
24617 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
24618 to above.
24619
a1fa3e79 246202009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
8224166e 24621 Eric Botcazou <ebotcazou@adacore.com>
a1fa3e79
EB
24622
24623 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
24624 a label's basic block.
24625 (mark_target_live_regs): Tidy and rework obsolete comments.
24626 Change back DF problem to LIVE. If a label starts a basic block,
24627 assume that all registers that used to be live then still are.
24628 (init_resource_info): If a label starts a basic block, set its
24629 BLOCK_FOR_INSN accordingly.
24630 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
24631
33b223c0
RG
246322009-04-27 Richard Guenther <rguenther@suse.de>
24633
24634 * tree-flow-inline.h (function_ann): Remove.
24635 (get_function_ann): Likewise.
24636 * tree-dfa.c (create_function_ann): Remove.
24637 * tree-flow.h (struct static_var_ann_d): Remove.
24638 (struct function_ann_d): Likewise.
24639 (union tree_ann_d): Remove fdecl member.
24640 (function_ann_t): Remove.
24641 (function_ann, get_function_ann, create_function_ann): Remove
24642 declarations.
24643
e3136fa2
UB
246442009-04-27 Uros Bizjak <ubizjak@gmail.com>
24645
24646 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
24647
f87c9042
JH
246482009-04-27 Jan Hubicka <jh@suse.cz>
24649
24650 * ipa-pure-const.c (struct funct_state_d): New fields
24651 state_previously_known, looping_previously_known; remove
24652 state_set_in_source.
24653 (analyze_function): Use new fields.
24654 (propagate): Avoid assumption that state_set_in_source imply
24655 nonlooping.
24656
24657 * tree-ssa-loop-niter.c (finite_loop_p): New function.
24658 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
24659 * cfgloop.h (finite_loop_p): Declare.
24660
33abd718
MM
246612009-04-26 Michael Matz <matz@suse.de>
24662
e3136fa2 24663 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
33abd718 24664
ddc34084
MM
246652009-04-26 Michael Matz <matz@suse.de>
24666
24667 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
24668 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
24669 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
24670 pass_mark_used_blocks): Remove.
24671 * tree-optimize.c (pass_free_datastructures,
24672 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
24673 * passes.c (init_optimization_passes): Don't call
24674 pass_mark_used_blocks, remove dead code.
24675
1fec7ed4
L
246762009-04-26 H.J. Lu <hongjiu.lu@intel.com>
24677
24678 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
24679 * tree-ssa-live.h (register_ssa_partition): Likewise.
24680
4e3825db
MM
246812009-04-26 Michael Matz <matz@suse.de>
24682
24683 Expand from SSA.
24684 * builtins.c (fold_builtin_next_arg): Handle SSA names.
24685 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
24686 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
f100a4a8 24687 SSA names.
4e3825db
MM
24688 (compare_pairs): Swap cost comparison.
24689 (coalesce_ssa_name): Don't use change_partition_var.
24690 * tree-nrv.c (struct nrv_data): Add modified member.
24691 (finalize_nrv_r): Set it.
24692 (tree_nrv): Use it to update statements.
24693 (pass_nrv): Require PROP_ssa.
24694 * tree-mudflap.c (mf_decl_cache_locals,
24695 mf_build_check_statement_for): Use make_rename_temp.
24696 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
24697 * alias.c (find_base_decl): Handle SSA names.
24698 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
24699 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
24700 * rtl.h (set_reg_attrs_for_parm): Declare.
24701 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
24702 to "optimized", remove unused locals at finish.
24703 (execute_free_datastructures): Make global, call
24704 delete_tree_cfg_annotations.
24705 (execute_free_cfg_annotations): Don't call
24706 delete_tree_cfg_annotations.
24707
24708 * ssaexpand.h: New file.
24709 * expr.c (toplevel): Include ssaexpand.h.
e3136fa2 24710 (expand_assignment): Handle SSA names the same as register variables.
4e3825db
MM
24711 (expand_expr_real_1): Expand SSA names.
24712 * cfgexpand.c (toplevel): Include ssaexpand.h.
24713 (SA): New global variable.
24714 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
24715 (SSAVAR): New macro.
24716 (set_rtl): New helper function.
24717 (add_stack_var): Deal with SSA names, use set_rtl.
24718 (expand_one_stack_var_at): Likewise.
24719 (expand_one_stack_var): Deal with SSA names.
24720 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
24721 before unique numbers.
24722 (expand_stack_vars): Use set_rtl.
24723 (expand_one_var): Accept SSA names, add asserts for them, feed them
24724 to above subroutines.
24725 (expand_used_vars): Expand all partitions (without default defs),
24726 then only the local decls (ignoring those expanded already).
24727 (expand_gimple_cond): Remove edges when jumpif() expands an
24728 unconditional jump.
24729 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
24730 or remove abnormal edges. Ignore insns setting the LHS of a TERed
24731 SSA name.
24732 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
24733 members of SA; deal with PARM_DECL partitions here; expand
24734 all PHI nodes, free tree datastructures and SA. Commit instructions
24735 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
24736 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
24737 info and statements at start, collect garbage at finish.
24738 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
24739 (VAR_ANN_PARTITION) Remove.
24740 (change_partition_var): Don't declare.
24741 (partition_to_var): Always return SSA names.
24742 (var_to_partition): Only accept SSA names.
24743 (register_ssa_partition): Only check argument.
24744 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
24745 member.
24746 (delete_var_map): Don't free it.
24747 (var_union): Only accept SSA names, simplify.
24748 (partition_view_init): Mark only useful SSA names as used.
24749 (partition_view_fini): Only deal with SSA names.
24750 (change_partition_var): Remove.
24751 (dump_var_map): Use ssa_name instead of partition_to_var member.
24752 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
24753 basic blocks.
24754 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
24755 (struct _elim_graph): New member const_dests; nodes member vector of
24756 ints.
24757 (set_location_for_edge): New static helper.
24758 (create_temp): Remove.
24759 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
e3136fa2 24760 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
4e3825db
MM
24761 (new_elim_graph): Allocate const_dests member.
24762 (clean_elim_graph): Truncate const_dests member.
24763 (delete_elim_graph): Free const_dests member.
24764 (elim_graph_size): Adapt to new type of nodes member.
24765 (elim_graph_add_node): Likewise.
24766 (eliminate_name): Likewise.
24767 (eliminate_build): Don't take basic block argument, deal only with
24768 partition numbers, not variables.
24769 (get_temp_reg): New static helper.
24770 (elim_create): Use it, deal with RTL temporaries instead of trees.
24771 (eliminate_phi): Adjust all calls to new signature.
24772 (assign_vars, replace_use_variable, replace_def_variable): Remove.
24773 (rewrite_trees): Only do checking.
24774 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
24775 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
24776 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
24777 contains_tree_r, MAX_STMTS_IN_LATCH,
24778 process_single_block_loop_latch, analyze_edges_for_bb,
24779 perform_edge_inserts): Remove.
24780 (expand_phi_nodes): New global function.
24781 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
24782 functions, initialize new parameter, remember partitions having a
24783 default def.
24784 (finish_out_of_ssa): New global function.
24785 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
24786 don't reset in_ssa_p here, don't disable TER when mudflap.
24787 (pass_del_ssa): Remove.
24788 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
24789 partition members.
24790 (execute_free_datastructures): Declare.
24791 * Makefile.in (SSAEXPAND_H): New variable.
24792 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
24793 * basic-block.h (commit_one_edge_insertion): Declare.
24794 * passes.c (init_optimization_passes): Move pass_nrv and
24795 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
24796 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
24797 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
24798 (redirect_branch_edge): Deal with super block when expanding, split
24799 out jump patching itself into ...
24800 (patch_jump_insn): ... here, new static helper.
24801
17c665a9
MM
248022009-04-26 Michael Matz <matz@suse.de>
24803
24804 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
24805 beyond num_ssa_names.
24806 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
24807 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
24808
92061771
JJ
248092009-04-26 Jakub Jelinek <jakub@redhat.com>
24810
ce372372
JJ
24811 PR inline-asm/39543
24812 * fwprop.c (forward_propagate_asm): New function.
24813 (forward_propagate_and_simplify): Propagate also into __asm, if it
24814 doesn't increase the number of referenced registers.
24815
92061771
JJ
24816 PR c/39889
24817 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
24818
248192009-04-26 Jakub Jelinek <jakub@redhat.com>
77f2a970
JJ
24820
24821 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
24822 note_nonlocal_vla_type for nonlocal VLAs.
24823 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
24824 contains_remapped_vars, remap_vla_decls): New functions.
24825 (convert_nonlocal_reference_stmt): If not optimizing, call
24826 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
24827 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
24828 if it wasn't found in var_map.
24829 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
24830 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
24831 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
24832 declare_vars.
24833 * gimplify.c (nonlocal_vlas): New variable.
24834 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
24835 referenced VLAs.
24836 (gimplify_body): Create and destroy nonlocal_vlas.
a9548ddf 24837
4561e242
JJ
24838 * dwarf2out.c (loc_descr_plus_const): New function.
24839 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
24840 mem_loc_descriptor, loc_descriptor_from_tree_1,
24841 descr_info_loc, gen_variable_die): Use it.
24842
a9548ddf
JJ
24843 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
24844 !TREE_STATIC VAR_DECLs.
24845 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
24846 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
24847 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
24848 DECL_BY_REFERENCE is valid.
24849 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
24850 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
24851 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
24852 Copy DECL_BY_REFERENCE.
24853 (struct nesting_copy_body_data): New type.
24854 (nesting_copy_decl): New function.
24855 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
24856 if they have variable length.
24857
10555d08
MM
248582009-04-26 Michael Matz <matz@suse.de>
24859
24860 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
24861 mark new temporaries for renaming.
24862
e11187cc
JM
248632009-04-26 Joseph Myers <joseph@codesourcery.com>
24864
24865 PR c/39581
24866 * c-decl.c (global_bindings_p): Return negative value.
24867 (c_variable_size): New. Based on variable_size from
24868 stor-layout.c.
24869 (grokdeclarator): Call c_variable_size not variable_size.
24870
f6a51d31
UB
248712009-04-26 Uros Bizjak <ubizjak@gmail.com>
24872
24873 * config/i386/i386.c (print_operand) ['z']: Fix typo.
24874
4b97723d
KT
248752009-04-26 Kai Tietz <kai.tietz@onevision.com>
24876
24877 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
24878 Redefine it to just use mingw/include.
24879 (ASM_SPEC): Rules for -m32 and -m64.
24880 (LINK_SPEC): Use Likewise.
24881 (SPEC_32): New define.
24882 (SPEC_64): Likewise.
24883 (SUB_LINK_SPEC): Likewise.
24884 (MULTILIB_DEFAULTS): New define.
24885 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
24886 Add multilib options.
24887 (MULTILIB_DIRNAMES): Likewise.
24888 (MULTILIB_OSDIRNAMES): Likewise.
24889 (LIBGCC): Likewise.
24890 (INSTALL_LIBGCC): Likewise.
24891
991d6621
JM
248922009-04-26 Joseph Myers <joseph@codesourcery.com>
24893
24894 PR c/39556
24895 * c-tree.h (enum c_inline_static_type): New.
24896 (record_inline_static): Declare.
24897 * c-decl.c (struct c_inline_static, c_inline_statics,
24898 record_inline_static, check_inline_statics): New.
24899 (pop_file_scope): Call check_inline_statics.
24900 (start_decl): Call record_inline_static instead of pedwarning
24901 directly for static in inline function.
24902 * c-typeck.c (build_external_ref): Call record_inline_static
24903 instead of pedwarning directly for static referenced in inline
24904 function.
24905
4a81774c
SB
249062009-04-26 Steven Bosscher <steven@gcc.gnu.org>
24907
24908 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
24909 not new but only being rescanned.
24910 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
24911 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
24912 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
24913 record_set_info, compute_set, grealloc): Remove.
24914 (recompute_all_luids): New function.
24915 (gcse_main): Don't compute sets, and don't do related memory
24916 allocations/free-ing. If something changed before the end of the
24917 pass, update LUIDs using recompute_all_luids.
24918 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
24919 (free_gcse_mem): Don't free it either.
24920 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
24921 Use the df insn LUIDs.
24922 (load_killed_in_block): Likewise.
24923 (compute_hash_table_work): Don't compute reg_set_in_block.
24924 (compute_transp): Use DF_REG_DEF_CHAINs.
24925 (local_cprop_pass): Don't use compute_sets and related functions.
24926 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
24927 Use get_max_uid() instead of max_cuid.
24928 (insert_insn_end_basic_block, pre_insert_copy_insn,
24929 update_ld_motion_stores): Don't try to
24930 keep reg_set tables up to date.
24931 (pre_insert_copies): Use df insn LUIDs.
24932 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
24933 (reg_set_info): Don't use extra bitmap argument.
24934 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
24935 information to compute regs_set_in_block.
24936 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
24937 (bypass_jumps): Don't use compute_sets and friends.
24938
e8f99a9d
RW
249392009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
24940
24941 PR testsuite/39710
24942 * opts.c (undocumented_msg): Do not leave blank even with
24943 ENABLE_CHECKING.
24944
6895bac8
JM
249452009-04-25 Joseph Myers <joseph@codesourcery.com>
24946
24947 * c-decl.c (build_enumerator): Allow values folding to integer
24948 constants but not integer constant expressions with a pedwarn if
24949 pedantic.
24950
24070fcb
JM
249512009-04-25 Joseph Myers <joseph@codesourcery.com>
24952
24953 PR c/39582
24954 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
24955 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
24956 type is an integer constant.
24957
d6d89aa1
UB
249582009-04-25 Uros Bizjak <ubizjak@gmail.com>
24959
24960 PR target/39897
24961 * config/i386/i386.c (print_operand) ['z']: Revert handling of
24962 HImode operands.
24963
92f6fd0b
JM
249642009-04-25 Joseph Myers <joseph@codesourcery.com>
24965
24966 PR c/39564
24967 * c-decl.c (grokdeclarator): Diagnose declarations of functions
24968 with variably modified return type and no storage class
24969 specifiers, except for the case of nested functions. Distinguish
24970 extern declarations of functions with variably modified return
24971 types from those of objects with variably modified types.
24972
a3710436
JH
249732009-04-25 Jan Hubicka <jh@suse.cz>
24974
24975 * tree.c (list_equal_p): New function.
24976 * tree.h (list_equal_p): Declare.
24977 * coretypes.h (edge_def, edge, const_edge, basic_block_def
24978 basic_block_def, basic_block, const_basic_block): New.
24979 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
24980 (redirect_eh_edge): New function.
24981 (make_eh_edge_update_phi): EH edges are not abnormal.
24982 * except.c: Include tree-flow.h.
24983 (list_match): New function.
24984 (eh_region_replaceable_by_p): New function.
24985 (replace_region): New function.
24986 (hash_type_list): New function.
24987 (hash_eh_region): New function.
24988 (eh_regions_equal_p): New function.
24989 (merge_peers): New function.
24990 (remove_unreachable_regions): Verify EH tree when checking;
24991 merge peers.
24992 (copy_eh_region_1): New function.
24993 (copy_eh_region): New function.
24994 (push_reachable_handler): New function.
24995 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
24996 regions without label but with live RESX.
24997 * except.h (redirect_eh_edge_to_label): New.
24998 * tree-flow.h (redirect_eh_edge): New.
24999 * coretypes.h (edge_def, edge, const_edge, basic_block_def
25000 basic_block_def, basic_block, const_basic_block): Remove.
25001 * Makefile.in (except.o): Add dependency on tree-flow.h
25002 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
25003 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
25004 Remove.
25005
3764d512
EB
250062009-04-25 Eric Botcazou <ebotcazou@adacore.com>
25007
25008 PR bootstrap/39645
25009 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
25010 on the destination of memcpy.
25011
1c62e8f2
PB
250122009-04-25 Paolo Bonzini <bonzini@gnu.org>
25013
25014 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
25015 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
25016 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
25017
496a4ef5
JH
250182009-04-25 Jan Hubicka <jh@suse.cz>
25019
25020 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
25021 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
25022 to be reached by different label than left.
25023 (update_eh_edges): Update comment; remove edge_to_remove if possible
25024 and return true if suceeded.
25025 (cleanup_empty_eh): Accept sharing map; handle shared regions.
25026 (cleanup_eh): Compute sharing map.
25027 * except.c (remove_eh_handler_and_replace): Add argument if we should
25028 update regions.
25029 (remove_unreachable_regions): Update for label sharing.
25030 (label_to_region_map): Likewise.
25031 (get_next_region_sharing_label): New function.
25032 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
25033 prev_try pointers.
25034 (remove_eh_handler): Update.
25035 (remove_eh_region_and_replace_by_outer_of): New function.
25036 * except.h (struct eh_region): Add next_region_sharing_label.
25037 (remove_eh_region_and_replace_by_outer_of,
25038 get_next_region_sharing_label): Declare.
25039 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
25040
250412009-04-25 Jan Hubicka <jh@suse.cz>
25042
25043 * tree-cfg.c (split_critical_edges): Split also edges where we can't
25044 insert code even if they are not critical.
25045
250462009-04-25 Jan Hubicka <jh@suse.cz>
25047
25048 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
25049 (gimple_can_remove_branch_p): EH edges won't remove branch by
25050 redirection.
25051 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
25052 updating of non-abnormal EH edges.
25053 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
25054 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
25055 (split_critical_edges): Split also edges where emitting code on them
25056 will lead to splitting later.
25057
a3a5e3d1
UB
250582009-04-25 Uros Bizjak <ubizjak@gmail.com>
25059 H.J. Lu <hongjiu.lu@intel.com>
25060
25061 PR target/39590
25062 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
25063 the configured assembler supports fildq and fistpq mnemonics.
25064 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
25065 * configure: Regenerated.
25066 * config.in: Ditto.
25067
25068 * config/i386/i386.c (print_operand): Handle 'Z'.
25069 ['z']: Remove handling of special fild/fist suffixes.
25070 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
25071 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
25072 suffix of fild insn.
25073 (*floatsi<mode>2_vector_mixed): Ditto.
25074 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
25075 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
25076 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
25077 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
25078 * config/i386/gas.h (GAS_MNEMONICS): Remove.
25079
23750d7f 250802009-04-25 Ben Elliston <bje@au.ibm.com>
f100a4a8 25081
23750d7f
BE
25082 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
25083 the source of a set operation.
25084
e6ff3083
AS
250852009-04-25 Anatoly Sokolov <aesok@post.ru>
25086
25087 * target.h (struct gcc_target): Add case_values_threshold field.
25088 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
25089 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
25090 * targhooks.c (default_case_values_threshold): New function.
25091 * targhooks.h (default_case_values_threshold): Declare function.
25092 * stmt.c (expand_case): Use case_values_threshold target hook.
25093 * expr.h (case_values_threshold): Remove declartation.
25094 * expr.c (case_values_threshold): Remove function.
25095 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
25096
25097 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
25098 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
25099 (avr_case_values_threshold): Declare as static.
25100 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
25101
25102 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
25103 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
25104 (mn10300_case_values_threshold): New function.
25105
569c72fc
L
251062009-04-24 H.J. Lu <hongjiu.lu@intel.com>
25107
25108 * ira.c (setup_cover_and_important_classes): Add enum cast.
25109
ff3cb468
VM
251102009-04-24 Vladimir Makarov <vmakarov@redhat.com>
25111
25112 * genpreds.c (write_enum_constraint_num): Output definition of
25113 CONSTRAINT_NUM_DEFINED_P macro.
25114 * ira.c (setup_cover_and_important_classes): Use
25115 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
f100a4a8 25116
4f7be849
DD
251172009-04-24 DJ Delorie <dj@redhat.com>
25118
25119 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
25120 __SH2A_SINGLE_ONLY__ also.
25121
735b94a7
SE
251222009-04-24 Steve Ellcey <sje@cup.hp.com>
25123
25124 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
25125 (movdf_internal): Ditto.
25126 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
25127 SFmode and DFmode constants.
25128 (ia64_print_operand): Add 'G' format for printing
25129 floating point constants.
25130
77a30264
RG
251312009-04-24 Richard Guenther <rguenther@suse.de>
25132
25133 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
25134 from unsigned additions.
25135
2b6da65c
JM
251362009-04-24 Joseph Myers <joseph@codesourcery.com>
25137
25138 * c-typeck.c (set_init_index): Allow array designators that are
25139 not integer constant expressions with a pedwarn if pedantic.
25140
f5a17c43
BS
251412009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
25142
25143 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
25144 zero if no overlap in nonzero bits between the operands.
25145
32e8bb8e
ILT
251462009-04-24 Ian Lance Taylor <iant@google.com>
25147
25148 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
25149 (record_dead_and_set_regs): Likewise.
25150 * df.h (struct df_mw_hardreg): Change flags field to int.
25151 (struct df_base_ref): Likewise.
25152 (struct df): Change changeable_flags field to int.
25153 * df-scan.c (df_defs_record): Change clobber_flags to int.
25154 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
25155 constants rather than #define macros.
25156 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
25157 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
25158 (enum dwarf_calling_convention): Likewise.
25159 (enum dwarf_line_number_x_ops): Likewise.
25160 (enum dwarf_call_frame_info): Likewise.
25161 (enum dwarf_source_language): Likewise.
25162 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
25163 (add_calling_convention_attribute): Likewise.
a3a5e3d1
UB
25164 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
25165 (combine_comparisons): Change compcode to int. Add cast to enum type.
32e8bb8e
ILT
25166 * genrecog.c (maybe_both_true_2): Change c to int.
25167 (write_switch): Likewise. Add cast to enum type.
25168 * gimplify.c (gimplify_omp_for): Handle return values from
25169 gimplify_expr using MIN rather than bitwise or.
25170 (gimplify_expr): Add cast to enum type.
25171 * ipa-prop.c (update_jump_functions_after_inlining): Change
25172 IPA_BOTTOM to IPA_JF_UNKNOWN.
a3a5e3d1
UB
25173 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
25174 Add casts to enum type.
32e8bb8e
ILT
25175 (setup_cover_and_important_classes): Change cl to int. Add casts
25176 to enum type.
25177 (setup_class_translate): Change cl and mode to int.
25178 (ira_init_once): Change mode to int.
25179 (free_register_move_costs): Likewise.
25180 (setup_prohibited_mode_move_regs): Add casts to enum type.
25181 * langhooks.c (add_builtin_function_common): Rework assertion that
25182 value fits bitfield.
25183 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
25184 * omega.c (omega_do_elimination): Avoid math on enum types.
25185 * optabs.c (expand_vec_shift_expr): Remove casts to int.
25186 * opts.c (set_debug_level): Change 2 to enum constant. Use new
25187 int local to handle integral_argment value.
25188 * regmove.c (try_auto_increment): Change PUT_MODE to
25189 PUT_REG_NOTE_KIND.
25190 * reload.c (push_secondary_reload): Add casts to enum type.
25191 (secondary_reload_class, find_valid_class): Likewise.
25192 * reload1.c (emit_input_reload_insns): Likewise.
25193 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
25194 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
25195 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
25196 constant.
25197 * tree.c (build_common_builtin_nodes): Add casts to enum type.
25198 * tree-complex.c (complex_lattice_t): Typedef to int rather than
25199 enum type.
25200 (expand_complex_libcall): Add casts to enum type.
25201 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
25202 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
25203 with ERROR_MARK, not NUM_TREE_CODES.
25204 (vect_create_epilog_for_reduction): Likewise.
25205 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
a3a5e3d1 25206 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
32e8bb8e
ILT
25207 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
25208 enum machine_mode.
25209 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
25210 vect_unused_in_loop. Change 0 to loop_vect.
a3a5e3d1 25211 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
32e8bb8e
ILT
25212 * var-tracking.c (get_init_value): Change return type to enum
25213 var_init_status.
25214 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
25215 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
25216 arm_fp_model.
25217 (arm_override_options): Add casts to enum type.
25218 (arm_emit_tls_decoration): Likewise.
25219 * config/i386/i386.c (ix86_function_specific_restore): Add casts
25220 to enum type.
25221 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
25222 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
25223 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
25224 enum type.
25225 * config/s390/s390.c (code_for_builtin_64): Change to array of
25226 enum insn_code.
25227 (code_for_builtin_31): Likewise.
25228 (s390_expand_builtin): Change code_for_builtin to enum insn_code
25229 const *.
25230 * config/sparc/sparc.c (sparc_override_options): Change value
25231 field in struct code_model to enum cmodel. In initializer change
25232 0 to NULL and add cast to enum type.
25233
25234 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
25235 Change all callers. Issue a -Wc++-compat warning using
25236 lhs_origtype if necessary.
25237 (convert_for_assignment): Issue -Wc++-compat warnings about
25238 invalid conversions to enum type on assignment.
25239 * c-common.h (build_modify_expr): Update declaration.
25240
ac4fc08a
NC
252412009-04-24 Nick Clifton <nickc@redhat.com>
25242
25243 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
25244 (function_arg_advance): Likewise.
25245 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
25246 5th alternative.
25247
f22e891a
AK
252482009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
25249
25250 * config/s390/constraints.md ('I', 'J'): Fix condition.
25251
ad58aabe
DN
252522009-04-24 Diego Novillo <dnovillo@google.com>
25253
25254 * gengtype-parse.c (parse_error): Add newline after message.
25255
879a4a01
L
252562009-04-24 H.J. Lu <hongjiu.lu@intel.com>
25257
25258 * config/i386/sse.md (avxmodesuffixs): Removed.
25259 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
25260 (*avx_pinsr<ssevecsize>): This.
25261
f63426af
BS
252622009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
25263
25264 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
25265 follow chains of regs with a single definition, and allow expressions
25266 that are function_invariant_p.
ce72fe6c 25267 (simple_rhs_p): Allow expressions that are function_invariant_p.
f63426af 25268
30349c74
PB
252692009-04-24 Paolo Bonzini <bonzini@gnu.org>
25270
25271 PR middle-end/39867
25272 * fold-const.c (fold_cond_expr_with_comparison): When folding
25273 > and >= to MAX, make sure the MAX uses the same type as the
25274 comparison's operands.
25275
8d8256c1
NC
252762009-04-24 Nick Clifton <nickc@redhat.com>
25277
25278 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
25279 addressing for DImode accesses.
25280 (frv_print_operand_address): Handle PLUS case.
a3a5e3d1 25281 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
8d8256c1 25282
6216f94e
JJ
252832009-04-24 Jakub Jelinek <jakub@redhat.com>
25284
25285 PR rtl-optimization/39794
25286 * alias.c (canon_true_dependence): Add x_addr argument.
25287 * rtl.h (canon_true_dependence): Adjust prototype.
25288 * cse.c (check_dependence): Adjust canon_true_dependence callers.
25289 * cselib.c (cselib_invalidate_mem): Likewise.
25290 * gcse.c (compute_transp): Likewise.
25291 * dse.c (scan_reads_nospill): Likewise.
25292 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
25293 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
25294 canon_base_addr of the group, plus optional offset.
25295 (struct group_info): Rename canon_base_mem to
25296 canon_base_addr.
25297 (get_group_info): Set canon_base_addr to canon_rtx of base, not
25298 canon_rtx of base_mem.
25299
6de7a512
PB
253002009-04-23 Paolo Bonzini <bonzini@gnu.org>
25301
25302 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
25303 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
25304
4a3a2376
UW
253052009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25306
25307 * config/spu/spu-builtins.h: Delete file.
25308
25309 * config/spu/spu.h (enum spu_builtin_type): Move here from
25310 spu-builtins.h.
25311 (struct spu_builtin_description): Likewise. Add GTY marker.
25312 Do not use enum spu_function_code or enum insn_code.
25313 (spu_builtins): Add extern declaration.
25314
25315 * config/spu/spu.c: Do not include "spu-builtins.h".
25316 (enum spu_function_code, enum spu_builtin_type_index,
25317 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
25318 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
25319 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
25320 unsigned_V2DI_type_node): Move here from spu-builtins.h.
25321 (spu_builtin_types): Make static. Add GTY marker.
25322 (spu_builtins): Add extern declaration with GTY marker.
25323 Include "gt-spu.h".
25324
25325 * config/spu/spu-c.c: Do not include "spu-builtins.h".
25326 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
25327 Check programmatically whether all parameters are scalar.
25328
25329 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
25330
bbaba73f
EB
253312009-04-23 Eric Botcazou <ebotcazou@adacore.com>
25332
25333 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
25334 assignment from the constructor either if the target is volatile.
25335
ee93c1c6
DJ
253362009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
25337
25338 * config/arm/arm.md (insv): Do not share operands[0].
25339
b2f21330
NS
253402009-04-23 Nathan Sidwell <nathan@codesourcery.com>
25341
25342 * config/vxlib-tls.c (active_tls_threads): Delete.
25343 (delete_hook_installed): New.
25344 (tls_delete_hook): Don't delete the delete hook.
25345 (tls_destructor): Delete it here.
25346 (__gthread_set_specific): Adjust installing the delete hook.
25347 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
25348 __gthread_leave_tsd_dtor_context.
25349
4782dfa7
RAE
253502009-04-23 Rafael Avila de Espindola <espindola@google.com>
25351
25352 * c-format.c (gcc_tdiag_char_table): Add support for %E.
25353
bf758008
UB
253542009-04-23 Uros Bizjak <ubizjak@gmail.com>
25355
25356 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
25357 enum type.
25358 (alpha_rtx_costs): Ditto.
25359 (emit_unlikely_jump): Use add_reg_note.
25360 (emit_frame_store_1): Ditto.
25361 (alpha_expand_prologue): Ditto.
25362 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
25363 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
25364
7323a100
NC
253652009-04-23 Nick Clifton <nickc@redhat.com>
25366
25367 * config/v850/v850.md (epilogue): Remove suppressed code.
25368 (return): Rename to return_simple and remove test of frame size.
25369 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
25370 to gen_return_simple.
25371
360032ba
JY
253722009-04-22 Jing Yu <jingyu@google.com>
25373
25374 PR testsuite/39781
25375 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
25376
53650abe
AP
253772009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
25378
25379 PR C/31499
25380 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
25381 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
25382 value is a VECTOR_CST, the element type is the element type of the
25383 vector.
25384
89043e8a
DD
253852009-04-22 DJ Delorie <dj@redhat.com>
25386
25387 * config/m32c/m32c.h: Update GTY annotations to new syntax.
25388
023f059b
JJ
253892009-04-22 Jakub Jelinek <jakub@redhat.com>
25390
25391 * alias.c (find_base_term): Move around LO_SUM case, so that
25392 CONST falls through into PLUS/MINUS handling.
25393
2c0eba5a
JJ
25394 PR c/39855
25395 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
25396 into 0, use omit_one_operand.
25397
9a461028
BE
253982009-04-23 Ben Elliston <bje@au.ibm.com>
25399
25400 * config/rs6000/linux-unwind.h (get_regs): Remove type
25401 puns. Change the type of `pc' to an array of unsigned ints and
25402 update all users. Constify frame24.
25403
653e2568
DD
254042009-04-22 DJ Delorie <dj@redhat.com>
25405
25406 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
25407 declarations before code.
25408 (current_function_special_page_vector): Likewise.
25409 (m32c_expand_insv): Silence a warning.
25410
60839f5d 254112009-04-21 Taras Glek <tglek@mozilla.com>
d1b38208
TG
25412
25413 * alias.c: Update GTY annotations to new syntax.
25414 * basic-block.h: Likewise.
25415 * bitmap.h: Likewise.
25416 * c-common.h: Likewise.
25417 * c-decl.c: Likewise.
25418 * c-parser.c: Likewise.
25419 * c-pragma.c: Likewise.
25420 * c-tree.h: Likewise.
25421 * cfgloop.h: Likewise.
25422 * cgraph.h: Likewise.
25423 * config/alpha/alpha.c: Likewise.
25424 * config/arm/arm.h: Likewise.
25425 * config/avr/avr.h: Likewise.
25426 * config/bfin/bfin.c: Likewise.
25427 * config/cris/cris.c: Likewise.
25428 * config/darwin.c: Likewise.
25429 * config/frv/frv.c: Likewise.
25430 * config/i386/i386.c: Likewise.
25431 * config/i386/i386.h: Likewise.
25432 * config/i386/winnt.c: Likewise.
25433 * config/ia64/ia64.h: Likewise.
25434 * config/iq2000/iq2000.c: Likewise.
25435 * config/mips/mips.c: Likewise.
25436 * config/mmix/mmix.h: Likewise.
25437 * config/pa/pa.c: Likewise.
25438 * config/pa/pa.h: Likewise.
25439 * config/rs6000/rs6000.c: Likewise.
25440 * config/s390/s390.c: Likewise.
25441 * config/sparc/sparc.c: Likewise.
25442 * config/xtensa/xtensa.c: Likewise.
25443 * cselib.h: Likewise.
25444 * dbxout.c: Likewise.
25445 * dwarf2out.c: Likewise.
25446 * except.c: Likewise.
25447 * except.h: Likewise.
25448 * fixed-value.h: Likewise.
25449 * function.c: Likewise.
25450 * function.h: Likewise.
25451 * gimple.h: Likewise.
25452 * integrate.c: Likewise.
25453 * optabs.c: Likewise.
25454 * output.h: Likewise.
25455 * real.h: Likewise.
25456 * rtl.h: Likewise.
25457 * stringpool.c: Likewise.
25458 * tree-data-ref.c: Likewise.
25459 * tree-flow.h: Likewise.
25460 * tree-scalar-evolution.c: Likewise.
25461 * tree-ssa-address.c: Likewise.
25462 * tree-ssa-alias.h: Likewise.
25463 * tree-ssa-operands.h: Likewise.
25464 * tree.c: Likewise.
25465 * tree.h: Likewise.
25466 * varasm.c: Likewise.
25467 * varray.h: Likewise.
25468 * vec.h: Likewise.
bf758008 25469 * coretypes.h: Do not define GTY macro if it is already defined.
d1b38208
TG
25470 * doc/gty.texi: Update GTY documentation to new syntax.
25471 * gengtype-lex.l: Enforce attribute-like syntax for GTY
25472 annotations on structs.
25473 * gengtype-parse.c: Likewise.
25474
a123d175
MH
254752009-04-22 Mark Heffernan <meheff@google.com>
25476
bf758008 25477 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
a123d175 25478
4c7c486a
KH
254792009-04-22 Kazu Hirata <kazu@codesourcery.com>
25480
25481 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
25482 where appropriate.
25483
6e782a29
KH
254842009-04-22 Kazu Hirata <kazu@codesourcery.com>
25485
25486 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
25487 the same as a PLUS without a shift. Increase the cost of a
25488 CONST_INT in MULT.
25489
38d2336a
MLI
254902009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25491
25492 * Makefile.in: Update dependencies.
bf758008 25493 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
38d2336a
MLI
25494 * errors.h: Remove bogus comment about compatibility.
25495 (warning): Update declaration.
25496 * genautomata.c: Update all calls to warning.
25497 * gimple.c: Do not include errors.h. Include toplev.h.
25498 * tree-ssa-structalias.c: Do not include errors.h.
25499 * omega.c: Likewise.
25500 * tree-ssa-reassoc.c: Likewise.
25501 * config/spu/spu-c.c: Likewise.
25502 * config/spu/t-spu-elf: Update dependencies.
25503
aea4deba
RG
255042009-04-22 Richard Guenther <rguenther@suse.de>
25505
25506 PR tree-optimization/39824
25507 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
25508 make sure the types are compatible.
25509
cfc93532
MLI
255102009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25511
25512 PR c++/14875
25513 * c-common.c (c_parse_error): Take a token_flags parameter.
25514 Use token_type for the token type instead.
25515 Pass token_flags to cpp_type2name.
25516 * c-common.h (c_parse_error): Update declaration.
25517 * c-parser.c (c_parser_error): Pass 0 as token flags.
25518
8632d02a
AB
255192009-04-22 Andrey Belevantsev <abel@ispras.ru>
25520
25521 PR rtl-optimization/39580
f100a4a8
UB
25522 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
25523
4c33221c
UW
255242009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25525
25526 * function.c (expand_function_end): Do not emit a jump to the "naked"
25527 return label for fall-through returns.
25528 * except.c (sjlj_emit_function_exit): Always place the call to the
25529 unregister function at the location installed by expand_function_end.
25530
9925bce0
RG
255312009-04-22 Richard Guenther <rguenther@suse.de>
25532
25533 PR tree-optimization/39845
25534 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
25535 (gen_inbound_check): Likewise.
25536
24a40b35
NS
255372009-04-22 Nathan Sidwell <nathan@codesourcery.com>
25538
25539 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
25540 padding for PPC.
25541 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
25542 * config/vxlib.c (__gthread_once): Add race guard for PPC.
25543
6c34a092
PB
255442009-04-22 Paolo Bonzini <bonzini@gnu.org>
25545
25546 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
25547 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
25548 shift counts to avoid out-of-bounds array accesses.
25549
baa48dfa
PB
255502009-04-22 Paolo Bonzini <bonzini@gnu.org>
25551
25552 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
25553 (Pmode): Move above.
25554
7d83f4f5
UB
255552009-04-22 Uros Bizjak <ubizjak@gmail.com>
25556
25557 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
25558 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
25559 GET_CODE macro. Use IN_RANGE macro where appropriate.
25560 * config/alpha/alpha.h: Ditto.
25561 * config/alpha/alpha.md: Ditto.
25562 * config/alpha/constraints.md: Ditto.
25563 * config/alpha/predicates.md: Ditto.
f100a4a8 25564
3ad606bc
PB
255652009-04-22 Paolo Bonzini <bonzini@gnu.org>
25566
25567 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
25568 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25569 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25570 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25571 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25572 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25573 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25574 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25575 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25576 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25577 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25578 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25579 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25580 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25581 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25582 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25583 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25584 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25585 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25586 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25587 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25588 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25589 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25590 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25591 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25592 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25593 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
25594
3cabd6d1
LB
255952009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
25596
25597 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
25598 references from comments.
bd62d832 25599 * cfgbuild.c (count_basic_blocks): Delete.
3cabd6d1
LB
25600 (find_basic_blocks_1): Delete.
25601 (find_basic_blocks): Delete.
25602 * except.c (finish_eh_generation): Make static. Move comment from
7d83f4f5 25603 except.h here. Remove find_basic_blocks references from comments.
3cabd6d1
LB
25604 * except.h (finish_eh_generation): Delete.
25605 * basic-block.h (find_basic_blocks): Delete.
25606 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
25607
270d1bcd
DK
256082009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
25609
25610 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
25611 (sdbout_parms): Likewise.
25612
b757d36f
KK
256132009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
25614
25615 * config/sh/sh.c (prepare_cbranch_operands): Use
25616 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
25617 (expand_cbranchdi4): Likewise.
25618 (from_compare): Add cast to enum type.
25619 (expand_cbranchsi4): Use add_reg_note.
25620 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
25621 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
25622 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
25623 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
25624 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
25625 instead of CODE_FOR_nothing.
25626 (cbranchdi4): Likewise. Fix the order of arguments for
25627 gen_rtx_fmt_ee.
25628 (push_fpscr): Use add_reg_note.
25629 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
25630 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
f100a4a8 25631
ad41bd84
JM
256322009-04-21 Joseph Myers <joseph@codesourcery.com>
25633
25634 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
25635 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
25636 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
25637 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
25638 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
25639 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
25640 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
25641 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
25642 config/alpha/x-vms, config/arc/t-arc,
25643 config/arm/README-interworking, config/arm/arm-c.c,
25644 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
25645 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
25646 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
25647 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
25648 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
25649 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
25650 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
25651 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
25652 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
25653 config/cris/t-elfmulti, config/crx/t-crx,
25654 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
25655 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
25656 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
25657 config/h8300/t-h8300, config/i386/athlon.md,
25658 config/i386/darwin-libgcc.10.4.ver,
25659 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
25660 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
25661 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
25662 config/i386/t-linux64, config/i386/t-nwld,
25663 config/i386/t-rtems-i386, config/i386/t-sol2-10,
25664 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
25665 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
25666 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
25667 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
25668 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
25669 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
25670 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
25671 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
25672 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
25673 config/m68k/t-uclinux, config/mcore/t-mcore,
25674 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
25675 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
25676 config/mips/crtn.asm, config/mips/irix-crti.asm,
25677 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
25678 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
25679 config/mips/mips-fixed.md, config/mips/sb1.md,
25680 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
25681 config/mips/t-iris6, config/mips/t-isa3264,
25682 config/mips/t-libgcc-mips16, config/mips/t-linux64,
25683 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
25684 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
25685 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
25686 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
25687 config/mn10300/t-linux, config/mn10300/t-mn10300,
25688 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
25689 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
25690 config/picochip/libgccExtras/clzsi2.asm,
25691 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
25692 config/rs6000/darwin-libgcc.10.4.ver,
25693 config/rs6000/darwin-libgcc.10.5.ver,
25694 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
25695 config/rs6000/t-aix43, config/rs6000/t-aix52,
25696 config/rs6000/t-darwin, config/rs6000/t-fprules,
25697 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
25698 config/rs6000/t-lynx, config/rs6000/t-netbsd,
25699 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
25700 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
25701 config/rs6000/t-rtems, config/rs6000/t-spe,
25702 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
25703 config/score/t-score-elf, config/sh/divcost-analysis,
25704 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
25705 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
25706 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
25707 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
25708 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
25709 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
25710 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
25711 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
25712 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
25713 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
25714 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
25715 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
25716 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
25717 limitx.h, version.c, xcoff.h: Add copyright and license notices.
25718 * config/h8300/genmova.sh: Include copyright and license notices
25719 in generated output.
25720 * config/h8300/mova.md: Regenerate.
25721 * doc/install.texi2html: Include word "Copyright" in copyright
25722 notice and use name "Free Software Foundation, Inc.".
25723 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
25724 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
25725 ChangeLog-2007, ChangeLog-2008: Correct dates.
25726
ca80e52b
EB
257272009-04-21 Eric Botcazou <ebotcazou@adacore.com>
25728
25729 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
25730 NE_EXPR operations as well.
25731 * c-parser.c (c_parser_condition): Do not set location information on
25732 the condition.
25733 (c_parser_conditional_expression): Likewise.
25734 (c_parser_binary_expression): Set location information on operators.
25735 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
25736 TRUTH_NOT_EXPR has been folded.
25737 * fold-const.c (fold_truth_not_expr): Copy location information from
25738 the incoming expression to the outgoing one.
25739 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
25740 recursive calls on the LHS of the operator but pass that of the
25741 operator to recursive calls on the RHS of the operator. Set it
25742 on the COND_EXPR.
25743 (shortcut_cond_expr): Set the locus of the operator on the second
25744 COND_EXPR and that of the expression on the first in degenerate cases.
25745 Pass the locus of the expression to calls to shortcut_cond_r.
25746 Set the locus of the 'then' block on the associated jump, if any.
25747 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
25748 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
25749 expression to call to gimplify_boolean_expr.
25750
35091630
KT
257512009-04-21 Kai Tietz <kai.tietz@onevision.com>
25752
25753 * config.gcc: Add additional configuration for
25754 i686-w64-mingw* and x86_64-w64-mingw* triplet.
25755 * config/i386/mingw-w64.h: New mingw-w64 specific header.
25756 (CPP_SPEC): Redefine for allowing -municode option.
25757 (STARTFILE_SPEC): Likewise.
25758 * config/i386/t-mingw-w64: New.
25759 * config/i386/mingw-w64.opt: New.
25760 (municode): Add new target option.
25761 * doc/invoke.texi (municode): Add documentation for new option.
25762
0267afc4
ILT
257632009-04-21 Ian Lance Taylor <iant@google.com>
25764
25765 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
25766 Correct test for number of arguments.
25767 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
25768
2ba9daa7
AS
257692009-04-21 Andreas Schwab <schwab@linux-m68k.org>
25770
25771 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
25772 argument of emit_library_call.
25773
ad8a1ac0
RG
257742009-04-21 Richard Guenther <rguenther@suse.de>
25775
25776 PR middle-end/39829
25777 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
25778 inside VIEW_CONVERT_EXPRs.
25779
7156c8ab
MJ
257802009-04-21 Martin Jambor <mjambor@suse.cz>
25781
25782 * tree-switch-conversion.c (build_constructors): Split a long line.
25783 (constructor_contains_same_values_p): New function.
7d83f4f5
UB
25784 (build_one_array): Create assigns of constants if possible, do not
25785 call mark_sym_for_renaming, call update_stmt.
7156c8ab
MJ
25786 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
25787 make_rename_temp. Do not call mark_symbols_for_renaming, call
25788 update_stmt.
25789 (gen_def_assigns): Do not call mark_symbols_for_renaming or
25790 find_new_referenced_vars, call update_stmt.
25791 (gen_inbound_check): Use create_tmp_var and create ssa names manually
25792 instead of calling make_rename_temp. Do not call
25793 find_new_referenced_vars or mark_symbols_for_renaming, call
25794 update_stmt.
25795
2970ccb3
RG
257962009-04-21 Richard Guenther <rguenther@suse.de>
25797
25798 PR tree-optimization/39827
7d83f4f5 25799 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
2970ccb3
RG
25800 (tree_ssa_phiprop): Pass the correct array size.
25801
47f402d1
UB
258022009-04-21 Uros Bizjak <ubizjak@gmail.com>
25803
25804 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
25805
1e4ae551
MLI
258062009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
25807
25808 PR 16202
25809 * c-typeck.c (lvalue_p): Move declaration ...
25810 * c-common.h (lvalue_p): ... to here.
25811 * c-common.c (candidate_equal_p): New.
25812 (add_tlist): Use it.
25813 (merge_tlist): Use it.
25814 (warn_for_collisions_1): Likewise.
25815 (warning_candidate_p): Accept more candidates.
25816 (verify_tree): A warning candidate can be an expression. Use
25817 candidate_equal_p.
25818
244609a6
BE
258192009-04-21 Ben Elliston <bje@au.ibm.com>
25820
25821 PR target/5267
25822 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
25823 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
25824 options. Remove -mcall-solaris documentation.
25825
9c650d90
MLI
258262009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
25827
25828 PR c++/13358
25829 * doc/invoke.texi (-Wlong-long): Update description.
25830 * c-lex (interpret_integer): Only warn if there was no previous
25831 overflow and -Wlong-long is enabled.
25832 * c-decl.c (declspecs_add_type): Drop redundant flags.
25833 * c.opt (Wlong-long): Init to -1.
25834 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
25835 and front-end warn_long_long. Wlong-long only depends on other
25836 flags if it is uninitialized.
25837 * c-parser.c (disable_extension_diagnostics): warn_long_long is
25838 the same for CPP and FE.
25839 (restore_extension_diagnostics): Likewise.
25840
bbbbb16a
ILT
258412009-04-20 Ian Lance Taylor <iant@google.com>
25842
25843 Fix enum conversions which are invalid in C++:
47f402d1
UB
25844 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
25845 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
25846 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
25847 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
47f402d1 25848 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
bbbbb16a 25849 (dbxout_parms): Likewise.
47f402d1 25850 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
bbbbb16a
ILT
25851 (df_clear_flags): Likewise.
25852 * df-problems.c (df_rd_bb_local_compute_process_def): Change
25853 top_flag parameter to int.
25854 (df_chain_create_bb_process_use): Likewise.
47f402d1
UB
25855 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
25856 Remove cast.
bbbbb16a
ILT
25857 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
25858 (df_ref_create_structure, df_def_record_1): Likewise.
25859 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
25860 (df_notes_rescan): Change 0 to VOIDmode in function call.
25861 (df_get_call_refs, df_insn_refs_collect): Likewise.
25862 (df_bb_regs_collect): Likewise.
25863 (df_entry_block_defs_collect): Likewise.
25864 (df_exit_block_uses_collect): Likewise.
25865 * df.h: Update declarations.
25866 * double-int.c (double_int_divmod): Add cast to enum type.
25867 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
25868 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
25869 (based_loc_descr): Likewise.
25870 (loc_descriptor_from_tree_1): Change first_op and second_op to
25871 enum dwarf_location_atom. Add cast to enum type.
25872 * expmed.c (init_expmed): Change 0 to SET in function call.
47f402d1 25873 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
25874 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
25875 (do_store_flag): Likewise.
25876 * fixed-value.h (struct fixed_value): Change mode to enum
25877 machine_mode.
47f402d1 25878 * function.c (assign_parms): Change 0 to VOIDmode in function call.
bbbbb16a
ILT
25879 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
25880 function call.
25881 (insert_insn_decl, insert_decl, insert_state): Likewise.
25882 (automata_list_finish): Likewise.
25883 * genrecog.c (process_define_predicate): Add cast to enum type.
25884 * gensupport.c (init_predicate_table): Add cast to enum type.
25885 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
25886 function call.
25887 (gimple_build_call_1, gimple_build_label): Likewise.
25888 (gimple_build_goto, gimple_build_asm_1): Likewise.
25889 (gimple_build_switch_1, gimple_build_cdt): Likewise.
47f402d1 25890 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
bbbbb16a
ILT
25891 (enum fallback): Rename from enum fallback_t.
25892 (fallback_t): Typedef as int.
25893 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
25894 GSI_SAME_STMT in function call.
25895 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
25896 enum type.
25897 (setup_reg_class_relations): Likewise.
47f402d1 25898 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
bbbbb16a
ILT
25899 (setup_prohibited_class_mode_regs): Add cast to enum type.
25900 (setup_prohibited_mode_move_regs): Likewise.
47f402d1 25901 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
bbbbb16a
ILT
25902 (record_address_regs): Change i to enum reg_class.
25903 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
25904 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
25905 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
25906 (GET_MODE_2XWIDER_MODE): Likewise.
25907 (GET_CLASS_NARROWEST_MODE): Likewise.
25908 * omp-low.c (expand_omp_for): Add cast to enum type.
25909 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
25910 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
25911 * postreload.c (reload_cse_simplify_operands): Change rclass local
25912 to enum reg_class.
25913 * predict.c (combine_predictions_for_insn): Change best_predictor
25914 and predictor to enum br_predictor.
25915 (combine_predictions_for_bb): Likewise.
25916 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
25917 use SET_PREDICT_EXPR_OUTCOME.
47f402d1 25918 * real.c (real_arithmetic): Change icode to code in function call.
bbbbb16a
ILT
25919 * reginfo.c (init_move_cost): Add casts to enum type.
25920 (init_reg_sets_1, init_fake_stack_mems): Likewise.
25921 * regmove.c (regclass_compatible_p): Change class0 and class1 to
25922 enum reg_class.
25923 * reload.c (find_valid_class): Add casts to enum type.
25924 (push_reload): Change 0 to NO_REGS in function call.
25925 (find_reloads): Change this_alternative to array of enum
25926 reg_class. Remove some now-unnecessary casts.
25927 (make_memloc): Change 0 to VOIDmode in function call.
25928 * reload1.c (reload): Change 0 to VOIDmode in function call.
25929 (eliminate_regs_1, elimination_effects): Likewise.
25930 (eliminate_regs_in_insn): Likewise.
25931 (emit_input_reload_insns): Add cast to enum type.
25932 (delete_output_reload): Change 0 to VOIDmode in function call.
25933 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
25934 to enum type in function call.
25935 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
25936 (SET_PREDICT_EXPR_OUTCOME): Define.
47f402d1 25937 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
bbbbb16a
ILT
25938 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
25939 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
25940 (dump_function): Likewise.
25941 * tree-dump.h: Update declarations.
25942 * tree-pass.h: Update declarations.
25943 * varasm.c (assemble_integer): Change mclass to enum mode_class.
25944 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
25945 enum type.
25946 (arm_rtx_costs_1): Correct parenthesization.
25947 (arm_rtx_costs): Add casts to enum type.
25948 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
25949 (vfp_emit_fstmd): Use add_rg_note.
25950 (emit_multi_reg_push, emit_sfm): Likewise.
25951 (thumb_set_frame_pointer): Likewise.
25952 (arm_expand_prologue): Likewise.
25953 (arm_regno_class): Change return type to enum reg_class.
25954 (thumb1_expand_prologue): Use add_reg_note.
25955 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
25956 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
25957 in function call.
25958 * config/arm/gentune.sh: Add cast to enum type.
25959 * config/arm/arm-tune.md: Rebuild.
25960 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
25961 (ix86_split_fp_branch, predict_jump): Likewise.
25962 (ix86_expand_multi_arg_builtin): Change sub_code from enum
25963 insn_code to enum rtx_code.
25964 (ix86_builtin_vectorized_function): Add cast to enum type.
25965 * config/i386/i386.md (truncdfsf2): Change slot to enum
25966 ix86_stack_slot.
25967 (truncxf<mode>2, isinf<mode>2): Likewise.
25968 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
25969 enum type.
25970 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
25971 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
25972 (insert_bundle_state): Change 1 to INSERT in function call.
25973 (ia64_add_bundle_selector_before): Likewise.
25974 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
25975 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
25976 (restore_stack_nonlocal): Likewise.
25977 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
25978 function call.
25979 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
25980 function call.
25981 (mips_rtx_costs): Likewise.
25982 (mips_override_options): Add casts to enum type.
25983 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
25984 in function call.
25985 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
25986 (store_reg, set_reg_plus_d): Likewise.
25987 (hppa_expand_prologue, hppa_profile_hook): Likewise.
25988 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
25989 cast to enum type.
25990 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
25991 function call.
25992 (emit_unlikely_jump): Use add_reg_note.
25993 (rs6000_emit_allocate_stack): Likewise.
25994 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
25995 (output_toc): Change 1 to INSERT in function call.
25996 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
25997 (rs6000_initialize_trampoline): Likewise.
25998 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
25999 function call.
26000 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
26001 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
26002 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
26003 (save_gprs): Use add_reg_note.
26004 (s390_emit_prologue): Likewise.
47f402d1 26005 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
26006 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
26007 (sparc_fold_builtin): Add cast to enum type.
26008 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
26009 enum insn_code.
26010 (spu_expand_prologue): Use add_reg_note.
47f402d1 26011 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
bbbbb16a
ILT
26012
260132009-04-20 Ian Lance Taylor <iant@google.com>
26014
26015 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
26016 (c_parser_postfix_expression_after_primary): Get VEC for list of
26017 arguments. Get original types of arguments. Call
26018 build_function_call_vec.
26019 (cached_expr_list_1, cached_expr_list_2): New static variables.
26020 (c_parser_expr_list): Change return type to VEC *. Add
26021 p_orig_types parameter. Change all callers.
26022 (c_parser_release_expr): New static function.
26023 (c_parser_vec_to_tree_list): New static function.
26024 * c-typeck.c (build_function_call): Rewrite to build a VEC and
26025 call build_function_call_vec.
26026 (build_function_call_vec): New function, based on old
26027 build_function_call.
26028 (convert_arguments): Remove nargs and argarray parameters. Change
26029 values to a VEC. Add origtypes parameter.
47f402d1 26030 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
bbbbb16a
ILT
26031 (convert_for_assignment): Add origtype parameter. Change all
26032 callers. If warn_cxx_compat, check for conversion to an enum
26033 type when calling a function.
26034 (store_init_value): Add origtype parameter. Change all callers.
26035 (digest_init): Likewise.
26036 (struct init_node): Add origtype field.
26037 (add_pending_init): Add origtype parameter. Change all callers.
26038 (output_init_element): Likewise.
26039 (output_pending_init_elements): Pass origtype from init_node to
26040 output_init_element.
f28a61ab 26041 (process_init_element): Pass origtype from c_expr to
bbbbb16a
ILT
26042 output_init_element.
26043 (c_finish_return): Add origtype parameter. Change all callers.
26044 * c-common.c (sync_resolve_size): Change params to VEC *. Change
26045 caller.
26046 (sync_resolve_params): Likewise.
47f402d1 26047 (sync_resolve_return): Change params to first_param. Change caller.
bbbbb16a 26048 (resolve_overloaded_builtins): Change params to VEC *. Change
47f402d1 26049 callers. Save first parameter around call to build_function_call_vec.
bbbbb16a
ILT
26050 * c-decl.c (finish_decl): Add origtype parameter. Change all
26051 callers. Call build_function_call_vec rather than
26052 build_function_call for cleanup.
26053 * c-tree.h: Update declarations.
26054 * c-common.h: Update declarations.
26055 * stub-objc.c (objc_rewrite_function_call): Change parameter from
26056 params to first_param.
26057 * target.h (struct gcc_target): Change resolve_overloaded_builtin
26058 params parameter from tree to void *.
26059 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
26060 Change arglist parameter to have type void *, and to be a pointer
26061 to a VEC.
26062 * config/rs6000/rs6000-protos.h
26063 (altivec_resolve_overloaded_builtin): Update declaration.
26064 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
26065 fnargs parameter to have type void *, and to be a pointer to a
26066 VEC. Call build_function_call_vec instead of
26067 build_function_call.
47f402d1 26068 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
bbbbb16a 26069
6ff078d4 260702009-04-20 Joey Ye <joey.ye@intel.com>
60839f5d 26071 Xuepeng Guo <xuepeng.guo@intel.com>
6ff078d4
JY
26072 H.J. Lu <hongjiu.lu@intel.com>
26073
26074 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
26075
26076 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
26077 (IX86_LEA_PRIORITY): Likewise.
26078 (distance_non_agu_define): New function.
26079 (distance_agu_use): Likewise.
26080 (ix86_lea_for_add_ok): Likewise.
26081 (ix86_dep_by_shift_count): Likewise.
26082
26083 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
26084 should split for LEA.
26085
26086 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
26087 function.
26088 (ix86_dep_by_shift_count): Likewise.
26089
87a5b4cc
RG
260902009-04-20 Richard Guenther <rguenther@suse.de>
26091
26092 * expr.c (handled_component_p): Move ...
26093 * tree.h (handled_component_p): ... here.
26094 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
26095 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
26096 and REALPART_EXPR to be in one group.
26097
438c239d
RG
260982009-04-20 Richard Guenther <rguenther@suse.de>
26099
26100 * basic-block.h (get_all_dominated_blocks): Declare.
26101 * dominance.c (get_all_dominated_blocks): New function.
26102 * tree-cfg.c (get_all_dominated_blocks): Remove.
26103 (remove_edge_and_dominated_blocks): Adjust.
26104 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
26105 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
26106 instead of recursing.
26107
fed5ae11
DK
261082009-04-20 Doug Kwan <dougkwan@google.com>
26109
26110 * cgraph.h (cgraph_node_ptr): New type for vector functions.
26111 (struct cgraph_node_set_def): New type.
26112 (cgraph_node_set) New type. Also declare vector functions.
26113 (struct cgraph_node_set_element_def): New type.
26114 (cgraph_node_set_element): Ditto.
26115 (cgraph_node_set_iterator): New iterator type.
26116 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
26117 cgraph_node_set_remove, dump_cgraph_node_set,
26118 debug_cgraph_node_set): New prototypes.
26119 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
26120 cgraph_node_set_size): New inlines.
26121 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
26122 including cgraph.h.
26123 (struct ipa_opt_pass): Add struct cgraph_node_set_def
26124 argument to function 'write_summary'.
26125 * ipa.c: Include ggc.h.
26126 (hash_cgraph_node_set_element,
26127 eq_cgraph_node_set_element, cgraph_node_set_new,
26128 cgraph_node_set_add, cgraph_node_set_remove,
26129 cgraph_node_set_find, dump_cgraph_node_set,
26130 debug_cgraph_node_set): New functions.
26131 * Makefile.in (ipa.o): Add dependency on GGC_H.
26132
c4551b28
IR
261332009-04-20 Ira Rosen <irar@il.ibm.com>
26134
26135 PR tree-optimization/39675
2ba9daa7 26136 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
47f402d1
UB
26137 check of the return code of vect_schedule_slp. Check that
26138 stmt_vec_info still exists for the statement, before checking its
26139 vectorization type.
c4551b28 26140
21a495fb
MM
261412009-04-20 Michael Matz <matz@suse.de>
26142
26143 * Makefile.in (generated_files): Take out $(simple_generated_c).
26144
8e208874
DK
261452009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
26146
26147 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
26148 (UINTPTR_TYPE): Likewise.
26149
a45e580b
JM
261502009-04-19 Joseph Myers <joseph@codesourcery.com>
26151
26152 PR c/37481
26153 * c-typeck.c (digest_init): Check for initializing an array with a
26154 string literal.
26155
20845d35
JM
261562009-04-19 Joseph Myers <joseph@codesourcery.com>
26157
26158 PR c/19771
26159 * c-semantics.c (pop_stmt_list): Propagate
26160 STATEMENT_LIST_HAS_LABEL to parent statement list.
26161
28143fdd
AN
261622009-04-19 Adam Nemet <anemet@caviumnetworks.com>
26163
26164 * config/mips/mips.h (mips_tune_attr): New macro.
26165 * config/mips/mips.md (cpu): Use it.
26166
da377db9
JM
261672009-04-19 Joseph Myers <joseph@codesourcery.com>
26168
26169 PR c/38243
26170 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
26171 declaring a tag.
26172
3baf459d
DN
261732009-04-19 Diego Novillo <dnovillo@google.com>
26174
26175 * toplev.c (compile_file): Move call to coverage_finish ...
26176 * cgraphunit.c (ipa_passes): ... here.
26177 Call cgraph_process_new_functions.
26178 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
26179 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
26180
b6fa5b01
JH
261812009-04-19 Jan Hubicka <jh@suse.cz>
26182
47f402d1
UB
26183 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
26184 cfun.
b6fa5b01
JH
26185 (dump_cgraph_node): Dump can throw external flag.
26186 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
26187
ca409efd
MLI
261882009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
26189
26190 PR c/32061
26191 PR c++/36954
26192 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
26193 * common.opt (Wlogical-op): Move from here...
26194 * c.opt (Wlogical-op): ... to here.
26195 * c-typeck.c (parser_build_binary_op): Update call to
26196 warn_logical_operator.
26197 * c-opts.c (c_common_post_options): Enable warn_logical_op with
26198 extra_warnings.
26199 * c-common.c (warn_logical_op): Update.
26200 * c-common.h (warn_logical_op): Update declaration.
26201
9db4cdd3
EB
262022009-04-19 Eric Botcazou <ebotcazou@adacore.com>
26203
26204 * tree.c (protected_set_expr_location): Fix formatting.
26205
f37acdf9
JM
262062009-04-18 Joseph Myers <joseph@codesourcery.com>
26207
26208 PR c/27676
26209 * c-typeck.c (readonly_warning): new.
26210 (build_unary_op, build_modify_expr): Use readonly_warning for
26211 storing into something readonly but not const-qualified.
26212
2b4b7036
JM
262132009-04-18 Joseph Myers <joseph@codesourcery.com>
26214
26215 PR c/22367
26216 * c-typeck.c (build_unary_op): Check for taking address of
26217 expression of type void.
26218
3ce62965
JM
262192009-04-18 Joseph Myers <joseph@codesourcery.com>
26220
26221 PR c/35210
26222 * c-typeck.c (build_function_call): Check for calling a function
26223 with qualified void return types. Call require_complete_type when
26224 generating a trap.
26225
2505c5ed
JH
262262009-04-18 Jan Hubicka <jh@suse.cz>
26227
26228 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
26229 Set nothrow flag.
26230 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
26231 can_throw_external flag.
26232 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
26233 * ipa-pure-const.c (ignore_edge): New function.
26234 (propagate): Compute order for NOTHROW computation; set NOTHROWs
26235 only over can_throw_external edges.
26236 (local_pure_const): Add nothrow flag.
26237 * ipa-utils.c (searchc): Add ignore_edge callback.
26238 (ipa_utils_reduced_inorder): Add ignore_edge callback.
26239 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
26240 (set_nothrow_function_flags): Update cgraph.
26241 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
26242
2586ba4b
RG
262432009-04-18 Richard Guenther <rguenther@suse.de>
26244
26245 PR middle-end/39804
26246 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
26247 (fold_stmt): ... this and ...
26248 (fold_stmt_inplace): ... this.
26249 (fold_stmt_1): Fold references in calls and asms.
26250 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
26251
1eefab17
KH
262522009-04-18 Kazu Hirata <kazu@codesourcery.com>
26253
26254 * tree-vrp.c (ssa_name_nonzero_p): Remove.
26255 * tree.h: Remove the prototype for ssa_name_nonzero_p.
26256
aa424b01
KH
262572009-04-18 Kazu Hirata <kazu@codesourcery.com>
26258
26259 * tree.c (function_args_count): Remove.
26260 * tree.h: Remove the prototype for function_args_count.
26261
613a896b
KH
262622009-04-18 Kazu Hirata <kazu@codesourcery.com>
26263
26264 * tree-iterator.c (expr_only): Remove.
26265 * tree.h: Remove the prototype for expr_only.
26266
579e694c
KH
262672009-04-18 Kazu Hirata <kazu@codesourcery.com>
26268
26269 * reginfo.c (cannot_change_mode_set_regs): Remove.
26270 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
26271
ee7e3ad3
AS
262722009-04-08 Anatoly Sokolov <aesok@post.ru>
26273
26274 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
26275 whether operands 0 and 1 overlaps.
26276
92ef7fb1
MLI
262772009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
26278
26279 PR middle-end/36902
26280 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
26281 pointer. Use warning_at instead of warning.
26282 (search_for_addr_array): Likewise.
26283 (check_array_bounds): Likewise.
26284 (check_all_array_refs): Check that the incoming edge is not in the
26285 list of edges to be removed.
26286 (check_all_array_refs): Avoid the temporal pointer.
26287 (vrp_visit_cond_stmt): Fix typo.
26288 (simplify_switch_using_ranges): Handle the case where the switch
26289 index is an integer constant.
26290
0e097268
AN
262912009-04-18 Adam Nemet <anemet@caviumnetworks.com>
26292
26293 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
26294
c782f1dd
KH
262952009-04-18 Kazu Hirata <kazu@codesourcery.com>
26296
26297 * doc/extend.texi, doc/invoke.texi: Fix typos.
26298
668fb0e8
CC
262992009-04-17 Cary Coutant <ccoutant@google.com>
26300
26301 * tree-flow-inline.h (get_lineno): Fix inverted test.
26302
4d4014c1
DN
263032009-04-17 Diego Novillo <dnovillo@google.com>
26304
26305 * tree-ssa-pre.c (create_expression_by_pieces): Remove
26306 assertion for AVAIL_OUT.
26307
2984e1b6
MF
263082009-04-17 Mike Frysinger <vapier@gentoo.org>
26309
26310 PR target/38627
26311 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
26312 * config/sh/linux-atomic.asm: Likewise.
26313
9994a182
DN
263142009-04-17 Diego Novillo <dnovillo@google.com>
26315
26316 * except.c (debug_eh_tree): New.
26317 (struct eh_region, struct eh_status): Move ...
26318 * except.h: ... here.
26319 (add_type_for_runtime): Declare extern.
26320 (lookup_type_for_runtime): Likewise.
26321 (debug_eh_tree): Declare.
26322 * Makefile.in (GTFILES): List except.h before except.c
26323
07485407
DN
263242009-04-17 Diego Novillo <dnovillo@google.com>
26325
47f402d1 26326 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
07485407
DN
26327 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
26328 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
26329 (find_vars_r): ... here.
26330 * tree-flow.h (find_referenced_vars_in): Declare.
26331 * tree-ssa-pre.c (create_expression_by_pieces): Assert
26332 that AVAIL_OUT exists for BLOCK.
26333 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
26334 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
26335 (tree-parloops.o): Likewise.
26336
4e53d196
SB
263372009-04-17 Simon Baldwin <simonb@google.com>
26338
26339 * toplev.c (default_tree_printer): Add handling for %E format.
26340
413d3aa8
DN
263412009-04-17 Diego Novillo <dnovillo@google.com>
26342
47f402d1
UB
26343 * tree-pretty-print.c (dump_generic_node): Add break after
26344 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
26345 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
26346 FUNCTION_TYPE together. Call print_struct_decl when printing
26347 structures and TDF_SLIM is not given.
413d3aa8
DN
26348 (print_struct_decl): Fix logic for detecting recursion.
26349
5a691e98
RAE
263502009-04-17 Rafael Avila de Espindola <espindola@google.com>
26351
26352 PR 31567
26353 * gcc.c (create_at_file): New.
26354 (compile_input_file_p): New.
26355 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
26356 * main.c (main): Update call to toplev_main.
26357 * toplev.c (toplev_main): Change signature. Call expandargv.
26358 * toplev.h (toplev_main): Change signature.
26359
9eacf7a6
EB
263602009-04-17 Eric Botcazou <ebotcazou@adacore.com>
26361
26362 * dwarf2out.c (field_byte_offset): Use the type size as the field size
26363 if the latter is not constant.
26364
58298177
DE
263652009-04-17 David Edelsohn <edelsohn@gnu.org>
26366
26367 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
26368
5b4c43d7
EB
263692009-04-17 Eric Botcazou <ebotcazou@adacore.com>
26370
26371 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
26372 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
26373
b51605c4
RG
263742009-04-17 Richard Guenther <rguenther@suse.de>
26375
26376 * tree-ssa-structalias.c (get_constraint_for_component_ref):
26377 Handle component references view-converting an invariant address.
26378
9e3be889
AN
263792009-04-17 Adam Nemet <anemet@caviumnetworks.com>
26380
26381 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
26382 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
26383 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
26384 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
26385 Use @deftypevr rather than @deftypevar.
26386
7c3e9dc3
RG
263872009-04-17 Richard Guenther <rguenther@suse.de>
26388
47f402d1 26389 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
7c3e9dc3
RG
26390 (get_prop_source_stmt): Likewise.
26391 (can_propagate_from): Likewise.
26392
aca600aa
AS
263932009-04-17 Andrew Stubbs <ams@codesourcery.com>
26394
26395 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
26396 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
26397 (--with-multilib-list): Add default value.
26398 * configure: Regenerate.
26399 * Makefile.in (TM_ENDIAN_CONFIG): Define.
26400 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
26401 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
26402 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
26403 Don't add default cpu to multilib list unnecessarily, but do enable
26404 the relevant compiler option..
26405 Add support for --with-multilib-list=<blank> and
26406 --with-multilib-list=!<somelib> to supress unwanted multilibs.
26407 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
26408 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
26409 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
26410 TM_MULTILIB_CONFIG.
26411 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
26412 (MULTILIB_OSDIRNAMES): New variable.
26413 * config/sh/t-1e: Delete file.
26414 * config/sh/t-mlib-sh1: Delete file.
26415 * config/sh/t-mlib-sh2: Delete file.
26416 * config/sh/t-mlib-sh2a: Delete file.
26417 * config/sh/t-mlib-sh2a-nofpu: Delete file.
26418 * config/sh/t-mlib-sh2a-single: Delete file.
26419 * config/sh/t-mlib-sh2a-single-only: Delete file.
26420 * config/sh/t-mlib-sh2e: Delete file.
26421 * config/sh/t-mlib-sh3e: Delete file.
26422 * config/sh/t-mlib-sh4: Delete file.
26423 * config/sh/t-mlib-sh4-nofpu: Delete file.
26424 * config/sh/t-mlib-sh4-single: Delete file.
26425 * config/sh/t-mlib-sh4-single-only: Delete file.
26426 * config/sh/t-mlib-sh4a: Delete file.
26427 * config/sh/t-mlib-sh4a-nofpu: Delete file.
26428 * config/sh/t-mlib-sh4a-single: Delete file.
26429 * config/sh/t-mlib-sh4a-single-only: Delete file.
26430 * config/sh/t-mlib-sh4al: Delete file.
26431 * config/sh/t-mlib-sh5-32media: Delete file.
26432 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
26433 * config/sh/t-mlib-sh5-64media: Delete file.
26434 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
26435 * config/sh/t-mlib-sh5-compact: Delete file.
26436 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
26437 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
26438 * doc/install.texi (Options specification): Add
26439 --with-multilib-list and --with-endian.
26440
cf8aba7f
RAE
264412009-04-17 Rafael Avila de Espindola <espindola@google.com>
26442
26443 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
26444 REVISION_c.
26445 (OBJS-common): Add plugin-version.o.
26446 (plugin-version.o): New.
26447 * gcc-plugin.h (plugin_gcc_version): New.
26448 (plugin_default_version_check): New.
26449 (plugin_init_func, plugin_init): Add version argument.
26450 * plugin-version.c: New.
26451 * plugin.c (str_plugin_gcc_version_name): New.
26452 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
26453 pass it to the init function.
26454 (plugin_default_version_check): New.
26455
61e20b90
RG
264562009-04-17 Richard Guenther <rguenther@suse.de>
26457
26458 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
26459 for decl-vs-decl disambiguation.
26460
90c6fd8a
AK
264612009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
26462
26463 * config/s390/s390.h (s390_tune_attr): New macro definition.
26464 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
26465
9fe9fe04
RG
264662009-04-17 Richard Guenther <rguenther@suse.de>
26467
26468 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
26469 (fold_stmt_r): Likewise.
26470 (maybe_fold_reference): New function.
26471 (fold_gimple_assign): Handle cases fold_stmt_r did.
26472 (fold_stmt): Do not use fold_stmt_r.
26473 (fold_stmt_inplace): Likewise.
26474
7e673273
RG
264752009-04-17 Richard Guenther <rguenther@suse.de>
26476
26477 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
26478 (record_equivalences_from_stmt): Remove useless checks and
26479 simplifications.
26480 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
26481 the type is already suitable.
26482
fabf2749
PB
264832009-04-17 Paolo Bonzini <bonzini@gnu.org>
26484
26485 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
26486
68f7b061
UB
264872009-04-17 Uros Bizjak <ubizjak@gmail.com>
26488
26489 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
26490 (CMPtype): Define as __gcc_CMPtype.
26491
532bfb0a
AJ
264922009-04-17 Aurelien Jarno <aurelien@aurel32.net>
26493
26494 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
26495 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
26496
e3ac77ff
RG
264972009-04-17 Richard Guenther <rguenther@suse.de>
26498
26499 PR tree-optimization/39746
26500 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
26501 special-casing for builtins and static variable use/def.
26502 (call_may_clobber_ref_p_1): Likewise.
26503
7072a650
ILT
265042009-04-16 Ian Lance Taylor <iant@google.com>
26505
26506 * df.h: Include "timevar.h".
26507 (struct df_problem): Change tv_id field to timevar_id_t.
26508 * tree-pass.h: Include "timevar.h".
26509 (struct opt_pass): Change tv_id field to timevar_id_t.
26510 * timevar.h (timevar_id_t): Define TV_NONE.
26511 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
26512 TV_NONE rather than tv_id != 0.
26513 (execute_one_pass): Likewise.
26514 * Makefile.in (DF_H): Add $(TIMEVAR_H).
26515 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
26516 dependencies to $(TREE_PASS_H).
26517 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
26518 to TV_NONE.
26519 (pass_branch_target_load_optimize2): Likewise.
26520 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
26521 (pass_outof_cfg_layout_mode): Likewise.
26522 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
26523 (pass_rebuild_cgraph_edges): Likewise.
26524 (pass_remove_cgraph_callee_edges): Likewise.
26525 * df-core.c (pass_df_initialize_opt): Likewise.
26526 (pass_df_initialize_no_opt): Likewise.
26527 (pass_df_finish): Likewise.
26528 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
26529 * except.c (pass_set_nothrow_function_flags): Likewise.
26530 (pass_convert_to_eh_region_ranges): Likewise.
26531 * final.c (pass_compute_alignments): Likewise.
26532 * function.c (pass_instantiate_virtual_regs): Likewise.
26533 (pass_init_function): Likewise.
26534 (pass_leaf_regs): Likewise.
26535 (pass_match_asm_constraints): Likewise.
26536 * gimple-low.c (pass_lower_cf): Likewise.
26537 (pass_mark_used_blocks): Likewise.
26538 * init-regs.c (pass_initialize_regs): Likewise.
26539 * integrate.c (pass_initial_value_sets): Likewise.
26540 * ira.c (pass_ira): Likewise.
26541 * jump.c (pass_cleanup_barriers): Likewise.
26542 * omp-low.c (pass_expand_omp): Likewise.
26543 (pass_lower_omp): Likewise.
26544 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
26545 * recog.c (pass_split_all_insns): Likewise.
26546 (pass_split_after_reload): Likewise.
26547 (pass_split_before_regstack): Likewise.
26548 (pass_split_before_sched2): Likewise.
26549 (pass_split_for_shorten_branches): Likewise.
26550 * reginfo.c (pass_reginfo_init): Likewise.
26551 (pass_subregs_of_mode_init): Likewise.
26552 (pass_subregs_of_mode_finish): Likewise.
26553 * passes.c (pass_postreload): Likewise.
26554 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
26555 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
26556 (pass_warn_function_return): Likewise.
26557 (pass_warn_function_noreturn): Likewise.
26558 * tree-complex.c (pass_lower_complex): Likewise.
26559 (pass_lower_complex_O0): Likewise.
26560 * tree-if-conv.c (pass_if_conversion): Likewise.
26561 * tree-into-ssa.c (pass_build_ssa): Likewise.
26562 * tree-mudflap.c (pass_mudflap_1): Likewise.
26563 (pass_mudflap_2): Likewise.
26564 * tree-nomudflap.c (pass_mudflap_1): Likewise.
26565 (pass_mudflap_2): Likewise.
26566 * tree-nrv.c (pass_return_slot): Likewise.
26567 * tree-object-size.c (pass_object_sizes): Likewise.
26568 * tree-optimize.c (pass_all_optimizations): Likewise.
26569 (pass_early_local_passes): Likewise.
26570 (pass_all_early_optimizations): Likewise.
26571 (pass_cleanup_cfg): Likewise.
26572 (pass_cleanup_cfg_post_optimizing): Likewise.
26573 (pass_free_datastructures): Likewise.
26574 (pass_free_cfg_annotations): Likewise.
26575 (pass_fixup_cfg): Likewise.
26576 (pass_init_datastructures): Likewise.
26577 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
26578 (pass_late_warn_uninitialized): Likewise.
26579 (pass_update_address_taken): Likewise.
26580 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
26581 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
26582 (pass_cse_sincos): Likewise.
26583 (pass_convert_to_rsqrt): Likewise.
26584 * tree-ssa-structalias.c (pass_build_alias): Likewise.
26585 * tree-stdarg.c (pass_stdarg): Likewise.
26586 * tree-tailcall.c (pass_tail_recursion): Likewise.
26587 (pass_tail_calls): Likewise.
26588 * tree-vect-generic.c (pass_lower_vector): Likewise.
26589 (pass_lower_vector_ssa): Likewise.
26590 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
26591
0051ef59
JM
265922009-04-16 Joseph Myers <joseph@codesourcery.com>
26593
26594 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
26595 XLR entry.
26596 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
26597 Handle -march=xlr.
26598 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
26599 logical and signext.
26600
b3f8558a
KK
266012009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
26602
26603 PR target/39767
26604 * config/sh/predicates.md (arith_operand): Check if the operand
26605 of TRUNCATE is a REG.
26606
f57597d9
KH
266072009-04-16 Kazu Hirata <kazu@codesourcery.com>
26608
26609 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
26610 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
26611
b172d063
KH
266122009-04-16 Kazu Hirata <kazu@codesourcery.com>
26613
26614 * tree-iterator.c (tsi_split_statement_list_after,
26615 tsi_split_statement_list_before): Remove.
26616 * tree-iterator.h: Remove the prototypes for
532bfb0a 26617 tsi_split_statement_list_after and tsi_split_statement_list_before.
b172d063 26618
78fe4f1f
KH
266192009-04-16 Kazu Hirata <kazu@codesourcery.com>
26620
26621 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
26622 * tree-ssa-propagate.h: Remove the prototype for
26623 stmt_makes_single_load.
26624
43dd3201
KH
266252009-04-16 Kazu Hirata <kazu@codesourcery.com>
26626
26627 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
26628 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
26629
4252a4aa
KH
266302009-04-16 Kazu Hirata <kazu@codesourcery.com>
26631
26632 * tree-iterator.c (EXPR_LAST_BODY): Remove.
26633
bfb69968
KH
266342009-04-16 Kazu Hirata <kazu@codesourcery.com>
26635
26636 * except.c (eh_region_outer_p): Remove.
26637 * except.h: Remove the prototype for eh_region_outer_p.
26638
c7db7fa5
KH
266392009-04-16 Kazu Hirata <kazu@codesourcery.com>
26640
26641 * function.c (current_function_assembler_name): Remove.
26642 * function.h: Remove the prototype for
26643 current_function_assembler_name.
26644
efc0b2bd
ILT
266452009-04-16 Ian Lance Taylor <iant@google.com>
26646
532bfb0a 26647 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
efc0b2bd
ILT
26648 (add_reg_note): Call alloc_reg_note.
26649 * rtl.h (alloc_reg_note): Declare.
26650 * combine.c (try_combine): Use alloc_reg_note.
26651 (recog_for_combine, move_deaths): Likewise.
26652 (distribute_notes): Use alloc_reg_note and add_reg_note.
26653 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
26654 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
26655 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
26656
6080348f
VM
266572009-04-16 Vladimir Makarov <vmakarov@redhat.com>
26658
26659 PR rtl-optimization/39762
26660 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
26661 ira_may_move_out_cost): Add comments about way of their usage.
532bfb0a 26662 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2ba9daa7 26663
6080348f
VM
26664 * ira-conflicts.c (process_regs_for_copy): Use function
26665 ira_get_register_move_cost instead of global
26666 ira_register_move_cost.
26667
26668 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
26669 color_pass, move_spill_restore, update_curr_costs): Ditto.
26670
26671 * ira-lives.c (process_single_reg_class_operands): Ditto.
26672
26673 * ira-emit.c (emit_move_list): Ditto.
26674
26675 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
26676 (record_reg_classes): Ditto. Use functions
26677 ira_get_register_move_cost and ira_get_may_move_cost instead of
26678 global vars ira_register_move_cost, ira_may_move_out_cost and
26679 ira_may_move_in_cost.
26680 (record_address_regs): Don't call ira_init_register_move_cost.
26681 Use function ira_get_may_move_cost instead of global
26682 ira_may_move_in_cost.
26683 (process_bb_node_for_hard_reg_moves): Use function
532bfb0a 26684 ira_get_register_move_cost instead of global ira_register_move_cost.
6080348f 26685 (ira_costs): Don't call ira_init_register_move_cost.
2ba9daa7 26686
646bea10
RG
266872009-04-16 Richard Guenther <rguenther@suse.de>
26688
26689 * tree-cfg.c (verify_gimple_assign_binary):
26690 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
26691 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
26692 (create_general_new_stmt): Note that this function is broken.
26693
02e819ff
RAE
266942009-04-16 Rafael Avila de Espindola <espindola@google.com>
26695
26696 * common.opt (fhelp): Add Var(help_flag).
26697 * gcc-plugin.h (plugin_info): Add help.
26698 * plugin.c (plugin_name_args): Add help.
26699 (register_plugin_info): Set plugin->help.
26700 (print_help_one_plugin): New.
26701 (print_plugins_help): New.
26702 * plugin.h (print_plugins_help): New.
26703 * toplev.c (toplev_main): Call print_plugins_help if needed.
26704
ccacdf06
RG
267052009-04-16 Richard Guenther <rguenther@suse.de>
26706
26707 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
26708 (gimple_ior_addresses_taken_1): New function.
26709 (gimple_ior_addresses_taken): Likewise.
26710 * gimple.h (struct gimple_statement_with_ops_base): Remove
26711 addresses_taken member.
26712 (gimple_ior_addresses_taken): Declare.
26713 (gimple_addresses_taken, gimple_addresses_taken_ptr,
26714 gimple_set_addresses_taken): Remove.
26715 * ipa-reference.c (mark_address): New function.
26716 (scan_stmt_for_static_refs): Use it for marking addresses taken.
26717 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
26718 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
26719 (gimple_add_to_addresses_taken): Remove.
26720 (get_tmr_operands): Call mark_address_taken.
26721 (get_asm_expr_operands): Likewise.
26722 (get_expr_operands): Likewise.
26723 (build_ssa_operands): Do not clear the addresses_taken bitmap.
26724 (free_stmt_operands): Do not free it.
26725 * tree-ssa.c (delete_tree_ssa): Likewise.
26726 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
26727
346ef3fa
RG
267282009-04-16 Richard Guenther <rguenther@suse.de>
26729
26730 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
26731 (walk_stmt_load_store_ops): Likewise.
26732 * gimple.c (get_base_loadstore): New function.
26733 (walk_stmt_load_store_addr_ops): Likewise.
26734 (walk_stmt_load_store_ops): Likewise.
26735 * ipa-pure-const.c (check_op): Simplify.
26736 (check_load, check_store): New functions.
26737 (check_stmt): Use walk_stmt_load_store_ops.
26738 * ipa-reference.c (mark_load): Adjust signature.
26739 (mark_store): Likewise.
26740 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
26741
44e9f006
RAE
267422009-04-16 Rafael Avila de Espindola <espindola@google.com>
26743
26744 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
26745 (plugin_info): New.
26746 * opts.c (common_handle_option): Don't call print_version.
26747 * plugin.c (plugin_name_args): Add version.
26748 (register_plugin_info): New.
26749 (register_callback): Handle PLUGIN_INFO.
26750 (try_init_one_plugin): New.
26751 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
26752 if failed to init.
26753 (finalize_one_plugin): New.
26754 (finalize_plugins): New.
26755 (print_one_plugin): New.
26756 (print_plugins_versions): New.
26757 * plugin.h (print_plugins_versions): New.
26758 (finalize_plugins): New.
26759 * toplev.c (compile_file): Don't call initialize_plugins.
26760 (print_version): Call print_plugins_versions.
26761 (toplev_main): Call initialize_plugins. Print version if needed.
26762 Call finalize_plugins.
26763
41fd0f9b
RAE
267642009-04-16 Rafael Avila de Espindola <espindola@google.com>
26765
26766 * common.opt (fversion): New.
26767 * gcc.c (print_version): New.
26768 (process_command): Don't print the version. Just set print_version.
26769 (main): Print version. Call subprocesses if print_version and
26770 verbose_flag are set.
26771 * opts.c (common_handle_option): Handle OPT_fversion.
26772
550918ca 267732009-04-16 Richard Guenther <rguenther@suse.de>
532bfb0a 26774 Ira Rosen <irar@il.ibm.com>
550918ca
RG
26775
26776 PR tree-optimization/39698
26777 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
26778 type of the reduction variable. Only generate the def if
26779 it is needed.
26780
26781 * omp-low.c (expand_omp_for_generic): When converting to a pointer
26782 make sure to first convert to an integer of the same precision.
26783 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
26784 the type of the evolution correctly in computing the new
26785 induction variable base.
26786
54634841
RG
267872009-04-16 Richard Guenther <rguenther@suse.de>
26788
26789 PR middle-end/39625
26790 * tree-cfg.c (make_blocks): Split statements with to-be
26791 abnormal SSA names on the lhs.
26792
b6fc2cdb
PB
267932009-04-16 Paolo Bonzini <bonzini@gnu.org>
26794
26795 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
26796 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
26797 * c-typeck.c (really_start_incremental_init): Likewise.
26798 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
26799 (TARGET_INITIALIZER): Remove it.
26800 * target.h (struct target): Remove vector_opaque_p.
26801 * tree.c (build_opaque_vector_type): New.
26802 * tree.h (TYPE_VECTOR_OPAQUE): New.
26803 (build_opaque_vector_type): Declare.
26804 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
26805 * config/rs6000/rs6000.c (build_opaque_vector_type,
26806 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
26807 (rs6000_init_builtins): Use build_opaque_vector_type for
26808 opaque_V4SI_type_node.
26809
a417cdd9
CM
268102009-04-15 Catherine Moore <clm@codesourcery.com>
26811
532bfb0a
AJ
26812 * debug.h (set_name): Declare.
26813 * dwarf2out.c (dwarf2out_set_name): Declare.
26814 (dwarf2_debug_hooks): Add set_name.
26815 (find_AT_string): New.
26816 (add_AT_string): Call find_AT_string.
26817 (dwarf2out_set_name): New.
26818 * cp/decl.c (grokdeclarator): Call set_name.
26819 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
26820 * debug.c (do_nothing_debug_hooks): Likewise.
26821 * dbxout.c (dbx_debug_hooks): Likewise.
26822 * sdbout.c (sdb_debug_hooks): Likewise.
a417cdd9 26823
60839f5d 268242009-04-15 Michael Eager <eager@eagercon.com>
2c5cac98 26825
532bfb0a
AJ
26826 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
26827 reg for single-precision FPU.
26828 * config/rs6000/rs6000.md (movsi_internal1): Only for
26829 !TARGET_SINGLE_FPU.
26830 (movsi_internal1_single): New. Add pattern to move SI values to/from
2c5cac98
ME
26831 single-precision FP regs.
26832
ada39f0b
RG
268332009-04-15 Richard Guenther <rguenther@suse.de>
26834
26835 * omp-low.c (lower_rec_input_clauses): Build correct address
26836 expressions.
26837 (expand_omp_for_generic): Fix multiplication type.
532bfb0a 26838 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
ada39f0b
RG
26839 (generate_memset_zero): Fix types.
26840 * tree-profile.c (prepare_instrumented_value): Correctly
26841 widen a pointer.
26842
6866c6e8
ILT
268432009-04-15 Ian Lance Taylor <iant@google.com>
26844
26845 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
26846 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
26847 for -Wall and for -Wc++-compat.
26848 (c_common_post_options): For C++, set warn_enum_compare if not
26849 already set.
26850 * c-tree.h (struct c_expr): Add field original_type.
26851 (build_external_ref): Update declaration.
26852 * c-parser.c (c_parser_braced_init): Set original_type.
26853 (c_parser_initelt): Likewise.
26854 (c_parser_expr_no_commas): Likewise.
26855 (c_parser_conditional_expression): Likewise.
26856 (c_parser_cast_expression): Likewise.
26857 (c_parser_unary_expression): Likewise. Pull setting of
26858 original_code to top of function.
26859 (c_parser_sizeof_expression): Set original_type.
26860 (c_parser_alignof_expression): Likewise.
26861 (c_parser_postfix_expression): Likewise. Pull setting of
26862 original_code to top of function.
532bfb0a 26863 (c_parser_postfix_expression_after_paren_type): Set original_type.
6866c6e8
ILT
26864 (c_parser_postfix_expression_after_primary): Likewise.
26865 (c_parser_expression): Likewise.
26866 * c-typeck.c (build_external_ref): Add type parameter. Change all
26867 callers.
26868 (c_expr_sizeof_expr): Set original_type field.
26869 (parser_build_unary_op): Likewise.
26870 (parser_build_binary_op): Likewise. Optionally warn about
26871 comparisons of enums of different types.
26872 (digest_init): Set original_type field.
26873 (really_start_incremental_init): Likewise.
26874 (push_init_level, pop_init_level): Likewise.
26875 * doc/invoke.texi (Warning Options): -Wenum-compare now
26876 supported in C.
26877
f116fecf
RG
268782009-04-15 Richard Guenther <rguenther@suse.de>
26879
26880 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
26881 out a necessary conversion.
26882 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
26883 names we didn't value number.
26884 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
26885
25e20805
RG
268862009-04-15 Richard Guenther <rguenther@suse.de>
26887
26888 PR tree-optimization/39764
26889 * tree-ssa-ccp.c (get_value): Canonicalize value with
26890 canonicalize_float_value.
26891
90cc3676
JH
268922009-04-15 Jan Hubicka <jh@suse.cz>
26893
26894 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
26895 Wrong version of patch.
26896
6d14c006
JH
268972009-04-15 Jan Hubicka <jh@suse.cz>
26898
26899 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
26900
5afaa917
NS
269012009-04-15 Nathan Sidwell <nathan@codesourcery.com>
26902
26903 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
26904 our distinct integral and vector types.
26905
3b482fca
RAE
269062009-04-15 Rafael Avila de Espindola <espindola@google.com>
26907
26908 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
26909 * init.c (build_vtbl_address): Remove call to assemble_external.
26910
6cd1d2e2
DJ
269112009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
26912
26913 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
26914 output for other floating point modes.
26915
dab71827
DN
269162009-04-14 Diego Novillo <dnovillo@google.com>
26917
26918 * diagnostic.c (diagnostic_report_diagnostic): Do not
26919 warn about loaded plugins for DK_ERROR and DK_WARNING.
26920 * c-decl.c (declspecs_add_type): Move call to
26921 invoke_plugin_callbacks ...
26922 * c-parser.c (c_parser_declspecs): ... here.
26923 * plugin.c (dump_active_plugins): Tidy output.
26924
68a607d8
DN
269252009-04-14 Diego Novillo <dnovillo@google.com>
26926 Le-Chun Wu <lcwu@google.com>
26927
26928 * configure.ac: Add --enable-plugin support.
26929 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
26930 * Makefile.in (PLUGIN_H): Define.
26931 Export ENABLE_PLUGIN and GMPINC to site.exp.
26932 Add PLUGINLIBS to link command.
26933 Add/modify dependencies for plugin.o and files including plugin.h.
26934 (plugin.o): New.
26935 * config.in: Regenerate.
2ba9daa7 26936
68a607d8
DN
26937 * opts.c (common_handle_option): Handle OPT_fplugin_ and
26938 OPT_fplugin_arg_.
26939
269402009-04-14 Le-Chun Wu <lcwu@google.com>
26941
26942 * tree-pass.h (register_one_dump_file): Add a prototype for
26943 register_one_dump_file.
26944 * toplev.c (compile_file): Call initialize_plugins.
26945 (do_compile): Call invoke_plugin_callbacks.
26946 (toplev_main): Call invoke_plugin_callbacks.
26947 * common.opt: Add -fplugin= and -fplugin-arg-.
26948 * gcc-plugin.h: New public header file for plugins to include.
26949 * plugin.c: New source file.
26950 * plugin.h: New internal header file.
26951 * passes.c (register_one_dump_file): Make it external.
2ba9daa7 26952
68a607d8
DN
26953 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
26954
269552009-04-14 Diego Novillo <dnovillo@google.com>
26956
26957 * doc/plugins.texi: New.
26958 * doc/gccint.texi: Add reference to Plugins chapter.
26959 * doc/invoke.texi: Document -fplugin and -fplugin-arg
26960 * diagnostic.c (diagnostic_report_diagnostic): Warn about
26961 loaded plugins, if any.
26962 * timevar.def (TV_PLUGIN_INIT): Define.
26963 (TV_PLUGIN_RUN): Define.
26964 * plugin.c: Include timevar.h
26965 (plugins_active_p): New.
26966 (dump_active_plugins): New.
26967 (debug_active_plugins): New.
26968
50617257
JM
269692009-04-14 Joseph Myers <joseph@codesourcery.com>
26970
26971 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
26972 library paths.
26973 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
26974
b32f6fff
KH
269752009-04-14 Kazu Hirata <kazu@codesourcery.com>
26976
26977 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
26978 the same as a minus without a shift.
26979
85d04fa2
NC
269802009-04-14 Nick Clifton <nickc@redhat.com>
26981
26982 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
26983 comparisons with small integers will always produce a short
26984 branch.
26985
e495a0c8
RAE
269862009-04-14 Rafael Avila de Espindola <espindola@google.com>
26987
26988 Merge:
e495a0c8
RAE
26989 2008-12-19 Diego Novillo <dnovillo@google.com>
26990
532bfb0a 26991 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
e495a0c8 26992
ad41bd84 269932009-04-14 Richard Guenther <rguenther@suse.de>
587aa063
RG
26994
26995 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
26996 verification.
26997 (verify_gimple_assign_binary): Likewise. Handle shifts and
26998 rotates correctly.
26999 (verify_gimple_phi): Print the mismatched argument position.
27000 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
27001 Fix types.
27002 (vect_update_init_of_dr): Likewise.
27003 * matrix-reorg.c (transform_access_sites): Do what the
27004 comment suggests.
27005 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
27006
60839f5d 270072009-04-13 Michael Eager <eager@eagercon.com>
9eca1774
ME
27008
27009 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
27010 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
27011 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
2ba9daa7 27012 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
9eca1774
ME
27013 remove duplicate config
27014
b0e2d008
DR
270152009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
27016
27017 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
27018 file_name:line_number type locator of the call site.
2ba9daa7 27019
1244a8b7
VM
270202009-04-13 Vladimir Makarov <vmakarov@redhat.com>
27021
27022 * genautomata.c: Put blank after comma.
27023 (automaton_decls): New.
27024 (struct unit_usage): Add comments to member next.
27025 (store_alt_unit_usage): Keep the list ordered.
27026 (unit_present_on_list_p, equal_alternatives_p): New.
27027 (check_regexp_units_distribution): Check units distribution
27028 correctness correctly.
27029 (main): Don't write automata if error is found. Return correct
27030 exit code.
2ba9daa7 27031
1244a8b7
VM
27032 * config/m68k/cf.md (cfv4_ds): Remove.
27033 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
27034 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
27035
27036 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
27037 power4-load-ext, power4-store, power4-store-update,
27038 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
27039 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
27040 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
27041 power4-sqrt, power4-isync): Modify reservation to make correct
27042 unit distribution to automata.
27043
27044 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
27045 power5-store-update, power5-two, power5-three, power5-lmul,
27046 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2ba9daa7 27047
f7dd1864
AN
270482009-04-13 Adam Nemet <anemet@caviumnetworks.com>
27049
27050 * except.c (pass_set_nothrow_function_flags): Set name and add
27051 TODO_dump_func.
27052 (set_nothrow_function_flags): Mention in the dump file when
27053 changing a function to nothrow.
27054
59a1171f
OS
270552009-04-13 Ozkan Sezer <sezeroz@gmail.com>
27056
27057 PR/39066
27058 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
27059 instead of unsigned long.
27060
934c2060
RR
270612009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27062
f7dd1864
AN
27063 * config/arm/arm.c (return_used_this_function): Remove.
27064 (arm_output_function_prologue): Remove use of
934c2060 27065 return_used_this_function.
f7dd1864 27066 (output_return_instruction): Replace use of
934c2060
RR
27067 return_used_this_function
27068 by cfun->machine->return_used_this_function.
f7dd1864
AN
27069 (arm_output_epilogue): Likewise.
27070 (arm_output_function_epilogue): Likewise.
27071 (thumb_unexpanded_epilogue): Likewise.
27072 * config/arm/arm.h (struct machine_function):
934c2060 27073 New member return_used_this_function.
f7dd1864 27074
ae5cc016
MM
270752009-04-12 Mark Mitchell <mark@codesourcery.com>
27076
27077 * doc/install.texi: Correct description of default directory for
27078 --with-gxx-include-dir.
27079
a0ce68df 270802009-04-12 Eric Botcazou <ebotcazou@adacore.com>
849d624b
EB
27081
27082 * fold-const.c (build_range_check): Properly deal with enumeral and
27083 boolean base types.
27084
3906a4a1
SB
270852009-04-12 Steven Bosscher <steven@gcc.gnu.org>
27086
27087 * doc/invoke.texi (max_gcse_passes): Remove documentation.
27088 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
27089 * params.h (MAX_GCSE_PASSES): Remove.
27090 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
27091 in sequence. Remove ability to run multiple passes.
27092 (bypass_jumps): Report run as third CPROP pass.
27093
efaadb93
AN
270942009-04-12 Adam Nemet <anemet@caviumnetworks.com>
27095
27096 PR middle-end/39651
27097 * except.c (can_throw_external): Look at each insn in a SEQUENCE
27098 when deciding whether the whole SEQUENCE can throw.
27099
4c48007b
UB
271002009-04-12 Uros Bizjak <ubizjak@gmail.com>
27101
27102 PR target/39740
27103 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
27104 offseted label references.
27105
b4104018
JH
271062009-04-11 Jan Hubicka <jh@suse.cz>
27107
27108 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
27109
32848948
RG
271102009-04-11 Richard Guenther <rguenther@suse.de>
27111
27112 PR middle-end/39732
27113 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
27114 return variables as TREE_ADDRESSABLE.
27115
8810712e
RG
271162009-04-11 Richard Guenther <rguenther@suse.de>
27117
27118 PR tree-optimization/39713
27119 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
27120 reference trees have SSA_NAME operands.
27121
fa78c0c1
RG
271222009-04-11 Richard Guenther <rguenther@suse.de>
27123
27124 PR c/39712
27125 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
27126 address expressions.
27127
4d722130
DK
271282009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
27129
27130 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
27131 match changes in Cygwin 1.7
27132 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
27133 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
27134
567a90f5
PB
271352009-04-10 Paolo Bonzini <bonzini@gnu.org>
27136
27137 PR tree-optimization/39701
27138 * doc/invoke.texi (Optimization Options): Document change in
27139 meaning and initialization of -fdelete-null-pointer-checks.
27140
1ad2f450
L
271412009-04-10 H.J. Lu <hongjiu.lu@intel.com>
27142
27143 PR middle-end/39701
27144 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
27145
27146 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
27147 here.
27148
27149 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
27150
1afc5373
CF
271512009-04-10 Chao-ying Fu <fu@mips.com>
27152
27153 * doc/tm.texi (Instruction Output): Document
27154 TARGET_ASM_FINAL_POSTSCAN_INSN.
27155 * target.h (final_postscan_insn): New field in asm_out.
27156 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
27157 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
27158 * final.c (final_scan_insn): Call
27159 targetm.asm_out.final_postscan_insn after outputting
27160 an asm macro and a normal instruction.
27161
27162 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
27163 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
27164 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
27165 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
27166 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
27167
4d35e75c
PB
271682009-04-10 Paolo Bonzini <bonzini@gnu.org>
27169
27170 PR middle-end/39701
1ad2f450
L
27171 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
27172 variables as non-NULL even with -fdelete-null-pointer-checks.
4d35e75c 27173
62c49b83
L
271742009-04-10 H.J. Lu <hongjiu.lu@intel.com>
27175
27176 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
27177
80558628
L
271782009-04-09 H.J. Lu <hongjiu.lu@intel.com>
27179
27180 PR target/39678
27181 * config/i386/i386.c (classify_argument): Handle SCmode with
27182 (bit_offset % 64) != 0.
27183
8c70d28b
SL
271842009-04-09 Sandra Loosemore <sandra@codesourcery.com>
27185
27186 * doc/invoke.texi (Optimize Options): Add cross-reference to
27187 -Q --help=optimizers examples.
27188
e1ff19bf
BE
271892009-04-10 Ben Elliston <bje@au.ibm.com>
27190
27191 PR target/36800
27192 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
27193 regalign for the reg == fpr and TDmode case.
27194
52daca75
DA
271952009-04-09 David Ayers <ayers@fsfe.org>
27196
27197 PR objc/29200
27198 * objc/objc-act.c (warn_with_method): Remove helper function.
27199 (check_duplicates): Call warning and inform directly.
27200 (really_start_method): Likewise.
27201
b45f0e58
PB
272022009-04-09 Paolo Bonzini <bonzini@gnu.org>
27203
27204 * expmed.c (expand_divmod): Always use a comparison for a division
27205 by a large unsigned integer.
27206
1ad2f450
L
27207 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
27208 for things others than variables or functions as nonzero.
b45f0e58 27209
748086b7
JJ
272102009-04-09 Nick Clifton <nickc@redhat.com>
27211
27212 * unwind-compat.c: Change copyright header to refer to version
27213 3 of the GNU General Public License with version 3.1 of the
27214 GCC Runtime Library Exception and to point readers at the
7a715bba 27215 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
748086b7
JJ
27216 * config/alpha/crtfastmath.c: Likewise.
27217 * config/alpha/linux-unwind.h: Likewise.
27218 * config/alpha/qrnnd.asm: Likewise.
27219 * config/alpha/vms-crt0-64.c: Likewise.
27220 * config/alpha/vms-crt0.c: Likewise.
27221 * config/alpha/vms-dwarf2.asm: Likewise.
27222 * config/alpha/vms-dwarf2eh.asm: Likewise.
27223 * config/alpha/vms-psxcrt0-64.c: Likewise.
27224 * config/alpha/vms-psxcrt0.c: Likewise.
27225 * config/alpha/vms_tramp.asm: Likewise.
27226 * config/arc/initfini.c: Likewise.
27227 * config/arc/lib1funcs.asm: Likewise.
27228 * config/arm/bpabi-v6m.S: Likewise.
27229 * config/arm/bpabi.S: Likewise.
27230 * config/arm/bpabi.c: Likewise.
27231 * config/arm/crti.asm: Likewise.
27232 * config/arm/crtn.asm: Likewise.
27233 * config/arm/ieee754-df.S: Likewise.
27234 * config/arm/ieee754-sf.S: Likewise.
27235 * config/arm/lib1funcs.asm: Likewise.
27236 * config/arm/libunwind.S: Likewise.
27237 * config/arm/linux-atomic.c: Likewise.
27238 * config/arm/mmintrin.h: Likewise.
27239 * config/arm/pr-support.c: Likewise.
27240 * config/arm/unaligned-funcs.c: Likewise.
27241 * config/arm/unwind-arm.c: Likewise.
27242 * config/arm/unwind-arm.h: Likewise.
27243 * config/avr/libgcc.S: Likewise.
27244 * config/bfin/crti.s: Likewise.
27245 * config/bfin/crtlibid.s: Likewise.
27246 * config/bfin/crtn.s: Likewise.
27247 * config/bfin/lib1funcs.asm: Likewise.
27248 * config/bfin/linux-unwind.h: Likewise.
27249 * config/cris/arit.c: Likewise.
27250 * config/cris/cris_abi_symbol.c: Likewise.
27251 * config/darwin-64.c: Likewise.
27252 * config/darwin-crt2.c: Likewise.
27253 * config/darwin-crt3.c: Likewise.
27254 * config/darwin.h: Likewise.
27255 * config/dbxelf.h: Likewise.
27256 * config/dfp-bit.c: Likewise.
27257 * config/dfp-bit.h: Likewise.
27258 * config/elfos.h: Likewise.
27259 * config/fixed-bit.c: Likewise.
27260 * config/fixed-bit.h: Likewise.
27261 * config/fp-bit.c: Likewise.
27262 * config/fp-bit.h: Likewise.
27263 * config/fr30/crti.asm: Likewise.
27264 * config/fr30/crtn.asm: Likewise.
27265 * config/fr30/lib1funcs.asm: Likewise.
27266 * config/freebsd-spec.h: Likewise.
27267 * config/frv/cmovd.c: Likewise.
27268 * config/frv/cmovh.c: Likewise.
27269 * config/frv/cmovw.c: Likewise.
27270 * config/frv/frvbegin.c: Likewise.
27271 * config/frv/frvend.c: Likewise.
27272 * config/frv/lib1funcs.asm: Likewise.
27273 * config/glibc-stdint.h: Likewise.
27274 * config/h8300/clzhi2.c: Likewise.
27275 * config/h8300/crti.asm: Likewise.
27276 * config/h8300/crtn.asm: Likewise.
27277 * config/h8300/ctzhi2.c: Likewise.
27278 * config/h8300/fixunssfsi.c: Likewise.
27279 * config/h8300/lib1funcs.asm: Likewise.
27280 * config/h8300/parityhi2.c: Likewise.
27281 * config/h8300/popcounthi2.c: Likewise.
27282 * config/i386/ammintrin.h: Likewise.
27283 * config/i386/att.h: Likewise.
27284 * config/i386/avxintrin.h: Likewise.
27285 * config/i386/biarch64.h: Likewise.
27286 * config/i386/bmmintrin.h: Likewise.
27287 * config/i386/cpuid.h: Likewise.
27288 * config/i386/cross-stdarg.h: Likewise.
27289 * config/i386/crtfastmath.c: Likewise.
27290 * config/i386/crtprec.c: Likewise.
27291 * config/i386/cygming-crtbegin.c: Likewise.
27292 * config/i386/cygming-crtend.c: Likewise.
27293 * config/i386/cygwin.asm: Likewise.
27294 * config/i386/emmintrin.h: Likewise.
27295 * config/i386/gmm_malloc.h: Likewise.
27296 * config/i386/gthr-win32.c: Likewise.
27297 * config/i386/i386.h: Likewise.
27298 * config/i386/immintrin.h: Likewise.
27299 * config/i386/linux-unwind.h: Likewise.
27300 * config/i386/linux64.h: Likewise.
27301 * config/i386/mm3dnow.h: Likewise.
27302 * config/i386/mmintrin-common.h: Likewise.
27303 * config/i386/mmintrin.h: Likewise.
27304 * config/i386/nmmintrin.h: Likewise.
27305 * config/i386/pmm_malloc.h: Likewise.
27306 * config/i386/pmmintrin.h: Likewise.
27307 * config/i386/smmintrin.h: Likewise.
27308 * config/i386/sol2-c1.asm: Likewise.
27309 * config/i386/sol2-ci.asm: Likewise.
27310 * config/i386/sol2-cn.asm: Likewise.
27311 * config/i386/sol2-gc1.asm: Likewise.
27312 * config/i386/tmmintrin.h: Likewise.
27313 * config/i386/unix.h: Likewise.
27314 * config/i386/w32-unwind.h: Likewise.
27315 * config/i386/wmmintrin.h: Likewise.
27316 * config/i386/x86-64.h: Likewise.
27317 * config/i386/x86intrin.h: Likewise.
27318 * config/i386/xmmintrin.h: Likewise.
27319 * config/ia64/crtbegin.asm: Likewise.
27320 * config/ia64/crtend.asm: Likewise.
27321 * config/ia64/crtfastmath.c: Likewise.
27322 * config/ia64/crti.asm: Likewise.
27323 * config/ia64/crtn.asm: Likewise.
27324 * config/ia64/fde-glibc.c: Likewise.
27325 * config/ia64/lib1funcs.asm: Likewise.
27326 * config/ia64/linux-unwind.h: Likewise.
27327 * config/ia64/quadlib.c: Likewise.
27328 * config/ia64/unwind-ia64.c: Likewise.
27329 * config/linux.h: Likewise.
27330 * config/m32c/m32c-lib1.S: Likewise.
27331 * config/m32c/m32c-lib2-trapv.c: Likewise.
27332 * config/m32c/m32c-lib2.c: Likewise.
27333 * config/m32r/initfini.c: Likewise.
27334 * config/m68hc11/larith.asm: Likewise.
27335 * config/m68hc11/m68hc11-crt0.S: Likewise.
27336 * config/m68k/cf.md: Likewise.
27337 * config/m68k/crti.s: Likewise.
27338 * config/m68k/crtn.s: Likewise.
27339 * config/m68k/lb1sf68.asm: Likewise.
27340 * config/m68k/linux-unwind.h: Likewise.
27341 * config/mcore/crti.asm: Likewise.
27342 * config/mcore/crtn.asm: Likewise.
27343 * config/mcore/lib1.asm: Likewise.
27344 * config/mips/linux-unwind.h: Likewise.
27345 * config/mips/loongson.h: Likewise.
27346 * config/mips/mips16.S: Likewise.
27347 * config/mmix/crti.asm: Likewise.
27348 * config/mmix/crtn.asm: Likewise.
27349 * config/pa/fptr.c: Likewise.
27350 * config/pa/hpux-unwind.h: Likewise.
27351 * config/pa/lib2funcs.asm: Likewise.
27352 * config/pa/linux-atomic.c: Likewise.
27353 * config/pa/linux-unwind.h: Likewise.
27354 * config/pa/milli64.S: Likewise.
27355 * config/pa/quadlib.c: Likewise.
27356 * config/pa/stublib.c: Likewise.
27357 * config/picochip/libgccExtras/adddi3.asm: Likewise.
27358 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
27359 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
27360 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
27361 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
27362 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
27363 * config/picochip/libgccExtras/divmod15.asm: Likewise.
27364 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
27365 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
27366 * config/picochip/libgccExtras/longjmp.asm: Likewise.
27367 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
27368 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
27369 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
27370 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
27371 * config/picochip/libgccExtras/setjmp.asm: Likewise.
27372 * config/picochip/libgccExtras/subdi3.asm: Likewise.
27373 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
27374 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
27375 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
27376 * config/rs6000/750cl.h: Likewise.
27377 * config/rs6000/altivec.h: Likewise.
27378 * config/rs6000/biarch64.h: Likewise.
27379 * config/rs6000/crtresfpr.asm: Likewise.
27380 * config/rs6000/crtresgpr.asm: Likewise.
27381 * config/rs6000/crtresxfpr.asm: Likewise.
27382 * config/rs6000/crtresxgpr.asm: Likewise.
27383 * config/rs6000/crtsavfpr.asm: Likewise.
27384 * config/rs6000/crtsavgpr.asm: Likewise.
27385 * config/rs6000/darwin-asm.h: Likewise.
27386 * config/rs6000/darwin-fallback.c: Likewise.
27387 * config/rs6000/darwin-fpsave.asm: Likewise.
27388 * config/rs6000/darwin-ldouble.c: Likewise.
27389 * config/rs6000/darwin-tramp.asm: Likewise.
27390 * config/rs6000/darwin-unwind.h: Likewise.
27391 * config/rs6000/darwin-vecsave.asm: Likewise.
27392 * config/rs6000/darwin-world.asm: Likewise.
27393 * config/rs6000/e500crtres32gpr.asm: Likewise.
27394 * config/rs6000/e500crtres64gpr.asm: Likewise.
27395 * config/rs6000/e500crtres64gprctr.asm: Likewise.
27396 * config/rs6000/e500crtrest32gpr.asm: Likewise.
27397 * config/rs6000/e500crtrest64gpr.asm: Likewise.
27398 * config/rs6000/e500crtresx32gpr.asm: Likewise.
27399 * config/rs6000/e500crtresx64gpr.asm: Likewise.
27400 * config/rs6000/e500crtsav32gpr.asm: Likewise.
27401 * config/rs6000/e500crtsav64gpr.asm: Likewise.
27402 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
27403 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
27404 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
27405 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
27406 * config/rs6000/eabi-ci.asm: Likewise.
27407 * config/rs6000/eabi-cn.asm: Likewise.
27408 * config/rs6000/eabi.asm: Likewise.
27409 * config/rs6000/linux-unwind.h: Likewise.
27410 * config/rs6000/linux64.h: Likewise.
27411 * config/rs6000/paired.h: Likewise.
27412 * config/rs6000/paired.md: Likewise.
27413 * config/rs6000/ppc64-fp.c: Likewise.
27414 * config/rs6000/ppu_intrinsics.h: Likewise.
27415 * config/rs6000/rs6000.h: Likewise.
27416 * config/rs6000/si2vmx.h: Likewise.
27417 * config/rs6000/sol-ci.asm: Likewise.
27418 * config/rs6000/sol-cn.asm: Likewise.
27419 * config/rs6000/spe.h: Likewise.
27420 * config/rs6000/spu2vmx.h: Likewise.
27421 * config/rs6000/sysv4.h: Likewise.
27422 * config/rs6000/tramp.asm: Likewise.
27423 * config/rs6000/vec_types.h: Likewise.
27424 * config/s390/linux-unwind.h: Likewise.
27425 * config/s390/tpf-unwind.h: Likewise.
27426 * config/score/crti.asm: Likewise.
27427 * config/score/crtn.asm: Likewise.
27428 * config/sh/crt1.asm: Likewise.
27429 * config/sh/crti.asm: Likewise.
27430 * config/sh/crtn.asm: Likewise.
27431 * config/sh/divtab-sh4-300.c: Likewise.
27432 * config/sh/divtab-sh4.c: Likewise.
27433 * config/sh/divtab.c: Likewise.
27434 * config/sh/lib1funcs-4-300.asm: Likewise.
27435 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
27436 * config/sh/lib1funcs.asm: Likewise.
27437 * config/sh/lib1funcs.h: Likewise.
27438 * config/sh/linux-atomic.asm: Likewise.
27439 * config/sh/linux-unwind.h: Likewise.
27440 * config/sh/shmedia.h: Likewise.
27441 * config/sh/sshmedia.h: Likewise.
27442 * config/sh/ushmedia.h: Likewise.
27443 * config/sparc/crtfastmath.c: Likewise.
27444 * config/sparc/linux-unwind.h: Likewise.
27445 * config/sparc/sol2-c1.asm: Likewise.
27446 * config/sparc/sol2-ci.asm: Likewise.
27447 * config/sparc/sol2-cn.asm: Likewise.
27448 * config/spu/divmodti4.c: Likewise.
27449 * config/spu/divv2df3.c: Likewise.
27450 * config/spu/float_disf.c: Likewise.
27451 * config/spu/float_unsdidf.c: Likewise.
27452 * config/spu/float_unsdisf.c: Likewise.
27453 * config/spu/float_unssidf.c: Likewise.
27454 * config/spu/mfc_multi_tag_release.c: Likewise.
27455 * config/spu/mfc_multi_tag_reserve.c: Likewise.
27456 * config/spu/mfc_tag_release.c: Likewise.
27457 * config/spu/mfc_tag_reserve.c: Likewise.
27458 * config/spu/mfc_tag_table.c: Likewise.
27459 * config/spu/multi3.c: Likewise.
27460 * config/spu/spu_internals.h: Likewise.
27461 * config/spu/spu_intrinsics.h: Likewise.
27462 * config/spu/spu_mfcio.h: Likewise.
27463 * config/spu/vec_types.h: Likewise.
27464 * config/spu/vmx2spu.h: Likewise.
27465 * config/stormy16/stormy16-lib2.c: Likewise.
27466 * config/svr4.h: Likewise.
27467 * config/sync.c: Likewise.
27468 * config/v850/lib1funcs.asm: Likewise.
27469 * config/vxlib-tls.c: Likewise.
27470 * config/vxlib.c: Likewise.
27471 * config/vxworks-dummy.h: Likewise.
27472 * config/xtensa/crti.asm: Likewise.
27473 * config/xtensa/crtn.asm: Likewise.
27474 * config/xtensa/ieee754-df.S: Likewise.
27475 * config/xtensa/ieee754-sf.S: Likewise.
27476 * config/xtensa/lib1funcs.asm: Likewise.
27477 * config/xtensa/lib2funcs.S: Likewise.
27478 * config/xtensa/linux-unwind.h: Likewise.
27479 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
27480 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
27481 * coretypes.h: Likewise.
27482 * crtstuff.c: Likewise.
27483 * defaults.h: Likewise.
27484 * dwarf2.h: Likewise.
27485 * emutls.c: Likewise.
27486 * gbl-ctors.h: Likewise.
27487 * gcov-io.h: Likewise.
27488 * ginclude/float.h: Likewise.
27489 * ginclude/iso646.h: Likewise.
27490 * ginclude/stdarg.h: Likewise.
27491 * ginclude/stdbool.h: Likewise.
27492 * ginclude/stddef.h: Likewise.
27493 * ginclude/stdfix.h: Likewise.
27494 * ginclude/stdint-gcc.h: Likewise.
27495 * ginclude/tgmath.h: Likewise.
27496 * gthr-aix.h: Likewise.
27497 * gthr-dce.h: Likewise.
27498 * gthr-gnat.c: Likewise.
27499 * gthr-gnat.h: Likewise.
27500 * gthr-lynx.h: Likewise.
27501 * gthr-mipssde.h: Likewise.
27502 * gthr-nks.h: Likewise.
27503 * gthr-posix.c: Likewise.
27504 * gthr-posix.h: Likewise.
27505 * gthr-posix95.h: Likewise.
27506 * gthr-rtems.h: Likewise.
27507 * gthr-single.h: Likewise.
27508 * gthr-solaris.h: Likewise.
27509 * gthr-tpf.h: Likewise.
27510 * gthr-vxworks.h: Likewise.
27511 * gthr-win32.h: Likewise.
27512 * gthr.h: Likewise.
27513 * libgcc2.c: Likewise.
27514 * libgcc2.h: Likewise.
27515 * libgcov.c: Likewise.
27516 * tsystem.h: Likewise.
27517 * typeclass.h: Likewise.
27518 * unwind-c.c: Likewise.
27519 * unwind-compat.h: Likewise.
27520 * unwind-dw2-fde-compat.c: Likewise.
27521 * unwind-dw2-fde-darwin.c: Likewise.
27522 * unwind-dw2-fde-glibc.c: Likewise.
27523 * unwind-dw2-fde.c: Likewise.
27524 * unwind-dw2-fde.h: Likewise.
27525 * unwind-dw2.c: Likewise.
27526 * unwind-dw2.h: Likewise.
27527 * unwind-generic.h: Likewise.
27528 * unwind-pe.h: Likewise.
27529 * unwind-sjlj.c: Likewise.
27530 * unwind.inc: Likewise.
27531 * config/arm/neon-gen.ml: Change generated copyright header to
27532 refer to version 3 of the GNU General Public License with
27533 version 3.1 of the GCC Runtime Library Exception and to point
27534 readers at the COPYING3 and COPYING3.RUNTIME files and the
27535 FSF's license web page.
27536 * config/arm/arm_neon.h: Regenerate.
27537
275382009-04-09 Jakub Jelinek <jakub@redhat.com>
27539
27540 * config/cris/cris.md: Change copyright header to refer to version
27541 3 of the GNU General Public License.
27542 * doc/install.texi2html: Change copyright header to refer to version
27543 3 of the GNU General Public License and to point readers at the
27544 COPYING3 file and the FSF's license web page.
27545 * config/vax/linux.h: Likewise.
27546
4a77c72b
PB
275472009-04-09 Paolo Bonzini <bonzini@gnu.org>
27548
1ad2f450
L
27549 * config/i386/i386.md (cmpcc): New.
27550 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
27551 (sync_compare_and_swap_cc*): Delete.
27552
27553 * config/s390/s390.c (s390_compare_emitted): Remove.
27554 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
27555 s390_compare_emitted used to be handled. Assert that modes match.
27556 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
27557 refer to sync_compare_and_swap_ccsi.
27558 * config/s390/s390.h (s390_compare_emitted): Remove.
27559 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
27560 instead of s390_compare_emitted.
27561 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
27562 instead of s390_compare_emitted.
27563 * config/s390/s390.md (cmpcc): New.
27564 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
27565 CC_REGNUM, do not pretend it's set.
27566 (sync_compare_and_swap_cc*): Delete.
27567 * config/s390/predicates.md (cc_reg_operand): New.
27568
27569 * expr.c (sync_compare_and_swap_cc): Delete.
27570 * optabs.h (sync_compare_and_swap_cc): Delete.
27571 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
27572 is being used with can_compare_p.
27573 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
27574 (find_cc_set): New.
27575 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
27576 look for a MODE_CC set instead. Use emit_store_flag.
27577 (expand_compare_and_swap_loop): Likewise, with some additional
27578 complication to avoid a force_reg when useless. Use
27579 emit_cmp_and_jump_insns.
27580 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
27581 * doc/md.texi (sync_compare_and_swap_cc): Merge with
27582 sync_compare_and_swap documentation.
4a77c72b 27583
0c0efb33
JH
275842009-04-09 Jan Hubicka <jh@suse.cz>
27585
27586 * except.c (find_prev_try): Break out from ....
27587 (duplicate_eh_regions): ... here; properly update prev_try pointers
27588 when duplication part of tree.
27589 (dump_eh_tree): Improve dumping.
27590 (verify_eh_region): New.
27591 (verify_eh_tree): Use it.
27592
22a65a54
RG
275932009-04-06 Richard Guenther <rguenther@suse.de>
27594
27595 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
27596 &ARRAY addresses by adjusting their types and prepending
27597 a conversion.
27598 * tree-cfg.c (verify_gimple_assign_single): Verify that
27599 addresses are correct.
27600
f76968e6
RG
276012009-04-09 Richard Guenther <rguenther@suse.de>
27602
27603 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
27604 indices into an array reference if possible.
27605 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
27606 Fold POINTER_PLUS_EXPR statements with invariant address.
27607
c90c5fb5
AM
276082009-04-09 Alan Modra <amodra@bigpond.net.au>
27609
27610 PR target/39634
27611 * config.gcc (powerpc64-*-linux*): Always build biarch.
27612
17cede2e
JM
276132009-04-09 Joseph Myers <joseph@codesourcery.com>
27614
27615 PR c/39613
27616 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
27617 it and pedwarn if this results in an INTEGER_CST.
27618
a3337ea2
KG
276192009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
27620
27621 * doc/install.texi: Update minimum GMP version. Remove obsolete
27622 text in MPFR section.
27623
ce9ba79b
JJ
276242009-04-08 Jakub Jelinek <jakub@redhat.com>
27625
27626 * dwarf2out.c (class_scope_p): New static inline.
27627 (class_or_namespace_scope_p): Use it.
27628 (gen_variable_die): Use DW_TAG_member tag for static data member
27629 declarations instead of DW_TAG_variable.
27630
4f0ae266
JJ
27631 PR middle-end/39573
27632 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
27633 variables.
27634
d27f0ddc
RG
276352009-04-08 Richard Guenther <rguenther@suse.de>
27636
27637 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
27638 valueize random data.
27639
557cc596
DE
276402009-04-08 David Edelsohn <edelsohn@gnu.org>
27641
27642 * config.gcc (aix tm_file): Add aix-stdint.h.
27643 (aix tm clause use_gcc_stdint): Set to wrap.
27644 * config/rs6000/aix-stdint.h: New file.
2ba9daa7 27645
75ccc1e7
RG
276462009-04-08 Richard Guenther <rguenther@suse.de>
27647
27648 PR middle-end/36291
27649 * tree-dfa.c (add_referenced_var): Do not recurse into
27650 global initializers.
27651 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
27652 exposed variables.
27653 (fold_const_aggregate_ref): Likewise.
27654
c6963675
PB
276552009-04-08 Paolo Bonzini <bonzini@gnu.org>
27656
6c44cf79
L
27657 * recog.c (ordered_comparison_operator): New.
27658 * gensupport.c (std_preds): Add it.
c6963675
PB
27659 * doc/md.texi (Machine-Independent Predicates): Document it.
27660
6d07ad98
JH
276612009-04-08 Jan Hubicka <jh@suse.cz>
27662
27663 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
27664 * function.h (rtl_eh): Remove exception_handler_label_map.
27665 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
27666 remove_exception_handler_label, for_each_eh_label_1): Remove.
27667 (rtl_remove_unreachable_regions): Remove.
27668 (convert_from_eh_region_ranges): Do not remove unreachable regions.
27669 (find_exception_handler_labels): Don't build the hashtable.
27670 (maybe_remove_eh_handler): Remove.
27671 (for_each_eh_label): Rewrite to walk the tree.
27672 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
27673 * except.h (maybe_remove_eh_handler): Remove.
27674 * passes.c (init_optimization_passes): Schedule second EH cleanup
27675 before out-of-ssa.
27676 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
27677 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
27678
7ddf71e3
PB
276792009-04-08 Paolo Bonzini <bonzini@gnu.org>
27680
27681 * genoutput.c (validate_optab_operands): New.
27682 (gen_insn, gen_expand): Call it.
27683
27684 * genflags.c (gen_insn): Detect misused iterators.
27685 (main): Pass line_no to gen_insn, exit with status 1 on error.
27686
27687 * genextract.c (line_no): Make global.
27688 (VEC_safe_set_locstr): Change assertion to error message.
27689 (main): Exit with status 1 on error.
27690
4d84fe7c
JM
276912009-04-08 Joseph Myers <joseph@codesourcery.com>
27692
27693 PR c/39614
27694 PR c/39673
27695 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
27696 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
27697 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
27698 * c-convert.c (convert): Do not call fold on results of conversion
27699 functions when the result is a C_MAYBE_CONST_EXPR.
27700 * c-parser.c (c_parser_postfix_expression): Do not fold condition
27701 of __builtin_choose_expr.
27702 * c-typeck.c (remove_c_maybe_const_expr): New.
27703 (build_unary_op, build_conditional_expr, build_compound_expr,
27704 build_binary_op, c_objc_common_truthvalue_conversion): Call
27705 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
27706 integer operands.
27707
60839f5d 277082009-04-08 Bingfeng Mei <bmei@broadcom.com>
d1d1c602 27709
2ba9daa7 27710 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6c44cf79 27711 CODE to produce a new one. Add a prototype to use fold_convert_const
d1d1c602 27712
8e481a2c
DS
277132009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
27714
27715 PR bootstrap/39660
27716 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
27717 mix declarations and code.
27718
ee618c17
BE
277192009-04-08 Ben Elliston <bje@au.ibm.com>
27720
27721 * gcc.c: Replace `CC' with `GCC' throughout.
27722
f2a758a2
L
277232009-04-07 H.J. Lu <hongjiu.lu@intel.com>
27724
27725 * doc/invoke.texi: Document Atom support.
27726
6ea2bd47
JM
277272009-04-07 Jason Merrill <jason@redhat.com>
27728
27729 PR c++/25185
27730 * c-common.h, c-common.c: Add flag_pretty_templates.
27731 * c-opts.c (c_common_handle_option): Set it.
27732 * c.opt: Add -fno-pretty-templates.
27733 * doc/invoke.texi (C++ Dialect Options): Likewise.
27734
fcb82ab0
UB
277352009-04-07 Uros Bizjak <ubizjak@gmail.com>
27736
27737 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
27738 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
27739 (ia64_expand_builtin): Likewise.
27740
dc5e7298
MJ
277412009-04-07 Martin Jambor <mjambor@suse.cz>
27742
27743 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
27744 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
27745 ADDR_EXPRS are include too.
27746
0609b355
RG
277472009-04-07 Richard Guenther <rguenther@suse.de>
27748
27749 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
27750 decls are only used if passes as parameters or if they are
27751 local statics and the call is not to a builtin.
27752 (call_may_clobber_ref_p_1): Likewise.
27753
d8e535fa
PB
277542009-04-07 Paolo Bonzini <bonzini@gnu.org>
27755
27756 * expr.c (do_store_flag): Remove last argument. Simplify code
27757 to avoid duplication of tests already done by can_compare_p.
27758 (expand_expr_real_1): Adjust caller.
27759
c3c64f50
PB
277602009-04-07 Paolo Bonzini <bonzini@gnu.org>
27761
fcb82ab0
UB
27762 * optabs.c (can_compare_p): Test the predicate of a
27763 cbranch and cstore pattern.
c3c64f50 27764
9a53bc17
PB
277652009-04-07 Paolo Bonzini <bonzini@gnu.org>
27766
fcb82ab0
UB
27767 * expr.c (convert_move): Use emit_store_flag instead of
27768 "emulating" it.
9a53bc17 27769
67b8f1c1
PB
277702009-04-07 Paolo Bonzini <bonzini@gnu.org>
27771
fcb82ab0
UB
27772 * config/i386/i386.c (ix86_compare_emitted): Remove.
27773 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
27774 ix86_compare_op0 like ix86_compare_emitted used to be handled.
27775 * config/i386/i386.h (ix86_compare_emitted): Remove.
27776 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
27777 instead of ix86_compare_emitted.
27778 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
67b8f1c1 27779
44509946
AS
277802009-04-07 Andrew Stubbs <ams@codesourcery.com>
27781
27782 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
27783 Add t-sysroot-suffix to tmake_file.
27784 * config/print-sysroot-suffix.sh: New file.
27785 * config/t-sysroot-suffix: New file.
27786
ca22d882
BE
277872009-04-07 Ben Elliston <bje@au.ibm.com>
27788
27789 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
27790 as the latter produces a warning when the target does not support
27791 infinity.
27792
95aac11b
BE
277932009-04-07 Ben Elliston <bje@au.ibm.com>
27794
27795 * dfp.c: Replace type punning assignments with memcpy throughout.
27796 * Makefile.in (dfp.o-warn): Remove.
2ba9daa7 27797
633dd061
AM
277982009-04-07 Alan Modra <amodra@bigpond.net.au>
27799
27800 PR target/39634
27801 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
27802 Include soft-fp/t-softfp after rs6000/t-linux64.
27803
fe0a25ec
EB
278042009-04-06 Eric Botcazou <ebotcazou@adacore.com>
27805
27806 * stor-layout.c (set_sizetype): Use the full precision of their
27807 machine mode for bitsize types.
27808
0c011bc3
L
278092009-04-06 H.J. Lu <hongjiu.lu@intel.com>
27810
27811 * config/i386/i386.md: Revert 2 accidental checkins.
27812
b6837b94 278132009-04-06 Joey Ye <joey.ye@intel.com>
60839f5d 27814 Xuepeng Guo <xuepeng.guo@intel.com>
b6837b94
JY
27815 H.J. Lu <hongjiu.lu@intel.com>
27816
27817 Atom pipeline model, tuning and insn selection.
27818 * config.gcc (atom): Add atom config options and target.
27819
27820 * config/i386/atom.md: New.
27821
27822 * config/i386/i386.c (atom_cost): New cost.
27823 (m_ATOM): New macro flag.
27824 (initial_ix86_tune_features): Set m_ATOM.
27825 (x86_accumulate_outgoing_args): Likewise.
27826 (x86_arch_always_fancy_math_387): Likewise.
27827 (processor_target): Add Atom cost.
27828 (cpu_names): Add Atom cpu name.
27829 (override_options): Set Atom ISA.
27830 (ix86_issue_rate): New case PROCESSOR_ATOM.
27831 (ix86_adjust_cost): Likewise.
27832
27833 * config/i386/i386.h (TARGET_ATOM): New target macro.
27834 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
27835 (TARGET_OPT_AGU): New target option.
27836 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
27837 (processor_type): Add PROCESSOR_ATOM.
27838
27839 * config/i386/i386.md (cpu): Add new value "atom".
27840 (use_carry, movu): New attr.
27841 (atom.md): Include atom.md.
27842 (adddi3_carry_rex64): Set attr "use_carry".
27843 (addqi3_carry): Likewise.
27844 (addhi3_carry): Likewise.
27845 (addsi3_carry): Likewise.
27846 (*addsi3_carry_zext): Likewise.
27847 (subdi3_carry_rex64): Likewise.
27848 (subqi3_carry): Likewise.
27849 (subhi3_carry): Likewise.
27850 (subsi3_carry): Likewise.
27851 (x86_movdicc_0_m1_rex64): Likewise.
27852 (*x86_movdicc_0_m1_se): Likewise.
27853 (x86_movsicc_0_m1): Likewise.
27854 (*x86_movsicc_0_m1_se): Likewise.
27855 (*adddi_1_rex64): Emit add insn as much as possible.
27856 (*addsi_1): Likewise.
27857 (return_internal): Set atom_unit.
27858 (return_internal_long): Likewise.
27859 (return_pop_internal): Likewise.
27860 (*rcpsf2_sse): Set atom_sse_attr attr.
27861 (*qrt<mode>2_sse): Likewise.
27862 (*prefetch_sse): Likewise.
27863
27864 * config/i386/i386-c.c (ix86_target_macros_internal): New case
27865 PROCESSOR_ATOM.
27866 (ix86_target_macros_internal): Likewise.
27867
27868 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
27869 (*prefetch_sse_rex): Likewise.
27870 (sse_rcpv4sf2): Likewise.
27871 (sse_vmrcpv4sf2): Likewise.
27872 (sse_sqrtv4sf2): Likewise.
27873 (<sse>_vmsqrt<mode>2): Likewise.
27874 (sse_ldmxcsr): Likewise.
27875 (sse_stmxcsr): Likewise.
27876 (*sse_sfence): Likewise.
27877 (sse2_clflush): Likewise.
27878 (*sse2_mfence): Likewise.
27879 (*sse2_lfence): Likewise.
27880 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
27881 (<sse>_movup<ssemodesuffixf2c>): Likewise.
27882 (avx_movdqu<avxmodesuffix>): Likewise.
27883 (avx_lddqu<avxmodesuffix>): Likewise.
27884 (sse2_movntv2di): Change attr "type" to "ssemov".
27885 (sse2_movntsi): Likewise.
27886 (rsqrtv8sf2): Change attr "type" to "sseadd".
27887 (sse3_addsubv2df3): Set attr "atom_unit".
27888 (sse3_h<plusminus_insn>v4sf3): Likewise.
27889 (*sse2_pmaddwd): Likewise.
27890 (*vec_extractv2di_1_rex64): Likewise.
27891 (*vec_extractv2di_1_avx): Likewise.
27892 (sse2_psadbw): Likewise.
27893 (ssse3_phaddwv8hi3): Likewise.
27894 (ssse3_phaddwv4hi3): Likewise.
27895 (ssse3_phadddv4si3): Likewise.
27896 (ssse3_phadddv2si3): Likewise.
27897 (ssse3_phaddswv8hi3): Likewise.
27898 (ssse3_phaddswv4hi3): Likewise.
27899 (ssse3_phsubwv8hi3): Likewise.
27900 (ssse3_phsubwv4hi3): Likewise.
27901 (ssse3_phsubdv4si3): Likewise.
27902 (ssse3_phsubdv2si3): Likewise.
27903 (ssse3_phsubswv8hi3): Likewise.
27904 (ssse3_phsubswv4hi3): Likewise.
27905 (ssse3_pmaddubsw128): Likewise.
27906 (sse3_pmaddubsw: Likewise.
27907 (ssse3_palignrti): Likewise.
27908 (ssse3_palignrdi): Likewise.
27909
53e350d3
GP
279102009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
27911
27912 * doc/install.texi (Specific): Fix two cross-references to MinGW.
27913
439ef907
RG
279142009-04-06 Richard Guenther <rguenther@suse.de>
27915
27916 PR tree-optimization/28868
27917 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
27918 of which PHI results we inserted.
27919 (insert_into_preds_of_block): Record inserted PHIs.
27920 (eliminate): Eliminate redundant PHI nodes.
27921 (init_pre): Init inserted_phi_names.
27922
4bad83f5
RG
279232009-04-06 Richard Guenther <rguenther@suse.de>
27924
27925 PR tree-optimization/39643
27926 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
27927 IMAGPART_EXPRs of complex constants.
27928 (execute_fold_all_builtins): If we folded a call queue
27929 TODO_update_address_taken.
27930
570c4247
JH
279312009-04-06 Jan Hubicka <jh@suse.cz>
27932
27933 PR middle-end/39659
27934 * except.c (remove_unreachable_regions): Propagate may_contain_throw
27935 flag.
27936
a460d7a1
AS
279372009-04-06 Andrew Stubbs <ams@codesourcery.com>
27938
27939 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
27940 delay slot.
27941 (ic_invalidate_array): Likewise.
27942
60839f5d 279432009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
6bdf8c2e
HS
27944
27945 * calls.c (emit_library_call_value_1): Fix a problem with parameter
27946 alignment for library calls.
27947
7d253f6e
DS
279482009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
27949
27950 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
27951 (mingw32 tm clause use_gcc_stdint): Set to wrap.
27952 * config/i386/mingw-stdint.h: New file.
27953
941c3614
RB
279542009-04-05 Richard Guenther <rguenther@suse.de>
27955
27956 PR tree-optimization/39648
27957 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
27958 our &A vs. &A[0] IL deficiencies.
27959
12633413
JH
279602009-04-04 Jan Hubicka <jh@suse.cz>
27961
941c3614
RB
27962 * except.c (sjlj_find_directly_reachable_regions): Be ready for
27963 removed toplevel regions.
12633413
JH
27964 (sjlj_mark_call_sites): Likewise.
27965
bb2aaded
DK
279662009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
27967
27968 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
27969 (cygwin tm clause use_gcc_stdint): Set to wrap.
27970 * config/i386/cygwin-stdint.h: New file.
27971
86290011
RG
279722009-04-04 Richard Guenther <rguenther@suse.de>
27973
27974 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
27975 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
27976 single-argument PHIs if we are in loop-closed SSA form.
27977 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
27978 for the pre-condition.
27979 (slpeel_tree_peel_loop_to_edge): Likewise.
27980 (vect_build_loop_niters): Take an optional sequence to append stmts.
27981 (vect_generate_tmps_on_preheader): Likewise.
27982 (vect_do_peeling_for_loop_bound): Take extra guards for the
27983 pre-condition.
27984 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
27985 the cost model check.
27986 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
7a715bba 27987 guards if we are going to peel. Do not apply versioning in that case.
86290011
RG
27988 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
27989 (vect_do_peeling_for_loop_bound): Likewise.
27990 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
27991 loop bound only record extra pre-conditions, do not apply loop
27992 versioning.
27993
5eeeac64
RG
279942009-04-04 Richard Guenther <rguenther@suse.de>
27995
27996 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
27997 renaming code.
27998
1ff7d06b
JH
279992009-04-04 Jan Hubicka <jh@suse.cz>
28000
28001 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
28002 last_basic_block for size of bb->index indexed array.
28003 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
28004 compute_out, link_btr_uses, build_btr_def_use_webs,
28005 build_btr_def_use_webs, migrate_btr_defs): Likewise.
28006
14925fcd
JH
280072009-04-04 Jan Hubicka <jh@suse.cz>
28008
28009 * except.c (remove_eh_handler_and_replace): Break out from ...
28010 (remove_eh_handler): ... here.
28011 (bring_to_root): New function.
28012 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
28013 handled ones, bring others to root of tree.
28014
4e6d1743
JH
280152009-04-04 Jan Hubicka <jh@suse.cz>
28016
4cb735f7
JH
28017 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
28018 (all_phis_safe_to_merge): New function.
28019 (update_info): New structure.
28020 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
28021 (cleanup_empty_eh): Update SSA if possible.
4e6d1743 28022
c6803d43
RG
280232009-04-04 Richard Guenther <rguenther@suse.de>
28024
28025 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
28026 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
28027 (append_vuse): Likewise.
28028
54f5943c
JJ
280292009-04-04 Jakub Jelinek <jakub@redhat.com>
28030
28031 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
28032 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
28033 instead of REG_UNSAVED for DW_CFA_undefined.
28034 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
28035 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
28036 outermost frame.
28037
aad2bccb
RE
280382009-04-04 Richard Earnshaw <rearnsha@arm.com>
28039
28040 PR target/39501
28041 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
aad2bccb 28042
aa7069aa
RG
280432009-04-04 Richard Guenther <rguenther@suse.de>
28044
28045 PR tree-optimization/8781
28046 PR tree-optimization/37892
28047 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
28048 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
28049 (valueize_refs): Call it for *& valueizations.
28050 (shared_reference_ops_from_ref): Rename to ...
28051 (valueize_shared_reference_ops_from_ref): ... this and valueize.
28052 (shared_reference_ops_from_call): Rename to ...
28053 (valueize_shared_reference_ops_from_call): ... this and valueize.
28054 (vn_reference_lookup): Update.
28055 (visit_reference_op_call): Likewise.
28056 * tree-ssa-pre.c (phi_translate_1): Fold *&.
28057 (eliminate): Value-replace the call address in call statements.
28058
cd15ad3e
RG
280592009-04-04 Richard Guenther <rguenther@suse.de>
28060
28061 PR tree-optimization/39636
28062 * tree-ssa-forwprop.c
28063 (forward_propagate_addr_into_variable_array_index): Check for
28064 GIMPLE_ASSIGN before accessing the rhs code.
28065
462f3262
JM
280662009-04-03 Jason Merrill <jason@redhat.com>
28067
28068 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
28069
6adb807e
SE
280702009-04-03 Steve Ellcey <sje@cup.hp.com>
28071
28072 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
28073 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
28074 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
28075 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
28076 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
28077 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
28078 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
28079 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
28080 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
28081 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
28082 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
28083 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
28084 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
28085 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
28086 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
28087 Use fr_reg_or_fp01_operand instead of fr_register_operand
28088
28089 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
28090 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
28091 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
28092
174b3107
VM
280932009-04-03 Vladimir Makarov <vmakarov@redhat.com>
28094
b844e5d8
L
28095 PR rtl-optimization/39607
28096 PR rtl-optimization/39631
7a715bba
UB
28097
28098 Revert:
2ba9daa7 28099
174b3107
VM
28100 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
28101 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
28102 instead of DF_LR_OUT.
28103 * ira-lives.c (process_bb_node_lives): Ditto.
28104 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
28105 instead of DF_LR_{OUT,IN}.
28106 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
28107 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
28108
535b544a
SB
281092009-04-03 Steven Bosscher <steven@gcc.gnu.org>
28110
28111 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
28112 (execute_lower_omp): Always run but take the short way out if -fopenmp
28113 is not given.
28114 (gate_lower_omp): Remove, forcing the pass manager to always run the
28115 pass and always set PROP_gimple_lomp.
28116 (pass_lower_omp): Remove gate function.
28117 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
28118 PROP_trees. Instead, require it.
28119 * ipa-cp.c (pass_ipa_cp): Likewise.
28120 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
28121 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
28122 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
28123 and PROP_gimple_leh.
28124
5006671f
RG
281252009-04-03 Richard Guenther <rguenther@suse.de>
28126
28127 PR middle-end/13146
28128 PR tree-optimization/23940
28129 PR tree-optimization/33237
28130 PR middle-end/33974
28131 PR middle-end/34093
28132 PR tree-optimization/36201
28133 PR tree-optimization/36230
28134 PR tree-optimization/38049
28135 PR tree-optimization/38207
28136 PR tree-optimization/38230
28137 PR tree-optimization/38301
28138 PR tree-optimization/38585
28139 PR middle-end/38895
28140 PR tree-optimization/38985
28141 PR tree-optimization/39299
28142 * tree-ssa-structalias.h: Remove.
28143 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
28144 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
28145 (struct vuse_element_d): Remove.
28146 (struct vuse_vec_d): Likewise.
28147 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
28148 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
28149 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
28150 VUSE_ELEMENT_VAR): Likewise.
28151 (struct voptype_d): Likewise.
28152 (NUM_VOP_FREE_BUCKETS): Likewise.
28153 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
28154 (struct stmt_operands_d): Remove.
28155 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
28156 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
28157 VDEF_NUM, VDEF_VECT): Likewise.
28158 (copy_virtual_operands): Remove.
28159 (operand_build_cmp): Likewise.
28160 (create_ssa_artificial_load_stmt): Likewise.
28161 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
28162 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
28163 vuse_index and mayuse_index members. Pack and move done and iter_type
28164 members to the front.
28165 (SSA_OP_VMAYUSE): Remove.
28166 (SSA_OP_VIRTUAL_USES): Adjust.
28167 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
28168 (unlink_stmt_vdef): Declare.
28169 (add_to_addressable_set): Remove.
28170 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
28171 (vrp_visit_stmt): Likewise.
28172 * doc/tree-ssa.texi (Alias analysis): Update.
28173 * doc/invoke.texi (max-aliased-vops): Remove docs.
28174 (avg-aliased-vops): Likewise.
28175 * tree-into-ssa.c (syms_to_rename): Remove.
28176 (need_to_update_vops_p): Likewise.
28177 (need_to_initialize_update_ssa_p): Rename to ...
28178 (update_ssa_initialized_fn): ... this. Track function we are
28179 initialized for.
28180 (symbol_marked_for_renaming): Simplify.
28181 (add_new_name_mapping): Do not set need_to_update_vops_p.
28182 (dump_currdefs): Use SYMS_TO_RENAME.
28183 (rewrite_update_stmt): Always walk all uses/defs.
28184 (dump_update_ssa): Adjust.
28185 (init_update_ssa): Take function argument. Track what we are
28186 initialized for.
28187 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
28188 (create_new_def_for): Initialize for cfun, assert we are initialized
28189 for cfun.
28190 (mark_sym_for_renaming): Simplify.
28191 (mark_set_for_renaming): Do not initialize update-ssa.
28192 (need_ssa_update_p): Simplify. Take function argument.
28193 (name_mappings_registered_p): Assert we ask for the correct function.
28194 (name_registered_for_update_p): Likewise.
28195 (ssa_names_to_replace): Likewise.
28196 (release_ssa_name_after_update_ssa): Likewise.
28197 (update_ssa): Likewise. Use SYMS_TO_RENAME.
28198 (dump_decl_set): Do not print a newline.
28199 (debug_decl_set): Do it here.
28200 (dump_update_ssa): And here.
28201 * tree-ssa-loop-im.c (move_computations): Adjust.
28202 (movement_possibility): Likewise.
28203 (determine_max_movement): Likewise.
28204 (gather_mem_refs_stmt): Likewise.
28205 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
28206 or NAME_MEMORY_TAG.
28207 * tree-complex.c (update_all_vops): Remove.
28208 (expand_complex_move): Adjust.
28209 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
28210 Simplify test for memory referencing statement. Exclude
28211 non-invariant ADDR_EXPRs.
28212 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
28213 * tree-loop-distribution.c (generate_memset_zero): Adjust.
28214 (rdg_flag_uses): Likewise.
28215 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
28216 related code.
28217 (tree_optimize_tail_calls_1): Also split the
28218 edge from the entry block if we have degenerate PHI nodes in
28219 the first basic block.
28220 * tree.c (init_ttree): Remove memory-tag related code.
28221 (tree_code_size): Likewise.
28222 (tree_node_structure): Likewise.
28223 (build7_stat): Re-write to be build6_stat.
28224 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
28225 (SSA_VAR_P): Adjust.
28226 (struct tree_memory_tag): Remove.
28227 (struct tree_memory_partition_tag): Likewise.
28228 (union tree_node): Adjust.
28229 (build7): Re-write to be build6.
28230 * tree-pass.h (pass_reset_cc_flags): Remove.
28231 (TODO_update_address_taken): New flag.
28232 (pass_simple_dse): Remove.
28233 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
28234 * params.h (MAX_ALIASED_VOPS): Remove.
28235 (AVG_ALIASED_VOPS): Likewise.
28236 * omp-low.c (expand_omp_taskreg): Update SSA form.
28237 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
28238 aliases the lhs in a copy stmt.
28239 * tree-ssa-dse.c (struct address_walk_data): Remove.
28240 (memory_ssa_name_same): Likewise.
28241 (memory_address_same): Likewise.
28242 (get_kill_of_stmt_lhs): Likewise.
28243 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
28244 unused stores. Look through PHI nodes into post-dominated regions.
28245 (dse_optimize_stmt): Simplify. Properly remove stores.
28246 (tree_ssa_dse): Compute dominators.
28247 (execute_simple_dse): Remove.
28248 (pass_simple_dse): Likewise.
28249 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
28250 gimple_loaded_syms and gimple_stored_syms computation.
28251 * toplev.c (dump_memory_report): Dump alias and pta stats.
28252 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
28253 (vn_reference_eq): Likewise.
28254 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
28255 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
28256 valueize_vuses): Remove.
28257 (get_def_ref_stmt_vuses): Simplify. Rename to ...
28258 (get_def_ref_stmt_vuse): ... this.
28259 (vn_reference_lookup_2): New function.
28260 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
28261 walking equivalent vuses. Simplify.
28262 (vn_reference_lookup): Likewise.
28263 (vn_reference_insert): Likewise.
28264 (vn_reference_insert_pieces): Likewise.
28265 (visit_reference_op_call): Simplify.
28266 (visit_reference_op_load): Likewise.
28267 (visit_reference_op_store): Likewise.
28268 (init_scc_vn): Remove shared_lookup_vuses initialization.
28269 (free_scc_vn): Remove shared_lookup_vuses freeing.
28270 (sort_vuses, sort_vuses_heap): Remove.
28271 (get_ref_from_reference_ops): Export.
28272 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
28273 vector with single vuse pointer.
28274 (vn_reference_lookup_pieces, vn_reference_lookup,
28275 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
28276 (shared_vuses_from_stmt): Remove.
28277 (get_ref_from_reference_ops): Declare.
28278 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
28279 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
28280 memory-tag related code.
28281 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
28282 (likely_value): Add comment, skip static-chain of call statements.
28283 (surely_varying_stmt_p): Adjust.
28284 (gimplify_and_update_call_from_tree): Likewise.
28285 (execute_fold_all_builtins): Do not rebuild alias info.
28286 (gimplify_and_update_call_from_tree): Properly update VOPs.
28287 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
28288 (copy_ref_info): Remove memory-tag related code.
28289 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
28290 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
28291 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
28292 computation.
28293 * tree-ssa-dom.c (gimple_p): Remove typedef.
28294 (eliminate_redundant_computations): Adjust.
28295 (record_equivalences_from_stmt): Likewise.
28296 (avail_expr_hash): Likewise.
28297 (avail_expr_eq): Likewise.
7a715bba 28298 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
5006671f
RG
28299 (stmt_makes_single_load): Likewise.
28300 (stmt_makes_single_store): Likewise.
28301 * tree-ssa-alias.c: Rewrite completely.
28302 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
28303 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
28304 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
28305 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
28306 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
28307 Remove public functions.
28308 (pass_reset_cc_flags): Remove.
28309 (pass_build_alias): Move ...
28310 * tree-ssa-structalias.c (pass_build_alias): ... here.
28311 * tree-ssa-alias.c (may_be_aliased): Move ...
28312 * tree-flow-inline.h (may_be_aliased): ... here.
28313 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
28314 count_uses_and_derefs): Move ...
28315 * gimple.c: ... here.
28316 * gimple.h (count_uses_and_derefs): Declare.
28317 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
28318 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
28319 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
28320 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
28321 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
28322 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
28323 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
28324 New functions.
28325 * tree-dfa.c (refs_may_alias_p): Move ...
28326 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
28327 * tree-ssa-alias.h: New file.
28328 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
28329 (statement_sink_location): Likewise.
28330 * opts.c (decode_options): Do not adjust max-aliased-vops or
28331 avg-aliased-vops values.
28332 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
28333 (TV_CALL_CLOBBER): Likewise.
28334 (TV_FLOW_SENSITIVE): Likewise.
28335 (TV_FLOW_INSENSITIVE): Likewise.
28336 (TV_MEMORY_PARTITIONING): Likewise.
28337 (TV_ALIAS_STMT_WALK): New timevar.
28338 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
28339 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
28340 (get_address_description): Remove memory-tag related code.
28341 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
28342 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
28343 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
28344 and immediate uses in statements. Document.
28345 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
28346 (dump_symbols): Remove.
28347 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
28348 * alias.c (get_deref_alias_set): New function split out from ...
28349 (get_alias_set): ... here.
28350 * alias.h (get_deref_alias_set): Declare.
28351 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
28352 type parameter. Remove restrict pointer handling. Create a
28353 ref-all pointer in case type-based alias sets do not conflict.
28354 (vect_analyze_data_refs): Remove SMT related code.
28355 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
28356 (vectorizable_load): Likewise.
28357 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
28358 (DR_SYMBOL_TAG, DR_VOPS): Remove.
28359 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
28360 Ignore vops and SMTs.
28361 (dr_analyze_alias): Likewise..
28362 (free_data_ref): Likewise.
28363 (create_data_ref): Likewise.
28364 (analyze_all_data_dependences): Likewise.
28365 (get_references_in_stmt): Adjust.
28366 * tree-flow-inline.h (gimple_aliases_computed_p,
28367 gimple_addressable_vars, gimple_call_clobbered_vars,
28368 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
28369 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
28370 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
28371 gimple_mem_ref_stats): Remove.
28372 (gimple_vop): New function.
28373 (op_iter_next_use): Remove vuses and mayuses cases.
28374 (op_iter_next_def): Remove vdefs case.
28375 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
28376 (clear_and_done_ssa_iter): Do not set removed fields.
28377 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
28378 Assert we are not iterating over vuses or vdefs if not also
28379 iterating over uses or defs.
28380 (op_iter_init_use): Likewise.
28381 (op_iter_init_def): Likewise.
28382 (op_iter_next_vdef): Remove.
28383 (op_iter_next_mustdef): Likewise.
28384 (op_iter_init_vdef): Likewise.
28385 (compare_ssa_operands_equal): Likewise.
28386 (link_use_stmts_after): Handle vuse operand.
28387 (is_call_used): Use is_call_clobbered.
28388 (is_call_clobbered): Global variables are always call clobbered,
28389 query the call-clobbers bitmap.
28390 (mark_call_clobbered): Ignore global variables.
28391 (clear_call_clobbered): Likewise.
28392 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
28393 virtual operands sanity check.
28394 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
28395 Remove.
28396 (TARGET_MEM_REF): Remove TMR_TAG operand.
28397 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
28398 Remove call-clobber related code.
28399 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
28400 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
28401 partitions or escape reason.
28402 (get_single_def_stmt, get_single_def_stmt_from_phi,
28403 get_single_def_stmt_with_phi): Remove.
28404 (dump_referenced_vars): Tidy.
28405 (get_ref_base_and_extent): Allow bare decls.
28406 (collect_dfa_stats): Adjust.
28407 * graphite.c (rename_variables_in_stmt): Adjust.
28408 (graphite_copy_stmts_from_block): Likewise.
28409 (translate_clast): Likewise.
28410 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
28411 (EXPR_DIES): New.
28412 (translate_vuse_through_block): Use the oracle.
28413 (phi_translate_1): Adjust.
28414 (value_dies_in_block_x): Use the oracle. Cache the outcome
28415 in EXPR_DIES.
28416 (valid_in_sets): Check if the VUSE for
28417 a REFERENCE is available.
28418 (eliminate): Do not remove stmts during elimination,
28419 instead queue and remove them afterwards.
28420 (do_pre): Do not rebuild alias info.
28421 (pass_pre): Run TODO_rebuild_alias before PRE.
28422 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
28423 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
28424 (mark_all_v_defs_stmt): Remove.
28425 (mark_all_v_defs_seq): Adjust.
28426 (sra_replace): Likewise.
28427 (scalarize_use): Likewise.
28428 (scalarize_copy): Likewise.
28429 (scalarize_init): Likewise.
28430 (scalarize_ldst): Likewise.
28431 (todoflags): Remove.
28432 (tree_sra): Do not rebuild alias info.
28433 (tree_sra_early): Adjust.
28434 (pass_sra): Run TODO_update_address_taken before SRA.
28435 * tree-predcom.c (set_alias_info): Remove.
28436 (prepare_initializers_chain): Do not call it.
28437 (mark_virtual_ops_for_renaming): Adjust.
28438 (mark_virtual_ops_for_renaming_list): Remove.
28439 (initialize_root_vars): Adjust.
28440 (initialize_root_vars_lm): Likewise.
28441 (prepare_initializers_chain): Likewise.
28442 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
28443 (may_propagate_copy_into_stmt): Likewise.
28444 (merge_alias_info): Do nothing for now.
28445 (propagate_tree_value_into_stmt): Adjust.
28446 (stmt_may_generate_copy): Likewise.
28447 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
28448 not mark symbols for renaming.
28449 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
28450 with the same statement, make sure to update the new pointed-to one.
28451 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
28452 call statements, do not mark symbols for renaming.
28453 (mark_operand_necessary): Dump something.
28454 (ref_may_be_aliased): New function.
28455 (mark_aliased_reaching_defs_necessary_1): New helper function.
28456 (mark_aliased_reaching_defs_necessary): Likewise.
28457 (mark_all_reaching_defs_necessary_1): Likewise.
28458 (mark_all_reaching_defs_necessary): Likewise.
28459 (propagate_necessity): Do not process virtual PHIs. For
28460 non-aliased loads mark all reaching definitions as necessary.
28461 For aliased loads and stores mark the immediate dominating
28462 aliased clobbers as necessary.
28463 (visited): New global static.
28464 (perform_tree_ssa_dce): Free visited bitmap after propagating
28465 necessity.
28466 (remove_dead_phis): Perform simple dead virtual PHI removal.
28467 (remove_dead_stmt): Properly unlink virtual operands when
28468 removing stores.
28469 (eliminate_unnecessary_stmts): Schedule PHI removal after
28470 stmt removal.
28471 * tree-ssa-ter.c (is_replaceable_p): Adjust.
28472 (process_replaceable): Likewise.
28473 (find_replaceable_in_bb): Likewise.
28474 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
28475 based on the single gimple vop.
28476 (verify_flow_insensitive_alias_info): Remove.
28477 (verify_flow_sensitive_alias_info): Likewise.
28478 (verify_call_clobbering): Likewise.
28479 (verify_memory_partitions): Likewise.
28480 (verify_alias_info): Likewise.
28481 (verify_ssa): Adjust..
28482 (execute_update_addresses_taken): Export. Update SSA
28483 manually. Optimize only when optimizing. Use a local bitmap.
28484 (pass_update_address_taken): Remove TODO_update_ssa, add
28485 TODO_dump_func.
28486 (pass_update_address_taken): Just use TODO_update_address_taken.
28487 (init_tree_ssa): Do not initialize addressable_vars.
28488 (verify_ssa): Verify new VUSE / VDEF properties.
28489 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
28490 Do not call verify_alias_info.
28491 (delete_tree_ssa): Clear the VUSE, VDEF operands.
28492 Do not free the loaded and stored syms bitmaps. Reset the escaped
28493 and callused solutions. Do not free addressable_vars.
28494 Remove memory-tag related code.
28495 (warn_uninitialized_var): Aliases are always available.
28496 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
28497 * lambda-code.c (can_put_in_inner_loop): Adjust.
28498 (can_put_after_inner_loop): Likewise.
28499 (perfect_nestify): Likewise.
28500 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
28501 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
28502 (vectorizable_conversion): Do not mark symbols for renaming.
28503 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
28504 (expand_call_inline): Unlink the calls virtual operands before
28505 replacing it.
28506 (tree_function_versioning): Do not call update_ssa if we are not
28507 updating clones. Simplify.
28508 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
28509 (propagate_with_phi): Likewise..
28510 * tree-outof-ssa.c (create_temp): Remove memory tag and call
28511 clobber code. Assert we are not aliased or global.
28512 * tree-flow.h: Include tree-ssa-alias.h
28513 (enum escape_type): Remove.
28514 (struct mem_sym_stats_d): Likewise.
28515 (struct mem_ref_stats_d): Likewise.
28516 (struct gimple_df): Add vop member. Remove global_var,
28517 call_clobbered_vars, call_used_vars, addressable_vars,
28518 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
28519 escaped and callused members.
28520 (struct ptr_info_def): Remove all members, add points-to solution
28521 member pt.
28522 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
28523 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
28524 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
28525 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
28526 (tree-ssa-alias.o): Likewise.
28527 (toplev.o): Add tree-ssa-alias.h
28528 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
28529 * gimple.c (gimple_set_bb): Fix off-by-one error.
28530 (is_gimple_reg): Do not handle memory tags.
28531 (gimple_copy): Also copy virtual operands.
28532 Delay updating the statement. Do not reset loaded and stored syms.
28533 (gimple_set_stored_syms): Remove.
28534 (gimple_set_loaded_syms): Likewise.
28535 (gimple_call_copy_skip_args): Copy the virtual operands
28536 and mark the new statement modified.
28537 * tree-ssa-structalias.c (may_alias_p): Remove.
28538 (set_uids_in_ptset): Take the alias set to prune with as
28539 parameter. Fold in the alias test of may_alias_p.
28540 (compute_points_to_sets): Compute whether a ptr is dereferenced
28541 in a local sbitmap.
28542 (process_constraint): Deal with &ANYTHING on the lhs, reject all
28543 other ADDRESSOF constraints on the lhs.
28544 (get_constraint_for_component_ref): Assert that we don't get
28545 ADDRESSOF constraints from the base of the reference.
28546 Properly generate UNKNOWN_OFFSET for DEREF if needed.
28547 (struct variable_info): Remove collapsed_to member.
28548 (get_varinfo_fc): Remove.
28549 (new_var_info): Do not set collapsed_to.
28550 (dump_constraint): Do not follow cycles.
28551 (dump_constraint_graph): Likewise.
28552 (build_pred_graph): Likewise.
28553 (build_succ_graph): Likewise.
28554 (rewrite_constraints): Likewise.
28555 (do_simple_structure_copy): Remove.
28556 (do_rhs_deref_structure_copy): Remove.
28557 (do_lhs_deref_structure_copy): Remove.
28558 (collapse_rest_of_var): Remove.
28559 (do_structure_copy): Re-implement.
28560 (pta_stats): New global variable.
28561 (dump_pta_stats): New function.
28562 (struct constraint_expr): Make offset signed.
28563 (UNKNOWN_OFFSET): Define special value.
28564 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
28565 (solution_set_expand): New helper function split out from ...
28566 (do_sd_constraint): ... here.
28567 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
28568 (do_ds_constraint): Likewise.
28569 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
28570 and CALLUSED = *CALLUSED.
28571 (set_union_with_increment): Make inc argument signed.
28572 (type_safe): Remove.
28573 (get_constraint_for_ptr_offset): Handle unknown and negative
28574 constant offsets.
28575 (first_vi_for_offset): Handle offsets before start. Bail
28576 out early for offsets beyond the variable extent.
28577 (first_or_preceding_vi_for_offset): New function.
28578 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
28579 Together with ESCAPED = *ESCAPED this properly computes reachability.
28580 (find_what_var_points_to): New function.
28581 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
28582 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
28583 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
28584 pt_solutions_intersect): New functions.
28585 (compute_call_used_vars): Remove.
28586 (compute_may_aliases): New main entry into PTA computation.
28587 * gimple.h (gimple_p): New typedef.
28588 (struct gimple_statement_base): Remove references_memory_p.
28589 (struct gimple_statement_with_memory_ops_base): Remove
28590 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
28591 members.
28592 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
28593 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
28594 gimple_set_references_memory): Remove.
28595 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
28596 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
28597 New functions.
28598 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
28599 (verify_expr): Allow RESULT_DECL.
28600 (gimple_duplicate_bb): Do not copy virtual operands.
28601 (gimple_duplicate_sese_region): Adjust.
28602 (gimple_duplicate_sese_tail): Likewise.
28603 (mark_virtual_ops_in_region): Remove.
28604 (move_sese_region_to_fn): Do not call it.
28605 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
28606 and pass_simple_dse.
28607 (execute_function_todo): Handle TODO_update_address_taken,
28608 call execute_update_addresses_taken for TODO_rebuild_alias.
28609 (execute_todo): Adjust.
28610 (execute_one_pass): Init dump files early.
28611 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
28612 call-clobbered.
28613 (create_general_new_stmt): Clear vops.
28614 * tree-ssa-reassoc.c (get_rank): Adjust.
28615 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
28616 symbols for renaming.
28617 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
28618 (PARAM_AVG_ALIASED_VOPS): Likewise.
28619 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
28620 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7a715bba 28621 * tree-ssa-operands.c: Simplify for new virtual operand representation.
5006671f
RG
28622 (operand_build_cmp, copy_virtual_operands,
28623 create_ssa_artificial_load_stmt, add_to_addressable_set,
28624 gimple_add_to_addresses_taken): Remove public functions.
28625 (unlink_stmt_vdef): New function.
28626
457d1d00
AM
286272009-04-03 Alan Modra <amodra@bigpond.net.au>
28628
28629 * config.gcc (powerpc-*-linux*): Merge variants.
28630
e19da24c 286312009-04-02 Chao-ying Fu <fu@mips.com>
60839f5d 28632 James Grosbach <james.grosbach@microchip.com>
e19da24c
CF
28633
28634 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
28635 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
28636 cop0_sp_offset.
28637 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
28638 keep_interrupts_masked_p, use_debug_exception_return_p.
28639 (mips_attribute_table): Add interrupt, use_shadow_register_set,
28640 keep_interrupts_masked, use_debug_exception_return.
28641 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
28642 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
28643 New functions.
28644 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
28645 (mips_print_operand): Process COP0 registers to print $0 .. $31
28646 correctly for GAS to process.
28647 (mips_interrupt_extra_call_saved_reg_p): New function.
28648 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
28649 extra registers.
28650 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
28651 (mips_compute_frame_info): Add supports for interrupt context that
28652 includes doubleword accumulators and COP0 registers.
28653 (mips_for_each_saved_acc): New function.
28654 (mips_for_each_saved_gpr_and_fpr): Change the function name from
28655 mips_for_each_saved_reg.
28656 (mips_save_reg): Save accumulators.
28657 (mips_kernel_reg_p): A new for_each_rtx callback.
28658 (mips_expand_prologue): Support interrupt handlers.
28659 (mips_restore_reg): Restore accumulators.
28660 (mips_expand_epilogue): Support interrupt handlers.
28661 (mips_can_use_return_insn): Return false for interrupt handlers.
28662 (mips_epilogue_uses): New function.
28663 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
28664 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
28665 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
28666 cop0_move): New instructions.
28667 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
28668 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
28669 defines.
28670 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
28671 New defines.
28672 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
28673 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
28674 interrupt handlers, we use K0 as the temporary register.
28675 (EPILOGUE_USES): Change to a function call.
28676 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
28677 handlers, we use K0 as the temporary register.
2ba9daa7 28678
e19da24c
CF
28679 * doc/extend.texi (Function Attributes): Document interrupt,
28680 use_shadow_register_set, keep_interrupts_masked,
28681 use_debug_exception_return for MIPS attributes.
28682
aa1ca044
AM
286832009-04-03 Alan Modra <amodra@bigpond.net.au>
28684
28685 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
28686 Remove a number of t-files from tmake_file.
28687 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
28688 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
28689 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
28690 target_prototype, not TARGET_PROTOTYPE.
28691 (LINK_OS_GNU_SPEC): Define.
28692 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
28693 and darwin-ldoubdle.c.
28694
14fdc613
MM
286952009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
28696
28697 PR driver/39293
28698 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
28699 (cpp_options): Ditto.
28700 (default_compilers): Ditto.
28701 (display_help): Ditto.
28702 (process_command): Ditto.
28703 (do_spec_1): Ditto.
28704 (set_input): Use lbasename instead of duplicate code.
28705 (save_temps_prefix): New static for -save-temps=obj.
28706 (save_temps_length): Ditto.
2ba9daa7 28707
14fdc613
MM
28708 * doc/invoke.texi (-save-temps=obj): Document new variant to
28709 -save-temps switch.
28710
d3aa398e
JL
287112009-04-02 Jeff Law <law@redhat.com>
28712
28713 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
28714 variable.
28715
83f0ccb8
L
287162009-04-02 H.J. Lu <hongjiu.lu@intel.com>
28717
28718 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
28719 * configure: Regenerated.
28720
dcb6e951
RAE
287212009-04-02 Rafael Avila de Espindola <espindola@google.com>
28722
28723 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
28724 share the argument list.
28725
d85478c2
RAE
287262009-04-02 Rafael Avila de Espindola <espindola@google.com>
28727
28728 Merge
28729
28730 2009-02-12 Diego Novillo <dnovillo@google.com>
28731
83f0ccb8
L
28732 * varpool.c (debug_varpool): New.
28733 * cgraph.h (debug_varpool): Declare.
d85478c2 28734
34f42a49
JH
287352009-04-02 Jan Hubicka <jh@suse.cz>
28736
28737 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
28738 pass.
28739
a4747b4a
L
287402009-04-02 H.J. Lu <hongjiu.lu@intel.com>
28741
28742 * config/i386/i386.c (ix86_abi): Move initialization to ...
28743 (override_options): Here.
28744
63a9de54
CB
287452009-04-02 Christian Bruel <christian.bruel@st.com>
28746
28747 * config/sh/sh.c (sh_dwarf_register_span): New function.
28748 (TARGET_DWARF_REGISTER_SPAN): Define.
28749 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
2ba9daa7 28750
2f0fa28e
IR
287512009-04-02 Ira Rosen <irar@il.ibm.com>
28752
28753 PR tree-optimization/39595
2ba9daa7 28754 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
2f0fa28e
IR
28755 interleaved loads group is not greater than the SLP group size.
28756
bbf7ce11
RAE
287572009-04-02 Rafael Avila de Espindola <espindola@google.com>
28758
28759 * builtins.c (is_builtin_name): New.
28760 (called_as_built_in): Use is_builtin_name.
28761 * tree.h (is_builtin_name): New.
28762 * varasm.c (incorporeal_function_p): Use is_builtin_name
28763
47e4dfcf
AS
287642009-04-02 Andrew Stubbs <ams@codesourcery.com>
28765
28766 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
28767
d0940d56
DS
287682009-04-02 Dodji Seketeli <dodji@redhat.com>
28769
28770 PR c++/26693
532bfb0a 28771 * c-decl.c (clone_underlying_type): Move this ...
d0940d56
DS
28772 * c-common.c (set_underlying_type): ... here.
28773 Also, make sure the function properly sets TYPE_STUB_DECL() on
28774 the newly created typedef variant type.
28775 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7a715bba
UB
28776 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
28777 points.
d0940d56 28778
bf1cbdc6
RG
287792009-04-02 Richard Guenther <rguenther@suse.de>
28780
28781 PR tree-optimization/37221
28782 * tree-flow.h (degenerate_phi_result): Declare.
28783 * tree-ssa-dom.c (degenerate_phi_result): Export.
28784 * tree-scalar-evolution.c (analyze_initial_condition): If
28785 the initial condition is defined by a degenerate PHI node
28786 use the degenerate value.
28787
87cfb32c
EB
287882009-04-01 Eric Botcazou <ebotcazou@adacore.com>
28789
28790 PR rtl-optimization/39588
28791 * combine.c (merge_outer_ops): Do not set the constant when this
28792 is not necessary.
28793 (simplify_shift_const_1): Do not modify it either in this case.
28794
bbb6eae8
SB
287952009-04-01 Steven Bosscher <steven@gcc.gnu.org>
28796
28797 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
28798 tuning is deprecated if -mtune value is set to an Itanium1 variant.
28799
839a3b8a
JJ
288002009-04-01 Janis Johnson <janis187@us.ibm.com>
28801
28802 PR c/29027
28803 * c-lex.c (interpret_float): Default (no suffix) is double.
28804
667e8acb
XDL
288052009-04-1 Xinliang David Li <davidxl@google.com>
28806
28807 * config/i386/i386.c (legitimate_constant_p): Recognize
28808 all one vector constant.
28809
60839f5d 288102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28811
60839f5d 28812 * config/vax/vax.c: Add #includes to silence warnings.
c4e75102
MT
28813 Change #include order to silence two warnings.
28814
60839f5d 288152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28816
60839f5d 28817 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
c4e75102
MT
28818 (ASM_SPEC): Pass -k to the assembler for PIC code.
28819
60839f5d 288202009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28821
60839f5d
EB
28822 * config.gcc: Add vax-*-linux* to the switch.
28823 * config/vax/linux.h: New file. (TARGET_VERSION,
c4e75102
MT
28824 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
28825
60839f5d 288262009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28827
60839f5d 28828 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
c4e75102 28829 Use predicate macros instead of GET_CODE() == foo.
60839f5d 28830 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
c4e75102
MT
28831 ashlsi3, rotrsi3, <unnamed>): Likewise.
28832
60839f5d 288332009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28834
60839f5d 28835 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
c4e75102 28836 jbbccihi, jbbccisi): Remova trailing whitespace.
60839f5d 28837 * config/vax/constraints.md: Likewise.
bd62d832 28838 * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
60839f5d
EB
28839 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
28840 * config/vax/predicates.md: Likewise.
28841 * config/vax/vax.c (print_operand_address, vax_output_int_move,
c4e75102 28842 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
60839f5d
EB
28843 * config/vax/vax.h: Likewise.
28844 * config/vax/vax.md (nonlocal_goto): Likewise.
c4e75102 28845
60839f5d 288462009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28847
60839f5d 28848 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
c4e75102
MT
28849 (indirectable_address_p, adjacent_operands_p): Add spaces around
28850 braces.
60839f5d 28851 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
c4e75102 28852
60839f5d 288532009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28854
60839f5d 28855 * config/vax/vax.c (legitimate_constant_address_p,
c4e75102
MT
28856 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
28857 index_term_p, reg_plus_index_p, legitimate_address_p,
28858 vax_mode_dependent_address_p): Update comments to match functions
28859 modified by the recent int->bool conversion.
28860
60839f5d 288612009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28862
60839f5d
EB
28863 * config/vax/builtins.md: Update copyright message.
28864 * config/vax/constraints.md: Likewise.
28865 * config/vax/netbsd-elf.h: Likewise.
28866 * config/vax/predicates.md: Likewise.
28867 * config/vax/vax-protos.h: Likewise.
28868 * config/vax/vax.c: Likewise.
28869 * config/vax/vax.h: Likewise.
28870 * config/vax/vax.md: Likewise.
28871 * config/vax/vax.opt: Likewise.
c4e75102 28872
60839f5d 288732009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
c4e75102 28874
60839f5d 28875 * config/vax/builtins.md (ffssi2, ffssi2_internal,
c4e75102 28876 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
60839f5d
EB
28877 * config/vax/constraints.md (B, R): Likewise.
28878 * config/vax/predicates.md (external_memory_operand,
c4e75102 28879 nonimmediate_addsub_di_operand): Likewise.
60839f5d
EB
28880 * config/vax/vax.c (vax_output_int_add): Likewise.
28881 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
c4e75102
MT
28882 untyped_call): Likewise.
28883
60839f5d 288842009-04-01 Matt Thomas <matt@3am-software.com>
c4e75102 28885
7a715bba
UB
28886 * config/vax/predicates.md: New file.
28887 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
c4e75102
MT
28888 external_const_operand, nonsymbolic_operand, external_memory_operand,
28889 indirect_memory_operand, indexed_memory_operand,
28890 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
28891 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
28892 predicate.
7a715bba
UB
28893 * config/vax/constraints.md: New file.
28894 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
28895 New constraint.
28896 * config/vax/builtins.md: New file.
28897 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
28898 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
28899 jbbccisi): Define.
c4e75102
MT
28900 * config/vax/vax.opt (mqmath): Add option.
28901 * config/vax/vax.md (isfx): Extend with DI.
28902 (VAXintQH, VAXintQHSD): Define.
28903 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
28904 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
28905 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
28906 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
28907 (movdi): Update constraints and use vax_output_int_move().
28908 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
28909 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
28910 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
28911 nonlocal_goto): New.
28912 (mov<mode>): Extend accepted operand types.
28913 (subdi3_old): Rename from subdi3, change update constraints and use
28914 a new implementation.
60839f5d 28915 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
c4e75102
MT
28916 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
28917 MOVE_RATIO, CLEAR_RATIO): Define.
28918 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
28919 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
28920 (PRINT_OPERAND): Redefine using a function instead of inlined code.
60839f5d 28921 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
c4e75102
MT
28922 (split_quadword_operands): Make static and really allow variable
28923 splitting.
28924 (print_operand_address): Update for PIC generation.
28925 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
28926 indexable_address_p, fixup_mathdi_operand,
28927 vax_expand_addsub_di_operands, adjacent_operands_p): New.
28928 (vax_float_literal, legitimate_constant_p,
28929 indirectable_constant_address_p, index_term_p,
28930 reg_plus_index_p): Return bool instead of int.
28931 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
28932 where needed.
28933 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
28934 generation.
28935 (vax_output_conditional_branch): Indent.
28936 (legitimate_constant_address_p, indirectable_constant_address_p,
28937 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
28938 vax_mode_dependent_address_p): Return bool instead of int, update for
28939 PIC generation.
28940 * config/vax/vax-protos.h (legitimate_constant_address_p,
28941 legitimate_constant_p, legitimate_address_p,
28942 vax_mode_dependent_address_p): Change declaration to bool.
28943 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
28944 vax_expand_addsub_di_operands, vax_output_int_subtract,
28945 vax_output_movmemsi): Declare.
28946 (split_quadword_operands, vax_float_literal): Delete declaration.
28947 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
28948 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
28949 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
28950 ASM_OUTPUT_DWARF_PCREL): Define.
28951 (ASM_SPEC): Change definition to allow PIC generation.
28952
9332c6eb
L
289532009-04-01 Steve Ellcey <sje@cup.hp.com>
28954
28955 * doc/sourcebuild.texi: Update front-end requirements.
28956
d93e052c
JJ
289572009-04-01 Jakub Jelinek <jakub@redhat.com>
28958
28959 PR target/39226
28960 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
28961 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
28962 (booldi3_internal3): Use boolean_or_operator instead of
28963 boolean_operator.
28964
6ccb2a4a
JM
289652009-04-01 Joseph Myers <joseph@codesourcery.com>
28966
28967 PR c/39605
28968 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
28969 declarator whose size is not an integer constant expression but
28970 folds to an integer constant, then treat it as a constant
28971 subsequently.
28972
299b87f8
RG
289732009-04-01 Richard Guenther <rguenther@suse.de>
28974
28975 * fold-const.c (fold_plusminus_mult_expr): Do not fold
28976 i * 4 + 2 to (i * 2 + 1) * 2.
28977
b85eb797
JJ
289782009-04-01 Jakub Jelinek <jakub@redhat.com>
28979
28980 PR c/37772
28981 * c-parser.c (c_parser_asm_statement): Skip until close paren and
28982 return if c_parser_asm_string_literal returned NULL.
28983
235e1fe8
NC
289842009-04-01 Nick Clifton <nickc@redhat.com>
28985
28986 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
28987 already defined.
28988 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
28989 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
28990 other typedefs to avoid conflicts with libgcc2.c. Define labels
28991 to gain 16-bit bit-manipulation functions from libgcc2.c and then
28992 include it.
28993 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
28994 to gain 16-bit trapping arithmetic functions from libgcc2.c and
28995 then include it.
28996
d6868399
RAE
289972009-04-01 Rafael Avila de Espindola <espindola@google.com>
28998
7a715bba
UB
28999 * varasm.c (default_function_rodata_section): Declare DOT as
29000 const char*.
d6868399 29001
73d21f56 290022009-04-01 Kai Tietz <kai.tietz@onevision.com>
60839f5d 29003 Andrey Galkin <agalkin@hypercom.com>
73d21f56
KT
29004
29005 PR/39492
29006 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
29007 Make object_name unique for each process.
29008
03742a9b
JJ
290092009-04-01 Jakub Jelinek <jakub@redhat.com>
29010
29011 PR other/39591
29012 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
29013 addressable variables in the parallel that could go out of scope while
29014 running queued tasks.
29015
4223ff5f
AS
290162009-04-01 Anatoly Sokolov <aesok@post.ru>
29017
29018 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
29019 (CASE_VALUES_THRESHOLD): Redefine.
29020 * config/avr/avr.c (avr_override_options): Remove initialization of
29021 avr_case_values_threshold variable.
29022 (avr_case_values_threshold): Remove variable. Add new function.
29023 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
29024 * config/avr/avr.opt (mno-tablejump): Remove option.
29025 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
29026
e893f6f3
DD
290272009-04-01 DJ Delorie <dj@redhat.com>
29028
29029 * varasm.c (default_function_rodata_section): Don't assume
29030 anything about where the first '.' in the section name is.
29031
b246d100
AM
290322009-04-01 Alan Modra <amodra@bigpond.net.au>
29033
29034 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
29035 rs6000_emit_stack_tie.
29036
d3e37a9e
ILT
290372009-03-31 Ian Lance Taylor <iant@google.com>
29038
29039 * tree-eh.c (tree_remove_unreachable_handlers): Compare
29040 gimple_code with GIMPLE_RESX, not RESX.
29041
c1b61fca
JM
290422009-03-31 Joseph Myers <joseph@codesourcery.com>
29043
29044 * c-common.c (c_get_ident): New.
7a715bba 29045 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
c1b61fca 29046
c2d2ad48
BE
290472009-04-01 Ben Elliston <bje@au.ibm.com>
29048
29049 * config/rs6000/sysv4.opt (msdata): Improve option description.
29050
13d1a6e7
SE
290512009-03-31 Steve Ellcey <sje@cup.hp.com>
29052
29053 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
29054 (divdf3_internal_lat): Remove.
29055 (divxf3_internal_lat): Remove.
29056 (divxf3_internal_thr): Remove.
29057 (divxf): Use divxf3_internal.
29058 * config/ia64/div.md (divsf3_internal_lat): New.
29059 (divdf3_internal_lat): New.
29060 (divxf3_internal): New.
29061
207bf79d
JM
290622009-03-31 Joseph Myers <joseph@codesourcery.com>
29063
29064 PR c/448
29065 * Makefile.in (USE_GCC_STDINT): Define.
29066 (stmp-int-hdrs): Install stdint.h if applicable.
29067 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
29068 if known.
29069 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
29070 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
29071 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
29072 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29073 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29074 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29075 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29076 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29077 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
29078 (c_common_nodes_and_builtins): Initialize
29079 underlying_wchar_type_node. Do not initialize
29080 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
29081 nodes for new types.
29082 (c_stddef_cpp_builtins): Define macros for new types.
29083 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
29084 Remove.
29085 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
29086 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
29087 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
29088 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
29089 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
29090 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
29091 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
29092 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
29093 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
29094 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
29095 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
29096 int16_type_node, int32_type_node, int64_type_node,
29097 uint8_type_node, uint16_type_node, c_uint32_type_node,
29098 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
29099 int_least32_type_node, int_least64_type_node,
29100 uint_least8_type_node, uint_least16_type_node,
29101 uint_least32_type_node, uint_least64_type_node,
29102 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
29103 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
29104 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
29105 uintptr_type_node): Define.
29106 * c-cppbuiltin.c (builtin_define_constants,
29107 builtin_define_type_minmax): New.
29108 (builtin_define_stdint_macros): Define more macros.
29109 (c_cpp_builtins): Define more limit macros.
29110 (type_suffix): New.
29111 (builtin_define_type_max): Define in terms of
29112 builtin_define_type_minmax. Remove is_long parameter. All
29113 callers changed.
29114 * config.gcc (use_gcc_stdint): Define.
29115 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
29116 Add newlib-stdint.h for generic targets.
29117 * config/glibc-stdint.h, config/newlib-stdint.h,
29118 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
29119 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
29120 * config/score/score.h (UINTPTR_TYPE): Define.
29121 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
29122 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
29123 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29124 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29125 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29126 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29127 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29128 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
29129 * config/spu/spu.h (STDINT_LONG32): Define.
29130 * configure.ac (use_gcc_stdint): Substitute.
29131 * configure: Regenerate.
29132 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
29133 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
29134 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
29135 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
29136 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
29137 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
29138 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
29139 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
29140 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
29141 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
29142 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
29143 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
29144 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
29145 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
29146 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
29147 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
29148 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
29149 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
29150 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
29151 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
29152 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
29153 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
29154 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
29155 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29156 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
29157 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
29158 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
29159 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29160 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
29161
ed853664
BS
291622009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
29163
29164 * loop-iv.c (suitable_set_for_replacement): Renamed from
29165 simplify_using_assignment; changed to return bool and to accept new
29166 args DEST and SRC. Return true iff we find a source/destination pair
29167 that can be used to make a replacement, and fill SRC and DEST if so.
29168 Remove arg ALTERED. Don't deal with altered regs here. All callers
29169 changed.
29170 (simplify_using_initial_values): Deal with altered regs here and track
29171 more precisely the effect they have on the validity of our expression.
29172
1569e190
BS
29173 * loop-iv.c (simplify_using_condition): A condition of the form
29174 (EQ REG CONST) can be used to simply make a substitution.
29175 (simplify_using_initial_values): Keep track of conditions we have seen
29176 and keep using them to simplify new expressions, while applying the
29177 same substitutions to them as to the expression.
29178
1d1eb80c
BS
29179 * simplify-rtx.c (simplify_relational_operation_1): Simplify
29180 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
29181 GEU/LTU reversed.
29182
28af33b0
BS
29183 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
29184 changed. Use this when trying to improve the upper bound.
29185 Generate the comparison by using simplify_gen_relational.
29186
b30321cd
BS
29187 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
29188
60081874
BS
29189 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
29190 functions.
2ba9daa7 29191 (simplify_using_assignment, simplify_using_initial_values): Call
60081874
BS
29192 replace_in_expr to make replacements. Call replace_single_def_regs
29193 once on the initial version of the expression.
29194
bebc6e07
RR
291952009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29196
fcb82ab0 29197 PR target/27237
bebc6e07 29198 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
2ba9daa7 29199
6b12efe9
RG
292002009-03-31 Richard Guenther <rguenther@suse.de>
29201
29202 PR middle-end/31029
29203 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
29204 equality comparisons. Fold C - X CMP X if C % 2 == 1.
29205
108f6c2f
RG
292062009-03-31 Richard Guenther <rguenther@suse.de>
29207
29208 * tree.h (div_if_zero_remainder): Declare.
29209 * fold-const.c (div_if_zero_remainder): Export.
29210 * tree-ssa-forwprop.c
29211 (forward_propagate_addr_into_variable_array_index): Handle
29212 constant array index addition outside of the variable index.
29213
8f612190
JM
292142009-03-31 Joseph Myers <joseph@codesourcery.com>
29215
29216 PR target/39592
29217 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
29218 define_splits, floatunssi<mode>2): Require x87 conversions from
29219 DImode to be permitted.
29220
47580d22
JM
292212009-03-31 Joseph Myers <joseph@codesourcery.com>
29222
29223 PR preprocessor/15638
29224 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
29225
ba4d8f9d
RG
292262009-03-31 Richard Guenther <rguenther@suse.de>
29227
29228 PR middle-end/23401
29229 PR middle-end/27810
29230 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
29231 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
29232 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
29233 a separate statement.
29234 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
29235 (lookup_tmp_var): Likewise.
29236 (is_gimple_formal_tmp_or_call_rhs): Remove.
29237 (is_gimple_reg_or_call_rhs): Rename to ...
29238 (is_gimple_reg_rhs_or_call): ... this.
29239 (is_gimple_mem_or_call_rhs): Rename to ...
29240 (is_gimple_mem_rhs_or_call): ... this.
29241 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
29242 DECL_GIMPLE_REG_P only if is_formal is true.
29243 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
29244 for non-proper post-modify expression gimplification.
29245 (gimplify_self_mod_expr): For post-modify expressions gimplify
29246 the lvalue to a minimal lvalue.
29247 (rhs_predicate_for): Remove formal temp case.
29248 (gimplify_modify_expr_rhs): Likewise.
29249 (gimplify_addr_expr): Use is_gimple_reg.
29250 (gimplify_expr): Remove formal temp cases.
29251 (gimple_regimplify_operands): Likewise.
29252 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
29253 and FILTER_EXPR like constants.
29254 * gimple.c (walk_gimple_op): Fix val_only initialization, use
29255 is_gimple_reg.
29256 (is_gimple_formal_tmp_rhs): Remove.
29257 (is_gimple_reg_rhs): Remove special casing.
29258 (is_gimple_mem_rhs): Fix.
29259 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
29260 (is_gimple_formal_tmp_var): Remove.
29261 (is_gimple_formal_tmp_reg): Likewise.
29262 (is_gimple_min_lval): Allow invariant component ref parts.
29263 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
29264 is_gimple_formal_tmp_reg): Remove declarations.
29265 * tree-cfg.c (verify_expr): Verify that variables with address
29266 taken do not have DECL_GIMPLE_REG_P set.
29267 * tree-mudflap.c (mf_build_check_statement_for): Use
29268 force_gimple_operand instead of gimplify_expr.
29269
8de9b877
AZ
292702009-03-31 Ayal Zaks <zaks@il.ibm.com>
29271
29272 * modulo-sched.c (sms_schedule_by_order): Pass the actual
29273 schedulable rows to compute_split_row.
29274
b5e3caf2
BE
292752009-03-31 Ben Elliston <bje@au.ibm.com>
29276
29277 PR target/31635
29278 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
29279 OPT_mvrsave.
29280
9752c4ad
AM
292812009-03-31 Alan Modra <amodra@bigpond.net.au>
29282
29283 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
29284 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
29285 * configure: Regenerate.
29286 * config.in: Regenerate.
29287 * config/rs6000/rs6000.opt (mtls-markers): Add.
29288 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
29289 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
29290 (tls_ld_aix, tls_ld_sysv): Likewise.
29291 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
29292 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
29293
b597d1b6
AM
292942009-03-31 Alan Modra <amodra@bigpond.net.au>
29295
29296 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
29297
a203a221
JH
292982009-03-30 Jan Hubicka <jh@suse.cz>
29299
b597d1b6
AM
29300 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
29301 out of RESX.
29302 (tree_remove_unreachable_handlers): Cleanup EH predecestor
29303 detection and label handling.
a203a221 29304
5b0c0b2c
VM
293052009-03-30 Vladimir Makarov <vmakarov@redhat.com>
29306
29307 * ira-int.h (ira_allocno): Rename left_conflicts_num to
29308 left_conflicts_size.
29309 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
29310 ALLOCNO_LEFT_CONFLICTS_SIZE.
29311
29312 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
29313 remove_allocno_from_bucket_and_push,
29314 allocno_spill_priority_compare, push_allocnos_to_stack,
29315 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
29316 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
29317 (setup_allocno_left_conflicts_num): Ditto. Rename to
29318 setup_allocno_left_conflicts_size.
29319 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
29320 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
29321 setup_allocno_left_conflicts_size instead of
29322 setup_allocno_left_conflicts_num.
29323
29324 * ira-build.c (ira_create_allocno): Use
29325 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
29326 ALLOCNO_LEFT_CONFLICTS_NUM.
2ba9daa7 29327
9a48a93f
VM
293282009-03-30 Vladimir Makarov <vmakarov@redhat.com>
29329
29330 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
29331 instead of DF_LR_OUT.
29332
29333 * ira-lives.c (process_bb_node_lives): Ditto.
29334
29335 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
29336 instead of DF_LR_{OUT,IN}.
29337
29338 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
29339
29340 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
29341
4c936d4f
JH
293422009-03-30 Jan Hubicka <jh@suse.cz>
29343
29344 * except.c (label_to_region_map): Fix thinko.
29345
f4d9f129
SE
293462009-03-30 Steve Ellcey <sje@cup.hp.com>
29347
29348 PR middle-end/38237
29349 * tree.h (tree_find_value): New declaration.
29350 * tree.c (tree_find_value): New function.
29351 * varasm.c (assemble_external): Avoid duplicate entries on lists.
29352
b3f27c15
JJ
293532009-03-30 Jakub Jelinek <jakub@redhat.com>
29354
29355 PR debug/39563
29356 * c-decl.c (struct c_binding): Add locus field.
29357 (bind): Add locus argument, set locus field from it.
29358 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
29359 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
29360 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
29361 implicitly_declare, undeclared_variable, lookup_label,
29362 declare_label, c_make_fname_decl, c_builtin_function,
29363 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
29364 bind callers.
29365
ad41bd84 293662009-03-30 H.J. Lu <hongjiu.lu@intel.com>
680e8a00
L
29367
29368 PR target/38781
29369 * config/i386/i386.c (classify_argument): Check total size of
29370 structure.
29371
133f9369
MJ
293722009-03-30 Martin Jambor <mjambor@suse.cz>
29373
29374 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
29375 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
29376 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
29377 respectively.
29378
29379 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
29380 seen_variable_array_ref while also traversing a union.
29381
29382 * tree-inline.c (optimize_inline_calls): Do not call
29383 cgraph_node_remove_callees.
29384 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
29385 (pass_remove_cgraph_callee_edges): New variable.
29386 * passes.c (init_optimization_passes): Add
29387 pass_remove_cgraph_callee_edges after early inlining and before all
29388 late intraprocedural passes.
29389
29390 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
29391
1190f2eb
PB
293922009-03-30 Paolo Bonzini <bonzini@gnu.org>
29393
29394 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
29395 Fix typos in names.
29396
fedc1775
PB
293972009-03-30 Paolo Bonzini <bonzini@gnu.org>
29398
fcb82ab0
UB
29399 * combine.c (simplify_comparison): Use have_insn_for.
29400 * dojump.c (do_jump): Likewise.
fedc1775 29401
65c5ae8b
PB
294022009-03-30 Paolo Bonzini <bonzini@gnu.org>
29403
29404 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
29405 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
29406 sparc_compare_op0 like sparc_compare_emitted used to be handled.
29407 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
29408 instead of sparc_compare_emitted.
29409 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
29410 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
29411 instead of sparc_compare_emitted.
29412
d25aa7ab
PB
294132009-03-30 Paolo Bonzini <bonzini@gnu.org>
29414
29415 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
29416 enter/exit cfglayout mode.
29417 (pass_partition_block): Require it.
29418 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
29419 (combine_instructions): Track basic blocks instead of labels.
29420 (update_cfg_for_uncondjump): New.
29421 (try_combine): Use it. Update jumps after rescanning.
29422 (pass_combine): Require PROP_cfglayout.
29423 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
29424
9c9e26f5
PB
294252009-03-30 Paolo Bonzini <bonzini@gnu.org>
29426
fcb82ab0
UB
29427 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
29428 Provide/destroy PROP_cfglayout respectively.
29429 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
29430 * tree-pass.h (PROP_cfglayout): New.
9c9e26f5 29431
28ddeea1
PB
294322009-03-30 Paolo Bonzini <bonzini@gnu.org>
29433
29434 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
29435 fold_convert_const_fixed_from_fixed,
29436 fold_convert_const_fixed_from_int,
29437 fold_convert_const_fixed_from_real, fold_negate_const): Do not
29438 set TREE_CONSTANT_OVERFLOW.
29439 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
29440 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
29441
ebfd146a
IR
294422009-03-30 Ira Rosen <irar@il.ibm.com>
29443
29444 * tree-vect-loop-manip.c: New file.
29445 * tree-vectorizer.c: Update documentation and included files.
29446 (vect_loop_location): Make extern.
29447 (rename_use_op): Move to tree-vect-loop-manip.c
2ba9daa7
AS
29448 (rename_variables_in_bb, rename_variables_in_loop,
29449 slpeel_update_phis_for_duplicate_loop,
ebfd146a
IR
29450 slpeel_update_phi_nodes_for_guard1,
29451 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
29452 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
29453 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
2ba9daa7 29454 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
ebfd146a
IR
29455 find_loop_location): Likewise.
29456 (new_stmt_vec_info): Move to tree-vect-stmts.c.
29457 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
29458 get_vectype_for_scalar_type, vect_is_simple_use,
29459 supportable_widening_operation, supportable_narrowing_operation):
29460 Likewise.
29461 (bb_in_loop_p): Move to tree-vect-loop.c.
2ba9daa7
AS
29462 (new_loop_vec_info, destroy_loop_vec_info,
29463 reduction_code_for_scalar_code, report_vect_op,
ebfd146a
IR
29464 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
29465 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
29466 (vect_supportable_dr_alignment): Likewise.
29467 * tree-vectorizer.h (tree-data-ref.h): Include.
29468 (vect_loop_location): Declare.
29469 Reorganize function declarations according to the new file structure.
29470 * tree-vect-loop.c: New file.
2ba9daa7 29471 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
ebfd146a
IR
29472 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
29473 * tree-vect-data-refs.c: New file.
29474 * tree-vect-patterns.c (timevar.h): Don't include.
29475 * tree-vect-stmts.c: New file.
2ba9daa7 29476 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
ebfd146a 29477 tree-vect-slp.c, tree-vect-loop.c.
2ba9daa7
AS
29478 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
29479 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
ebfd146a
IR
29480 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
29481 (tree-vect-analyze.o): Remove.
29482 (tree-vect-transform.o): Likewise.
29483 (tree-vect-data-refs.o): Add rule.
2ba9daa7 29484 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
ebfd146a
IR
29485 tree-vect-slp.o): Likewise.
29486 (tree-vect-patterns.o): Remove redundant dependencies.
29487 (tree-vectorizer.o): Likewise.
29488 * tree-vect-slp.c: New file.
29489
40a1cfba
RW
294902009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
29491
29492 * optc-gen.awk: Warn if an option flag has multiple different
29493 help strings.
29494
a9a7a9a2
SP
294952009-03-30 Sebastian Pop <sebastian.pop@amd.com>
29496
29497 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
29498 -floop-block): Document dependences on PPL, CLooG and Graphite.
29499
8ce94e44
JM
295002009-03-30 Joseph Myers <joseph@codesourcery.com>
29501
29502 PR rtl-optimization/323
29503 * c-common.c (c_fully_fold, convert_and_check,
29504 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
29505 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
29506 * c-common.def (EXCESS_PRECISION_EXPR): New.
29507 * c-cppbuiltin.c (builtin_define_float_constants): Define
29508 constants with enough digits for long double.
29509 * c-lex.c (interpret_float): Interpret constant with excess
29510 precision where appropriate.
29511 * c-opts.c (c_common_post_options): Set
29512 flag_excess_precision_cmdline. Give an error for
29513 -fexcess-precision=standard for C++ for processors where the
29514 option is significant.
29515 * c-parser.c (c_parser_conditional_expression): Handle excess
29516 precision in condition.
29517 * c-typeck.c (convert_arguments): Handle arguments with excess
29518 precision.
29519 (build_unary_op): Move excess precision outside operation.
29520 (build_conditional_expr): Likewise.
29521 (build_compound_expr): Likewise.
29522 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
29523 (build_modify_expr): Handle excess precision in RHS.
29524 (convert_for_assignment): Handle excess precision in converted
29525 value.
29526 (digest_init, output_init_element, process_init_element): Handle
29527 excess precision in initializer.
29528 (c_finish_return): Handle excess precision in return value.
29529 (build_binary_op): Handle excess precision in operands and add
29530 excess precision as needed for operation.
29531 * common.opt (-fexcess-precision=): New option.
29532 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
29533 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
29534 For standard excess precision, output explicit conversion to and
29535 truncation from XFmode.
29536 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
29537 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
29538 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
29539 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
29540 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
29541 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
29542 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
29543 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
29544 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
29545 define_splits, sqrt<mode>2): Disable where appropriate for
29546 standard excess precision.
29547 * convert.c (convert_to_real): Do not shorten arithmetic to type
29548 for which excess precision would be used.
29549 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
29550 * doc/invoke.texi (-fexcess-precision=): Document option.
29551 (-mfpmath=): Correct index entry.
29552 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
29553 flag_excess_precision): New.
29554 * langhooks.c (lhd_post_options): Set
29555 flag_excess_precision_cmdline.
29556 * opts.c (common_handle_option): Handle -fexcess-precision=.
29557 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
29558 init_excess_precision): New.
29559 (lang_dependent_init_target): Call init_excess_precision.
29560 * tree.c (excess_precision_type): New.
29561 * tree.h (excess_precision_type): Declare.
29562
1e57bf47
JM
295632009-03-30 Joseph Myers <joseph@codesourcery.com>
29564
29565 PR c/35235
29566 * c-typeck.c (build_component_ref): Do not copy qualifiers from
29567 non-lvalue to component.
29568
148e4216
JM
295692009-03-29 Joseph Myers <joseph@codesourcery.com>
29570
29571 PR preprocessor/34695
29572 * Makefile.in (c-opts.o): Depend on c-tree.h.
29573 * c-common.c: Move down include of diagnostic.h.
29574 (done_lexing, c_cpp_error): New.
29575 * c-common.h (done_lexing): Declare.
29576 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
29577 (parse_in).
29578 * c-opts.c: Include c-tree.h.
29579 (c_common_init_options): Set preprocessor error callback.
29580 (c_common_handle_option): Do not set preprocessor
29581 inhibit_warnings, warnings_are_errors, warn_system_headers,
29582 pedantic_errors or inhibit_warnings flags.
29583 (c_common_post_options): Do not check cpp_errors (parse_in).
29584 (c_common_finish): Do not output dependencies if there were
29585 errors. Do not check return value of cpp_finish.
29586 * c-ppoutput.c (pp_file_change): Set input_location.
29587 * c-tree.h (c_cpp_error): Declare.
29588 * diagnostic.c (diagnostic_set_info_translated): Also initialize
29589 override_column.
29590 (diagnostic_build_prefix): Check override_column.
29591 * diagnostic.h (diagnostic_info): Add override_column field.
29592 (diagnostic_override_column): Define.
29593
2ec5deb5
PB
295942009-03-28 Paolo Bonzini <bonzini@gnu.org>
29595
ba20e309
UB
29596 * c-common.c (c_expand_expr, c_staticp): Remove.
29597 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
29598 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
29599 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
29600 * c-gimplify.c (gimplify_compound_literal_expr,
29601 optimize_compound_literals_in_ctor): Remove.
29602 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
29603 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
29604 * c-semantics.c (emit_local_var): Remove.
29605
29606 * langhooks-def.h (lhd_expand_expr): Remove.
29607 * langhooks.c (lhd_expand_expr): Remove.
29608 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
29609
29610 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
29611 handling from c-semantics.c; don't call into langhook.
29612 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
29613 * gimplify.c (gimplify_compound_literal_expr,
29614 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
29615 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
29616 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
29617 as was done in c-gimplify.c.
29618 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
29619 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
29620 Move from c-common.h.
29621 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2ec5deb5
PB
29622
29623 * tree.c (staticp): Do not call langhook.
29624 * langhooks.c (lhd_staticp): Delete.
29625 * langhooks-def.h (lhd_staticp): Delete prototype.
29626 (LANG_HOOKS_STATICP): Delete.
29627 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
29628
ba20e309
UB
29629 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
29630 instead of DECL_STMTs.
2ec5deb5 29631
928c19bb
JM
296322009-03-29 Joseph Myers <joseph@codesourcery.com>
29633
29634 PR c/456
29635 PR c/5675
29636 PR c/19976
29637 PR c/29116
29638 PR c/31871
29639 PR c/35198
29640 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
29641 void_type_node.
29642 (fold_call_expr): Return a NOP_EXPR from folding rather than the
29643 contained expression.
ba20e309 29644 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
928c19bb
JM
29645 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
29646 conditional expressions for C.
29647 (decl_constant_value_for_optimization): Move from
ba20e309 29648 decl_constant_value_for_broken_optimization in c-typeck.c. Check
928c19bb
JM
29649 whether optimizing and that the expression is a VAR_DECL not of
29650 array type instead of doing such checks in the caller. Do not
29651 check pedantic. Call gcc_unreachable for C++.
29652 * c-common.def (C_MAYBE_CONST_EXPR): New.
29653 * c-common.h (c_fully_fold, c_save_expr,
29654 decl_constant_value_for_optimization): New prototypes.
29655 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
29656 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
29657 EXPR_INT_CONST_OPERANDS): Define.
29658 * c-convert.c (convert): Strip nops from expression.
29659 * c-decl.c (groktypename): Take extra parameters expr and
29660 expr_const_operands. Update call to grokdeclarator.
29661 (start_decl): Update call to grokdeclarator. Add statement for
29662 expressions used in type of decl.
29663 (grokparm): Update call to grokdeclarator.
29664 (push_parm_decl): Update call to grokdeclarator.
29665 (build_compound_literal): Add parameter non_const and build a
29666 C_MAYBE_COSNT_EXPR if applicable.
29667 (grokdeclarator): Take extra parameters expr and
29668 expr_const_operands. Track expressions used in declaration
29669 specifiers and declarators. Fold array sizes and track whether
29670 they are constant expressions and whether they are integer
29671 constant expressions.
29672 (parser_xref_tag): Set expr and expr_const_operands fields in
29673 return value.
29674 (grokfield): Update call to grokdeclarator.
29675 (start_function): Update call to grokdeclarator.
29676 (build_null_declspecs): Set expr and expr_const_operands fields in
29677 return value.
29678 (declspecs_add_type): Handle expressions in typeof specifiers.
29679 * c-parser.c (c_parser_declspecs): Set expr and
29680 expr_const_operands fields for declaration specifiers.
29681 (c_parser_enum_specifier): Likewise.
29682 (c_parser_struct_or_union_specifier): Likewise.
29683 (c_parser_typeof_specifier): Likewise. Update call to
29684 groktypename. Fold expression as needed. Return expressions with
29685 type instead of adding statements.
29686 (c_parser_attributes): Update calls to c_parser_expr_list.
29687 (c_parser_statement_after_labels): Fold expression before passing
29688 to objc_build_throw_stmt.
29689 (c_parser_condition): Fold expression.
29690 (c_parser_asm_operands): Fold expression.
29691 (c_parser_conditional_expression): Use c_save_expr. Update call
29692 to build_conditional_expr.
29693 (c_parser_alignof_expression): Update call to groktypename.
29694 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
29695 original_code. Fold expression argument of va_arg. Create
29696 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
29697 argument to va_arg. Update calls to groktypename. Fold array
29698 index for offsetof. Verify that first argument to
29699 __builtin_choose_expr has integer type.
29700 (c_parser_postfix_expression_after_paren_type): Update calls to
29701 groktypename and build_compound_literal. Handle expressions with
29702 side effects in type name.
29703 (c_parser_postfix_expression_after_primary): Update call to
29704 c_parser_expr_list. Set original_code for calls to
29705 __builtin_constant_p.
29706 (c_parser_expr_list): Take extra parameter fold_p. Fold
29707 expressions if requested.
29708 (c_parser_objc_type_name): Update call to groktypename.
29709 (c_parser_objc_synchronized_statement): Fold expression.
29710 (c_parser_objc_receiver): Fold expression.
29711 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
29712 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
29713 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
29714 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
29715 (struct c_typespec): Add elements expr and expr_const_operands.
29716 (struct c_declspecs): Add elements expr and expr_const_operands.
29717 (groktypename, build_conditional_expr, build_compound_literal):
29718 Update prototypes.
29719 (in_late_binary_op): Declare.
29720 * c-typeck.c (note_integer_operands): New function.
29721 (in_late_binary_op): New variable.
29722 (decl_constant_value_for_broken_optimization): Move to c-common.c
29723 and rename to decl_constant_value_for_optimization.
29724 (default_function_array_conversion): Do not strip nops.
29725 (default_conversion): Do not call
29726 decl_constant_value_for_broken_optimization.
29727 (build_array_ref): Do not fold result.
29728 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
29729 result when operand is a VLA.
29730 (c_expr_sizeof_type): Update call to groktypename. Handle
29731 expressions included in type name. Use C_MAYBE_CONST_EXPR for
29732 result when operand names a VLA type.
29733 (build_function_call): Update call to build_compound_literal.
29734 Only fold result for calls to __builtin_* functions. Strip
29735 NOP_EXPR from INTEGER_CST returned from such functions. Fold
29736 the function designator.
29737 (convert_arguments): Fold arguments. Update call to
29738 convert_for_assignment.
29739 (build_unary_op): Handle increment and decrement of
29740 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
29741 decrement earlier. Fold operand of increment and decrement.
29742 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
29743 built for integer operand. Wrap returns that are INTEGER_CSTs
29744 without being integer constant expressions or that have integer
29745 constant operands without being INTEGER_CSTs.
29746 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
29747 (build_conditional_expr): Add operand ifexp_bcp. Track whether
29748 result is an integer constant expression or can be used in
29749 unevaluated parts of one and avoid folding and wrap as
29750 appropriate. Fold operands before possibly doing -Wsign-compare
29751 warnings.
29752 (build_compound_expr): Wrap result for C99 if operands can be used
29753 in integer constant expressions.
29754 (build_c_cast): Update call to digest_init. Do not ignore
29755 overflow from casting floating-point constants to integers. Wrap
29756 results that could be confused with integer constant expressions,
29757 null pointer constants or floating-point constants.
29758 (c_cast_expr): Update call to groktypename. Handle expressions
29759 included in type name.
29760 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
29761 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
29762 Update calls to convert_for_assignment.
29763 (convert_for_assignment): Take new parameter
29764 null_pointer_constant. Do not strip nops or call
29765 decl_constant_value_for_broken_optimization. Set
29766 in_late_binary_op for conversions to boolean.
29767 (store_init_value): Update call to digest_init.
29768 (digest_init): Take new parameter null_pointer_constant. Do not
29769 call decl_constant_value_for_broken_optimization. pedwarn for
29770 initializers not constant expressions. Update calls to
29771 convert_for_assignment.
29772 (constructor_nonconst): New.
29773 (struct constructor_stack): Add nonconst element.
29774 (really_start_incremental_init, push_init_level, pop_init_level):
29775 Handle constructor_nonconst and nonconst element.
29776 (set_init_index): Call constant_expression_warning for array
29777 designators.
29778 (output_init_element): Fold value. Set constructor_nonconst as
29779 applicable. pedwarn for initializers not constant expressions.
29780 Update call to digest_init. Call constant_expression_warning
29781 where constant initializers are required.
29782 (process_init_element): Use c_save_expr.
29783 (c_finish_goto_ptr): Fold expression.
29784 (c_finish_return): Fold return value. Update call to
29785 convert_for_assignment.
29786 (c_start_case): Fold switch expression.
29787 (c_process_expr_stmt): Fold expression.
29788 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
ba20e309 29789 ensure statement expression is not evaluated in constant expression.
928c19bb
JM
29790 (build_binary_op): Track whether results are integer constant
29791 expressions or may occur in such, disable folding and wrap results
29792 as applicable. Fold operands for -Wsign-compare warnings unless
29793 in_late_binary_op.
29794 (c_objc_common_truthvalue_conversion): Handle results folded to
29795 integer constants that are not integer constant expressions.
29796 * doc/extend.texi: Document when typeof operands are evaluated,
29797 that condition of __builtin_choose_expr is an integer constant
29798 expression, and more about use of __builtin_constant_p in
29799 initializers.
29800
5babbcc0
RG
298012009-03-29 Richard Guenther <rguenther@suse.de>
29802
29803 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
29804 propagate addresses of array references.
29805
0340f2ba
SB
298062009-03-29 Steven Bosscher <steven@gcc.gnu.org>
29807
29808 * regmove.c (perhaps_ends_bb_p): Remove.
29809 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
29810 from INSN and check that the main loop stays within that basic block.
29811 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
29812 (regmove_forward_pass): Split out from regmove_optimize. Use
29813 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
29814 (regmove_backward_pass): Split out from regmove_optimize. Use
29815 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
29816 (regmove_optimize): Simplify.
29817
eeae74a1
L
298182009-03-29 H.J. Lu <hongjiu.lu@intel.com>
29819
29820 PR target/39545
29821 * config/i386/i386.c (classify_argument): Ignore flexible array
29822 member in struct and warn ABI change.
29823
a24078b2
L
298242009-03-29 H.J. Lu <hongjiu.lu@intel.com>
29825
29826 * config/i386/i386-protos.h (ix86_agi_dependent): New.
29827
29828 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
29829 (ix86_adjust_cost): Updated.
29830
a8da523f
JH
298312009-03-29 Jan Hubicka <jh@suse.cz>
29832
29833 PR middle-end/28850
29834 * tree-pass.h (pass_cleanup_eh): New function.
29835 (remove_unreachable_regions): Break code handling RTL
29836 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
29837 that can not be reached by runtime.
29838 (can_be_reached_by_runtime): New function.
29839 (label_to_region_map): New function.
29840 (num_eh_regions): New function.
29841 (rtl_remove_unreachable_regions): New function.
29842 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
29843 (remove_eh_region): New function.
29844 * except.h: Include sbitmap and vecprim.
29845 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
29846 num_eh_regions): Declare.
29847 * passes.c (init_optimization_passes): Schedule cleanup_eh.
ba20e309 29848 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
a8da523f
JH
29849 * tree-eh.c (tree_remove_unreachable_handlers): New function.
29850 (tree_empty_eh_handler_p): New function.
29851 (cleanup_empty_eh): New function.
29852 (cleanup_eh): New function.
29853 (pass_cleanup_eh): New function.
29854
98f358e5
JH
298552009-03-29 Jan Hubicka <jh@suse.cz>
29856
29857 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
29858 for removed regions.
29859
13a9fa44
JH
298602009-03-29 Jan Hubicka <jh@suse.cz>
29861
29862 * except.c (dump_eh_tree): Dump all datastructures.
29863
e38cf733
JH
298642009-03-29 Jan Hubicka <jh@suse.cz>
29865
29866 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
29867 (duplicate_eh_regions_1): Likewise.
29868 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
29869 vector; call EH verification.
29870 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
29871 Be ready for region being removed.
29872
12802c2b
JH
298732009-03-29 Jan Hubicka <jh@suse.cz>
29874
29875 * bitmap.c (bitmap_last_set_bit): New function.
29876 * bitmap.h (bitmap_last_set_bit): Declare.
29877
4ea80a41
DA
298782009-03-29 David Ayers <ayers@fsfe.org>
29879
29880 PR objc/27377
29881 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
29882 by calling objc_compare_types and surpress warnings about
29883 incompatible C pointers that are compatible ObjC pointers.
2ba9daa7 29884
4ea80a41 298852009-03-29 Adam Nemet <anemet@caviumnetworks.com>
3dc9eaa6
AN
29886
29887 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
29888 call initialize_inline_failed.
29889 (initialize_inline_failed): Move it from here ...
29890 * cgraph.c (initialize_inline_failed): ... to here.
29891 (cgraph_create_edge): Call initialize_inline_failed rather than
29892 setting inline_failed directly.
29893
7fb0ee07
BE
298942009-03-29 Ben Elliston <bje@au.ibm.com>
29895
29896 PR target/32542
29897 * sysv4.opt (msdata): Improve comment.
29898 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
29899 * sysv4.h (SVR4_ASM_SPEC): Likewise.
29900
0be77bf2
BE
299012009-03-29 Ben Elliston <bje@au.ibm.com>
29902
29903 PR target/30451
29904 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
29905 load and store attributes.
29906
593812b6
BE
299072009-03-29 Ben Elliston <bje@au.ibm.com>
29908
29909 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
29910 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
29911 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
29912 * doc/extend.texi (X86 Built-in Functions): Add index entries for
29913 __builtin_infq and __builtin_huge_valq.
29914
8272d11d
AS
299152009-03-28 Anatoly Sokolov <aesok@post.ru>
29916
29917 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
29918 atmega8m1 devices.
29919 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
29920 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
29921
74fe548b
XDL
299222009-03-28 Xinliang David Li <davidxl@google.com>
29923
2ba9daa7 29924 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
74fe548b
XDL
29925 (do_dbg_cnt): New function.
29926
33977f81
JH
299272009-03-28 Jan Hubicka <jh@suse.cz>
29928
29929 Merge from pretty-ipa:
29930
29931 2009-03-27 Jan Hubicka <jh@suse.cz>
ba20e309 29932
33977f81
JH
29933 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
29934 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
29935 * passes.c (function_called_by_processed_nodes_p): New.
29936 * ipa-pure-const.c (check_call): Fix handling of operands.
29937 (analyze_function): Dump debug output for skipped bodies.
29938 (local_pure_const): Use function_called_by_processed_nodes_p.
29939 * dwarf2out.c (reference_to_unused): Use output.
29940 * passes.c (do_per_function_toporder): Likewise.
29941
29942 2008-11-12 Jan Hubicka <jh@suse.cz>
29943
29944 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
29945 * ipa-pure-const.c (funct_state_d): Add can throw field; make
29946 state_set_in_source enum
29947 (check_decl): Ignore memory tags; do not set fake looping flags;
29948 dump diagnostics.
29949 (check_operand, check_tree, check_rhs_var, check_lhs_var,
29950 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
29951 (check_call, analyze_function): Rewrite.
29952 (check_stmt): New.
29953 (add_new_function): Update call of analyze_function.
29954 (generate_summary): Add call of analyze_function.
29955 (propagate): Propagate can_throw; handle state_set_in_source correctly.
29956 (local_pure_const): New function.
29957 (pass_local_pure_const): New pass.
29958 * ipa-inline.c (inline_transform): Set after_inlining.
29959 * tree-eh.c (stmt_can_throw_external): New.
29960 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
29961 work with aliasing built.
29962 * tree-flow.h (stmt_can_throw_external): New.
29963 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
29964 and local pure/const pass in early and late optimization queue.
ba20e309 29965
617f3897
MJ
299662009-03-28 Martin Jambor <mjambor@suse.cz>
29967
29968 * fold-const.c (get_pointer_modulus_and_residue): New parameter
29969 allow_func_align.
29970 (fold_binary): Allow function decl aligment consideration is the
29971 second argument is integer constant one.
29972 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
29973 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
29974 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
29975
fe89fbc5
JH
299762009-03-28 Jan Hubicka <jh@suse.cz>
29977
29978 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
29979 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
29980 * function.h (rtl_data): Add nothrow flag.
29981 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
29982 set DECL_NOTHROW for AVAILABLE functions.
29983
574872ff
JJ
299842009-03-28 Jakub Jelinek <jakub@redhat.com>
29985
b3bf8855
JJ
29986 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
29987 following vector keyword has expansion starting with pixel or bool
29988 keyword, expand vector to __vector and pixel or bool to __pixel or
29989 __bool.
29990
574872ff
JJ
29991 PR c++/39554
29992 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
29993 warn_if_disallowed_function_p): Removed.
29994 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
29995 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
29996 warning_if_disallowed_function_p.
29997 * flags.h (warn_if_disallowed_function_p,
29998 warn_disallowed_functions): Removed.
29999 * common.opt (Wdisallowed-function-list=): Removed.
30000 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
30001
b005da11
RG
300022009-03-28 Richard Guenther <rguenther@suse.de>
30003
30004 PR tree-optimization/38723
30005 * tree-ssa-pre.c (compute_avail): Add all default definitions to
30006 the entry block.
30007
1de812a6
JH
300082009-03-28 Jan Hubicka <jh@suse.cz>
30009
30010 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
30011 test introduced by my previous patch.
30012
fbb789d4
RG
300132009-03-28 Richard Guenther <rguenther@suse.de>
30014
30015 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
30016 the PHIs value undefined.
30017
6f1873a1
JH
300182009-03-28 Jan Hubicka <jh@suse.cz>
30019
30020 * tree-pass.h (pass_fixup_cfg): New pass.
30021 * ipa-inline.c (inline_transform): Set
30022 always_inline_functions_inlined/after_inlining.
30023 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
30024 (pass_fixup_cfg): New pass.
30025 * passes.c (init_optimization_passes): Add fixup_cfg.
30026
17021bc8
RG
300272009-03-28 Richard Guenther <rguenther@suse.de>
30028
30029 PR tree-optimization/38458
30030 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
30031 argument use the arguments copy-of value.
30032
e8114fba
RG
300332009-03-28 Richard Guenther <rguenther@suse.de>
30034
30035 PR tree-optimization/38180
30036 * tree-ssa-ccp.c (get_default_value): Simplify.
30037 (likely_value): Likewise.
30038 (surely_varying_stmt_p): Properly handle VOP case.
30039 (ccp_initialize): Likewise.
30040 (ccp_fold): Handle propagating through *&.
30041 (fold_const_aggregate_ref): Also handle decls.
30042
257eb6e3
JH
300432009-03-28 Jan Hubicka <jh@suse.cz>
30044
30045 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
30046 * cgraph.h (cgraph_node): Likewise.
30047 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
30048 (cgraph_reset_node): Use process flag.
30049 (cgraph_mark_functions_to_output): Likewise.
30050 (cgraph_expand_function): Likewise.
30051 (cgraph_expand_all_functions): Likewise.
30052 (cgraph_output_in_order): Likewise.
30053 * dwarf2out.c (reference_to_unused): Likewise.
30054 * passes.c do_per_function_toporder): Likewise.
30055
61a05df1
JH
300562009-03-28 Jan Hubicka <jh@suse.cz>
30057
30058 Bring from lto-branch:
ba20e309 30059
61a05df1
JH
30060 2008-09-03 Doug Kwan <dougkwan@google.com>
30061
30062 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
30063 enums instead of reason strings.
30064 * cgraph.c (cgraph_create_edge): Same.
30065 (cgraph_inline_failed_string): New function.
30066 * cgraph.h (cgraph_inline_failed_t): New enum type.
30067 (cgraph_inline_failed_string): New prototype.
30068 (struct cgraph_edge): Change type of INLINED_FAILED from constant
30069 char pointer to cgraph_inline_failed_t.
30070 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
30071 (cgraph_default_inline_p): Ditto.
60839f5d 30072 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
61a05df1
JH
30073 to cgraph_inline_failed_t pointer.
30074 * cif-code.def: New file.
30075 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
30076 reason string.
30077 (cgraph_check_inline_limits): Change type of REASON to pointer to
30078 cgraph_inline_failed_t. Replace reason strings with enums.
30079 (cgraph_default_inline_p): Ditto.
30080 (cgraph_recursive_inlining_p): Ditto.
30081 (update_caller_keys): Change type of FAILED_REASON to
30082 cgraph_inline_failed_t.
30083 (cgraph_set_inline_failed): Change type of REASON to pointer to
30084 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
30085 convert enums to strings for text output.
30086 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
30087 to be of type cgraph_inline_failed_t. Replace reason strings with
30088 enums. Call cgraph_inline_failed_string to covert enums
30089 to strings for text output.
30090 (cgraph_decide_inlining): Replace reason strings with enums.
30091 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
30092 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
30093 for text output.
30094 * tree-inline.c (expand_call_inline): Change type of REASON
30095 to cgraph_inline_failed_t. Replace reason strings with enums.
30096 Call cgraph_inline_failed_string for text output.
30097 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
30098 (cgraph.o): Ditto.
30099
144e8aac
JH
301002009-03-28 Jan Hubicka <jh@suse.cz>
30101
30102 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
30103 cgraph_clone_node): Remove master clone handling.
30104 (cgraph_is_master_clone, cgraph_master_clone): Remove.
30105 * cgraph.h (master_clone): Remove.
30106 (cgraph_is_master_clone, cgraph_master_clone): Remove.
30107 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
30108 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
30109
4a371c8d
JH
301102009-03-28 Jan Hubicka <jh@suse.cz>
30111
30112 * cgraph.c (cgraph_function_body_availability): Functions declared
30113 inline are always safe to assume that it is not going to be replaced.
30114
6cdb0ee3
RG
301152009-03-28 Richard Guenther <rguenther@suse.de>
30116
30117 PR tree-optimization/38513
30118 * tree-ssa-pre.c (eliminate): Remove redundant stores.
30119 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
30120 EXC_PTR_EXPR and FILTER_EXPR.
30121 (get_ref_from_reference_ops): Likewise.
30122
8ca1fd76
RG
301232009-03-28 Richard Guenther <rguenther@suse.de>
30124
30125 PR tree-optimization/38968
30126 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
30127 Use FLOOR_MOD_EXPR to compute misalignment.
30128
a254e44d
RG
301292009-03-28 Richard Guenther <rguenther@suse.de>
30130
30131 PR tree-optimization/37795
30132 * tree.h (combine_comparisons): Declare.
30133 * fold-const.c (combine_comparisons): Export.
30134 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
30135 comparisons.
30136 (ifcombine_iforif): Use combine_comparisons.
30137
a8ee227c
JH
301382009-03-28 Jan Hubicka <jh@suse.cz>
30139
30140 * tree-eh.c (inlinable_call_p): New function.
30141 (make_eh_edges): Use it.
30142 (verify_eh_edges): Use it.
30143 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
30144 * except.c (reachable_next_level): Add inlinable_function argument
30145 (sjlj_find_directly_reachable_regions): Update.
30146 (add_reachable_handler): Do not set saw_any_handlers.
30147 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
30148 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
30149 Add new inlinable call parameter.
30150 (can_throw_internal, can_throw_external): Update.
30151 * except.h (can_throw_internal_1, can_throw_external_1,
30152 foreach_reachable_handler): Update declaration.
30153
52c0e446
JM
301542009-03-28 Joseph Myers <joseph@codesourcery.com>
30155
30156 * config/arm/t-arm-coff, config/h8300/coff.h,
30157 config/i386/i386-aout.h, config/i386/i386-coff.h,
30158 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
30159 config/pdp11/2bsd.h, config/rs6000/aix41.h,
30160 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
30161 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
30162 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
30163 sys-types.h: Remove.
30164 * Makefile.in: Remove protoize and fixproto support and references
30165 in comments.
30166 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
30167 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
30168 Remove.
30169 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
30170 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
30171 unprotoize$(exeext).
30172 (rest.encap): Don't depend on $(STMP_FIXPROTO)
30173 (.PHONY): Don't depend on proto.
30174 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
30175 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
30176 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
30177 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
30178 build/gen-protos.o, build/scan.o, xsys-protos.h,
30179 build/fix-header$(build_exeext), build/fix-header.o,
30180 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
30181 stmp-install-fixproto): Remove.
30182 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
30183 SYSCALLS.c or fixproto files.
30184 (install-common): Don't install protoize.
30185 (install-headers-tar, install-headers-cpio, install-headers-cp):
30186 Don't depend on $(STMP_FIXPROTO).
30187 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
30188 install fixproto files or write out fixproto settings.
30189 (uninstall): Don't uninstall protoize.
30190 * config.gcc (use_fixproto): Remove.
30191 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
30192 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
30193 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
30194 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
30195 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
30196 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
30197 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
30198 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
30199 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
30200 * config/t-vxworks (STMP_FIXPROTO): Remove.
30201 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
30202 STMP_FIXPROTO): Remove.
30203 * config.in, configure: Regenerate.
30204 * crtstuff.c (gid_t, uid_t): Don't undefine.
30205 * doc/install.texi: Change m68k-coff to m68k-elf in example.
30206 (arm-*-coff, arm-*-aout: Remove target entries.
30207 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
30208 Remove mention of AIX 4.1.
30209 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
30210 * doc/invoke.texi (Running Protoize): Remove.
30211 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
30212 (Protoize Caveats): Remove.
30213 * tsystem.h: Update comments on headers assumed to exist.
30214
20a07f44
VM
302152009-03-27 Vladimir Makarov <vmakarov@redhat.com>
30216
30217 * genautomata.c: Add a new year to the copyright. Add a new
30218 reference.
30219 (struct insn_reserv_decl): Add comments for member bypass_list.
30220 (find_bypass): Remove.
30221 (insert_bypass): New.
30222 (process_decls): Use insert_bypass.
30223 (output_internal_insn_latency_func): Output all bypasses with the
30224 same input insn in one switch case.
30225
30226 * rtl.def (define_bypass): Describe bypass choice.
30227 * doc/md.texi (define_bypass): Ditto.
30228
3a0d06c1
RB
302292009-03-27 Richard Guenther <rguenther@suse.de>
30230
30231 * gimplify.c (mark_addressable): Export.
30232 * tree-flow.h (mark_addressable): Declare.
30233 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
30234 * tree-ssa.c (verify_phi_args): Verify that address taken
30235 variables have TREE_ADDRESSABLE set.
30236
302372009-03-27 Richard Guenther <rguenther@suse.de>
30238
30239 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
30240 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
30241 Do not mark decls TREE_ADDRESSABLE.
30242 (build_fold_addr_expr): Adjust.
30243 (fold_addr_expr): Remove.
30244 (fold_unary): Use build_fold_addr_expr.
30245 (fold_comparison): Likewise.
30246 (split_address_to_core_and_offset): Likewise.
30247 * coverage.c (tree_coverage_counter_addr): Mark the array decl
30248 TREE_ADDRESSABLE.
30249 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
30250 (gimplify_modify_expr_to_memcpy): Mark source and destination
30251 addressable.
30252 * omp-low.c (create_omp_child_function): Mark the object decl
30253 TREE_ADDRESSABLE.
30254 (lower_rec_input_clauses): Mark the var we take the address of
30255 TREE_ADDRESSABLE.
30256 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
30257
2ac26e15
L
302582009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30259
30260 PR middle-end/39315
30261 * cfgexpand.c (expand_one_stack_var_at): Change alignment
30262 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
30263
472c7fbd
RG
302642009-03-27 Richard Guenther <rguenther@suse.de>
30265
30266 PR tree-optimization/39120
30267 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
30268 constraints.
30269 (handle_lhs_call): Process return constraints. Add escape
30270 constraints if necessary.
30271 (handle_const_call): Fill out return constraints. Make nested
30272 case more precise. Avoid consttmp if possible.
30273 (handle_pure_call): Fill out return constraints. Avoid
30274 callused if possible.
30275 (find_func_aliases): Simplify call handling.
30276
302772009-03-27 Richard Guenther <rguenther@suse.de>
30278
30279 PR tree-optimization/39120
30280 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
30281 as a representative.
30282 (solve_graph): Do propagate CALLUSED.
30283 (handle_pure_call): Use a scalar constraint from CALLUSED for
30284 the return value.
30285 (find_what_p_points_to): CALLUSED shall not appear in poins-to
30286 solutions.
30287
d9223014
L
302882009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30289
30290 PR c/39323
30291 * c-common.c (handle_aligned_attribute): Properly check alignment
30292 overflow. Use (1U << i) instead of (1 << i).
30293
ba20e309 30294 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
d9223014
L
30295
30296 * expr.h (get_mem_align_offset): Updated.
30297
30298 * tree.h (tree_decl_common): Change align to "unsigned int" and
30299 move it before pointer_alias_set.
30300
689b689c
L
303012009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30302 Jakub Jelinek <jakub@redhat.com>
30303
30304 PR target/38034
30305 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
30306 gr_register_operand with gr_reg_or_0_operand.
30307 (cmpxchg_rel_di): Likewise.
30308 (sync_lock_test_and_set<mode>): Likewise.
30309
c619e982
L
303102009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30311
30312 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
30313 (true_regnum): Likewise.
30314
30315 * rtlanal.c (subreg_info): Moved to ...
30316 * rtl.h (subreg_info): Here. New.
30317 (subreg_get_info): New.
30318
30319 * rtlanal.c (subreg_get_info): Make it extern.
30320
51212b32
L
303212009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30322
30323 PR target/39472
30324 * config/i386/i386.c (ix86_abi): New.
30325 (override_options): Handle -mabi=.
ba20e309 30326 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
51212b32
L
30327 (ix86_call_abi_override): Likewise.
30328 (init_cumulative_args): Likewise.
30329 (function_arg_advance): Likewise.
30330 (function_arg_64): Likewise.
30331 (function_arg): Likewise.
30332 (ix86_pass_by_reference): Likewise.
30333 (ix86_function_value_regno_p): Likewise.
30334 (ix86_build_builtin_va_list_abi): Likewise.
30335 (setup_incoming_varargs_64): Likewise.
30336 (is_va_list_char_pointer): Likewise.
30337 (ix86_init_machine_status): Likewise.
ba20e309 30338 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
51212b32
L
30339 (ix86_function_type_abi): Return enum calling_abi. Rewrite
30340 for 64bit. Replace DEFAULT_ABI with ix86_abi.
ba20e309 30341 (ix86_function_abi): Make it static and return enum calling_abi.
51212b32
L
30342 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
30343 with ix86_abi.
30344 (ix86_fn_abi_va_list): Updated.
30345
30346 * config/i386/i386.h (ix86_abi): New.
30347 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
30348 (CONDITIONAL_REGISTER_USAGE): Likewise.
30349 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
30350 (machine_function): Likewise.
30351
30352 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
30353 with ix86_abi.
30354 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
30355 (STACK_BOUNDARY): Likewise.
30356 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
30357
30358 * config/i386/i386.opt (mabi=): New.
30359
30360 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
30361 return enum calling_abi.
30362 (ix86_function_type_abi): Likewise.
30363 (ix86_function_abi): Removed.
30364
30365 * doc/invoke.texi: Document -mabi= option for x86.
30366
7338ea63
KG
303672009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
30368
30369 * builtins.c (real_dconstp): Delete.
30370 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
30371
68599f33
DS
303722009-03-27 Dodji Seketeli <dodji@redhat.com>
30373 Jakub Jelinek <jakub@redhat.com>
30374
30375 PR debug/37959
30376 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
30377 (gen_subprogram_die): When a function is explicit, generate the
30378 DW_AT_explicit attribute.
30379 * langhooks.h (struct lang_hooks_for_decls): Add
30380 function_decl_explicit_p langhook.
30381 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
30382 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
30383
9f5e9983
JJ
303842009-03-27 Jakub Jelinek <jakub@redhat.com>
30385
64d7685c
JJ
30386 * builtins.c (fold_builtin_memory_op): Optimize memmove
30387 into memcpy if we can prove source and destination don't overlap.
30388
9f5e9983
JJ
30389 * tree-inline.c: Include gt-tree-inline.h.
30390 (clone_fn_id_num): New variable.
30391 (clone_function_name): New function.
30392 (tree_function_versioning): Use it.
30393 * Makefile.in (GTFILES): Add tree-inline.c.
30394
e54d52a8
MM
303952009-03-27 Mark Mitchell <mark@codesourcery.com>
30396
30397 * BASE-VER: Change to 4.5.0.
30398
e9d51dc6
XDL
303992009-03-27 Xinliang David Li <davidxl@google.com>
30400
30401 PR tree-optimization/39557
30402 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
30403
4577cea1
XDL
304042009-03-27 Xinliang David Li <davidxl@google.com>
30405
30406 PR tree-optimization/39548
2ba9daa7 30407 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
4577cea1
XDL
30408 candidate check.
30409
0f7464f4
L
304102009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30411
30412 * c-common.c (pointer_int_sum): Use %wd on return from
30413 tree_low_cst.
30414
a8847a7f
L
304152009-03-27 H.J. Lu <hongjiu.lu@intel.com>
30416
30417 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
30418 on return from tree_low_cst.
30419
b0957daf
AP
304202009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
30421
30422 PR c++/36799
ba20e309
UB
30423 * ginclude/stdarg.h (va_copy): Define also for
30424 __GXX_EXPERIMENTAL_CXX0X__.
b0957daf 30425
a5f805df
MLI
304262009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
30427
30428 PR c++/35652
30429 * builtins.h (c_strlen): Do not warn here.
30430 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
30431 * c-common.c (pointer_int_sum): Take an explicit location.
30432 Warn about offsets out of bounds.
30433 * c-common.h (pointer_int_sum): Adjust declaration.
30434
6f401211
RW
304352009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30436
a5f805df
MLI
30437 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
30438 markup glitch.
6f401211 30439
5a59b39e
JJ
304402009-03-26 Jakub Jelinek <jakub@redhat.com>
30441
30442 PR c++/39554
30443 * opts.c (warn_if_disallowed_function_p): Don't assume
30444 get_callee_fndecl must return non-NULL.
30445
d5f89b53
VM
304462009-03-26 Vladimir Makarov <vmakarov@redhat.com>
30447
30448 PR rtl-optimization/39522
30449 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
30450 when reg_reloaded_valid is set.
30451
61238a79
UW
304522009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30453
30454 * config/spu/divv2df3.c: New file.
30455 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
30456 (DPBIT_FUNCS): Filter out _div_df.
30457
03f8829b
BS
304582009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
30459
30460 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
30461 a jump insn, count that jump in the distance to the loop start.
30462
9fdcdc74
KK
304632009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
30464
30465 PR target/39523
30466 * config/sh/sh.c (calc_live_regs): Fix condition for global
30467 registers except PIC_OFFSET_TABLE_REGNUM.
30468
46994828
KT
304692009-03-25 Kai Tietz <kai.tietz@onevision.com>
30470
30471 PR/39518
30472 * doc/invoke.texi (-mconsole): New.
30473 (-mcygwin): New.
30474 (-mno-cygwin): New.
30475 (-mdll): New.
30476 (-mnop-fun-dllimport): New.
30477 (-mthread): New.
30478 (-mwin32): New.
30479 (-mwindows): New.
30480 (sub section "i386 and x86-64 Windows Options"): New.
30481
60839f5d 304822009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
370017b4
RC
30483
30484 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
30485 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
30486
ae560440
RG
304872009-03-25 Richard Guenther <rguenther@suse.de>
30488
30489 PR middle-end/39497
30490 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
30491 of -Wno-error.
30492
cd510f15
AM
304932009-03-25 Andrey Belevantsev <abel@ispras.ru>
30494
30495 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
30496 neither of haifa/selective schedulers are working.
30497
44ab0f0e
RW
304982009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30499
30500 * doc/invoke.texi (Debugging Options): Fix description of
30501 -fno-merge-debug-strings.
30502
ad9646c7
HPN
305032009-03-24 Hans-Peter Nilsson <hp@axis.com>
30504
e6142656
HPN
30505 * config/cris/libgcc.ver: New version-script.
30506 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
30507
ad9646c7
HPN
30508 * configure.ac <GAS features, nop mnemonic>: Add pattern
30509 crisv32-*-* for "nop".
ba20e309 30510 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
ad9646c7
HPN
30511 * configure: Regenerate.
30512
09ac4473
IR
305132009-03-24 Ira Rosen <irar@il.ibm.com>
30514
30515 PR tree-optimization/39529
30516 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
30517 mark_sym_for_renaming for the tag copied to the new vector
30518 pointer.
30519
d94a427e
AL
305202009-03-24 Arthur Loiret <aloiret@debian.org>
30521
ba20e309 30522 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
d94a427e
AL
30523 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
30524 EXTRA_SPEC_FUNCTIONS.
30525 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
30526 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
30527 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
30528 -march and -mtune options.
30529
60839f5d 305302009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
722d07aa
RC
30531
30532 * config/m68k/t-rtems: Add m5329 multilib.
30533
603f5959
DS
305342009-03-24 Dodji Seketeli <dodji@redhat.com>
30535 Jakub Jelinek <jakub@redhat.com>
30536
30537 PR debug/39524
30538 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
30539 nodes.
30540
c5cdb03f
JJ
305412009-03-23 Jakub Jelinek <jakub@redhat.com>
30542
30543 PR c/39495
30544 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
30545 instead of c_parser_expression_conv, if original_code isn't one of the
30546 4 allowed comparison codes, fail.
30547
3691626c
RG
305482009-03-23 Richard Guenther <rguenther@suse.de>
30549
30550 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
30551 * tree.h (struct tree_type): Likewise.
30552 * reload.h (struct insn_chain): Likewise.
30553 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
30554 * function.h (struct function): Likewise.
30555 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
30556
88ccb72a
JJ
305572009-03-23 Jakub Jelinek <jakub@redhat.com>
30558
30559 PR tree-optimization/39516
30560 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
30561
60839f5d 305622009-03-23 Bingfeng Mei <bmei@broadcom.com>
a583a67e 30563
2ba9daa7 30564 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
a583a67e
BM
30565 should be set true if BITS_PER_WORD of target is bigger than 32
30566
f82162f8
HPN
305672009-03-22 Hans-Peter Nilsson <hp@axis.com>
30568
30569 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
30570 Translate -B-options to -rpath-link. Correct existing
30571 rpath-link and conditionalize on !nostdlib.
30572
048fd785
RW
305732009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30574
30575 * doc/extend.texi (Function Attributes, Variable Attributes):
30576 Fix typos.
30577 * doc/invoke.texi (Debugging Options, Optimize Options)
30578 (i386 and x86-64 Options, MCore Options): Likewise.
30579
6e75c1a9
JJ
305802009-03-20 Jakub Jelinek <jakub@redhat.com>
30581
30582 PR debug/37890
30583 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
30584 it for block local namespace aliases.
30585 (gen_decl_die): Pass context_die to gen_namespace_die.
30586
ea1199ee
JJ
305872009-03-19 Jakub Jelinek <jakub@redhat.com>
30588
30589 PR c/39495
30590 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
30591 minimum or maximum value.
30592
58929c10
AO
305932009-03-19 Alexandre Oliva <aoliva@redhat.com>
30594
30595 * reginfo.c (globalize_reg): Recompute derived reg sets.
30596
60839f5d 305972009-03-19 Ozkan Sezer <sezeroz@gmail.com>
234952b3
OS
30598
30599 PR target/39063
30600 * libgcc2.c (mprotect): Do not use signed arguments for
30601 VirtualProtect, use DWORD arguments. Also fix the 'may
30602 be used uninitialized' warning for the np variable.
30603
f57c2f04
JJ
306042009-03-19 Jakub Jelinek <jakub@redhat.com>
30605
30606 PR target/39496
30607 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
30608 functions using regparm calling conventions when not optimizing.
30609 (ix86_function_sseregparm): Similarly for sseregparm calling
30610 conventions.
30611
9e517d61
LF
306122009-03-19 Li Feng <nemokingdom@gmail.com>
30613
30614 PR middle-end/39500
30615 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
30616 dependence if the first conflict is after niter iterations.
30617
8ef20026
HPN
306182009-03-19 Hans-Peter Nilsson <hp@axis.com>
30619
30620 PR middle-end/38609
30621 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
30622 functions with dynamic stack-pointer adjustments.
30623
64e4a1a6
BE
306242009-03-19 Ben Elliston <bje@au.ibm.com>
30625
30626 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
30627 option; change to -msdata=data.
30628
9a0f3e86
RW
306292009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30630
30631 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
30632 and -fopenmp.
30633
09bc5979
EB
306342009-03-18 Eric Botcazou <ebotcazou@adacore.com>
30635
30636 PR target/35180
30637 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
30638
332459cd
SL
306392009-03-18 Sandra Loosemore <sandra@codesourcery.com>
30640
30641 * doc/invoke.texi (Code Gen Options): Expand discussion of
30642 -fno-common.
30643
8f5929e1
JJ
306442009-03-18 Jakub Jelinek <jakub@redhat.com>
30645
30646 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
30647 * matrix-reorg.c (struct matrix_info): Likewise.
30648 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
30649 * rtl.h (struct mem_attrs): Likewise.
30650 * df.h (struct df): Likewise.
30651 * tree-data-ref.h (struct data_dependence_relation): Likewise.
30652 * ira-int.h (struct ira_allocno): Likewise.
30653 * df-scan.c (struct df_collection_rec): Likewise.
30654 * ira.c (struct equivalence): Likewise.
30655 * function.c (struct temp_slot): Likewise.
30656 * cfgloop.h (struct loop): Likewise.
30657
d130d647
JJ
30658 PR debug/39485
30659 * function.c (use_register_for_decl): When not optimizing, disregard
30660 register keyword for variables with types containing methods.
30661
9968d233
SP
306622009-03-18 Sebastian Pop <sebastian.pop@amd.com>
30663
30664 PR middle-end/39447
30665 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
30666 (is_simple_operand): Call contains_component_ref_p before calling data
30667 reference analysis that would fail on COMPONENT_REFs.
30668
30669 * tree-vrp.c (search_for_addr_array): Fix formatting.
30670
69484bfd
RG
306712009-03-18 Richard Guenther <rguenther@suse.de>
30672
30673 * tree-vect-transform.c (vect_loop_versioning): Fold the
30674 generated comparisons.
30675 * tree-vectorizer.c (set_prologue_iterations): Likewise.
30676 (slpeel_tree_peel_loop_to_edge): Likewise.
30677
66811228
RW
306782009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30679
0631b69f
RW
30680 PR middle-end/37805
30681 * opts.c (print_specific_help): In addition to `undocumented',
30682 accept `separate' and `joined' flags if passed alone. Describe
30683 output by the first matched one of those.
30684 (common_handle_option): Skip over empty strings.
30685 * gcc.c (display_help): Fix help string for `--help='.
30686 * doc/invoke.texi (Option Summary, Overall Options): With
30687 `--help=', classes and qualifiers can both be repeated, but
30688 only the latter can be negated. One should not pass only
30689 negated qualifiers. Fix markup and examples.
30690
66811228
RW
30691 Revert
30692 2008-10-14 Jakub Jelinek <jakub@redhat.com>
30693 PR middle-end/37805
30694 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
30695 and -fhelp=separate.
30696
3c072c6b
JY
306972009-03-17 Jing Yu <jingyu@google.com>
30698
30699 PR middle-end/39378
80c65208
JY
30700 * function.h (struct rtl_data): Move is_thunk from here...
30701 (struct function): ...to here.
30702 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3c072c6b
JY
30703 * varasm.c (assemble_start_function): Change is_thunk from crtl to
30704 cfun.
80c65208
JY
30705 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
30706 cfun.
30707 (alpha_does_function_need_gp, alpha_start_function): Likewise.
30708 (alpha_output_function_end_prologue): Likewise.
30709 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
30710 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
30711 (rs6000_output_function_epilogue): Likewise.
30712 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3c072c6b 30713
9ade279b
UB
307142009-03-17 Uros Bizjak <ubizjak@gmail.com>
30715
30716 PR target/39482
30717 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
30718 from different units in a single alternative.
30719 (*truncdfsf_i387): Ditto.
30720 (*truncxfsf2_mixed): Ditto.
30721 (*truncxfdf2_mixed): Ditto.
30722
16e60c17
JJ
307232009-03-17 Jakub Jelinek <jakub@redhat.com>
30724
98381eb4
JJ
30725 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
30726 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
30727
df5deb18
JJ
30728 PR debug/39474
30729 * tree-ssa-live.c (remove_unused_locals): Don't remove local
30730 unused non-artificial variables when not optimizing.
30731
a3f596ba
JJ
30732 PR debug/39471
30733 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
30734 DW_TAG_imported_module even if decl is IMPORTED_DECL with
30735 NAMESPACE_DECL in its DECL_INITIAL.
30736
6b2b8871
JJ
30737 PR middle-end/39443
30738 * optabs.c (set_user_assembler_libfunc): New function.
30739 * expr.h (set_user_assembler_libfunc): New prototype.
30740 * c-common.c: Include libfuncs.h.
30741 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
30742 for memcmp, memset, memcpy, memmove and abort.
30743 * Makefile.in (c-common.o): Depend on libfuncs.h.
30744
16e60c17
JJ
30745 PR debug/39412
30746 * dwarf2out.c (gen_inlined_enumeration_type_die,
30747 gen_inlined_structure_type_die, gen_inlined_union_type_die,
30748 gen_tagged_type_instantiation_die): Removed.
30749 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
30750 do nothing.
30751
4d936aca
JJ
307522009-03-17 Janis Johnson <janis187@us.ibm.com>
30753
30754 PR testsuite/38526
30755 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
30756 its use.
30757 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
30758 (check-parallel-%): Ditto.
30759 (check-consistency): Ditto.
30760
4e9b2e50
KT
307612009-03-17 Kai Tietz <kai.tietz@onevision.com>
30762
30763 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
30764 local variable rhs by NULL_TREE.
30765
21440b2d
L
307662009-03-17 H.J. Lu <hongjiu.lu@intel.com>
30767
30768 PR target/39477
9ade279b 30769 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
21440b2d 30770
d8905c6a
L
307712009-03-17 H.J. Lu <hongjiu.lu@intel.com>
30772
30773 PR target/39476
9ade279b 30774 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
d8905c6a
L
30775
307762009-03-17 H.J. Lu <hongjiu.lu@intel.com>
435a61d3
L
30777
30778 PR target/39473
30779 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
30780 for ms->sysv ABI calls only in 64bit mode.
30781
30782 * config/i386/i386.md (untyped_call): Support 32bit.
30783
cdcabece
L
307842009-03-16 H.J. Lu <hongjiu.lu@intel.com>
30785
30786 * doc/extend.texi: Replace x86_65 with x86_64.
30787
97b4ba9f
JJ
307882009-03-16 Jakub Jelinek <jakub@redhat.com>
30789
30790 PR tree-optimization/39455
30791 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
30792 mismatches for POINTER_TYPE_P (type).
30793 (number_of_iterations_le): Likewise.
30794
60839f5d 307952009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
83c191e1
HS
30796
30797 * config/picochip/picochip.c: Removed profiling support.
30798 * config/picochip/picochip.md: Removed profiling instruction.
30799 * config/picochip/picochip.h: Removed profiling builtin.
30800
f38095f3
JM
308012009-03-16 Joseph Myers <joseph@codesourcery.com>
30802
30803 * doc/install.texi (--with-host-libstdcxx): Document.
30804
2cb4817b
AS
308052009-03-14 Anatoly Sokolov <aesok@post.ru>
30806
30807 PR target/34299
30808 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
30809 generate a warning if the function name does not begin with
30810 "__vector" and the function has either the 'signal' or 'interrupt'
30811 attribute, from here to ...
30812 (avr_declare_function_name): ...here. New function.
30813 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
30814 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
30815
39b2ac74
JJ
308162009-03-14 Jakub Jelinek <jakub@redhat.com>
30817
30818 PR bootstrap/39454
30819 * cse.c (fold_rtx): Don't modify original const_arg1 when
30820 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
30821 separate variable instead.
30822 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
30823 from out of range shift counts.
30824 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
30825
ad41bd84 308262009-03-13 Catherine Moore <clm@codesourcery.com>
f7a82dee 30827
60839f5d 30828 * config/i386/x-mingw32 (host-mingw32.o): Replace
f7a82dee
CM
30829 diagnostic.h with $(DIAGNOSTIC_H).
30830
ad41bd84 308312009-03-12 Jakub Jelinek <jakub@redhat.com>
03a18198
JJ
30832
30833 PR target/39431
30834 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
30835 predicate.
30836 * config/i386/sync.md (sync_compare_and_swap<mode>,
30837 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
30838 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
30839 into a register.
30840 (sync_double_compare_and_swapdi_pic,
30841 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
30842 cmpxchg8b_pic_memory_operand instead of just memory_operand.
30843
122c59c7
L
308442009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30845
30846 PR target/39445
9ade279b 30847 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
122c59c7 30848
cec8874f
L
308492009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30850
30851 PR target/39327
30852 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
30853 (avx_addsubv4df3): Likewise.
30854 (*avx_addsubv4sf3): Likewise.
30855 (sse3_addsubv4sf3): Likewise.
30856
bbb52802
L
308572009-03-12 H.J. Lu <hongjiu.lu@intel.com>
30858
30859 PR target/38824
9ade279b 30860 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
bbb52802 30861
a812fb07
VM
308622009-03-12 Vladimir Makarov <vmakarov@redhat.com>
30863
30864 PR debug/39432
30865 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
30866 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
30867 registers for allocnos created from user-defined variables.
30868
4caab5ba
UW
308692009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30870
30871 PR target/39181
30872 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
30873 of non-integer mode as well.
30874
498e51ca
AN
308752009-03-11 Adam Nemet <anemet@caviumnetworks.com>
30876
30877 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
30878 for functions for which the parameter types are unknown.
30879
9bfaf89d
JJ
308802009-03-11 Jakub Jelinek <jakub@redhat.com>
30881
30882 PR target/39137
9ade279b 30883 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9bfaf89d
JJ
30884 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
30885 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
30886 * config/i386/i386.c (ix86_local_alignment): For
30887 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
30888 long long variables on the stack to avoid dynamic realignment.
30889 Allow the first argument to be a decl rather than type.
30890 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
30891
18a3bdcb
NC
308922009-03-11 Nick Clifton <nickc@redhat.com>
30893
30894 PR target/5362
40190a76
NC
30895 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
30896 options.
30897 Add description to mno-lsim option.
30898 * config/mcore/mcore.h: Remove comment about deprecated m4align
30899 option.
30900 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
30901 * doc/invoke.texi: Add description of mno-lsim and
30902 mstack-increment options.
30903
18a3bdcb
NC
30904 * config/fr30/fr30.opt: Document the -mno-lsim option.
30905 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
30906 and -mno-lsim options.
30907
dc215785
UW
309082009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30909
30910 * fold-const.c (fold_comparison): Only call fold_inf_compare
30911 if the mode supports infinities.
30912
7716876b
JM
309132009-03-11 Jason Merrill <jason@redhat.com>
30914
30915 PR debug/39086
30916 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
30917 end already did. Notice GIMPLE_CALL modifications of the result.
30918 Don't copy debug information from an ignored decl or a decl from
30919 another function.
30920
ddef83d2
RG
309212009-03-10 Richard Guenther <rguenther@suse.de>
30922 Nathan Froyd <froydnj@codesourcery.com>
30923
30924 PR middle-end/37850
9ade279b 30925 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
ddef83d2
RG
30926 (__divMODE3): Likewise.
30927
9a9ba8d9
JJ
309282009-03-09 Jakub Jelinek <jakub@redhat.com>
30929
30930 PR tree-optimization/39394
30931 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
30932 DECL_SIZE_UNIT of variable length FIELD_DECLs.
30933
929b7fc3
AK
309342009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30935
30936 * recog.c (verfiy_changes): Disallow renaming of hard regs in
30937 inline asms for register asm ("") declarations.
30938
1803581d
EB
309392009-03-09 Eric Botcazou <ebotcazou@adacore.com>
30940
30941 * fold-const.c (fold_unary): Fix comment.
30942
8454d27e
JH
309432009-03-07 Jan Hubicka <jh@suse.cz>
30944
30945 PR target/39361
969a5433
JJ
30946 * tree-inline.c (setup_one_parameter): Do replacement of const
30947 argument by constant in SSA form.
8454d27e 30948
3a695389
UW
309492009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
30950
30951 PR middle-end/38028
30952 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
30953 determine alignment passed to assign_stack_local.
30954 (assign_parms_unsplit_complex): Likewise.
30955 * except.c (sjlj_build_landing_pads): Likewise.
30956
9f0e7885
JJ
309572009-03-06 Jakub Jelinek <jakub@redhat.com>
30958
65401a0b
JJ
30959 PR middle-end/39360
30960 * tree-flow.h (add_referenced_var): Return bool instead of void.
30961 * tree-dfa.c (add_referenced_var): Return result of
30962 referenced_var_check_and_insert call.
30963 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
30964 of referenced_var_check_and_insert.
30965
9f0e7885 30966 PR debug/39372
9ade279b 30967 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9f0e7885
JJ
30968 (gen_variable_die): Emit DW_AT_location on abstract static variable's
30969 DIE, don't emit it if abstract origin already has it.
30970 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
30971 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
30972
3b664bd1
JBG
309732009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
30974
ba20e309 30975 * genpreds.c (needs_variable): Fix parentheses at variable name
3b664bd1
JBG
30976 detection.
30977 (write_tm_constrs_h): Indent generated code.
30978
d8f8ca80
RR
309792009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30980
30981 * doc/extend.texi (Function Attributes): Add documentation
30982 for isr attributes.
30983
6c3d550c
JJ
309842009-03-06 Jakub Jelinek <jakub@redhat.com>
30985
30986 PR debug/39387
30987 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
30988 take locus from its DECL_SOURCE_LOCATION instead of input_location.
30989
f9e96751
BS
309902009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
30991
30992 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
30993 the loop as bad.
30994
ee0ee7e2
JJ
309952009-03-05 Jakub Jelinek <jakub@redhat.com>
30996
30997 PR debug/39379
30998 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
30999 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
31000
6c6094f1
UB
310012009-03-05 Uros Bizjak <ubizjak@gmail.com>
31002
31003 * config/i386/i386.md (R8_REG, R9_REG): New constants.
31004 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
31005 constants instead of magic numbers.
31006 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
31007 (QI_REG_P): Ditto.
31008 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
31009 (x86_64_ms_abi_int_parameter_registers): Ditto.
31010 (x86_64_int_return_registers): Ditto.
09f8a8d3 31011 (ix86_maybe_switch_abi): Ditto.
6c6094f1
UB
31012 (ix86_expand_call): Ditto for clobbered_registers array.
31013 (ix86_hard_regno_mode_ok): Ditto.
31014 (x86_extended_QIreg_mentioned_p): Ditto.
31015
b267bd41
R
310162009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
31017
6c6094f1 31018 PR tree-optimization/39349
1f3ad3f0
R
31019 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
31020
b267bd41
R
31021 * combine.c (gen_lowpart_for_combine): Use omode when generating
31022 clobber.
31023
1242bc9d
R
310242009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
31025
6c6094f1 31026 PR rtl-optimization/39235
1242bc9d
R
31027 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
31028
48f03606
ZD
310292009-03-04 Zdenek Dvorak <ook@ucw.cz>
31030
31031 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
31032
b505e785
RG
310332009-03-04 Richard Guenther <rguenther@suse.de>
31034
31035 PR tree-optimization/39362
31036 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
31037 that occur in abnormal PHIs should be varying.
31038
f017bf5e
ZD
310392009-03-04 Zdenek Dvorak <ook@ucw.cz>
31040
31041 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
31042 Extend comments.
31043 (simple_iv): Take loop as an argument instead of statement.
31044 * tree-scalar-evolution.h (simple_iv): Declaration changed.
31045 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
31046 to simple_iv.
31047 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
31048 Ditto.
31049 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
31050 * matrix-reorg.c (analyze_transpose): Ditto.
31051 * tree-data-ref.c (dr_analyze_innermost): Ditto.
31052 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
31053 * tree-predcom.c (ref_at_iteration): Ditto.
31054 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
31055
6a66f28e
RG
310562009-03-04 Richard Guenther <rguenther@suse.de>
31057
31058 PR tree-optimization/39358
31059 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
31060 escaped_id and callused_id.
31061 (solve_graph): Likewise.
31062
57e454ee
RG
310632009-03-04 Richard Guenther <rguenther@suse.de>
31064
31065 PR tree-optimization/39339
31066 * tree-sra.c (try_instantiate_multiple_fields): Make it
31067 no longer ICE on the above.
31068
a6fe9ed4
JM
310692009-03-03 Joseph Myers <joseph@codesourcery.com>
31070
31071 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
31072 that fits within Pmode.
31073
dc672951
SE
310742009-03-03 Steve Ellcey <sje@cup.hp.com>
31075
31076 PR middle-end/10109
31077 * tm.texi (LIBCALL_VALUE): Update description.
31078
8b9d598f
SE
310792009-03-03 Steve Ellcey <sje@cup.hp.com>
31080
31081 PR middle-end/34443
31082 * doc/extend.texi (section): Update description.
31083
13e4e36e
L
310842009-03-03 H.J. Lu <hongjiu.lu@intel.com>
31085
31086 PR middle-end/39345
31087 * tree-inline.c (remapped_type): New.
31088 (can_be_nonlocal): Call remapped_type instead of remap_type.
31089
067dd3c9
JJ
310902009-03-03 Jakub Jelinek <jakub@redhat.com>
31091
31092 PR fortran/39354
31093 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
31094 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
31095
9bd9f738
RG
310962009-03-03 Richard Guenther <rguenther@suse.de>
31097
31098 PR middle-end/39272
31099 * tree.c (tree_nonartificial_location): New function.
31100 * tree.h (tree_nonartificial_location): Declare.
31101 * builtins.c (expand_builtin_memory_chk): Provide location
31102 of the call location for artificial function pieces.
31103 (maybe_emit_chk_warning): Likewise.
31104 (maybe_emit_sprintf_chk_warning): Likewise.
31105 (maybe_emit_free_warning): Likewise.
31106 * expr.c (expand_expr_real_1): Likewise.
31107
f07049c8
JJ
311082009-03-03 Jakub Jelinek <jakub@redhat.com>
31109
31110 PR tree-optimization/39343
31111 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
31112 COMPONENT_REF t has ARRAY_TYPE.
31113
7d4fba4a
SP
311142009-03-02 Sebastian Pop <sebastian.pop@amd.com>
31115
31116 PR middle-end/39335
31117 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
31118 when the type precision of the induction variable should be
31119 larger than the type precision of nit.
31120 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
31121 * graphite.c (graphite_loop_normal_form): Same.
31122 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
31123
78168632
UB
311242009-03-02 Uros Bizjak <ubizjak@gmail.com>
31125
31126 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
31127 (*call_1_rex64_ms_sysv): Use named constants instead of magic
6c6094f1 31128 numbers to describe clobbered registers.
78168632 31129 (*call_value_0_rex64_ms_sysv): Ditto.
6c6094f1
UB
31130 * config/i386/mmx.md (mmx_emms): Ditto.
31131 (mmx_femms): Ditto.
78168632 31132
63553059
RS
311332009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
31134
31135 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
31136 of ABI_64.
31137
500a1f85
UW
311382009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31139
31140 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
31141 (spu_section_type_flags): New function.
31142
962aae34
UB
311432009-03-02 Uros Bizjak <ubizjak@gmail.com>
31144
31145 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
31146 reg_class_contents of FLOAT_REGS into a temporary.
31147
6dfb529c 311482009-03-02 Richard Guenther <rguenther@suse.de>
962aae34 31149 Ira Rosen <irar@il.ibm.com>
6dfb529c
RG
31150
31151 PR tree-optimization/39318
31152 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
31153 information to the vectorized statement.
31154
6b5629db
UB
311552009-03-01 Uros Bizjak <ubizjak@gmail.com>
31156
434426d2
UB
31157 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
31158 variable. Use defined names instead of magic constants for REX SSE
31159 registers.
6b5629db 31160
14e5b285
RG
311612009-03-01 Richard Guenther <rguenther@suse.de>
31162
31163 PR tree-optimization/39331
31164 * omp-low.c (lower_send_shared_vars): Do not receive new
31165 values for the reference of DECL_BY_REFERENCE parms or results.
31166
526d73ab
JH
311672009-03-01 Jan Hubicka <jh@suse.cz>
31168
31169 PR debug/39267
31170 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
31171 BLOCK_NONLOCALIZED_VAR): New macros.
31172 (tree_block): Add nonlocalized_vars.
f4ea99bd
EB
31173 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
31174 gen_decl_die): Add origin argument. Allow generation of die with
31175 origin at hand only.
526d73ab 31176 (gen_member_die, gen_type_die_with_usage, force_decl_die,
f4ea99bd
EB
31177 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
31178 of gen_*.
526d73ab
JH
31179 (gen_block_die): Fix checking for unused blocks.
31180 (process_scope_var): Break out from .... ; work with origins only.
31181 (decls_for_scope) ... here; process nonlocalized list.
31182 (dwarf2out_ignore_block): Look for nonlocalized vars.
f4ea99bd
EB
31183 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
31184 vars.
526d73ab
JH
31185 (dump_scope_block): Dump them.
31186 * tree-inline.c (remap_decls): Handle nonlocalized vars.
31187 (remap_block): Likewise.
31188 (can_be_nonlocal): New predicate.
31189 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
31190
7a9d3fe8
RW
311912009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
31192
31193 * configure: Regenerate.
31194
b3cdf3cb
RW
311952009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
31196
a16d1645 31197 * optc-gen.awk: No need to duplicate option flags twice.
9ade279b 31198 Reuse help texts for duplicate options which do not have any.
a16d1645 31199
1156c176
RW
31200 * gcc.c (display_help): Document --version.
31201
033505fc
RW
31202 * gcc.c (main): If print_help_list and verbose_flag, ensure
31203 driver output comes before subprocess output.
31204
4d077054
RW
31205 * optc-gen.awk: Assign all remaining fields to help string,
31206 space-separated, for multi-line help in *.opt.
31207
a072f1cf
RW
31208 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
31209 -Wno-pedantic-ms-format is for MinGW targets only.
31210
b3cdf3cb
RW
31211 * doc/options.texi (Option file format): Fix bad indentation,
31212 restoring dropped sentence.
31213
a3aadcc5
JH
312142009-02-28 Jan Hubicka <jh@suse.cz>
31215
31216 * tree-inline.c (tree_function_versioning): Output debug info.
31217
1cf5abb3
JH
312182009-02-28 Jan Hubicka <jh@suse.cz>
31219
31220 PR debug/39267
31221 * tree-inline.c (setup_one_parameter): Do not copy propagate
31222 arguments when not optimizing.
31223
c4d3f42f
L
312242009-02-28 H.J. Lu <hongjiu.lu@intel.com>
31225
31226 PR target/39327
31227 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
31228 (avx_addsubv4df3): Likewise.
31229 (*avx_addsubv4sf3): Likewise.
31230 (sse3_addsubv4sf3): Likewise.
31231 (*avx_addsubv2df3): Likewise.
31232 (sse3_addsubv2df3): Likewise.
31233 (avx_unpckhps256): Correct item selectors.
31234 (avx_unpcklps256): Likewise.
31235 (avx_unpckhpd256): Likewise.
31236 (avx_unpcklpd256): Likewise.
31237
eb50f5f4
JH
312382009-02-28 Jan Hubicka <jh@suse.cz>
31239
31240 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
31241 static vars.
31242 (copy_arguments_for_versioning): If var is declared don't declare it.
31243 (tree_function_versioning): First setup substitutions and then copy
31244 args.
31245
26140130
JH
312462009-02-27 Jan Hubicka <jh@suse.cz>
31247
31248 PR debug/39267
31249 * cgraph.h (varpool_output_debug_info): Remove.
31250 * cgraphunit.c (varpool_output_debug_info): Remove.
31251 * dwarf2out.c (deferred_locations_struct): New struct
31252 (deferred_locations): New type.
31253 (deferred_locations_list): New static var.
31254 (deffer_location): New function.
31255 (gen_variable_die): Use it.
31256 (decls_for_scope): Output info on local static vars.
31257 (dwarf2out_finish): Process deferred locations.
31258 * varpool.c (varpool_output_debug_info): Remove.
31259
cff7525f
JH
312602009-02-27 Jan Hubicka <jh@suse.cz>
31261
31262 PR debug/39267
31263 * tree.h (TREE_PROTECTED): Fix comment.
31264 (BLOCK_HANDLER_BLOCK): Remove.
31265 (struct tree_block): Remove handler_block add body_block.
31266 (inlined_function_outer_scope_p): New.
31267 (is_body_block): Remove.
31268 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
31269 * dwarf2out.c (is_inlined_entry_point): Remove.
31270 (add_high_low_attributes): Use inlined_function_outer_scope_p.
f10a1c6c
EB
31271 (gen_block_die): Use is_inlined_entry_point check. Remove body block
31272 code.
cff7525f
JH
31273 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
31274 * gimplify.c (gimplify_expr): Gimplify body blocks.
f10a1c6c
EB
31275 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
31276 block with multiple subblocks.
cff7525f
JH
31277 (dump_scope_block): Prettier output; dump more flags and info.
31278 (dump_scope_blocks): New.
31279 (remove_unused_locals): Use dump_scope_blocks.
31280 * tree-flow.h (dump_scope_blocks): Declare.
31281 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
31282 * stmt.c (is_body_block): Remove.
31283 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
31284 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
31285
c20993b9
SP
312862009-02-27 Sebastian Pop <sebastian.pop@amd.com>
31287
31288 PR middle-end/39308
2ba9daa7 31289 * graphite.c (graphite_loop_normal_form): Do not call
c20993b9
SP
31290 number_of_iterations_exit from a gcc_assert.
31291
e3cba5e5
AK
312922009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
31293
60839f5d 31294 * config/s390/s390.c (s390_swap_cmp): Look for conditional
e3cba5e5
AK
31295 jumps if COND is NULL.
31296 (find_cond_jump): New function.
31297 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
60839f5d 31298 * config/s390/s390.md: Remove z10_cobra attribute value.
e3cba5e5 31299
9dadeeb8
UB
313002009-02-26 Uros Bizjak <ubizjak@gmail.com>
31301
31302 * config/alpha/alpha.h (alpha_expand_mov): Return false if
31303 force_const_mem returns NULL_RTX.
31304
625d3251
EB
313052009-02-26 Jan Hubicka <jh@suse.cz>
31306
31307 PR debug/39267
31308 * cgraph.h (varpool_output_debug_info): Remove.
31309 * cgraphunit.c (varpool_output_debug_info): Remove.
31310 * dwarf2out.c (deferred_locations_struct): New struct
31311 (deferred_locations): New type.
31312 (deferred_locations_list): New static var.
31313 (deffer_location): New function.
31314 (gen_variable_die): Use it.
31315 (decls_for_scope): Output info on local static vars.
31316 (dwarf2out_finish): Process deferred locations.
31317 * varpool.c (varpool_output_debug_info): Remove.
31318
38432148 313192009-02-25 H.J. Lu <hongjiu.lu@intel.com>
8592acaf
L
31320
31321 PR rtl-optimization/39241
31322 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
31323 to subreg_offset_representable_p.
31324
62d049cf
PB
313252009-02-25 Paolo Bonzini <bonzini@gnu.org>
31326
31327 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
31328 execute function prototype. Get f and nregs from max_reg_num
31329 and get_insns. Remove the first backward pass as it's dead,
31330 guard the forward pass by flag_expensive_optimizations.
31331 (rest_of_handle_regmove): Delete.
31332 (pass_regmove): Replace it with regmove_optimize.
31333
f618d33e
MJ
313342009-02-25 Martin Jambor <mjambor@suse.cz>
31335
31336 PR tree-optimization/39259
31337 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6c6094f1 31338 calls_alloca function flags.
f618d33e
MJ
31339 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
31340 calls are detected.
31341
c8a05f7c
PB
313422009-02-25 Paolo Bonzini <bonzini@gnu.org>
31343
31344 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
31345 flags_set_1_rtx, flags_set_1_set): Delete.
31346 (regmove_optimize): Do not call mark_flags_life_zones.
31347
6d2538f5
JB
313482009-02-24 Julian Brown <julian@codesourcery.com>
31349
31350 PR target/35965
31351 * config/arm/arm.c (require_pic_register): Only set
31352 cfun->machine->pic_reg once per function.
31353
a2fa6772
SL
313542009-02-24 Sandra Loosemore <sandra@codesourcery.com>
31355
31356 * doc/invoke.texi (Link Options): Document an easier way to pass
9dadeeb8 31357 options that take arguments to the GNU linker using -Xlinker and -Wl.
a2fa6772 31358
5472de36
SE
313592009-02-24 Steve Ellcey <sje@cup.hp.com>
31360
31361 PR target/33785
31362 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
31363
844216f3
RG
313642009-02-24 Richard Guenther <rguenther@suse.de>
31365
31366 PR debug/39285
31367 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
31368
71adbef3 313692009-02-24 Richard Guenther <rguenther@suse.de>
8592acaf 31370 Zdenek Dvorak <ook@ucw.cz>
71adbef3
RG
31371
31372 PR tree-optimization/39233
31373 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
31374 from converting them to a generic type.
31375
f1a558e0
SP
313762009-02-23 Sebastian Pop <sebastian.pop@amd.com>
31377
31378 PR tree-optimization/39260
31379 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
31380 contains a condition with a real type.
31381 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
31382
d8028f2c
JM
313832009-02-23 Jason Merrill <jason@redhat.com>
31384
31385 PR c++/38880
31386 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
31387 narrowing_initializer_constant_valid_p.
2ba9daa7 31388 (narrowing_initializer_constant_valid_p): Don't return
d8028f2c
JM
31389 null_pointer_node for adding a pointer to itself.
31390
9283b513
JH
313912009-02-23 Jan Hubicka <jh@suse.cz>
31392
31393 PR c/12245
9dadeeb8
UB
31394 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
31395 resizing.
9283b513 31396
61e04322
JH
313972009-02-23 Jan Hubicka <jh@suse.cz>
31398
9dadeeb8
UB
31399 PR tree-optimization/37709
31400 * tree.c (block_ultimate_origin): Move here from dwarf2out.
31401 * tree.h (block_ultimate_origin): Declare.
31402 * dwarf2out.c (block_ultimate_origin): Move to tree.c
61e04322
JH
31403 * tree-ssa-live.c (remove_unused_scope_block_p):
31404 Eliminate blocks containig no instructions nor live variables nor
31405 nested blocks.
31406 (dump_scope_block): New function.
31407 (remove_unused_locals): Enable removal of dead blocks by default;
9dadeeb8 31408 enable dumping at TDF_DETAILS.
61e04322 31409
38432148 314102009-02-21 H.J. Lu <hongjiu.lu@intel.com>
5339d3ea
L
31411
31412 * config/i386/i386.c (classify_argument): Don't allow COImode
31413 and OImode.
31414 (function_arg_advance_32): Don't allow OImode.
31415 (function_arg_32): Likewise.
31416 (function_value_32): Likewise.
31417 (return_in_memory_32): Likewise.
31418 (function_arg_64): Remove OImode comment.
31419
38432148 314202009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f161e158
L
31421
31422 PR target/39261
31423 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
31424 ix86_expand_vector_set for V4DImode in 64bit mode only.
31425 (ix86_expand_vector_init_one_var): Likewise.
31426
dcd739a6
SP
314272009-02-21 Sebastian Pop <sebastian.pop@amd.com>
31428
31429 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
31430
6c3b938d
RS
314312009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
31432
8e361f23 31433 PR bootstrap/39257
6c3b938d
RS
31434 * loop-iv.c: Revert last change.
31435 * emit-rtl.c: Likewise.
31436
38432148 314372009-02-21 H.J. Lu <hongjiu.lu@intel.com>
4c64d3dd
L
31438
31439 PR target/39256
31440 * config/i386/i386.c (type_natural_mode): Remove an extra
31441 space in the warning message.
31442 (function_value_32): Handle 32-byte vector modes.
31443 (return_in_memory_32): Likewise.
31444
2ec62529
RS
314452009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
31446
31447 * loop-iv.c (truncate_value): New function.
31448 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
31449 of lowpart_subreg.
31450 (lowpart_subreg): Move to...
31451 * emit-rtl.c: ...here.
31452
ecb8c3cc 314532009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
f814e489 31454
ecb8c3cc
DS
31455 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
31456 accidental and undocumented change at revision 140860.
31457
ae46a823
JM
314582009-02-21 Joseph Myers <joseph@codesourcery.com>
31459
31460 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
31461 take gimple_seq * arguments.
31462 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
31463 types_compatible_p langhook.
31464
07d8efe3 314652009-02-20 Mark Mitchell <mark@codesourcery.com>
f814e489 31466 Joseph Myers <joseph@codesourcery.com>
07d8efe3
MM
31467
31468 * config/arm/arm.c (arm_builtin_va_list): New function.
31469 (arm_expand_builtin_va_start): Likewise.
31470 (arm_gimplify_va_arg_expr): Likewise.
31471 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
31472 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
31473 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
31474 (va_list_type): New variable.
31475 (arm_mangle_type): Mangle va_list_type appropriately.
31476
b1fb9f56
JJ
314772009-02-20 Jakub Jelinek <jakub@redhat.com>
31478
31479 PR middle-end/39157
31480 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
31481 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
31482 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
31483 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
31484 parameter to 1000 for -O1 by default.
31485 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
31486 parameter.
31487 * loop-invariant.c: Include params.h.
31488 (move_loop_invariants): Don't call move_single_loop_invariants on
31489 very large loops.
31490
5bc0807c
JM
314912009-02-20 Jaka Mocnik <jaka@xlab.si>
31492
31493 * calls.c (emit_library_call_value_1): Use slot_offset instead of
31494 offset when calculating bounds for indexing stack_usage_map. Fixes
31495 a buffer overflow with certain target setups.
31496
c69cd1f5
JJ
314972009-02-20 Jakub Jelinek <jakub@redhat.com>
31498
31499 PR target/39240
31500 * calls.c (expand_call): Clear try_tail_call if caller and callee
31501 disagree in promotion of function return value.
31502
09812622
JJ
315032009-02-19 Jakub Jelinek <jakub@redhat.com>
31504
31505 PR target/39175
31506 * c-common.c (c_determine_visibility): If visibility changed and
31507 DECL_RTL has been already set, call make_decl_rtl to update symbol
31508 flags.
31509
68017cb4
L
315102009-02-19 H.J. Lu <hongjiu.lu@intel.com>
31511
31512 PR c++/39188
31513 * varasm.c (assemble_variable): Don't check DECL_NAME when
31514 globalizing a variable.
31515
ab4194da
JM
315162009-02-19 Joseph Myers <joseph@codesourcery.com>
31517
31518 PR c/38483
31519 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
31520 expression before any __builtin_trap call.
31521 * c-typeck.c (build_function_call): Convert and check function
31522 arguments before generating a call to a trap. Evaluate the
31523 function arguments before the trap.
31524
6b67572e
UB
315252009-02-19 Uros Bizjak <ubizjak@gmail.com>
31526
31527 PR target/39228
31528 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
31529 (UNSPEC_FXAM_MEM): New unspec.
31530 (fxam<mode>2_i387_with_temp): New insn and split pattern.
31531 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
31532 memory using fxam<mode>2_i387_with_temp to remove excess precision.
31533
9e39dba6
RG
315342009-02-19 Richard Guenther <rguenther@suse.de>
31535
31536 PR tree-optimization/39207
31537 PR tree-optimization/39074
31538 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
31539 storedanything_tree): New.
31540 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
6b67572e 31541 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
9e39dba6
RG
31542 (build_succ_graph): Add edges from STOREDANYTHING to all
31543 non-direct nodes.
31544 (init_base_vars): Initialize STOREDANYTHING.
31545 (compute_points_to_sets): Free substitution info after
31546 building the succ graph.
31547 (ipa_pta_execute): Likewise.
31548
31549 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
31550 field.
31551 (do_ds_constraint): Do not add to special var or non-pointer
31552 field solutions.
31553 (type_could_have_pointers): Split out from ...
31554 (could_have_pointers): ... here. For arrays use the element type.
31555 (create_variable_info_for): Initialize may_have_pointers.
31556 (new_var_info): Likewise.
31557 (handle_lhs_call): Make the HEAP variable unknown-sized.
31558 (intra_create_variable_infos): Use a type with pointers for
31559 PARM_NOALIAS, make it unknown-sized.
31560
fd7b2603
L
315612009-02-18 H.J. Lu <hongjiu.lu@intel.com>
31562
31563 PR target/39224
6b67572e 31564 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
fd7b2603 31565
98b80692
JM
315662009-02-18 Jason Merrill <jason@redhat.com>
31567
31568 PR target/39179
31569 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
31570 value if DECL_EXTERNAL.
31571 * tree-sra.c (sra_walk_gimple_assign): Likewise.
31572 * target.h (gcc_target::binds_local_p): Clarify "module".
31573 * tree.h (TREE_PUBLIC): Clarify "module".
31574
0705d3f4
L
315752009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
31576
31577 PR target/38891
31578 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
31579 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
31580
bce08d50
L
315812009-02-17 H.J. Lu <hongjiu.lu@intel.com>
31582
31583 PR target/39082
31584 * c.opt (Wabi): Support C and ObjC.
31585 (Wpsabi): New.
31586
31587 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
31588
31589 * config/i386/i386.c (classify_argument): Warn once about the ABI
31590 change when passing union with long double.
31591
31592 * doc/invoke.texi: Update -Wabi for warning psABI changes.
31593
5600f233
JM
315942009-02-18 Joseph Myers <joseph@codesourcery.com>
31595
31596 PR c/35447
31597 * c-parser.c (c_parser_compound_statement): Always enter and leave
31598 a scope.
31599
8cd01fe6
JDA
316002009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31601
31602 PR target/34587
31603 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
31604
418df9d7
JJ
316052009-02-18 Jakub Jelinek <jakub@redhat.com>
31606
31607 PR tree-optimization/36922
31608 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
31609 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
31610 Likewise.
31611
082d2ebb
RS
316122009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31613
31614 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
31615 to 0 for EABI64.
31616
17de576c
RS
316172009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31618
31619 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
31620
6d8d5435
RS
316212009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
31622
31623 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
31624 tree sharing.
31625
e69ff910
RB
316262009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
31627 Richard Sandiford <rdsandiford@googlemail.com>
31628
31629 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
31630 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
31631 (loongson_biadd): ...this.
31632
6b24ee26
RG
316332009-02-17 Richard Guenther <rguenther@suse.de>
31634
31635 PR tree-optimization/39202
31636 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
31637 a var make sure to follow existing collapses.
31638
91ab2c86
RG
316392009-02-17 Richard Guenther <rguenther@suse.de>
31640
31641 PR middle-end/39214
31642 * langhooks.c (lhd_print_error_function): Check for NULL block.
31643
73a63870
RG
316442009-02-17 Richard Guenther <rguenther@suse.de>
31645
31646 PR tree-optimization/39204
31647 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
31648 of the PHI arg.
31649
0e08f686
UB
316502009-02-17 Uros Bizjak <ubizjak@gmail.com>
31651
31652 * config/soft-fp/double.h: Update from glibc CVS.
31653
a60b7ddb
RG
316542009-02-17 Richard Guenther <rguenther@suse.de>
31655
31656 PR tree-optimization/39207
31657 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
31658 strict-aliasing warnings for pointers pointing to NULL.
31659
a47e20fd
JM
316602009-02-16 Joseph Myers <joseph@codesourcery.com>
31661
31662 PR c/35446
31663 * c-parser.c (c_parser_braced_init): Call pop_init_level when
31664 skipping until next close brace.
31665
50aab7dc
L
316662009-02-16 H.J. Lu <hongjiu.lu@intel.com>
31667
31668 PR target/37049
31669 * config/i386/i386.c (ix86_expand_push): Set memory alignment
31670 to function argument boundary.
31671
68e53db0
HS
316722009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
31673
31674 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
31675 in the lea_add. Reload eventually constraints it properly.
0d50d55a 31676 * config/picochip/constraints.md: Remove the target constraint
68e53db0
HS
31677 "b", since it is not needed anymore.
31678
09e361bb
JJ
316792009-02-16 Jakub Jelinek <jakub@redhat.com>
31680
31681 * gthr-dce.h: Uglify function parameter and local variable names.
31682 * gthr-gnat.h: Likewise.
31683 * gthr-mipssde.h: Likewise.
31684 * gthr-nks.h: Likewise.
31685 * gthr-posix95.h: Likewise.
31686 * gthr-posix.h: Likewise.
31687 * gthr-rtems.h: Likewise.
31688 * gthr-single.h: Likewise.
31689 * gthr-solaris.h: Likewise.
31690 * gthr-tpf.h: Likewise.
31691 * gthr-vxworks.h: Likewise.
31692 * gthr-win32.h: Likewise.
31693
47f5a48f
L
316942009-02-15 H.J. Lu <hongjiu.lu@intel.com>
31695
31696 PR target/39196
31697 * config/i386/i386.md: Restrict the new peephole2 to move
31698 between MMX/SSE registers.
31699
68c9ab45
RG
317002009-02-15 Richard Guenther <rguenther@suse.de>
31701
31702 Revert
31703 2009-02-13 Richard Guenther <rguenther@suse.de>
31704
31705 * configure.ac: Enable LFS.
31706 * configure: Re-generate.
31707 * config.in: Likewise.
31708
d7815554
UW
317092009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31710
31711 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
31712 spu_srqwbyte, spu_srqwbytebc): Define.
31713 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
31714 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
31715 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
31716 "shrqby_<mode>"): New insn-and-split patterns.
31717 * config/spu/spu.c (expand_builtin_args): Determine and return
31718 number of operands using spu_builtin_description data.
31719 (spu_expand_builtin_1): Use it.
31720
c208436c
SE
317212009-02-13 Steve Ellcey <sje@cup.hp.com>
31722
31723 PR target/38056
31724 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
31725 TARGET_CONST_GP.
31726
c2e7ba7e
L
317272009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31728
31729 PR target/39149
31730 * config/i386/i386.c (override_options): Correct warning
6c6094f1 31731 messages for -malign-loops, -malign-jumps and -malign-functions.
c2e7ba7e 31732
72f4e3a7
L
317332009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31734
31735 PR target/39152
31736 * config/i386/i386.md: Restrict the new peephole2 to move
31737 between the general purpose registers.
31738
53f648e2
L
317392009-02-13 H.J. Lu <hongjiu.lu@intel.com>
31740
31741 PR target/39162
31742 * config/i386/i386.c (type_natural_mode): Add a new argument.
6b67572e 31743 Return the original mode and warn ABI change if vector size is 32byte.
53f648e2
L
31744 (function_arg_advance): Updated.
31745 (function_arg): Likewise.
31746 (ix86_function_value): Likewise.
31747 (ix86_return_in_memory): Likewise.
31748 (ix86_sol10_return_in_memory): Likewise.
31749 (ix86_gimplify_va_arg): Likewise.
31750 (function_arg_32): Don't warn ABX ABI change here.
31751 (function_arg_64): Likewise.
31752
38432148 317532009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
b1c92d54
BS
31754
31755 * loop-iv.c (implies_p): In the final case, test that operands 0
31756 of the two comparisons match.
31757
dd2139e7
BS
31758 * config/bfin/bfin.c (find_prev_insn_start): New function.
31759 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
31760 (find_next_insn_start): Move.
31761
601b3e1a
RG
317622009-02-13 Richard Guenther <rguenther@suse.de>
31763
31764 * configure.ac: Enable LFS.
31765 * configure: Re-generate.
31766 * config.in: Likewise.
31767
f007042e
JM
317682009-02-13 Joseph Myers <joseph@codesourcery.com>
31769
31770 PR c/35444
31771 * c-parser.c (c_parser_parms_list_declarator): Discard pending
31772 sizes on syntax error after some arguments have been parsed.
31773
3f238e8b
JJ
317742009-02-12 Jakub Jelinek <jakub@redhat.com>
31775
31776 * doc/invoke.texi (-fira): Remove.
31777
328e13b7
L
317782009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31779
31780 * caller-save.c: Replace regclass.c with reginfo.c in comments.
31781 * recog.c: Likewise.
31782 * rtl.h: Likewise.
31783
c252db20
L
317842009-02-12 Uros Bizjak <ubizjak@gmail.com>
31785
31786 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
31787 (umul_ppmm): Likewise.
31788 (count_leading_zeros): Likewise.
31789 (count_trailing_zeros): Likewise.
31790 (UMUL_TIME): Likewise.
31791
317922009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31793
ba181049
UB
31794 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
31795 soft-fp/t-softfp to tmake_file.
c252db20
L
31796
31797 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
ba181049
UB
31798 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
31799 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
31800 IA64_BUILTIN_INFQ]: New.
c252db20
L
31801 (ia64_init_builtins): Initialize __builtin_infq,
31802 __builtin_fabsq and __builtin_copysignq if not HPUX.
31803 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
31804 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
31805
31806 * config/ia64/lib1funcs.asm (__divtf3): Define only if
31807 SHARED is defined.
31808 (__fixtfti): Likewise.
31809 (__fixunstfti): Likewise.
31810 (__floattitf): Likewise.
31811
31812 * config/ia64/libgcc-glibc.ver: New.
31813 * config/ia64/t-fprules-softfp: Likewise.
31814 * config/ia64/sfp-machine.h: Likewise.
31815
31816 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
31817 (LIBGCC2_TF_CEXT): Likewise.
31818 (TF_SIZE): Likewise.
31819 (TARGET_INIT_LIBFUNCS): Likewise.
31820
ba181049 31821 * config/ia64/t-glibc (SHLINB_MAPFILES):
6b67572e 31822 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
c252db20 31823
f13eae6a
L
318242009-02-12 H.J. Lu <hongjiu.lu@intel.com>
31825
31826 * config/i386/i386.c (construct_container): Rewrite processing
31827 BLKmode with X86_64_SSE_CLASS.
31828
12019aec
L
318292009-02-12 Paolo Bonzini <bonzini@gnu.org>
31830
31831 PR target/39152
31832 * config/i386/i386.md: Replace simplify_replace_rtx with
31833 replace_rtx in the new peephole2.
31834
28c11eb3
NS
318352009-02-12 Nathan Sidwell <nathan@codesourcery.com>
31836
31837 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
31838 loop unrolling do not happen at -O2.
31839
c7b94907
MM
318402009-02-12 Michael Matz <matz@suse.de>
31841
31842 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
31843
61e98967
JJ
318442009-02-12 Jakub Jelinek <jakub@redhat.com>
31845
31846 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
31847 for -g3.
31848
a2a237b5
BE
318492009-02-12 Ben Elliston <bje@au.ibm.com>
31850
31851 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
31852 patterns when updating the back chain. Missed in the 2009-02-10
31853 change.
31854
853eda8d
JJ
318552009-02-11 Janis Johnson <janis187@us.ibm.com>
31856
31857 * doc/extend.texi (Decimal Floating Types): Update identifier of
31858 draft TR and list of missing support.
31859
3ad6b266
JJ
318602009-02-11 Jakub Jelinek <jakub@redhat.com>
31861
31862 PR middle-end/39154
31863 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
31864 bit to variable length decl's flags, add it also to its
31865 pointer replacement variable.
31866
b058b753
UB
318672009-02-11 Uros Bizjak <ubizjak@gmail.com>
31868 Jakub Jelinek <jakub@redhat.com>
31869
31870 PR target/39118
31871 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
31872 (memory_blockage): New expander.
31873 (*memory_blockage): New insn pattern.
31874 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
31875 instead of general blockage at the end of function prologue when
31876 frame pointer is used to access red zone area. Do not emit blockage
31877 when profiling, it is emitted in generic code.
31878 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
31879 function epilogue when frame pointer is used to access red zone area.
31880
bab64f23
PB
318812009-02-11 Paolo Bonzini <bonzini@gnu.org>
31882
0ce6dcfa 31883 PR target/38824
bab64f23
PB
31884 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
31885 by arithmetic with memory operands.
31886 * config/i386/predicates.md (commutative_operator): New.
31887
8fd94bda
JJ
318882009-02-10 Janis Johnson <janis187@us.ibm.com>
31889
31890 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
31891 bulleted lists.
31892
794511d2
EB
318932009-02-10 Eric Botcazou <ebotcazou@adacore.com>
31894
31895 * alias.h (record_alias_subset): Declare.
31896 * alias.c (record_alias_subset): Make global.
31897
6da7fc87
NC
318982009-02-10 Nick Clifton <nickc@redhat.com>
31899
31900 * tree-parloops.c: Change license to GPLv3.
31901 * ipa-struct-reorg.c: Change license to GPLv3.
31902 * ipa-struct-reorg.h: Change license to GPLv3.
31903
a03813c8
SE
319042009-02-10 Steve Ellcey <sje@cup.hp.com>
31905
31906 PR c/39084
31907 * c-decl.c (start_struct): Return NULL on error.
31908
fc3103e7
JJ
319092009-02-10 Jakub Jelinek <jakub@redhat.com>
31910
9b43d37b
JJ
31911 PR middle-end/39124
31912 * cfgloopmanip.c (remove_path): Call remove_bbs after
31913 cancel_loop_tree, not before it.
31914
fc3103e7 31915 PR target/39139
b058b753 31916 * function.h (struct function): Add has_local_explicit_reg_vars bit.
fc3103e7
JJ
31917 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
31918 VAR_DECLs were seen.
31919 * tree-ssa-live.c (remove_unused_locals): Recompute
31920 cfun->has_local_explicit_reg_vars.
31921 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
31922 copies or clearings if cfun->has_local_explicit_reg_vars.
31923
dbf9ee15
UB
319242009-02-10 Uros Bizjak <ubizjak@gmail.com>
31925
31926 PR target/39118
31927 * config/i386/i386.c (expand_prologue): Emit blockage at the end
31928 of function prologue when frame pointer is used to access
31929 red zone area.
31930
bdec4dc7
RG
319312009-02-10 Richard Guenther <rguenther@suse.de>
31932
31933 PR middle-end/39127
31934 * gimplify.c (gimple_regimplify_operands): Always look if
31935 we need to create a temporary.
31936
7cae94fc
RG
319372009-02-10 Richard Guenther <rguenther@suse.de>
31938
31939 PR tree-optimization/39132
31940 * tree-loop-distribution.c (todo): New global var.
31941 (generate_memset_zero): Trigger TODO_rebuild_alias.
31942 (tree_loop_distribution): Return todo.
31943
a8800687
L
319442009-02-10 H.J. Lu <hongjiu.lu@intel.com>
31945
31946 PR target/39119
31947 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
31948 (x86_64_reg_class_name): Removed.
31949 (classify_argument): Return 0 if bytes > 32. Return 0 if the
31950 first one isn't X86_64_SSE_CLASS or any other ones aren't
31951 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
31952 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
31953 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
31954 and 3 X86_64_SSEUP_CLASS.
31955 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
31956 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
31957
d4bacef0
BE
319582009-02-10 Ben Elliston <bje@au.ibm.com>
31959
31960 * config/rs6000/rs6000.md (allocate_stack): Always use an update
31961 form instruction to update the stack back chain word, even if the
31962 user has disabled the generation of update instructions.
31963 (movdi_<mode>_update_stack): New.
31964 (movsi_update_stack): Likewise.
31965 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
31966 always use an update form instruction to update the stack back
31967 chain word.
31968
01d7d2f3
SP
319692009-02-09 Sebastian Pop <sebastian.pop@amd.com>
31970
31971 PR middle-end/38953
b058b753
UB
31972 * graphite.c (if_region_set_false_region): After moving a region in
31973 the false branch of a condition, remove the empty dummy basic block.
01d7d2f3
SP
31974 (gloog): Remove wrong fix for PR38953.
31975
e41e2ab4
UW
319762009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
31977
31978 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
31979 generation due to implicit sign extension.
31980
4bb07c5d
EB
319812009-02-09 Eric Botcazou <ebotcazou@adacore.com>
31982
31983 PR middle-end/38981
31984 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
31985 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
31986
f060a261
RG
319872009-02-09 Richard Guenther <rguenther@suse.de>
31988
31989 PR middle-end/35202
31990 * convert.c (convert_to_real): Disable (float)fn((double)x)
31991 to fnf(x) conversion if errno differences may occur and
31992 -fmath-errno is set.
31993
5a7e237c
AS
319942009-02-07 Anatoly Sokolov <aesok@post.ru>
31995
31996 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
31997 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
31998 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
31999
feab5a67
JM
320002009-02-06 Joseph Myers <joseph@codesourcery.com>
32001
32002 PR c/35434
32003 * c-common.c (handle_alias_attribute): Disallow attribute for
32004 anything not a FUNCTION_DECL or VAR_DECL.
32005
90ef2296
JJ
320062009-02-06 Janis Johnson <janis187@us.ibm.com>
32007
32008 PR c/39035
32009 * real.c (do_compare): Special-case compare of zero against
32010 decimal float value.
32011
1de2c900
JM
320122009-02-06 Joseph Myers <joseph@codesourcery.com>
32013
32014 PR c/36432
32015 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
32016 as indicating flexible array members unless the field itself is
32017 being declarared as the incomplete array.
32018
e901811a
JH
320192009-02-06 Jan Hubicka <jh@suse.cz>
32020
32021 PR tree-optimization/38844
32022 * ipa-inline.c (try_inline): Stop inlining recursion when edge
32023 is already inlined.
32024
3cfa762b
RG
320252009-02-06 Richard Guenther <rguenther@suse.de>
32026
32027 PR middle-end/38977
32028 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
32029 fork because we may expand it as __gcov_fork.
32030
8506528c
NC
320312009-02-06 Nick Clifton <nickc@redhat.com>
32032
dbf9ee15 32033 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8506528c 32034
85169114
PB
320352009-02-06 Paolo Bonzini <bonzini@gnu.org>
32036
32037 PR tree-optimization/35659
32038 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
32039 vn_phi_eq): Shortcut if hashcode does not match.
32040 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
32041 NULL operands.
32042 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
32043 and avoid iterative_hash_expr.
32044 (FOR_EACH_VALUE_ID_IN_SET): New.
32045 (value_id_compare): Remove.
32046 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
32047 sort expressions by value id.
32048
6d39673d
KK
320492009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
32050
32051 PR target/38991
32052 * config/sh/predicates.md (general_movsrc_operand): Don't check
32053 the subreg of system registers here.
32054
e6e1c050
JJ
320552009-02-05 Jakub Jelinek <jakub@redhat.com>
32056
32057 PR c++/39106
32058 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
32059 on the copied decl.
32060
65a74b5d
PB
320612009-02-05 Paolo Bonzini <bonzini@gnu.org>
32062
32063 PR rtl-optimization/39110
32064 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
32065 addresses, not aligned ones.
32066
08e14b2a
DB
320672009-02-05 Daniel Berlin <dberlin@dberlin.org>
32068 Richard Guenther <rguenther@suse.de>
32069
32070 PR tree-optimization/39100
32071 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
32072 comment says and add edges.
32073
5006381c
JM
320742009-02-05 Joseph Myers <joseph@codesourcery.com>
32075
32076 PR c/35435
32077 * c-common.c (handle_tls_model_attribute): Ignore attribute for
32078 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
32079
2ba9daa7 320802009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
b0789219
TG
32081
32082 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
32083 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
32084 register_bb_in_sese, new_sese, free_sese): Moved.
32085 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
32086 outermost_loop_in_scop, build_scop_iteration_domain,
32087 expand_scalar_variables_ssa_name, get_vdef_before_scop,
32088 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
32089 Use loop_in_sese_p instead of loop_in_scop_p.
32090 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
32091 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
32092 (scopdet_basic_block_info): Fix bug in scop detection.
32093 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
32094 eq_loop_to_cloog_loop): Remove.
32095 (nb_loops_around_loop_in_scop, nb_loop
32096 ref_nb_loops): Moved here...
32097 * graphite.h (ref_nb_loops): ... from here.
32098 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
32099 (loop_domain_dim, loop_iteration_vector_dim): Remove.
32100 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
b0789219 32101
48e8382e
PB
321022009-02-04 Paolo Bonzini <bonzini@gnu.org>
32103 Hans-Peter Nilsson <hp@axis.com>
32104
32105 PR rtl-optimization/37889
32106 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
32107 Move offset handling from PLUS to before the switch. Use new
32108 arguments when considering SYMBOL_REFs too.
32109 (rtx_addr_can_trap_p): Pass dummy offset and size.
32110 (enum may_trap_p_flags): Remove.
32111 (may_trap_p_1): Pass size from MEM_SIZE.
32112
32113 PR rtl-optimization/38921
32114 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
32115 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
32116 * rtlanal.c (may_trap_after_code_motion_p): Delete.
32117 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
32118
69349ea5
L
321192009-02-04 H.J. Lu <hongjiu.lu@intel.com>
32120
32121 AVX Programming Reference (January, 2009)
32122 * config/i386/sse.md (*vpclmulqdq): New.
32123
b545e411
JJ
321242009-02-04 Jakub Jelinek <jakub@redhat.com>
32125
32126 PR tree-optimization/38977
32127 PR gcov-profile/38292
bf9b2cc9 32128 * calls.c (special_function_p): Disregard __builtin_ prefix.
b545e411 32129
5b43bf05
HS
321302009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
32131
32132 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
32133 non-indexable addresses even before reload.
32134
062c4bb3
JM
321352009-02-03 Joseph Myers <joseph@codesourcery.com>
32136
32137 PR c/29129
32138 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
32139 as having variable size. Do not give an error for unnamed
32140 parameters with [*] declarators. Give a warning for type names
32141 with [*] declarators and mark them as variable size.
32142 * c-parser.c (c_parser_sizeof_expression): Do not give an error
32143 for sizeof applied to [*] type names.
32144
6175f578
AP
321452009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
32146
32147 PR C++/36607
32148 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
32149
d4f4bc84
JJ
321502009-02-03 Jakub Jelinek <jakub@redhat.com>
32151
32152 * gcc.c (process_command): Update copyright notice dates.
32153 * gcov.c (print_version): Likewise.
32154 * gcov-dump.c (print_version): Likewise.
32155 * mips-tfile.c (main): Likewise.
32156 * mips-tdump.c (main): Likewise.
32157
f6294de7
JM
321582009-02-03 Joseph Myers <joseph@codesourcery.com>
32159
32160 PR c/35433
32161 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
32162 for composite type involving a zero-length array type.
32163
754ccf7c
JJ
321642009-02-03 Jakub Jelinek <jakub@redhat.com>
32165
70f16287
JJ
32166 PR target/35318
32167 * function.c (match_asm_constraints_1): Skip over
32168 initial optional % in the constraint.
32169
754ccf7c
JJ
32170 PR inline-asm/39059
32171 * c-parser.c (c_parser_postfix_expression): If fixed point is not
32172 supported, don't accept FIXED_CSTs.
32173 * c-decl.c (finish_declspecs): Error if fixed point is not supported
32174 and _Sat is used without _Fract/_Accum. Set specs->type to
32175 integer_type_node for cts_fract/cts_accum if fixed point is not
32176 supported.
32177
965fdadf
CM
321782009-02-02 Catherine Moore <clm@codesourcery.com>
32179
dbf9ee15 32180 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
965fdadf 32181
2e8a796f
RS
321822009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
32183
32184 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
32185 (ABI_HAS_64BIT_SYMBOLS): Use it.
32186 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
32187
e0079468
PB
321882009-02-02 Paul Brook <paul@codesourcery.com>
32189
32190 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
32191
eca72963
JJ
321922009-02-02 Jakub Jelinek <jakub@redhat.com>
32193
32194 PR inline-asm/39058
32195 * recog.h (asm_operand_ok): Add constraints argument.
32196 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
32197 recurse on matching constraint.
32198 (check_asm_operands): Pass constraints as 3rd argument to
32199 asm_operand_ok. Don't look up matching constraint here.
32200 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
32201 to asm_operand_ok.
32202
b5bde9ff
BE
322032009-02-02 Ben Elliston <bje@au.ibm.com>
32204
32205 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
32206 TARGET_NARROW_VOLATILE_BITFIELD macro names.
32207
30f3e427
JDA
322082009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32209
be7659ba
JDA
32210 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
32211 information. Remove some obsolete information. Reorganize.
32212
30f3e427
JDA
32213 * config/pa/fptr.c: Revert license to GPL 2.
32214 * config/pa/milli64.S: Likewise.
32215
3cbfaf98
DK
322162009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
32217
32218 PR target/38904
32219 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
32220 LIBRARY name in, instead of hard-coding it.
32221 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
32222 extra target make frag to tmake_files according to EH model.
32223 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
32224 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
32225 frags that define makefile variable EH_MODEL appropriately.
32226 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
32227 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
32228 to "-sjlj" according to type of EH configured.
32229 (LIBGCC_SONAME): Concatenate it to shared library base name.
32230 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
32231 to "_sjlj" according to type of EH configured.
32232 (LIBGCC_SONAME): Concatenate it to shared library base name.
32233 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
32234 (SHLIB_LINK): Add missing semicolon to if-else construct.
32235 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
32236 string value of "pe_dll" command-line option.
32237 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
32238 (SHLIB_SONAME): Use it when overriding t-cygming default.
32239 (SHLIB_IMPLIB): Override t-cygming default.
32240 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
32241 string value of "pe_dll" command-line option.
32242
8d0b6068
DK
322432009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
32244
32245 PR target/38952
32246 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
bf9b2cc9 32247 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8d0b6068 32248
14c28276
RG
322492009-01-31 Richard Guenther <rguenther@suse.de>
32250
32251 PR tree-optimization/38937
32252 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
32253 computing the transitive closure.
32254
5f4d82c2
RG
322552009-01-30 Richard Guenther <rguenther@suse.de>
32256
32257 PR tree-optimization/39041
32258 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
32259 Propagate variable indices only if the types match for this stmt.
32260
d0728ae0
JJ
322612009-01-30 Jakub Jelinek <jakub@redhat.com>
32262
32263 PR target/39013
32264 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
32265 inline but never defined.
32266
6b67572e 322672009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
9fec758d
WG
32268
32269 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
32270 (*insv_h_di_reg_extimm): New insn.
32271 (*insv_l<mode>_reg_extimm): New insn.
32272
322732009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
9e8be1e4
HS
32274
32275 * config/picochip/picochip.c (flag_conserve_stack): set
32276 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
32277 fconserve-stack. Reduce call-overhead used by inliner.
32278
9fec758d 322792009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
df9198ab
HS
32280
32281 PR/38157
32282 * common.opt (flag_conserve_stack): Initialised to zero.
32283
7f1c539c
KT
322842009-01-30 Kai Tietz <kai.tietz@onevision.com>
32285
32286 PR/39002
32287 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
32288 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
32289 method.
32290
3631be48
L
322912009-01-29 H.J. Lu <hongjiu.lu@intel.com>
32292
32293 * ira-color.c (allocno_reload_assign): Update comments.
32294 * regmove.c (regmove_optimize): Likewise.
32295
32296 * ra.h: Removed.
32297
416ac4d4
RM
322982009-01-29 Robert Millan <rmh@aybabtu.com>
32299
60839f5d
EB
32300 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
32301 * config/i386/kopensolaris-gnu.h: New file. Undefine
416ac4d4 32302 `MD_UNWIND_SUPPORT'.
60839f5d 32303 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
416ac4d4 32304
d5e54bc1
KH
323052009-01-29 Kazu Hirata <kazu@codesourcery.com>
32306
32307 PR tree-optimization/39007
32308 * tree-loop-distribution.c (generate_builtin): Use
32309 recompute_dominator to compute the immediate dominator of the
32310 basic block just after the loop.
32311
38432148 323122009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
e9e077fa
RO
32313
32314 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
32315 (ASM_OUTPUT_DWARF_PCREL): Define.
32316
38432148 323172009-01-29 Vladimir Makarov <vmakarov@redhat.com>
2af2dbdc
VM
32318
32319 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
32320 * doc/passes.texi: Remove entries about regclass, local-alloc, and
32321 global. Modify entries about regmove and IRA.
32322
32323 * ra-conflict.c: Remove the file.
32324
32325 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
32326
32327 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
32328 (pass_regclass_init): Rename to pass_reginfo_init.
32329
32330 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
32331
32332 * toplev.h (flag_ira): Remove.
32333
32334 * caller-save.c (setup_save_areas): Remove flag_ira.
32335
bf9b2cc9 32336 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
2af2dbdc
VM
32337
32338 * global.c: Remove the file.
32339
ba20e309 32340 * opts.c (decode_options): Remove flag_ira.
2af2dbdc
VM
32341
32342 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
32343
32344 * regmove.c: Modify file description.
32345 (find_use_as_address, try_auto_increment): Define them only if
32346 AUTO_INC_DEC is defined.
32347 (replacement_quality, replace_in_call_usage, fixup_match_1,
32348 stable_and_no_regs_but_for_p): Remove.
32349 (reg_set_in_bb): Make it static.
32350 (regmove_optimize): Remove flag_ira and code which worked for
32351 !flag_ira.
32352
32353 * local-alloc.c: Remove the file.
32354
32355 * common.opt (fira): Remove.
32356
32357 * ira.c: Include except.h.
32358 (eliminable_regset): Move from global.c.
32359 (mark_elimination): Ditto. Remove flag_ira.
32360 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
32361 equiv_mem_modified, validate_equiv_mem_from_store,
32362 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
32363 contains_replace_regs, memref_referenced_p, memref_used_between_p,
32364 no_equiv, recorded_label_ref): Move from local-alloc.c.
32365 (update_equiv_regs): Ditto. Make it static.
32366 (print_insn_chain, print_insn_chains): Move it from global.c.
bf9b2cc9 32367 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
2af2dbdc
VM
32368 (build_insn_chain): Ditto. Make it static.
32369 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
32370 Rename to init_live_subregs.
32371 (gate_ira): Remove flag_ira.
32372
32373 * regclass.c: Rename reginfo.c. Change file description.
32374 (FORBIDDEN_INC_DEC_CLASSES): Remove.
dbf9ee15 32375 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
2af2dbdc
VM
32376 (init_reg_sets_1): Remove code for evaluation of
32377 reg_class_superclasses and losing_caller_save_reg_set.
32378 (init_regs): Remove init_reg_autoinc.
32379 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
32380 ok_for_base_p_nonstrict): Remove.
bf9b2cc9 32381 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
2af2dbdc
VM
32382 (pass_regclass_init): Rename to pass_reginfo_init. Modify
32383 corresponding entries.
32384 (dump_regclass, record_operand_costs, scan_one_insn,
32385 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
32386 record_address_regs, auto_inc_dec_reg_p): Remove.
32387 (gt-regclass.h): Rename to gt-reginfo.h.
32388
32389 * rtl.h (dump_global_regs, retry_global_alloc,
bf9b2cc9 32390 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
2af2dbdc
VM
32391
32392 * Makefile.in (RA_H): Remove.
32393 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
32394 Rename regclass.o to reginfo.o.
32395 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
32396 gt-reginfo.h.
32397 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
32398 (GTFILES): Rename regclass.c to reginfo.c.
32399
32400 * passes.c (init_optimization_passes): Remove pass_local_alloc and
bf9b2cc9 32401 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
2af2dbdc
VM
32402
32403 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
32404 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
32405 Remove flag_ira.
6b67572e 32406 (finish_spills): Ditto. Remove code for !flag_ira.
2ba9daa7 32407
c95b2534 324082009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
00b251a0
KZ
32409
32410 PR middle-end/35854
32411 * doc/invoke.texi (rtl debug options): Complete rewrite.
32412 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
32413 to auto_inc_dec".
32414 * mode-switching.c (pass_mode_switching): Rename pass from
32415 "mode-sw" to "mode_sw".
32416 * except.c (pass_convert_to_eh_ranges): Rename pass from
32417 "eh-ranges" to "eh_ranges".
32418 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
32419 to "subreg1".
2ba9daa7
AS
32420
32421
72a54528
AM
324222009-01-29 Andrey Belevantsev <abel@ispras.ru>
32423 Alexander Monakov <amonakov@ispras.ru>
32424
32425 PR middle-end/38857
32426 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
32427 register.
32428 (move_exprs_to_boundary): Change return type and pass through
32429 should_move from move_op. Relax assert. Update usage ...
32430 (schedule_expr_on_boundary): ... here. Use should_move instead of
32431 cant_move.
32432 (move_op_orig_expr_found): Indicate that insn was disconnected from
32433 stream.
32434 (code_motion_process_successors): Do not call after_merge_succs
32435 callback if original expression was not found when traversing any of
32436 the branches.
32437 (code_motion_path_driver): Change return type. Update prototype.
32438 (move_op): Update comment. Add a new parameter (should_move). Update
32439 prototype. Set *should_move based on indication provided by
32440 move_op_orig_expr_found.
32441
001b9eb6
PH
324422009-01-28 Pat Haugen <pthaugen@us.ibm.com>
32443
32444 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
32445 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
32446 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
32447 * config/rs6000/rs6000.c (rs6000_override_options): Default
32448 avoid-indexed-addresses on for Power6, off for everything else.
32449 (avoiding_indexed_address_p): New function.
32450 (rs6000_legitimize_address): Use it.
32451 (rs6000_legitimate_address): Likewise.
32452 * config/rs6000/rs6000.md (movXX_updateX): Likewise
32453
59dc4898
KH
324542009-01-28 Kazu Hirata <kazu@codesourcery.com>
32455
32456 PR tree-optimization/38997
32457 * tree-loop-distribution.c (generate_memset_zero): Use
32458 POINTER_PLUS_EXPR for a pointer addition.
32459
07da44ab
AK
324602009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
32461
32462 * config/s390/s390.md (bswap<mode>2): New pattern added.
32463
cdc15d23
WG
324642009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32465
32466 * config/s390/s390.md (*tls_load_31): Added type attribute.
32467
d46f24b6
WG
324682009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32469
32470 * config/s390/s390.md: Fix a few comments.
32471
729e750f
WG
324722009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
32473
32474 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
32475 (*tm<mode>_full): Fixed z10prop attribute.
32476 (*tst<mode>_extimm): Fixed z10prop attribute.
32477 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
32478 (*tstqiCCT_cconly): Fixed z10prop attribute.
32479 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
32480 (*movsi_larl): Fixed z10prop attribute.
32481 (*movsi_zarch): Fixed z10prop attribute.
32482 (*movsi_eas): Fixed z10prop attribute.
32483 (*movhi): Fixed z10prop attribute.
32484 (*movqi): Fixed z10prop attribute.
32485 (*movstrictqi): Fixed z10prop attribute.
32486 (*mov<mode>): Fixed z10prop attribute.
32487 (*movcc): Fixed z10prop attribute.
32488 (*sethighpartdi_64): Fixed z10prop attribute.
32489 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
32490 (*negdi2_sign_cc): Fixed z10prop attribute.
32491 (*negdi2_sign): Fixed z10prop attribute.
32492 (*absdi2_sign_cc): Fixed z10prop attribute.
32493 (*absdi2_sign): Fixed z10prop attribute.
32494 (*negabsdi2_sign_cc): Fixed z10prop attribute.
32495 (*negabsdi2_sign): Fixed z10prop attribute.
32496 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
32497 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
32498 (doloop_si64): Fixed z10prop attribute.
32499 (doloop_si31): Fixed z10prop attribute.
32500 (doloop_long): Fixed z10prop attribute.
32501 (indirect_jump): Fixed z10prop attribute.
32502 (nop): Fixed z10prop attribute.
32503 (main_base_64): Fixed z10prop attribute.
32504 (reload_base_64): Fixed z10prop attribute.
32505
c7789bfb
JJ
325062009-01-28 Jakub Jelinek <jakub@redhat.com>
32507
32508 PR rtl-optimization/38740
6b67572e
UB
32509 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
32510 if !optimize.
c7789bfb
JJ
32511 * config/mips/mips.c (mips_reorg): Likewise.
32512
de081cfd
RG
325132009-01-28 Richard Guenther <rguenther@suse.de>
32514
32515 PR tree-optimization/38926
32516 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
32517 with the correct value id to a value.
32518 (do_regular_insertion): Use the value number of edoubleprime
32519 for the value number of the expr.
32520
32521 Revert
32522 2008-08-21 Richard Guenther <rguenther@suse.de>
bf9b2cc9 32523
d748c406
UB
32524 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
32525 a PHI ask VN if it is already available.
32526 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
32527 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
de081cfd 32528
a9d386a1
JJ
325292009-01-28 Jakub Jelinek <jakub@redhat.com>
32530
32531 PR middle-end/38934
32532 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
32533 set to varying whenever max has TREE_OVERFLOW set, similarly
32534 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
32535
97a170cd
RG
325362009-01-28 Richard Guenther <rguenther@suse.de>
32537
32538 PR middle-end/38908
32539 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
32540 uninitialized aggregate uses in call arguments.
32541
89ebafc6
PB
325422009-01-28 Paolo Bonzini <bonzini@gnu.org>
32543
32544 PR tree-optimization/38984
32545 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
32546 the nothing_id variable if -fno-delete-null-pointer-checks.
32547
bef3c57b
UB
325482009-01-28 Uros Bizjak <ubizjak@gmail.com>
32549
32550 PR target/38988
32551 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
32552 (set_got_offset_rex64): Ditto.
32553
0c6390fa
L
325542009-01-27 H.J. Lu <hongjiu.lu@intel.com>
32555
32556 PR target/38941
32557 * doc/extend.texi: Improve local variable with asm reg.
32558
bee6fa6d
AN
325592009-01-27 Adam Nemet <anemet@caviumnetworks.com>
32560
32561 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
32562 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
32563 was not supplied then set warn_packed_bitfield_compat to the
32564 default value of 1.
32565 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
32566 against 1.
32567
b5c3dfbb
RG
325682009-01-27 Richard Guenther <rguenther@suse.de>
32569
32570 PR tree-optimization/38503
32571 * cfgexpand.c (expand_gimple_basic_block): Ignore
32572 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
32573 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
32574 variables that cannot have TBAA applied.
32575 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
32576 statements.
32577
d748c406 325782009-01-27 Uros Bizjak <ubizjak@gmail.com>
576de5cb
UB
32579
32580 PR middle-end/38969
32581 * calls.c (initialize_argument_information): Do not wrap complex
32582 arguments in SAVE_EXPR.
32583
9112bb38
AT
325842009-01-26 Andreas Tobler <a.tobler@schweiz.org>
32585
32586 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
5efb79fc 32587 (INSTALL_LIBGCC): Revert typo commit.
9112bb38 32588
4757704f
RG
325892009-01-26 Richard Guenther <rguenther@suse.de>
32590
32591 PR tree-optimization/38745
32592 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
32593 from special handling.
32594
e3e6cff4
RG
325952009-01-26 Richard Guenther <rguenther@suse.de>
32596
32597 PR tree-optimization/38745
32598 * tree-ssa.c (execute_update_addresses_taken): Do not include
32599 variables that cannot possibly be a register in not_reg_needs.
32600 Do not clear TREE_ADDRESSABLE on vars that may not become
32601 registers.
32602 * tree-ssa.c (update_alias_info_1): Include those in the set
32603 of addressable vars.
32604
dc874b53
RG
326052009-01-26 Richard Guenther <rguenther@suse.de>
32606
32607 PR middle-end/38851
32608 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
32609 * tree-ssa-dse.c: Include langhooks.h
32610 (execute_simple_dse): Remove stores with zero size.
32611
849421a3
JJ
326122009-01-24 Jakub Jelinek <jakub@redhat.com>
32613
32614 PR c/38957
32615 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
32616 as PLUS_EXPR.
32617
82f70421
JB
326182009-01-24 Julian Brown <julian@codesourcery.com>
32619
32620 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
32621 config/arm/linux-atomic.c.
32622 * config/arm/linux-atomic.c: New.
32623
863412d6
EB
326242009-01-24 Eric Botcazou <ebotcazou@adacore.com>
32625
32626 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
32627 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
32628 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
32629
8c684300
L
326302009-01-24 H.J. Lu <hongjiu.lu@intel.com>
32631
32632 PR c/38938
93f1527a 32633 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8c684300
L
32634 properly.
32635
b840fb02
SP
326362009-01-24 Sebastian Pop <sebastian.pop@amd.com>
32637
32638 PR tree-optimization/38953
32639 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
32640 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
32641 (gloog): Split the exit of the scop when the scop exit is a loop exit.
32642 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
32643 changed the CFG.
32644
ecee559f
PB
326452009-01-24 Paul Brook <paul@codesourcery.com>
32646
32647 * config/arm/neon.md (neon_type): Move to arm.md.
32648 (neon_mov<VSTRUCT>): Add neon_type attribute.
32649 * config/arm/arm.md (neon_type): Move to here.
32650 (conds): Add "unconditioal" and use as default for NEON insns.
32651
61ad0914
BE
326522009-01-24 Ben Elliston <bje@au.ibm.com>
32653
32654 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
32655 void *' warning from -Wc++-compat.
32656 * Makefile.in (dominance.o-warn): Remove.
32657
38432148 326582009-01-23 Paolo Bonzini <bonzini@gnu.org>
9bacafeb
PB
32659
32660 PR tree-optimization/38932
32661 * fold-const.c (fold_unary_ignore_overflow): New.
32662 * tree.h (fold_unary_ignore_overflow): Declare.
32663 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
32664 * tree-ssa-sccvn.c (visit_reference_op_load,
32665 simplify_unary_expression): Likewise.
32666
2cd36c22
AN
326672009-01-22 Adam Nemet <anemet@caviumnetworks.com>
32668
32669 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
32670 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
32671 regardless of their type.
32672 * c-common.c (handle_packed_attribute): Don't ignore packed on
32673 bitfields.
32674 * c.opt (Wpacked-bitfield-compat): New warning option.
32675 * stor-layout.c (place_field): Warn if offset of a field changed.
32676 * doc/extend.texi (packed): Mention the ABI change.
32677 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
32678 (Warning Options): Add it to the list.
32679
e4e624ab
L
326802009-01-22 H.J. Lu <hongjiu.lu@intel.com>
32681
32682 * c-opts.c (c_common_post_options): Fix a typo in comments.
32683
d0ea0759
SE
326842009-01-22 Steve Ellcey <sje@cup.hp.com>
32685
32686 PR middle-end/38615
32687 * gimplify.c (gimplify_init_constructor): Fix promotion of const
32688 variables to static.
32689 * doc/invoke.texi (-fmerge-all-constants): Update description.
32690
87673f84
UB
326912009-01-22 Uros Bizjak <ubizjak@gmail.com>
32692
32693 PR target/38931
32694 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
32695 (*movdi_1_rex64): Use type "mmx" for alternative 5.
32696
96339268
RE
326972009-01-22 Richard Earnshaw <rearnsha@arm.com>
32698
32699 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
32700 a word boundary.
32701 (LOCAL_ALIGNMENT): Similarly.
32702
442dc742 327032009-01-22 Mark Shinwell <shinwell@codesourcery.com>
87673f84 32704 Joseph Myers <joseph@codesourcery.com>
442dc742
MS
32705
32706 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
32707 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
32708 * config/arm/arm-tune.md: Regenerate.
32709 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
32710 -march=iwmmxt2.
32711
9b34732e
MS
327122009-01-22 Mark Shinwell <shinwell@codesourcery.com>
32713
32714 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
32715 version number to five.
32716
03c2a308
DS
327172009-01-22 Dodji Seketeli <dodji@redhat.com>
32718
32719 PR c++/38930
ba20e309 32720 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
03c2a308
DS
32721 * c-common.c (set_underlying_type): Likewise.
32722 (is_typedef_decl ): Likewise
32723 * tree.h: Likewise
32724 (set_underlying_type): Likewise.
32725 (is_typedef_type): Likewise.
32726
1240d76e
VM
327272009-01-21 Vladimir Makarov <vmakarov@redhat.com>
32728
32729 PR middle-end/38587
32730 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
32731 crossing setjmps.
32732
b8a1087d
DK
327332009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
32734
32735 PR bootstrap/37660
32736 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
32737 (LIBGCC_SPEC): Don't define.
32738 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
32739
435da628
UB
327402009-01-21 Uros Bizjak <ubizjak@gmail.com>
32741
32742 PR rtl-optimization/38879
32743 * alias.c (base_alias_check): Unaligned access via AND address can
32744 alias all surrounding object types except those with sizes equal
32745 or wider than the size of unaligned access.
32746
d597b3ce
DS
327472009-01-21 Dodji Seketeli <dodji@redhat.com>
32748
32749 PR c++/26693
ba20e309 32750 * c-decl.c (clone_underlying_type): Move this ...
d597b3ce 32751 * c-common.c (set_underlying_type): ... here.
435da628 32752 Also, make sure the function properly sets TYPE_STUB_DECL() on
d597b3ce
DS
32753 the newly created typedef variant type.
32754 (is_typedef_decl ): New entry point.
32755 * tree.h: Added a new member member_types_needing_access_check to
32756 struct tree_decl_non_common.
32757 (set_underlying_type): New entry point.
32758 (is_typedef_type): Likewise.
32759
71a6fe66
BM
327602009-01-21 Bingfeng Mei <bmei@broadcom.com>
32761
32762 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
32763 Check whether two instructions have memory references that
32764 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
32765 are helper functions for traversing.
32766 * alias.h (insn_alias_sets_confilict_p): New prototypes.
32767 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
32768 not to draw dependency edge for instructions with non-conflicting
32769 alias sets.
32770
5a248274
JM
327712009-01-20 Joseph Myers <joseph@codesourcery.com>
32772
32773 PR other/38758
6b67572e
UB
32774 * longlong.h: Update copyright years. Use soft-fp license notice.
32775 Sync __clz_tab declaration with glibc.
5a248274 32776
4b84f3de
SE
327772009-01-20 Steve Ellcey <sje@cup.hp.com>
32778
32779 PR target/30687
32780 * doc/extend.texi (syscall_linkage): New.
32781 (version_id): Modify.
32782
37348bf1 327832009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
435da628 32784 Richard Guenther <rguenther@suse.de>
37348bf1
AP
32785
32786 PR tree-optimization/38747
32787 PR tree-optimization/38748
32788 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
32789 conversion if the base address is an indirect reference and the
32790 aliasing sets could cause issues.
32791
d0a58904
SP
327922009-01-20 Sebastian Pop <sebastian.pop@amd.com>
32793
2ba9daa7 32794 * common.opt (fgraphite, fgraphite-identity): Add comment for
d0a58904
SP
32795 explaining why these options are not documented.
32796
71e7afb2
SP
327972009-01-20 Sebastian Pop <sebastian.pop@amd.com>
32798
32799 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
32800 gimple_call_lhs is NULL.
32801
38432148 328022009-01-20 Paolo Bonzini <bonzini@gnu.org>
09efeca1
PB
32803
32804 PR target/38868
32805 * emit-rtl.c (adjust_address_1): Make sure memref is never
32806 overwritten.
32807
cbb8dee3
BE
328082009-01-20 Ben Elliston <bje@au.ibm.com>
32809
32810 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
435da628 32811 const qualifier from arg parameter. Remove unnecessary cast to char *.
cbb8dee3
BE
32812 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
32813 const qualifier from arg 2.
32814
72c66596
IS
328152009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
32816
435da628 32817 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
72c66596 32818
f68211cd
VM
328192009-01-19 Vladimir Makarov <vmakarov@redhat.com>
32820
32821 PR c/38869
32822 * rtl.h (reinit_regs): New prototype.
32823 * regclass.c: Include ira.h.
32824 (reinit_regs): New.
32825 * Makefile.in (regclass.o): Add ira.h.
32826 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
32827
6e4f1168
L
328282009-01-18 H.J. Lu <hongjiu.lu@intel.com>
32829
32830 PR target/38736
32831 * c-common.c (handle_aligned_attribute): Use
32832 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
32833 default alignment value.
32834
32835 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
32836
32837 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
32838 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
32839
32840 * doc/extend.texi: Update __attribute__ ((aligned)). Document
32841 __BIGGEST_ALIGNMENT__.
32842
32843 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
32844
890065bf
RG
328452009-01-18 Richard Guenther <rguenther@suse.de>
32846
32847 PR tree-optimization/38819
32848 * tree-flow.h (operation_could_trap_helper_p): Declare.
32849 * tree-eh.c (operation_could_trap_helper_p): Export.
32850 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
32851 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
32852 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
32853 are about to insert a possibly trapping instruction and fail
32854 in this case.
32855
a729d731
AS
328562009-01-18 Andreas Schwab <schwab@suse.de>
32857
32858 * doc/install.texi (Configuration): Remove obsolete paragraph
32859 about use of --with-gnu-ld with --with-gnu-as.
32860
a640c13b
KH
328612009-01-18 Kazu Hirata <kazu@codesourcery.com>
32862
32863 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
32864 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
32865 Follow spelling conventions.
32866
dba2cc0c
BE
328672009-01-18 Ben Elliston <bje@au.ibm.com>
32868
32869 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
32870 C++ warning about implicit conversion from void * to struct
32871 bitmap_head_def *.
32872 (bitmap_obstack_free): Likewise for bitmap_element *.
bc127c63 32873 * Makefile.in (bitmap.o-warn): Remove.
dba2cc0c 32874
2207a498
DK
328752009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
32876
32877 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
32878
8137e465
SP
328792009-01-17 Sebastian Pop <sebastian.pop@amd.com>
32880 Tobias Grosser <tobi.grosser@amd.com>
32881
32882 * graphite.c (graphite_trans_scop_block): Do not block single
32883 nested loops.
32884
5be1c58c
AO
328852009-01-16 Alexandre Oliva <aoliva@redhat.com>
32886
32887 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
32888 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
32889 test with assertion.
32890
786ce82d
RG
328912009-01-16 Richard Guenther <rguenther@suse.de>
32892
32893 PR tree-optimization/38835
32894 PR middle-end/36227
32895 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
32896 and INT + PTR -> (INT)(PTR p+ INT) folding.
32897 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
32898
c1cb09ad
AN
328992009-01-16 Adam Nemet <anemet@caviumnetworks.com>
32900
32901 PR target/38554
32902 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
32903 the subreg from a lowpart subreg if it is also casting the value.
32904
bcab4e19
SP
329052009-01-16 Sebastian Pop <sebastian.pop@amd.com>
32906 Tobias Grosser <tobi.grosser@amd.com>
32907
32908 * graphite.c (compare_prefix_loops): New.
32909 (build_scop_canonical_schedules): Rewritten.
32910 (graphite_transform_loops): Move build_scop_canonical_schedules
32911 after build_scop_iteration_domain.
32912
0b040072
SP
329132009-01-16 Sebastian Pop <sebastian.pop@amd.com>
32914 Tobias Grosser <tobi.grosser@amd.com>
32915
2ba9daa7 32916 * graphite.c (add_conditions_to_domain): Add the loops to
0b040072
SP
32917 the dimension of the iteration domain. Do copy the domain
32918 only when it exists.
32919 (build_scop_conditions_1): Do not call add_conditions_to_domain.
32920 (add_conditions_to_constraints): New.
32921 (can_generate_code_stmt, can_generate_code): Removed.
32922 (gloog): Do not call can_generate_code.
32923 (graphite_transform_loops): Call add_conditions_to_constraints
32924 after building the iteration domain.
32925
56c6a499
JJ
329262009-01-16 Jakub Jelinek <jakub@redhat.com>
32927
32928 PR tree-optimization/38789
32929 * tree-ssa-threadedge.c
32930 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
32931 __builtin_constant_p.
32932
c95b2534 329332009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cd3f1729
KZ
32934
32935 * dce.c (delete_unmarked_insns): Reversed the order that insns are
32936 examined before deleting them.
2ba9daa7 32937
c433cb14
RE
329382009-01-16 Richard Earnshaw <rearnsha@arm.com>
32939
32940 * function.c (aggregate_value_p): Correctly extract the function
32941 type from CALL_EXPR_FN lookup.
32942
c95b2534 329432009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
27d62fa4
HS
32944
32945 * config/picochip/picochip.c (picochip_override_options): Revert
32946 CFI asm flag disable commited previously.
32947
c77bb78f
SP
329482009-01-15 Sebastian Pop <sebastian.pop@amd.com>
32949 Tobias Grosser <tobi.grosser@amd.com>
32950 Jan Sjodin <jan.sjodin@amd.com>
32951
32952 * graphite.c (scan_tree_for_params): On substractions negate
32953 all the coefficients of the term.
32954 (clast_to_gcc_expression_red): New. Handle reduction expressions
32955 of more than two operands.
32956 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
32957 (get_vdef_before_scop): Handle also the case of default definitions.
32958
574af2d6
RS
329592009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
32960
32961 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
32962 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
32963 Also use them when walking CALL_INSN_FUNCTION_USAGE.
32964
e939805b
L
329652009-01-15 H.J. Lu <hongjiu.lu@intel.com>
32966 Joey Ye <joey.ye@intel.com>
32967
32968 PR middle-end/37843
32969 * cfgexpand.c (expand_stack_alignment): Don't update stack
32970 boundary nor check incoming stack boundary here.
32971 (gimple_expand_cfg): Update stack boundary and check incoming
32972 stack boundary here.
32973
c95b2534 329742009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
750900db 32975
435da628 32976 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
2ba9daa7 32977
0196c95e
JJ
329782009-01-14 Jakub Jelinek <jakub@redhat.com>
32979
32980 PR rtl-optimization/38245
32981 * calls.c (expand_call): Add stack arguments to
32982 CALL_INSN_FUNCTION_USAGE even for pure calls (when
32983 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
32984 in regs and partially in memory or BLKmode arguments.
32985 (emit_library_call_value_1): Add stack arguments to
32986 CALL_INSN_FUNCTION_USAGE even for pure calls (when
32987 ACCUMULATE_OUTGOING_ARGS).
32988 * dce.c: Include tm_p.h.
32989 (find_call_stack_args): New function.
32990 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
32991 argument.
32992 (mark_insn): Call find_call_stack_args for CALL_Ps.
32993 (prescan_insns_for_dce): Walk insns backwards in bb rather than
32994 forwards. Allocate and free arg_stores bitmap if needed, pass it
32995 down to deletable_insn_p, don't mark stores set in arg_stores
32996 bitmap, clear the bitmap at the beginning of each bb.
32997 * Makefile.in (dce.o): Depend on $(TM_P_H).
32998
6df6bcfa
MM
329992009-01-14 Michael Meissner <gnu@the-meissners.org>
33000
33001 PR target/22599
435da628
UB
33002 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
33003 to make sure the insn is a conditional test (bug 22599). Reformat a
33004 few long lines.
6df6bcfa 33005
765ec70c
SP
330062009-01-14 Sebastian Pop <sebastian.pop@amd.com>
33007
33008 PR middle-end/38431
33009 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
33010 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
33011 (gloog): Do not call cleanup_tree_cfg.
2ba9daa7 33012 (graphite_transform_loops): Call cleanup_tree_cfg after all
765ec70c
SP
33013 scops have been code generated.
33014
7de2b688
BS
330152009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
33016 * doc/gty.texi (Invoking the garbage collector): Added new node
33017 and section documenting ggc_collect.
33018
10bd6c5c
RG
330192009-01-14 Richard Guenther <rguenther@suse.de>
33020
33021 PR tree-optimization/38826
33022 PR middle-end/38477
33023 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
33024 initialization notes only if we actually emitted a warning.
33025 (intra_create_variable_infos): Add constraints for a result decl
33026 that is passed by hidden reference.
33027 (build_pred_graph): Mark all related variables non-direct on
33028 address-taking.
33029
9c7c70ee
NC
330302009-01-14 Nick Clifton <nickc@redhat.com>
33031
33032 * ira-conflicts.c: Include addresses.h for the definition of
33033 base_reg_class.
435da628
UB
33034 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
33035 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9c7c70ee 33036
cf0c2a60
VM
330372009-01-13 Vladimir Makarov <vmakarov@redhat.com>
33038
33039 PR target/38811
33040 * Makefile.in (ira-lives.o): Add except.h.
33041
33042 * ira-lives.c: Include except.h.
33043 (process_bb_node_lives): Process can_throw_internal.
33044
d3302fd3
JJ
330452009-01-13 Jakub Jelinek <jakub@redhat.com>
33046
33047 PR rtl-optimization/38774
33048 * combine.c (simplify_set): When undoing cc_use change, don't do
33049 PUT_CODE on the newly created comparison, but instead put back the
33050 old comparison.
33051
7ab23fd0
JM
330522009-01-13 Joseph Myers <joseph@codesourcery.com>
33053
33054 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
33055 values. Remove duplicate arm8 entry.
33056
f9344488
SP
330572009-01-13 Sebastian Pop <sebastian.pop@amd.com>
33058
33059 PR tree-optimization/38786
33060 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
33061 the SSA_NAME case of expand_scalar_variables_expr.
33062 Set the type of an expression to the type of its assign statement.
33063 (expand_scalar_variables_expr): Also gather the scalar computation
33064 used to index the memory access. Do not pass loop_p.
33065 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
33066 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
bef3c57b
UB
33067 the gimple_stmt_iterator where it inserts new code.
33068 Do not pass loop_p.
f9344488
SP
33069 (copy_bb_and_scalar_dependences): Do not pass loop_p.
33070 (translate_clast): Update call to copy_bb_and_scalar_dependences.
33071
2d8bb84d
SP
330722009-01-13 Sebastian Pop <sebastian.pop@amd.com>
33073
33074 * graphite.h (debug_value): Removed.
33075 * graphite.c (debug_value): Removed.
33076
ff128632
RE
330772009-01-13 Richard Earnshaw <rearnsha@arm.com>
33078
435da628
UB
33079 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
33080 ldrd/strd with two 32-bit instructions.
ff128632 33081
d5a0a47b
RE
330822009-01-13 Richard Earnshaw <rearnsha@arm.com>
33083
435da628
UB
33084 * config/arm/arm.c (struct processors): Pass for speed down into
33085 cost helper functions.
d5a0a47b
RE
33086 (const_ok_for_op): Handle COMPARE and inequality nodes.
33087 (arm_rtx_costs_1): Rewrite.
33088 (arm_size_rtx_costs): Update prototype.
33089 (arm_rtx_costs): Pass speed down to helper functions.
33090 (arm_slowmul_rtx_costs): Rework cost calculations.
33091 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
33092 (arm_9e_rtx_costs): Likewise.
33093
26d5bf5b
UB
330942009-01-13 Uros Bizjak <ubizjak@gmail.com>
33095
33096 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
435da628 33097 relocations of local symbols wider than UNITS_PER_WORD are not valid.
26d5bf5b
UB
33098 (alpha_legitimize_address): Do not split local symbols wider than
33099 UNITS_PER_WORD into HIGH/LO_SUM parts.
33100
5d14e3d5
DS
331012009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
33102
33103 PR bootstrap/38580
33104 * gcc.c (process_command): Replace call to execvp with calls
33105 to pex_one and exit.
33106
33faafca
AS
331072009-01-03 Anatoly Sokolov <aesok@post.ru>
33108
33109 PR target/29141
33110 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
33111 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
33112 variant for devices with 3-byte PC.
ba20e309 33113 (__tablejump_elpm__): New.
33faafca 33114
634b5df5
JJ
331152009-01-12 Jakub Jelinek <jakub@redhat.com>
33116
33117 PR c/32041
33118 * c-parser.c (c_parser_postfix_expression): Allow `->' in
33119 offsetof member-designator, handle it as `[0].'.
33120
2842bb86
JDA
331212009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33122
33123 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
33124 function when not using named sections on targets with named sections
33125 if branch distance is less than 262132.
33126
76ee70f6
RE
331272009-01-12 Richard Earnshaw <rearnsha@arm.com>
33128
33129 * combine.c (combine_instructions): Recompute
33130 optimize_this_for_speed_p for each BB in the main combine loop.
33131
f56e675d
TB
331322009-01-12 Tomas Bily <tbily@suse.cz>
33133
33134 PR middlend/38385
26d5bf5b
UB
33135 * tree-loop-distribution.c (prop_phis): New function.
33136 (generate_builtin): Call prop_phis.
f56e675d 33137
c2152239
JJ
331382009-01-12 Jakub Jelinek <jakub@redhat.com>
33139
33140 PR tree-optimization/38807
33141 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
33142 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
33143
0e510b3e
AN
331442009-01-11 Adam Nemet <anemet@caviumnetworks.com>
33145
33146 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
33147 subreg of op0 to the original op0.
33148
c95b2534 331492009-01-11 Laurent GUERBY <laurent@guerby.net>
10270471
LG
33150
33151 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
2ba9daa7 33152
53a7ff9a
MS
331532009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
33154
33155 PR debug/7055
60839f5d 33156 * mips-tfile.c (parse_def): Fix parsing of def strings
53a7ff9a
MS
33157 starting with digits.
33158
b3a796bc
JJ
331592009-01-10 Jakub Jelinek <jakub@redhat.com>
33160
33161 PR target/38695
33162 * config/arm/arm.c (arm_is_long_call_p): Don't call
33163 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
33164
b21b850e
SB
331652009-01-09 Steven Bosscher <steven@gcc.gnu.org>
33166
33167 * regrename.c (regrename_optimize): Fix dumping.
33168 (find_oldest_value_reg): Preserve REG_POINTER.
33169 (copy_hardreg_forward_1): Likewise.
33170
e0e10d3a
DN
331712009-01-09 Diego Novillo <dnovillo@google.com>
33172
bf9b2cc9 33173 * gimple.h (struct gimple_statement_base) <uid>: Document
e0e10d3a
DN
33174 the restrictions on its use.
33175 (gimple_uid): Tidy.
33176 (gimple_set_uid): Tidy.
33177
c9da2ae8
JJ
331782009-01-09 Jakub Jelinek <jakub@redhat.com>
33179
33180 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
33181 zero guard even if align_bytes != 0 and count is smaller than
33182 size_needed.
33183
38432148 331842009-01-09 Vladimir Makarov <vmakarov@redhat.com>
a174c19c
VM
33185
33186 PR rtl-optimization/38495
26d5bf5b 33187 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
a174c19c
VM
33188 (add_range_and_copies_from_move_list): Print all added ranges.
33189 Add ranges to memory optimized destination.
33190
260fda3d
JJ
331912009-01-09 Jakub Jelinek <jakub@redhat.com>
33192
6f6278ad
JJ
33193 PR target/38686
33194 PR target/38708
33195 * config/i386/i386.c (override_options): Reject
33196 -mstringop-strategy=rep_8byte with -m32.
33197 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
33198 to 1. Do count comparison against epilogue_size_needed at compile
33199 time even when count_exp was constant forced into register. For
33200 size_needed don't jump to epilogue, instead just avoid aligning
33201 and invoke the body algorithm. If need_zero_guard, add zero guard
33202 even if count is non-zero, but smaller than size_needed + number of
33203 bytes that could be stored for alignment.
33204 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
33205 to 1. If need_zero_guard, add zero guard even if count is non-zero,
33206 but smaller than size_needed + number of bytes that could be stored
33207 for alignment. Compare size_needed with epilogue_size_needed instead
33208 of desired_align - align, don't adjust size_needed, pass
33209 epilogue_size_needed to the epilogue expanders.
33210
260fda3d 33211 PR c/35742
26d5bf5b 33212 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
260fda3d 33213
67b846fa
JDA
332142009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33215
33216 * pa.c (last_address): Change to unsigned.
33217 (update_total_code_bytes): Change argument to unsigned. Don't
33218 check if insn addresses are set.
33219 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
33220 addresses are not set.
33221 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
33222
91c82473
NC
332232009-01-09 Nick Clifton <nickc@redhat.com>
33224
33225 * config/sh/symbian.c: Replace uses of DECL_INLINE with
33226 DECL_DECLARED_INLINE_P.
33227
4017e262
JJ
332282009-01-09 Jakub Jelinek <jakub@redhat.com>
33229
0a49e5c2
JJ
33230 PR middle-end/38347
33231 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
33232 GET_MODE (op0) in operand_subword_force calls.
33233
4017e262
JJ
33234 PR middle-end/38771
33235 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
33236 fold_convert arg0 operands to TREE_TYPE (op0) first.
33237
7cd06356
VM
332382009-01-08 Vladimir Makarov <vmakarov@redhat.com>
33239
33240 * params.def (ira-max-conflict-table-size): Decrease default value
33241 to 1000.
33242
96867bbd
JJ
332432009-01-08 Jakub Jelinek <jakub@redhat.com>
33244
33245 PR tree-optimization/37031
33246 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
33247 on parameter_set.
33248 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
33249 allocate it using gc instead of heap, use VEC_quick_push instead of
33250 VEC_safe_push.
33251 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
33252 instead of heap, use VEC_quick_push instead of VEC_safe_push.
33253 * tree-data-ref.h (struct access_matrix): Change matrix to gc
33254 allocated vector from heap allocated.
33255 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
33256 * tree-loop-linear.c (linear_transform_loops): Allocate nest
33257 vector only after perfect_loop_nest_depth call.
33258
68f61c3d
SP
332592009-01-08 Sebastian Pop <sebastian.pop@amd.com>
33260 Jan Sjodin <jan.sjodin@amd.com>
33261
33262 PR tree-optimization/38559
33263 * graphite.c (debug_value, copy_constraint,
33264 swap_constraint_variables, scale_constraint_variable, ): New.
33265 (get_lower_bound, get_upper_bound): Removed.
33266 (graphite_trans_bb_strip_mine): Clean up this code that works
33267 only for constant number of iterations. Fully copy upper and
33268 lower bound constraints, not only the constant part of them.
33269 * graphite.h (debug_value): Declared.
33270
82567e33
IR
332712009-01-08 Ira Rosen <irar@il.ibm.com>
33272
33273 PR tree-optimization/37194
33274 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
2ba9daa7 33275 Don't add the cost of cost model guard in prologue to scalar
82567e33
IR
33276 outside cost in case of known number of iterations.
33277
7da13f1d
NF
332782009-01-07 Nathan Froyd <froydnj@codesourcery.com>
33279 Alan Modra <amodra@bigpond.net.au>
33280
33281 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
33282 non-word-aligned REG+CONST addressing.
33283
c0f64575
UB
332842009-01-07 Uros Bizjak <ubizjak@gmail.com>
33285
33286 PR target/38706
33287 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
33288 free_after_compilation when outputting a thunk.
33289 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
33290 Do not call free_after_compilation here.
33291
301b6a4e
UB
332922009-01-07 Uros Bizjak <ubizjak@gmail.com>
33293
33294 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
301b6a4e
UB
33295 (ix86_valid_target_attribute_inner_p): Ditto.
33296
6a114766
JS
332972009-01-07 Jan Sjodin <jan.sjodin@amd.com>
33298
33299 PR tree-optimization/38492
33300 PR tree-optimization/38498
33301 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
33302 * tree-chrec.h (scev_is_linear_expression): Declared.
33303 * graphite.c (graphite_cannot_represent_loop_niter): New.
33304 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
33305 (graphite_loop_normal_form): Use gcc_assert.
33306 (scan_tree_for_params): Use CASE_CONVERT.
33307 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
33308 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
33309 Use gcc_assert. Discard scops that contain unhandled cases.
33310 (build_scop_conditions): Return a boolean status for unhandled cases.
33311 (strip_mine_profitable_p): Print the loop number, not its depth.
33312 (is_interchange_valid): Pass the depth of the loop nest, don't
33313 recompute it wrongly.
33314 (graphite_trans_bb_block): Same.
33315 (graphite_trans_bb_block): Print tentative of loop blocking.
33316 (graphite_trans_scop_block): Do not print that the loop has been
33317 blocked.
33318 (graphite_transform_loops): Do not handle scops that contain condition
33319 scalar phi nodes.
33320
65b82caa
L
333212009-01-07 H.J. Lu <hongjiu.lu@intel.com>
33322
33323 AVX Programming Reference (December, 2008)
33324 * config/i386/avxintrin.h (_mm256_stream_si256): New.
33325 (_mm256_stream_pd): Likewise.
33326 (_mm256_stream_ps): Likewise.
33327
33328 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
33329 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
33330 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
33331 (bdesc_special_args): Add __builtin_ia32_movntdq256,
33332 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
33333 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
33334 (ix86_expand_special_args_builtin): Likewise.
33335
33336 * config/i386/sse.md (AVXMODEDI): New.
33337 (avx_movnt<mode>): Likewise.
33338 (avx_movnt<mode>): Likewise.
33339 (<sse>_movnt<mode>): Remove AVX support.
33340 (sse2_movntv2di): Likewise.
33341
cef158f9
RG
333422009-01-07 Richard Guenther <rguenther@suse.de>
33343
33344 PR middle-end/38751
33345 * fold-const.c (extract_muldiv): Remove obsolete comment.
33346 (fold_plusminus_mult_expr): Undo MINUS_EXPR
33347 to PLUS_EXPR canonicalization for the canonicalization.
33348
246cb5be
GP
333492009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
33350
33351 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
33352 hosted cross-compilers generating less efficient code.
33353
84b9b872
RS
333542009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
33355
33356 * function.h (rtl_data): Add a dbr_scheduled_p field.
33357 * reorg.c (dbr_schedule): Set it.
33358 (gate_handle_delay_slots): Check it.
33359 * config/mips/mips.c (mips_base_delayed_branch): Delete.
33360 (mips_reorg): Check flag_delayed_branch instead of
33361 mips_base_delayed_branch.
33362 (mips_override_options): Don't set mips_base_delayed_branch
33363 or flag_delayed_branch.
33364
ace984c8
RS
333652009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
33366
33367 PR rtl-optimization/38426.
33368 * ira.c (ira): Set current_function_is_leaf earlier.
33369
7ad7809b
JJ
333702009-01-06 Jakub Jelinek <jakub@redhat.com>
33371
33372 PR rtl-optimization/38722
33373 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
33374 too early, only set a flag and modify after last possible
33375 undo_all point.
33376
c52ec948
JJ
333772009-01-06 Janis Johnson <janis187@us.ibm.com>
33378
33379 PR c/34252
33380 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
33381 * real.c (decimal_single_format): Correct values of emin and emax.
33382 (decimal_double_format): Ditto.
33383 (decimal_quad_format): Ditto.
33384 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
33385 computation of DECnn_MIN and DECnn_MAX for corrected values of
33386 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
33387 __DECnn_MIN__, and adjust its computation for the corrected value
33388 of emin.
33389
300240e1
JH
333902009-01-06 Jan Hubicka <jh@suse.cz>
33391
33392 PR target/38744
435da628 33393 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
300240e1 33394
271c069e
GP
333952009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
33396
33397 * doc/contrib.texi (Contributors): Slightly adjust the end note.
33398 Add Robert Clark to the list of testers.
33399
64e4c301 334002009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 33401 Kai Tietz <kai.tietz@onevision.com>
64e4c301 33402
435da628
UB
33403 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
33404 * config/i386/i386.c (ix86_expand_call): Add clobbers.
64e4c301 33405
7650b83e 334062009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 33407 Kai Tietz <kai.tietz@onevision.com>
7650b83e 33408
435da628
UB
33409 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
33410 for w64 ABI.
33411 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
7650b83e
JH
33412 (ix86_nsaved_regs): Count only general purpose regs.
33413 (ix86_nsaved_sseregs): New.
33414 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
33415 to 16 for w64; compute padding and size of sse reg save area.
301b6a4e
UB
33416 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
33417 general purpose regs.
7650b83e
JH
33418 (ix86_emit_save_sse_regs_using_mov): New.
33419 (ix86_expand_prologue): Save SSE regs if needed.
33420 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
33421 (ix86_emit_restore_sse_regs_using_mov): New.
33422 (ix86_expand_epilogue): Save SSE regs if needed.
33423
9aa5c1b2 334242009-01-06 Jan Hubicka <jh@suse.cz>
c95b2534 33425 Kai Tietz <kai.tietz@onevision.com>
9aa5c1b2 33426
435da628
UB
33427 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
33428 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
33429 functions when accumulate outgoing args is off.
9aa5c1b2 33430
f7556aae
L
334312009-01-06 H.J. Lu <hongjiu.lu@intel.com>
33432
33433 PR bootstrap/38742
33434 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
33435 before using pseudos_have_intersected_live_ranges_p.
33436
33437 * ira-int.h (ira_assert): Always define.
33438
e47b7d04
L
334392009-01-06 H.J. Lu <hongjiu.lu@intel.com>
33440
33441 AVX Programming Reference (December, 2008)
33442 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
33443 (_mm256_permute2_pd): Likewise.
33444 (_mm_permute2_ps): Likewise.
33445 (_mm256_permute2_ps): Likewise.
33446 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
33447 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
33448
33449 * config/i386/i386.c (ix86_builtins): Remove
33450 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
33451 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
33452 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
33453 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
33454 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
33455 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
33456 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
33457 __builtin_ia32_vpermil2ps256.
33458 (ix86_init_mmx_sse_builtins): Updated.
33459 (ix86_expand_args_builtin): Likewise.
33460
44b86471
JDA
334612009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33462
e47b7d04
L
33463 * pa.c (output_call): Relocate non-jump insns in the delay slot of
33464 long absolute calls when generating PA 2.0 code.
44b86471 33465
311aab06
VM
334662009-01-05 Vladimir Makarov <vmakarov@redhat.com>
33467
33468 PR rtl-optimization/38583
33469 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
33470
33471 * params.def (ira-max-conflict-table-size): New.
33472
33473 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
2ba9daa7 33474
311aab06 33475 * ira.h (ira_conflicts_p): New external definition.
2ba9daa7 33476
311aab06
VM
33477 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
33478 table. Report this. Return result of building.
33479 (ira_build_conflicts): Use ira_conflicts_p. Check result of
33480 building conflict table.
33481
301b6a4e 33482 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
311aab06 33483 (ira_color): Use ira_conflicts_p.
2ba9daa7 33484
311aab06
VM
33485 * global.c: Include ira.h.
33486 (pseudo_for_reload_consideration_p, build_insn_chain): Use
33487 ira_conflicts_p.
33488
33489 * Makefile.in (global.o): Add ira.h.
2ba9daa7 33490
311aab06
VM
33491 * ira-build.c (mark_all_loops_for_removal,
33492 propagate_some_info_from_allocno): New.
33493 (remove_unnecessary_allocnos): Call
33494 propagate_some_info_from_allocno.
33495 (remove_low_level_allocnos): New.
33496 (remove_unnecessary_regions): Add parameter. Call
33497 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
33498 parameter to remove_unnecessary_regions.
33499 (ira_build): Remove all regions but root if the conflict table was
33500 not built. Update conflict hard regs for allocnos crossing calls.
33501
33502 * ira.c (ira_conflicts_p): New global.
33503 (ira): Define and use ira_conflicts_p.
33504
33505 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
33506 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
301b6a4e 33507 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
2ba9daa7 33508
5641785f
BE
335092009-01-06 Ben Elliston <bje@au.ibm.com>
33510
33511 * gengtype-lex.l (YY_NO_INPUT): Define.
33512
e4e5261f
AP
335132009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
33514
33515 PR c/34911
5641785f
BE
33516 * c-common.c (handle_vector_size_attribute): Also reject
33517 BOOLEAN_TYPE types.
e4e5261f 33518
7b10257f
SP
335192009-01-05 Sebastian Pop <sebastian.pop@amd.com>
33520
33521 PR tree-optimization/38492
33522 * graphite.c (rename_map_elt, debug_rename_elt,
301b6a4e
UB
33523 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
33524 rename_map_elt_info, eq_rename_map_elts,
33525 get_new_name_from_old_name, bb_in_sese_p): Moved around.
7b10257f
SP
33526 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
33527 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
33528 (sese_build_livein_liveouts): New.
33529 (new_sese, free_sese): New.
33530 (new_scop): Call new_sese.
33531 (free_scop): Call free_sese.
33532 (rename_variables_from_edge, rename_phis_end_scop): Removed.
33533 (register_old_new_names): Renamed register_old_and_new_names.
33534 (register_scop_liveout_renames, add_loop_exit_phis,
33535 insert_loop_close_phis, struct igp,
33536 default_liveout_before_guard, add_guard_exit_phis,
33537 insert_guard_phis, copy_renames): New.
33538 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
33539 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
33540 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
33541 (scop_adjust_phis_for_liveouts): New.
33542 (gloog): Call scop_adjust_phis_for_liveouts.
33543
33544 * graphite.h (struct sese): Documented. Added fields liveout,
301b6a4e 33545 num_ver and livein.
7b10257f
SP
33546 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
33547 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
33548 (struct scop): Added field liveout_renames.
33549 (SCOP_LIVEOUT_RENAMES): New.
33550
9761fcc7
HJ
335512009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
33552
33553 PR tree-optimization/38510
33554 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
33555 (translate_clast): Call recompute_all_dominators before
33556 graphite_verify.
33557 (gloog): Call recompute_all_dominators before graphite_verify.
33558
335592009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
c95b2534 33560 Jan Sjodin <jan.sjodin@amd.com>
9761fcc7
HJ
33561
33562 PR tree-optimization/38500
33563 * graphite.c (create_sese_edges): Call fix_loop_structure after
33564 splitting blocks.
33565
c95b2534 335662009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
48a01864
JS
33567
33568 * config.gcc: Add m32r*-*-rtems*.
33569 * config/m32r/rtems.h: New file.
33570
fc0cd180
BE
335712009-01-05 Ben Elliston <bje@au.ibm.com>
33572
33573 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
33574 (.po.pox): Likewise.
33575 (po/gcc.pot): Likewise.
33576
3106d8e5
DM
335772009-01-04 David S. Miller <davem@davemloft.net>
33578
33579 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
33580 (STARTING_FRAME_OFFSET): Always set to zero.
33581
0009b473
RS
335822009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
33583
33584 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
33585 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
33586 fixed-point types, and vectors of the same.
33587
4f24c6d6
RS
335882009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
33589
33590 * config/mips/sync.md (*mb_barrier): Rename to...
33591 (*memory_barrier): ...this.
33592
1df48f5c
JW
335932009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
33594
33595 * doc/extend.texi (Function Attributes): Move @cindex after @item
eefe5da0 33596 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
1df48f5c
JW
33597 and put in alphabetical order. Fix 'target' name and put in order.
33598 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
33599 typos.
33600
1a8c13b3
UB
336012009-01-04 Uros Bizjak <ubizjak@gmail.com>
33602
33603 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
33604 (memory_barrier): Expand as unspec instead of unspec_volatile.
33605 Remove mem:BLK from insn operands. Use Pmode scratch register.
33606 (*memory_barrier): Define as unspec instead of unspec_volatile.
33607 Use (match_dup 0) as input operand.
33608
33609 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
33610 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
33611 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
33612 scratch register. Remove operand 1.
33613 (*stbar): Define as unspec instead of unspec_volatile.
33614 Use (match_dup 0) as input operand, remove (const_int 8).
33615 (*membar): Define as unspec instead of unspec_volatile.
33616 Use (match_dup 0) as input operand, remove input operand 2.
33617
33618 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
33619 (memory_barrier): Expand as unspec instead of unspec_volatile.
33620 Remove mem:BLK from insn operands. Use Pmode scratch register.
33621 (*memory_barrier): Define as unspec instead of unspec_volatile.
33622 Use (match_dup 0) as input operand.
33623
33624 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
33625 Remove mem:BLK from insn operands. Use Pmode scratch register.
33626 Set volatile flag on operand 0.
33627 (*memory_barrier): New insn pattern.
33628
33629 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
33630 insn operands.
33631 (*memory_barrier): Use (match_dup 0) as input operand.
33632
33633 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
33634 Remove mem:BLK from insn operands. Use Pmode scratch register.
33635 Set volatile flag on operand 0.
301b6a4e 33636 (*mb_internal): New insn pattern.
1a8c13b3
UB
33637
33638 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
33639
fb0703f7
SB
336402009-01-04 Steven Bosscher <steven@gcc.gnu.org>
33641
33642 PR middle-end/38586
33643 * function.c (struct temp_slot): Move to the section of the file
33644 that deals with temp slots. Remove field 'address'.
33645 (temp_slot_address_table): New hash table of address -> temp slot.
33646 (struct temp_slot_address_entry): New struct, items for the table.
33647 (temp_slot_address_compute_hash, temp_slot_address_hash,
33648 temp_slot_address_eq, insert_temp_slot_address): Support functions
33649 for the new table.
33650 (find_temp_slot_from_address): Rewrite to use the new hash table.
33651 (remove_unused_temp_slot_addresses): Remove addresses of temp
33652 slots that have been made available.
33653 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
33654 worker function for remove_unused_temp_slot_addresses.
33655 (assign_stack_temp_for_type): Don't clear the temp slot address list.
33656 Add the temp slot address to the address -> temp slot map.
33657 (update_temp_slot_address): Update via insert_temp_slot_address.
33658 (free_temp_slots): Call remove_unused_temp_slot_addresses.
33659 (pop_temp_slots): Likewise.
33660 (init_temp_slots): Allocate the address -> temp slot map, or empty
33661 the map if it is already allocated.
33662 (prepare_function_start): Initialize temp slot processing.
33663
b5a430f3
SB
336642009-01-04 Steven Bosscher <steven@gcc.gnu.org>
33665
33666 PR middle-end/38584
33667 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
33668 Calculate the size of all stack vars assuming no packing of stack
33669 vars will happen, replacing a quadratic algorithm with a linear one.
33670
5d560619
JJ
336712009-01-03 Jakub Jelinek <jakub@redhat.com>
33672
33673 PR target/38707
33674 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
33675 can't be used.
33676
953a7caa
DN
336772009-01-03 Diego Novillo <dnovillo@google.com>
33678
33679 * doc/contrib.texi: Update contributions.
33680
5f26a230
JJ
336812009-01-03 Jakub Jelinek <jakub@redhat.com>
33682
493aa551
JJ
33683 PR c++/38705
33684 * builtins.c (fold_builtin_memory_op): Give up if either operand
33685 is volatile. Set srctype or desttype to non-qualified version
33686 of the other type.
33687
5f26a230
JJ
33688 PR c/38700
33689 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
33690 and FUNCTION_DECLs.
33691
c95b2534 336922009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
fafe34f9
KZ
33693
33694 PR rtl-optimization/35805
33695 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
33696 problem if fast dce is able to remove any instructions.
33697 * dce.c (dce_process_block): Fix dump message.
2ba9daa7 33698
0b355794
MM
336992009-01-02 Mark Mitchell <mark@codesourcery.com>
33700
33701 PR 33649
33702 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
33703
0cf0d02b
JJ
337042009-01-02 Jakub Jelinek <jakub@redhat.com>
33705
33706 PR middle-end/38690
33707 * tree-flow.h (op_code_prio, op_prio): New prototypes.
33708 * tree-pretty-print.c (op_code_prio): New function.
33709 (op_prio): No longer static. Use op_code_prio.
33710 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
33711 Use op_prio and op_code_prio to determine if () should be
33712 printed around operand(s) or not.
33713
33714 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
33715 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
33716 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
33717 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
33718 pp_character instead of pp_string for single letter printing.
33719
e3606f3b
RS
337202009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
33721
33722 * doc/extend.texi: Fix '#pragma GCC option' typo.
33723
c95b2534 337242009-01-02 Richard Guenther <rguenther@suse.de>
00f39bd5 33725
a5f061dc
RG
33726 * doc/install.texi (--enable-checking): Mention different
33727 default for stage1.
33728 (--enable-stage1-checking): Document.
00f39bd5 33729
26de0bcb
AP
337302009-01-01 Andrew Pinski <pinskia@gmail.com>
33731
33732 PR middle-end/30142
33733 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
33734 case to be an error.
33735
7a7d8fab
BE
337362009-01-02 Ben Elliston <bje@au.ibm.com>
33737
33738 * config/fp-bit.h (pack_d): Constify argument.
33739 * config/fp-bit.c (makenan): Constify return type. Remove casts.
33740 (isnan): Constify argument.
33741 (isinf): Likewise.
33742 (iszero): Likewise.
33743 (pack_d): Likewise.
33744 (_fpadd_parts): Constify return type.
33745 (_fpmul_parts): Likewise.
33746 (_fpdiv_parts): Likewise.
33747
b295aee2
JJ
337482009-01-01 Jakub Jelinek <jakub@redhat.com>
33749
33750 PR c/36489
33751 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
33752 warn about overwriting initializer with side-effects or
33753 -Woverride-init if !IMPLICIT.
33754 (output_init_element): Likewise. Pass IMPLICIT down to
33755 add_pending_init.
33756 (process_init_element): Add IMPLICIT argument. Pass it down
33757 to output_init_element.
33758 (push_init_element, pop_init_level, set_designator): Adjust
33759 process_init_element callers.
33760 (set_nonincremental_init, set_nonincremental_init_from_string):
33761 Adjust add_pending_init callers.
33762 (output_pending_init_elements): Adjust output_init_element callers.
33763 * c-tree.h (process_init_element): Adjust prototype.
33764 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
33765 process_init_element callers.
ad41bd84
JM
33766
33767\f
33768Copyright (C) 2009 Free Software Foundation, Inc.
33769
33770Copying and distribution of this file, with or without modification,
33771are permitted in any medium without royalty provided the copyright
33772notice and this notice are preserved.