]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs...
[gcc.git] / gcc / ChangeLog
CommitLineData
582346ed
NF
12010-10-20 Nathan Froyd <froydnj@codesourcery.com>
2
3 * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try
4 emitting the conditional move in the inner mode of the SUBREG.
5
ab177ad5
AS
62010-10-20 Anatoly Sokolov <aesok@post.ru>
7
8 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Remove macros.
9 * config/ia64/ia64-protos.h (ia64_preferred_reload_class): Remove.
10 * config/ia64/ia64.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
11 (ia64_preferred_reload_class): Make static. Change rclass argument
12 and result types from enum reg_class to reg_class_t.
13
604f9a90
PH
142010-10-20 Pat Haugen <pthaugen@us.ibm.com>
15
16 * tree-ssa-ter.c (find_replaceable_in_bb): Allow replacement over
17 call for single operand expression.
18
4244a86e
EB
192010-10-20 Eric Botcazou <ebotcazou@adacore.com>
20
21 * tree-optimize.c (execute_fixup_cfg): Purge dead abnormal call edges
22 if there is a call statement to pure or const function in the block.
23
825cb171
PK
242010-10-20 Paul Koning <pkoning@equallogic.com>
25
26 Fix several build errors for pdp11 target.
27 * config/pdp11/pdp11.md (*cmpdf): Fix tstd operands.
28 (cbranchdf4): Conditional on TARGET_FPU.
29 (movdf): Ditto; correct alternatives check.
30 (movmemhi): Fix predicate and constraint.
31 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Handle 64 bit mode.
32
1b0e3802
RG
332010-10-20 Richard Guenther <rguenther@suse.de>
34
35 PR lto/45667
36 * lto-streamer-out.c (output_gimple_stmt): Fix typo.
37 * tree-cfg.c (verify_gimple_call): Properly get the call fndecl.
38 (verify_gimple_assign_single): Disable ADDR_EXPR type check
39 when in LTO.
40
51934590
VM
412010-10-20 Vladimir Makarov <vmakarov@redhat.com>
42
43 PR fortran/42169
44 * ira-emit.c (store_can_be_removed_p): Return false instead of
45 gcc_unreachable.
46
2298ade7
DM
472010-10-20 Dmitry Melnik <dm@ispras.ru>
48
49 * fold-const.c (fold_binary_loc): New transformation.
50
b9121f42
L
512010-10-20 H.J. Lu <hongjiu.lu@intel.com>
52
53 PR target/46085
54 * config/i386/sse.md (reduc_splus_v8sf): Updated.
55 (reduc_splus_v4df): Likewise.
56
742d143c
RG
572010-10-20 Richard Guenther <rguenther@suse.de>
58
59 PR tree-optimization/45860
60 * tree-ssa-phiopt.c (cond_store_replacement): Do not do
61 conditional store replacement for non-register type stores.
62
0d475ac5
EB
632010-10-20 Eric Botcazou <ebotcazou@adacore.com>
64
65 * stor-layout.c (skip_simple_constant_arithmetic): New function.
66 (self_referential_size): Use it instead of skip_simple_arithmetic.
67
73dd5ce0
OH
682010-10-20 Olivier Hainque <hainque@adacore.com>
69
70 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p):
71 If the current function calls eh_return, claim live all registers
72 that we need to check for liveness otherwise.
73
977e30bc
NP
742010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
75
76 * c-decl.c (c_write_global_declarations): Call
77 objc_write_global_declarations when compiling Objective-C.
78 * c-lang.c (finish_file): Removed.
79
ad0c4c36
DD
802010-10-19 DJ Delorie <dj@redhat.com>
81
82 * doc/tm.texi.in (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): New.
83 (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Change to hook.
84 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
85 (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
86 * doc/tm.texi: Regenerate.
87 * targhooks.h (default_label_align_after_barrier_max_skip,
88 default_loop_align_max_skip, default_label_align_max_skip,
89 default_jump_align_max_skip): Declare.
90 * target.def (label_align_after_barrier_max_skip): New.
91 (loop_align_max_skip): New.
92 (label_align_max_skip): New.
93 (jump_align_max_skip): New.
94 * system.h (poison): Add those macros to the list.
95 * final.c (LABEL_ALIGN_MAX_SKIP): Remove.
96 (LOOP_ALIGN_MAX_SKIP): Remove.
97 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Remove.
98 (JUMP_ALIGN_MAX_SKIP): Remove.
99 (default_label_align_after_barrier_max_skip): New.
100 (default_loop_align_max_skip): New.
101 (default_label_align_max_skip): New.
102 (default_jump_align_max_skip): New.
103 (compute_alignments): Use the new hooks.
104 (shorten_branches): Likewise.
105
351877cf
RH
1062010-10-19 Richard Henderson <rth@redhat.com>
107
108 * config/i386/i386.c (bdesc_multi_arg): Use fma4i_fmadd_<mode>.
109 * config/i386/sse.md (fma<mode>4): Enable for FMA & SSE_MATH.
110 (fma4i_fmadd_<mode>): New.
111 (*split_fma, *split_fms, *split_fnma, *split_fnms): Rename from
112 fma4_fm*_<mode> and adjust to be pre-reload splitters to the
113 standard fma patterns.
114 (fmaddsub_<mode>): Rename from fma4i_fmaddsub_<mode> and
115 enable for FMA.
116 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
117 (*fma_fmadd_<mode>, *fma_fmsub_<mode>): New.
118 (*fma_fmaddsub_<mode>, *fma_fmsubadd_<mode>): New.
119
b5829a84
PK
1202010-10-19 Paul Koning <pkoning@equallogic.com>
121
122 * lower-subreg.c (resolve_shift_zext): Delete conditional code for
123 WORDS_BIG_ENDIAN != BYTES_BIG_ENDIAN.
124
46935749
RH
1252010-10-19 Richard Henderson <rth@redhat.com>
126
127 * config/ia64/ia64.md (fmasf4, *fmssf4, *nfmasf4): New.
128 (fmadf4, *fmsdf4, *nfmadf4): New.
129 (fmaxf4, *fmsxf4, *nfmaxf4): New.
130
16a1a239
ME
1312010-10-19 Michael Eager <eager@eagercon.com>
132
133 * config/microblaze/microblaze.c (TARGET_EXCEPT_UNWIND_INFO):
134 Use sjlj unwind info for exceptions.
135
d35ce109
FXC
1362010-10-19 Francois-Xavier Coudert<fxcoudert@gcc.gnu.org>
137
138 PR fortran/43414
139 * dwarf2out.c (add_calling_convention_attribute): Flag main
140 Fortran subroutine with DW_AT_main_subprogram.
141
e2f289f3
NC
1422010-10-19 Nick Clifton <nickc@redhat.com>
143
144 * config/rx/rx.c (rx_function_value): Small integer types are
145 promotes to SImode.
146 (rx_promote_function_mode): New function.
147 (TARGET_PROMOTE_FUNCTION_MODE): Define.
148
9018b19c
NC
1492010-10-19 Nick Clifton <nickc@redhat.com>
150
151 * config/mep/mep.c (mep_print_operand): Use
152 targetm.strip_name_encoding.
153 (mep_output_aligned_common): Likewise.
154
c512a6a0
BS
1552010-10-19 Basile Starynkevitch <basile@starynkevitch.net>
156 * gengtype.c (new_structure): Remove ad-hoc "location_s"
157 processing.
158
5c822194
RH
1592010-10-18 Richard Henderson <rth@redhat.com>
160
161 * simplify-rtx.c (simplify_ternary_operation) [FMA]: Simplify
162 (fma (neg a) (neg b) c) and (fma a (neg b) c).
163
89509419
RH
1642010-10-18 Richard Henderson <rth@redhat.com>
165
166 * config/i386/i386.c (IX86_BUILTIN_VFMSUBSS, IX86_BUILTIN_VFMSUBSD,
167 IX86_BUILTIN_VFMSUBPS, IX86_BUILTIN_VFMSUBPD,
168 IX86_BUILTIN_VFMSUBADDPS, IX86_BUILTIN_VFMSUBADDPD,
169 IX86_BUILTIN_VFNMADDSS, IX86_BUILTIN_VFNMADDSD,
170 IX86_BUILTIN_VFNMADDPS, IX86_BUILTIN_VFNMADDPD,
171 IX86_BUILTIN_VFNMSUBSS, IX86_BUILTIN_VFNMSUBSD,
172 IX86_BUILTIN_VFNMSUBPS, IX86_BUILTIN_VFNMSUBPD,
173 IX86_BUILTIN_VFMSUBADDPS256, IX86_BUILTIN_VFMSUBADDPD256,
174 IX86_BUILTIN_VFNMADDPS256, IX86_BUILTIN_VFNMADDPD256,
175 IX86_BUILTIN_VFNMSUBPS256, IX86_BUILTIN_VFNMSUBPD256): Remove.
176 (bdesc_multi_arg): Remove the corresponding builtins.
177 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Remove.
178 (UNSPEC_FMA4_FMSUBADD): Remove.
179 (UNSPEC_FMADDSUB): Rename from UNSPEC_FMA4_FMADDSUB.
180 * config/i386/sse.md (FMA4MODEF4): Remove.
181 (FMAMODE): Add.
182 (fma<mode>4): New expander.
183 (*fma4i_fmadd_<mode>): Macroize from fma4i_fmadd<mode>4 patterns,
184 and use FMA rtx code instead of UNSPEC_FMA4_INTRINSIC.
185 (*fma4i_fmsub_<mode>): Similarly.
186 (*fma4i_fnmadd_<mode>): Similarly.
187 (*fma4i_fnmsub_<mode>): Similarly.
188 (fma4i_vmfmadd_<mode>): Scalar patterns zero-extend, not merge
189 with the first operand.
190 (fma4i_fmaddsub_<mode>): Represent with UNSPEC_FMADDSUB instead
191 of explicit arithmetic. Macroize with AVXMODEF2P.
192 (*fma4i_fmsubadd_<mode>): Represent with UNSPEC_FMADDSUB + NEG.
193 (xop_frcz<mode>2): Macroize with FMAMODE.
194 (xop_vmfrcz<mode>2): Scalar patterns zero-extend, not merge with
195 the first operand.
196 * config/i386/fma4intrin.h (_mm_msub_ps): Use vfmadd intrinsic with
197 extra negations.
198 (_mm_msub_pd, _mm_msub_ss, _mm_msub_sd): Likewise.
199 (_mm_nmacc_ps, _mm_nmacc_pd, _mm_nmacc_ss, _mm_nmacc_sd): Likewise.
200 (_mm_nmsub_ps, _mm_nmsub_pd, _mm_nmsub_ss, _mm_nmsub_sd): Likewise.
201 (_mm256_msub_ps, _mm256_msub_pd): Likewise.
202 (_mm256_nmacc_ps, _mm256_nmacc_pd): Likewise.
203 (_mm256_nmsub_ps, _mm256_nmsub_pd): Likewise.
204 (_mm_msubadd_ps): Use vfmaddsub intrinsic with extra negation.
205 (_mm_msubadd_pd, _mm256_msubadd_ps, _mm256_msubadd_pd): Likewise.
206
21016e43
BS
2072010-10-18 Bernd Schmidt <bernds@codesourcery.com>
208
209 PR rtl-optimization/45966
210 * combine.c (try_combine): If added_sets_2, deal with the case
211 where i0 feeds i1 and i1 feeds i2.
212
93a3eea4
JH
2132010-10-18 Jan Hubicka <jh@suse.cz>
214
215 * ipa.c (cgraph_externally_visible_p): Handle externally visible and
216 preserve flags before trying to guess on visibility.
217 (varpool_externally_visible_p): New function.
218 (function_and_variable_visibility): Use it.
219
da57d1b9
NP
2202010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
221
222 Implemented parsing @synthesize and @dynamic for Objective-C.
223 * c-parser.c (c_parser_external_declaration): Recognize
224 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
225 (c_parser_objc_at_synthesize_declaration): New.
226 (c_parser_objc_at_dynamic_declaration): New.
227
2282010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
229
230 * c-parser.c (c_parser_objc_class_declaration): After finding an
231 error, parse the whole declaration then reset parser->error.
232
0069111f
MM
2332010-10-18 Michael Meissner <meissner@linux.vnet.ibm.com>
234
235 PR target/46041
236 * tree.h (mode_has_fma): Delete, move to c-cppbuiltins.c.
237 * builtins.c (mode_has_fma): Ditto.
238
89774469
SE
2392010-10-18 Steve Ellcey <sje@cup.hp.com>
240
241 PR target/36898
242 PR middle-end/43760
243 * config/ia64/ia64.c (rws_access_regno): Remove predicate check.
244
b69da3d8
JM
2452010-10-18 Joseph Myers <joseph@codesourcery.com>
246
247 * config/i386/i386.c (ix86_option_override_internal): Define and
248 use USE_X86_64_FRAME_POINTER for 64-bit flag_omit_frame_pointer
249 default.
250 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
251 (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Define.
252
71fc71d8
NP
2532010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
254
255 Merge from 'apple/trunk' branch on FSF servers.
256 * c-parser.c (c_parser_objc_type_name): Adapted to new parser the
257 following Objective-C change:
258
259 2005-10-10 Fariborz Jahanian <fjahanian@apple.com>
260
261 Radar 4301047
262 * c-parse.in (objc_quals): Build objc qualifier list same way
263 as gcc-3.3
264
7ba6eb1e
JH
2652010-10-18 Jan Hubicka <jh@suse.cz>
266
267 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p,
268 function_and_variable_visibility): Revert accidental commit.
269
e426b47b
NP
2702010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
271
272 Merge from 'apple/trunk' branch on FSF servers.
273 * c-parser.c (c_parser_typeof_specifier): Adapted to new parser
274 the following Objective-C change:
275
276 2005-10-07 Fariborz Jahanian <fjahanian@apple.com>
277
278 Radar 4204796
279 * c-parse.in (typespec_nonreserved_nonattr): Remove volatile from
280 'volatilized' type used in a typeof operator.
281
30fd5881
EB
2822010-10-18 Eric Botcazou <ebotcazou@adacore.com>
283
284 * tree-flow.h (gimple_purge_all_dead_abnormal_call_edges): Declare.
285 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): Move around and
286 rewrite modelled on gimple_purge_dead_eh_edges.
287 (gimple_purge_all_dead_abnormal_call_edges): New function.
288 * tree-inline.c (expand_call_inline): Call gimple_purge_dead_eh_edges
289 directly instead of through gimple_purge_dead_abnormal_call_edges.
290 * tree-ssa-pre.c (need_ab_cleanup): New static variable.
291 (eliminate): Set bit in need_ab_cleanup for the basic block if we have
292 removed AB side-effects from one of its statements.
293 (init_pre): Initialize need_ab_cleanup.
294 (fini_pre): Purge dead abnormal call edges and clean up the CFG if bits
295 are set in need_ab_cleanup. Free need_ab_cleanup afterward.
296
84628aa8
JJ
2972010-10-18 Jakub Jelinek <jakub@redhat.com>
298
299 PR c/46015
300 * c-parser.c (c_parser_statement_after_labels): Call mark_exp_read
301 on computed goto argument.
302
0f8d6231
RG
3032010-10-18 Richard Guenther <rguenther@suse.de>
304
305 PR tree-optimization/45967
306 * tree-ssa-structalias.c (type_could_have_pointers): Remove.
307 (could_have_pointers): Likewise.
308 (handle_rhs_call, handle_const_call, handle_pure_call,
309 find_func_aliases, intra_create_variable_infos): Remove calls to them.
310 (struct fieldoff): Add must_have_pointers field.
311 (type_must_have_pointers): New function.
312 (field_must_have_pointers): Likewise.
313 (push_fields_onto_fieldstack): Remove must_have_pointers_p argument.
314 Adjust field merging.
315 (create_function_info_for): May-have-pointers of varinfo is
316 almost always true.
317 (create_variable_info_for_1): Likewise.
318
3f2c0baf
TB
3192010-10-18 Tejas Belagod <tejas.belagod@arm.com>
320
321 * config/arm/neon.md (neon_move_hi_quad_<mode>): Fix the order
322 of operands to vec_concat.
323
e20efbfb
RG
3242010-10-18 Richard Guenther <rguenther@suse.de>
325
326 PR lto/44950
327 * tree.c (free_lang_data_in_decl): As we clear TYPE_METHODS
328 also clear references to entries of it.
329
fda9c731
AK
3302010-10-18 Andi Kleen <ak@linux.intel.com>
331
332 PR other/43448
333 * gccbug.in: Remove.
334 * Makefile.in (GCCBUG_INSTALL_NAME, gccbug): Remove
335 (doc, distclean, install-common): Remove reference to gccbug.
336 * configure: Regenerate.
337 * configure.ac (all_outputs): Remove gccbug.
338 * doc/configfiles.texi: Remove references to gccbug.
339 * doc/sourcebuild.texi: Dito.
340
8ddf04c2
JJ
3412010-10-18 Jakub Jelinek <jakub@redhat.com>
342
343 PR middle-end/46019
344 * fold-const.c (fold_binary_loc): If integer_pow2p has
345 TREE_INT_CST_LOW zero, look at TREE_INT_CST_HIGH.
346
1d32bbcd
BS
3472010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
348 Jeremie Salvucci <jeremie.salvucci@free.fr>
349
c68015cd 350 * gengtype.c (verbosity_level): Add variable.
1d32bbcd
BS
351 (set_gc_used): Count variables for verbosity.
352 (close_output_files): Backing up files, counting written ones
353 verbosily.
354 (write_types): Count emitted functions for verbosity. Added
355 debug messages.
356 (write_enum_defn): Count structures for verbosity. Added debug
357 messages.
c68015cd 358 (gengtype_long_options): Add "verbose" & "backupdir".
1d32bbcd
BS
359 (print_usage): Ditto.
360 (main): Verbose display of parsed files.
361
c68015cd 362 * gengtype.h (verbosity_level): Add declaration.
1d32bbcd 363
dad22268
BS
3642010-10-18 Basile Starynkevitch <basile@starynkevitch.net>
365
c68015cd
BS
366 * gengtype.c (parse_program_options): Add allocation of
367 plugin_files, and correct test on nb_plugin_files.
dad22268 368
90fbfdc3
NP
3692010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
370
371 Merge from 'apple/trunk' branch on FSF servers.
372
373 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
374
375 Radar 4133425
376 * c-decl.c (undeclared_variable): Issue diagnostic on
377 private 'ivar' access.
378
2a4337c0
UB
3792010-10-17 Uros Bizjak <ubizjak@gmail.com>
380
381 PR target/46051
382 * config/i386/sse.md (vec_interleave_highv4df): Fix third RTX of
383 generated sequence to match *avx_vperm2f128<mode>_nozero.
384 (vec_interleave_lowv4df): Ditto.
385 (vec_interleave_highv8sf): Ditto.
386 (vec_interleave_lowv8sf): Ditto.
387
78e7dd6a
KT
3882010-10-17 Kai Tietz <kai.tietz@onevision.com>
389
390 * libgcov.c (create_file_directory): Enable it for win32 case.
391 (gcov_exit): De-couple GCOV_PREFIX and GCOV_PREFIX_STRIP.
392 * doc/gcov.texi (GCOV_PREFIX): Adjusted.
393 (GCOV_PREFIX_SKIP): Likewise.
394
5b8b526e
NP
3952010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
396
397 * doc/objc.texi (GNU Objective-C runtime API): New section.
398 (Modern GNU Objective-C runtime API): New section.
399 (Traditional GNU Objective-C runtime API): New section.
400 (Executing code before main): Mention that this section is
401 specific to the GNU Objective-C runtime.
402 (Garbage Collection): Same.
403
91b90ead
UB
4042010-10-17 Uros Bizjak <ubizjak@gmail.com>
405
406 * c-parser.c (c_parser_for_statement): Move initialization of
407 cond and incr before if.
408
abd26bfb
AS
4092010-10-17 Anatoly Sokolov <aesok@post.ru>
410
411 * target.def (preferred_output_reload_class): New hook.
412 * doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
413 * doc/tm.texi: Regenerate.
414 * targhooks.c (default_preferred_output_reload_class): New function.
415 * targhooks.h (default_preferred_output_reload_class): Declare.
91b90ead 416 * reload.c (find_dummy_reload): Change rclass argument type from
abd26bfb
AS
417 enum reg_class to reg_class_t. Change this_alternative array type
418 from enum reg_class to reg_class_t.
419 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
420 (push_reload): Change preferred_class variable type to reg_class_t.
421 Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
422 * recog.c (reg_fits_class_p): Change result type to bool. Change cl
423 argument type from enum reg_class to reg_class_t. Use
424 HARD_REGISTER_NUM_P predicate.
425 * recog.h (reg_fits_class_p): Update prototype.
426
427 * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
91b90ead
UB
428 * config/i386/i386-protos.h (ix86_preferred_output_reload_class):
429 Remove.
abd26bfb
AS
430 * config/i386/i386.c (ix86_preferred_output_reload_class): Make
431 static. Change regclass argument and result types from enum reg_class
432 to reg_class_t.
433 (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
434
c37d8c30
IS
4352010-10-17 Iain Sandoe <iains@gcc.gnu.org>
436
91b90ead 437 * c-parser.c (c_parser_objc_class_instance_variables): Update to use
c37d8c30
IS
438 visibility enum, and handle @package.
439
1501d094
NP
4402010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
441
442 * doc/objc.texi (What you can and what you cannot do in +load):
443 Document that sending messages to constant string objects in +load
444 is not guaranteed to work.
445
bb853349
JH
4462010-10-16 Jan Hubicka <jh@suse.cz>
447
448 PR middle-end/44206
449 * ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
450 existence of refrences before removing the function.
451
844db5d0
JH
4522010-10-16 Jan Hubicka <jh@suse.cz>
453
454 * cgraph.c (dump_cgraph_node): Dump same_comdat_group,
455 only_called_at_startup and only_called_at_exit.
91b90ead 456 (cgraph_propagate_frequency): Compute only_called_at_startup and
844db5d0
JH
457 only_called_at_exit.
458 * cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
459 only_called_at_exit.
460 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
461 flags.
462 * predict.c (compute_function_frequency): Initialize the new flags.
463
08d78391
EB
4642010-10-16 Eric Botcazou <ebotcazou@adacore.com>
465
466 * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
467 ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
468 on the bounds of its domain.
469 * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
470
4b0b4ab0
AS
4712010-10-16 Anatoly Sokolov <aesok@post.ru>
472
473 * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
474 * config/avr/avr-protos.h (preferred_reload_class): Remove.
475 * config/avr/avr.c (preferred_reload_class): Remove.
476 * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
477 * config/pa/pa.c (emit_move_sequence): Update comment
478 * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
479 * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
480 * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
481 * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
482 * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
483 * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
484 * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
485 * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
486 * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
487 * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
488 * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
489 * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
490 * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.
491
7bb3487f
JM
4922010-10-16 Joseph Myers <joseph@codesourcery.com>
493
494 * opts.c (set_fast_math_flags,
495 set_unsafe_math_optimizations_flags): Make static.
496 * toplev.h (set_fast_math_flags,
497 set_unsafe_math_optimizations_flags): Remove prototypes.
498
0a587f65
JM
4992010-10-16 Joseph Myers <joseph@codesourcery.com>
500
501 * config/arm/arm.c (arm_option_optimization): Set
502 flag_section_anchors to 1 not 2.
503 * config/i386/i386.c (ix86_option_override_internal): Check
504 global_options_set.x_flag_zee and
505 global_options_set.x_flag_omit_frame_pointer.
506 (ix86_option_optimization): Don't set flag_omit_frame_pointer and
507 flag_zee to 2.
508 * config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
509 global_options_set.x_flag_omit_frame_pointer.
510 * config/rs6000/rs6000.c (rs6000_option_init_struct): Set
511 opts->x_flag_section_anchors to 1 not 2.
512 * config/sh/sh.c (sh_option_optimization): Don't set
513 flag_schedule_insns to 2.
514 (sh_option_override): Check
515 global_options_set.x_flag_schedule_insns.
516 * opts.c (finish_options): Check opts_set->x_flag_section_anchors.
517
e1dbd4c8
KT
5182010-10-16 Kai Tietz <kai.tietz@onevision.com>
519
520 * configure.ac: Make sure inhibit_libc remains false for mingw targets
521 as cross.
522 * configure: Regenerated.
523
2edb37a6
XDL
5242010-10-15 Xinliang David Li <davidxl@google.com>
525
526 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths): New
527 function.
528 (use_pred_not_overlap_with_undef_path_pred): Outline phi arg pruning
529 into a recursive function.
530
ba492752
UB
5312010-10-15 Uros Bizjak <ubizjak@gmail.com>
532
533 * config/i386/i386.md (*movdfcc_1_rex64): Correct mode attribute.
534 (*movdfcc_1): ditto.
535
7e4aae92
JM
5362010-10-15 Joseph Myers <joseph@codesourcery.com>
537
538 * target.def (target_option.init_struct): New hook.
539 * doc/tm.texi.in (TARGET_OPTION_INIT_STRUCT): New @hook.
540 * doc/tm.texi: Regenerate.
541 * hooks.c (hook_void_gcc_optionsp): New.
542 * hooks.h (hook_void_gcc_optionsp): Declare.
543 * langhooks-def.h (lhd_init_options_struct): Remove.
91b90ead 544 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define to hook_void_gcc_optionsp.
7e4aae92
JM
545 * langhooks.c (lhd_init_options_struct): Remove.
546 * opts.c (init_options_struct): Also call
547 targetm.target_option.init_struct.
548 * config/i386/i386.c (ix86_option_init_struct,
549 TARGET_OPTION_INIT_STRUCT): New.
550 (ix86_option_optimization): Move some settings to
551 ix86_option_init_struct.
552 * config/pdp11/pdp11.c (pdp11_option_init_struct,
553 TARGET_OPTION_INIT_STRUCT): New.
554 (pdp11_option_optimization): Move some settings to
555 pdp11_option_init_struct.
556 * config/rs6000/rs6000.c (rs6000_option_optimization): Replace by
557 rs6000_option_init_struct. Use options structure pointer.
91b90ead 558 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7e4aae92
JM
559 * config/s390/s390.c (s390_option_init_struct,
560 TARGET_OPTION_INIT_STRUCT): New.
561 (s390_option_optimization): Don't set
562 flag_asynchronous_unwind_tables here.
563 * config/sh/sh.c (sh_option_init_struct,
564 TARGET_OPTION_INIT_STRUCT): New.
565 (sh_option_optimization): Don't set flag_finite_math_only here.
566 * config/spu/spu.c (spu_option_optimization): Replace by
567 spu_option_optimization. Use options structure pointer.
91b90ead 568 (TARGET_OPTION_OPTIMIZATION): Replace by TARGET_OPTION_INIT_STRUCT.
7e4aae92 569
1b1562a5
MM
5702010-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
571
572 * doc/md.texi (Standard Names): Add fma@var{m}4 documentation.
573
574 * doc/rtl.texi (RTX_TERNARY): Document FMA is ternary. Add
575 SIGN_EXTRACT and ZERO_EXTRACT which were missing.
576 (Standard names): Document fma.
577
578 * doc/cpp.texi (Common Predefined Macros): Document __FP_FAST_FMA,
579 __FP_FAST_FMAF, __FP_FAST_FMAL.
580
581 * builitns.c (expand_builtin_mathfn_ternary): New function for
582 expanding ternary math functions, like fma.
583 (expand_builtin): Call it for the fma builtins.
584
585 * simplify-rtx.c (simplify_ternary_operation): Don't simplify FMA
586 ops at present.
587
588 * tree-vect-stmts.c (vectorizable_call): Allow 3 argument
589 vectorizable functions to support vectorizing fma.
590
591 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
592 Handle fma builtins.
593
594 * config/rs6000/vsx.md (UNSPEC_VSX_MADD): Delete.
595 (UNSPEC_VSX_MSUB): Ditto.
596 (UNSPEC_VSX_NMADD): Ditto.
597 (UNSPEC_VSX_NMSUB): Ditto.
598 (vsx_fmadd<mode>4*): Rewrite to use FMA rtl in some cases instead
599 of UNSPEC. Renumber combiner patterns.
600 (vsx_fmsub<mode>4*): Ditto.
601 (vsx_fnmadd<mode>4*): Ditto.
602 (vsx_fnmsub<mode>4*): Ditto.
603
604 * config/rs6000/altivec.md (UNSPEC_VNMSUBFP): Delete.
605 (altivec_vmaddfp): Rewrite to use FMA rtl if no fused
91b90ead 606 multiply/add. Rename combiner pattern, and add TARGET_FUSED_MADD test.
1b1562a5
MM
607 (altivec_vmaddfp_1): Ditto.
608 (altivec_vmaddfp_2): Ditto.
609 (atlivec_mulv4sf3): Ditto.
610 (altivec_vnmsubfp): Ditto.
611 (altivec_vnmsubfp_1): Ditto.
612 (altivec_vnmsubfp_2): Ditto.
613 (altivec_vnmsubfp_3): Delete.
614
91b90ead 615 * config/rs6000/rs6000.md (fmasf4): New insns for fma builtin support.
1b1562a5
MM
616 (fmasf4_fpr): Ditto.
617 (fmssf4_fpr): Ditto.
618 (fnmasf4_fpr): Ditto.
619 (fnmssf4_fpr): Ditto.
620 (fmadf4): Ditto.
621 (fmadf4_fpr): Ditto.
622 (fmsdf4_fpr): Ditto.
623 (fnmadf4_fpr): Ditto.
624 (fnmsdf4_fpr): Ditto.
625
626 * optabs.h (OTI_fma): Add fma optab.
627 (fma_optab): Ditto.
628
629 * genopinit.c (optabs): Set fma optab.
630
631 * rtl.def (FMA): Add FMA rtl.
632
633 * tree.h (mode_has_fma): New function to return if MODE supports a
634 fast multiply and add instruction.
635 * builtins.c (mode_has_fma): Ditto.
636
695c3817
JH
6372010-10-15 Jan Hubicka <jh@suse.cz>
638
639 * lto-streamer-out.c (write_symbol): Use pointer set of seen
640 objects instead of bitmap.
641 (produce_symtab): Likewise; output defined symbols first.
642
c1721efb
JZ
6432010-10-15 Jie Zhang <jie@codesourcery.com>
644
645 * doc/invoke.texi: Add -fstrict-volatile-bitfields to
646 Option Summary and Index.
647
638fd1e5
RG
6482010-10-15 Richard Guenther <rguenther@suse.de>
649
650 * tree.c (free_lang_data_in_decl): Clear DECL_INITIAL
651 for automatic variables again.
652
fbdaa0b2
JM
6532010-10-15 Joseph Myers <joseph@codesourcery.com>
654
655 * doc/extend.texi (Variable Length): Don't refer to VLAs not
656 conforming to C99.
657
a32b99ad
JM
6582010-10-15 Joseph Myers <joseph@codesourcery.com>
659
660 * config/rx/rx.c (rx_option_optimization): Change to
661 rx_override_options_after_change. Don't change
662 flag_lto_compression_level. Don't check for changes to whether
663 FPU instructions can be used. Check and set only
664 flag_finite_math_only, not other fast-math flags.
665 (rx_option_override): Call rx_override_options_after_change.
666 (TARGET_OPTION_OPTIMIZATION): Remove.
667 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
668
b534dca5
JM
6692010-10-15 Joseph Myers <joseph@codesourcery.com>
670
671 * config/rs6000/rs6000.c (rs6000_option_optimization): Don't
672 disable section anchors for lang_hooks.name[4] != 'O'.
673
25b0dd68
JM
6742010-10-15 Joseph Myers <joseph@codesourcery.com>
675
676 * config/frv/frv.c (frv_option_optimization,
677 TARGET_OPTION_OPTIMIZATION): Remove.
678 * config/frv/frv.h (RCSP_SOFTWARE_PIPELINING): Remove.
679
936fcef1
MM
6802010-10-15 Michael Matz <matz@suse.de>
681
682 * cgraphunit.c (clone_of_p): Define unconditionally.
683
7a1a20d1
RG
6842010-10-15 Richard Guenther <rguenther@suse.de>
685
686 PR lto/45957
ba492752 687 * tree.c (free_lang_data_in_decl): Do not clear DECL_INITIAL of vars.
7a1a20d1 688
034c987c
CLT
6892010-10-15 Chung-Lin Tang <cltang@codesourcery.com>
690
691 * ifcvt.c (find_active_insn_before): New function.
692 (find_active_insn_after): New function.
693 (cond_exec_process_if_block): Use new functions to replace
694 prev_active_insn() and next_active_insn().
695
56f01f0b
YQ
6962010-10-14 Yao Qi <yao@codesourcery.com>
697
698 PR target/45447
699 * config/arm/arm.c (arm_build_builtin_va_list): Assign
700 va_list_name to TYPE_STUB_DECL (va_list_type).
701
97ba0040
JH
7022010-10-14 Jan Hubicka <jh@suse.cz>
703
704 PR middle-end/45621
705 * cgraph.c (cgraph_update_edges_for_call_stmt_node): When new call is
706 redirected to clone, be happy.
707 * cgraph.h (cgraph node): Enable former_clone_of unconditinally.
708 * cgraphunit.c (verify_cgraph_node, cgraph_materialize_clone): Handle
936fcef1 709 former_clone_of unconditionally.
ba492752 710
668ea4b1
IS
7112010-10-14 Iain Sandoe <iains@gcc.gnu.org>
712
91b90ead 713 Merge from FSF apple 'trunk' branch.
668ea4b1 714 2006 Fariborz Jahanian <fjahanian@apple.com>
ba492752 715
668ea4b1
IS
716 Radars 4436866, 4505126, 4506903, 4517826
717 * c-parser.c (c_parser, objc_property_attr_context) New flag.
718 (c_lex_one_token): Handle property attributes.
719 (c_parser_external_declaration): Handle @property.
720 (c_parser_declaration_or_fndef): Warn on invalid attributes before
721 @alias, @class, @end and @property objc keywords.
722 (c_parser_objc_methodprotolist): Handle @property.
723 (c_parser_objc_property_attrlist): New.
724 (c_parser_objc_at_property): New.
725 * c-typeck.c (build_component_ref): Handle CLASS.property syntax.
726 (build_modify_expr): Likewise.
727
e05eee49
JJ
7282010-10-14 Jakub Jelinek <jakub@redhat.com>
729
730 PR tree-optimization/46008
ba492752 731 * tree-if-conv.c (predicate_bbs): Try to canonicalize c2 if possible.
e05eee49 732
7d36e538
RG
7332010-10-14 Richard Guenther <rguenther@suse.de>
734
735 PR tree-optimization/44913
736 * tree-data-ref.c (disjoint_objects_p): Remove.
737 (dr_may_alias_p): Simplify. Only hand the base object to
738 the alias-oracle.
739 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
740 some more trees, bail out instead of asserting.
741 (ptr_derefs_may_alias_p): Likewise. Export.
742 (refs_may_alias_p_1): Handle STRING_CSTs.
743 * tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
744
180f8dbb
JM
7452010-10-14 Joseph Myers <joseph@codesourcery.com>
746
747 PR c/45969
748 * c-typeck.c (build_binary_op): Don't try to compute a semantic
749 type with excess precision for boolean operations.
750
f8ed6dc5
JS
7512010-10-14 Jeremie Salvucci <jeremie.salvucci@free.fr>
752 Basile Starynkevitch <basile@starynkevitch.net>
753
754 * gengtype.c: Include getopt.h and version.h.
755
756 (lang_bitmap, struct outf, outf_p)
757 (get_output_file_with_visibility, oprintf): Definitions moved to
758 gengtype.h
759 (output_files, header_file, srcdir, srcdir_len, this_file)
760 (do_dump): No more static variables.
761 (do_debug): New.
762 (dbgprint_count_type_at): Added new function.
763 (gengtype_long_options): New.
764 (print_usage, print_version, parse_program_options): New.
765 (main): Call parse_program_options, and removed old option
766 handling code. Added some debug output.
767
768 * gengtype.h: Updated copyright year.
769 (lang_bitmap, struct outf, outf_p, header_file, oprintf)
770 (get_output_file_with_visibility, srcdir, srcdir_len, do_dump):
771 Moved from gengtype.c to here.
ba492752
UB
772 (do_debug, read_state_filename, write_state_filename): New variables.
773 (DBGPRINTF, DBGPRINT_COUNT_TYPE): New macros.
f8ed6dc5
JS
774
775 * Makefile.in:
776 (REVISION): Always defined.
777 (version.o): Removed ifdef REVISION_c.
778 (s-gtype): Pass arguments to build/gengtype program.
779 (build/version.o): Added building rule.
780 (build/gengtype$(build_exeext)): Added build/version.o.
781
560d6bd5
IS
7822010-10-14 Iain Sandoe <iains@gcc.gnu.org>
783
784 Partial merge of 'ObjC GC' from FSF apple 'trunk' branch.
785 * config/darwin-c.c (darwin_cpp_builtins): Define __weak and
786 __strong macros.
787
a61c3633
EB
7882010-10-14 Eric Botcazou <ebotcazou@adacore.com>
789
790 * sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
791 may_trap_or_fault_p instead of may_trap_p predicate.
792 * tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
793 (substitute_placeholder_in_expr): Likewise.
794 * tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
795 flag on MEM_REF nodes.
796 (copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
797 flags on INDIRECT_REF nodes.
798
8ac7fdcb
NF
7992010-10-14 Nathan Froyd <froydnj@codesourcery.com>
800
ba492752 801 * config.gcc (arm*-*-linux-*eabi) <tm_file>: Add bpabi.h from libgcc.
8ac7fdcb
NF
802 (arm*-*-uclinux*eabi) <tm_file>: Likewise.
803 (arm*-*-eabi*) <tm_file>: Likewise.
804 (frv-*-elf) <tm_file>: Add frv-abi.h from libgcc.
805 (frv-*-*linux*) <tm_file>: Likewise.
806 * config/arm/bpabi.h: Delete DECLARE_LIBRARY_RENAMES stanzas
807 and associated helper macros.
808 * config/frv/frv-abi.h: Delete.
809
1e85e720
RG
8102010-10-14 Richard Guenther <rguenther@suse.de>
811
812 PR lto/44561
813 * tree.def (NULLPTR_TYPE): New tree code.
814 * dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
815 * dwarf2out.c (is_base_type): Likewise.
816 (gen_type_die_with_usage): Likewise.
817 * sdbout.c (plain_type_1): Likewise.
818 * tree.c (build_int_cst_wide): Likewise.
ba492752 819 * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal.
1e85e720 820
48476d13
JM
8212010-10-14 Joseph Myers <joseph@codesourcery.com>
822
823 * params.c (params_finished): New.
824 (add_params): Assert !params_finished.
825 (finish_params): New.
826 (set_param_value_internal): Take params and params_set
827 parameters. Assert params_finished.
828 (set_param_value, maybe_set_param_value): Take params and
829 params_set parameters. Update calls to set_param_value_internal.
830 (set_default_param_value): Assert !params_finished. Don't use
831 set_param_value_internal.
832 (default_param_value, init_param_values): New.
833 * params.h (struct param_info): Change value to default_value.
834 Remove set.
835 (set_param_value, maybe_set_param_value): Add params and
836 params_set parameters.
837 (PARAM_VALUE): Get parameters from global_options.
838 (PARAM_SET_P): Remove.
839 (finish_params, default_param_value, init_param_values): New.
840 * common.opt (param_values): New Variable.
841 * config/arm/arm.c (arm_option_override): Pass extra arguments to
842 maybe_set_param_value.
843 * config/i386/i386.c (ix86_option_override_internal): Pass extra
844 arguments to maybe_set_param_value.
845 * config/picochip/picochip.c (picochip_option_override): Pass
846 extra arguments to maybe_set_param_value.
847 * config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
848 extra arguments to maybe_set_param_value.
849 * config/s390/s390.c (s390_option_override): Use
850 maybe_set_param_value instead of set_param_value. Pass extra
851 arguments to maybe_set_param_value.
852 * config/sparc/sparc.c (sparc_option_override): Pass extra
853 arguments to maybe_set_param_value.
854 * config/spu/spu.c (spu_option_override): Pass extra arguments to
855 maybe_set_param_value.
856 * opts.c (handle_param): Take opts and opts_set parameters.
857 Update call to set_param_value.
ba492752 858 (initial_min_crossjump_insns, initial_max_fields_for_field_sensitive,
48476d13
JM
859 initial_loop_invariant_max_bbs_in_loop): Remove.
860 (init_options_once): Don't set them.
861 (init_options_struct): Initialize parameters structures.
862 (default_options_optimization): Use default_param_value when
863 restoring defaults. Update calls to maybe_set_param_value.
864 (finish_options): Update calls to maybe_set_param_value.
865 (common_handle_option): Update calls to handle_param and
866 set_param_value.
ba492752 867 * toplev.c (DEFPARAM): Update definition for changes to param_info.
48476d13
JM
868 (general_init): Call finish_params.
869
4af476d7
NC
8702010-10-14 Nick Clifton <nickc@redhat.com>
871
872 * config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
873 (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
874 (FIRST_PSEUDO_REGISTER): Increase by one.
875 (FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
876 (HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
877 (MODES_TIEABLE): Call mn10300_modes_tieable.
ba492752 878 (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add CC_REGS.
4af476d7
NC
879 (LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
880 (CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
881 (SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
882 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
883 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
884 (mn10300_cc_status_mdep): Delete.
885 (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
886 * config/mn10300/mn10300 (mn10300_option_override): Stop disabling
887 the combine-stack-adjust pass.
888 (print_operand): Use the mode of the comparison operation to
889 select the comparison suffix.
890 (notice_update_cc): Delete.
891 (mn10300_secondary_reload_class): Remove test for stack pointer
892 based arithmetic.
893 (output_tst): Rename to mn10300_output_cmp.
894 (impossible_plus_operand): Move into predicates.md.
895 (mn10300_legitimize_address): Make static.
896 (mn10300_legitimate_address_p): Make static. Only allow SI sized
897 constant pic operands.
898 (mn10300_legitimate_constant_p): New function.
899 (mn10300_case_values_threshold): Make static.
900 (mn10300_hard_regno_mode_ok): New function.
901 (mn10300_modes_tieable): New function.
902 (mn10300_select_cc_mode): New function.
903 * config/mn10300/predicates.md (impossible_plus_operand): Define.
904 * config/mn10300/mn10300-protos.h: Tidy.
905 (mn10300_legitimate_constant_p, mn10300_modes_tieable)
906 (mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
907 * config/mn10300/mn10300.md (cc attribute): Delete. Replace
908 with clobbers or sets of CC_REG.
909 (CC_REG): Define.
910 (mov*): Remove use of CLR instruction.
911 (cbranch_si4_<code>): New pattern/split.
912 (integer_conditional_branch): New pattern.
913 (cbranch_sf4_<code>): New pattern/split.
914 (float_conditional_branch): New pattern.
915 (casesi): Use addsi3 pattern instead of movsi pattern to add and
916 move a value at the same time.
917 (cc0 peepholes): Remove.
918
cfeb0fa8
AB
9192010-10-14 Andrey Belevantsev <abel@ispras.ru>
920
921 * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
922 on RTX_FRAME_RELATED_P insns and the insn to which
923 NOTE_INSN_EPILOGUE_BEG is attached.
924 * sched-vis.c (print_value): Allow NULL value.
925
3e6a3f6f
AB
9262010-10-14 Andrey Belevantsev <abel@ispras.ru>
927
928 PR rtl-optimization/45570
929 * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
930 assert that we are pipelining outer loops. Allow returning
931 zero predecessors.
932
262d8232
AB
9332010-10-14 Andrey Belevantsev <abel@ispras.ru>
934
935 * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
936 (tidy_control_flow): Tidy vertical space.
937 (sel_remove_bb): New variable idx. Use it to remember the basic
938 block index before deleting the block.
939 (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
940 (sel_merge_blocks): ... here.
941 * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
942
6699b754
JJ
9432010-10-14 Jakub Jelinek <jakub@redhat.com>
944
945 * cse.c (is_dead_reg): Change into inline function that is not
946 called through for_each_rtx.
947 (set_live_p): Adjust caller.
948 (insn_live_p): Don't reset DEBUG_INSNs here.
ba492752 949 (struct dead_debug_insn_data): New data.
6699b754
JJ
950 (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
951 (delete_trivially_dead_insns): If there is just one setter for the
952 dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
953 and add DEBUG_INSN for it right before the removed setter and
954 use the DEBUG_EXPR instead of the dead pseudo.
955
d2e60b7b 9562010-10-14 Zdenek Dvorak <rakdver@kam.uniff.cz>
6699b754 957
d2e60b7b
ZD
958 * et-forest.c (et_nca): Return NULL immediately when
959 the dominance forest has disjoint components.
960
854edfcd
VM
9612010-10-13 Vladimir Makarov <vmakarov@redhat.com>
962
963 * ira.c (setup_class_hard_regs): Fix typo in indexing
964 ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
965
208d8b55
TWL
9662010-10-14 Tijs Wiebe Lefering <twlevo@gmail.com>
967
968 * graph.c (inbb): New variable.
969 (start_bb): Set inbb to 1 if output is inside of a building block.
970 (end_bb): Check if output is inside of a building block.
971
8908df28
EB
9722010-10-13 Eric Botcazou <ebotcazou@adacore.com>
973
974 PR rtl-optimization/45912
975 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
976 regno of registers instead of their index to compute the alignment.
977
1e27129f
L
9782010-10-13 H.J. Lu <hongjiu.lu@intel.com>
979
980 * config/i386/i386.c (ix86_build_const_vector): Check vector
981 mode instead of scalar mode.
982 (ix86_build_signbit_mask): Likewise.
983 (ix86_expand_fp_absneg_operator): Updated.
984 (ix86_expand_copysign): Likewise.
985 (ix86_expand_int_vcond): Likewise.
986 (ix86_emit_swdivsf): Likewise.
987 (ix86_sse_copysign_to_positive): Likewise.
988 (ix86_expand_sse_fabs): Likewise.
989 * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
990 * config/i386/sse.md (copysign<mode>3): Likewise.
991 (sse2_cvtudq2ps): Likewise.
992 (vec_unpacku_float_hi_v4si): Likewise.
993 (vec_unpacku_float_lo_v4si): Likewise.
994
995 * config/i386/i386.c (ix86_builtins): Add
996 IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
997 (bdesc_args): Likewise.
ba492752 998 (ix86_builtin_vectorized_function): Support
1e27129f
L
999 IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
1000 IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
1001 and IX86_BUILTIN_CVTPS2DQ256.
1002 (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
1003
1004 * config/i386/sse.md (STORENT_MODE): New.
1005 (VEC_FLOAT_MODE): Likewise.
1006 (VEC_EXTRACT_MODE): Likewise.
1007 (*avx_cvtdq2pd256_2): Likewise.
1008 (vec_pack_trunc_v4df): Likewise.
1009 (vec_interleave_highv8sf): Likewise.
1010 (vec_interleave_lowv8sf): Likewise.
1011 (storent<mode>): Macroized.
1012 (<code><mode>2: absneg): Likewise.
1013 (copysign<mode>3): Likewise.
1014 (vec_extract<mode>): Likewise.
1015
1016 PR target/44180
1017 * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
1018 for V8SFmode.
1019
10202010-10-13 Richard Guenther <rguenther@suse.de>
1021 H.J. Lu <hongjiu.lu@intel.com>
1022
1023 * config/i386/sse.md (reduc_splus_v8sf): Add.
1024 (reduc_splus_v4df): Likewise.
1025 (vec_unpacks_hi_v8sf): Likewise.
1026 (vec_unpacks_lo_v8sf): Likewise.
1027 (*avx_cvtps2pd256_2): Likewise.
1028 (vec_unpacks_float_hi_v8si): Likewise.
1029 (vec_unpacks_float_lo_v8si): Likewise.
1030 (vec_interleave_highv4df): Likewise.
1031 (vec_interleave_lowv4df): Likewise.
1032
0d8485e0
RG
10332010-10-13 Richard Guenther <rguenther@suse.de>
1034
1035 PR objc/45878
1036 * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
1037 alone if there are no virtual methods.
1038
bde8a146
RH
10392010-10-13 Richard Henderson <rth@redhat.com>
1040
1041 * expr.c (build_personality_function): Take parameter LANG instead
1042 of parameter NAME. Build the name based on the lang prefix and the
1043 unwind method in use.
1044 * tree.c (lhd_gcc_personality): Update call to
1045 build_personality_function.
1046
74e80a24
RG
10472010-10-13 Richard Guenther <rguenther@suse.de>
1048
1049 PR objc/45878
1050 * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
1051
b1ba284c
EB
10522010-10-13 Eric Botcazou <ebotcazou@adacore.com>
1053
1054 * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
1055 Canonicalize input operands of ASM_OPERANDS insns.
1056
1b7d2dd1
RG
10572010-10-13 Richard Guenther <rguenther@suse.de>
1058
1059 PR tree-optimization/45788
1060 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
1061 EH update until fixup-cfg.
1062
565d018d
JB
10632010-10-13 Julian Brown <julian@codesourcery.com>
1064
1065 * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
1066 from CORE_REGS and GENERAL_REGS classes.
1067 * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
1068 final constraint for register preferencing.
1069
71d61348
RG
10702010-10-13 Richard Guenther <rguenther@suse.de>
1071
1072 PR tree-optimization/45970
1073 * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
1074 * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
1075 (stmt_kills_ref_p): Likewise.
1076 * tree-ssa-dse.c (dse_optimize_stmt): Use it.
1077
cb89b4b0
RG
10782010-10-13 Richard Guenther <rguenther@suse.de>
1079
1080 PR tree-optimization/45982
1081 * tree-ssa-structalias.c (make_constraints_to): New function.
1082 (make_constraint_to): Implement in terms of make_constraints_to.
1083 (find_func_aliases): Properly make return values of pure/const
1084 functions escape if they assign to sth that is not a pointer.
1085
72351fa3
RG
10862010-10-13 Richard Guenther <rguenther@suse.de>
1087
1088 PR middle-end/45874
1089 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1090 Fixup the CFG when EH was fixed up.
1091
d59dc888
IR
10922010-10-13 Ira Rosen <irar@il.ibm.com>
1093
1094 * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
1095 Use operand's type for POINTER_PLUS_EXPR.
1096
3f6d4c52
AO
10972010-10-13 Alexandre Oliva <aoliva@redhat.com>
1098
1099 * c-parser.c (c_parser_for_statement): Initialize incr.
1100
98d30e4f
XDL
11012010-10-12 Xinliang David Li <davidxl@google.com>
1102
1103 PR tree-optimization/45972
18aebb0e 1104 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
98d30e4f
XDL
1105 with too many arguments.
1106
f4684242
JJ
11072010-10-12 Jakub Jelinek <jakub@redhat.com>
1108
1109 PR fortran/45636
1110 * tree-ssa-forwprop.c: Include expr.h.
1111 (constant_pointer_difference, simplify_builtin_call): New functions.
1112 (tree_ssa_forward_propagate_single_use_vars): Call
1113 simplify_builtin_call on builtin calls.
1114
d761137f
EB
11152010-10-12 Eric Botcazou <ebotcazou@adacore.com>
1116
1117 * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
1118 (*adddi3_extend_sp32): Likewise.
1119 (*subdi3_insn_sp32): Likewise.
1120 (*subdi3_extend_sp32): Likewise.
1121 (*negdi2_sp32): Use negative test for consistency.
1122
a18bdccd
NF
11232010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1124
ba492752 1125 * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of LIBGCC2_DOUBLE_TYPE_SIZE.
a18bdccd
NF
1126 (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1127 * config/fixed-bit.h: Likewise.
1128 * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1129 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
1130 * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
1131 * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
1132 (DF_SIZE): Likewise.
1133 * doc/tm.texi: Regenerate.
1134
d2333f6e
NF
11352010-10-12 Nathan Froyd <froydnj@codesourcery.com>
1136
1137 * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
1138 * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
1139 (*isel_reversed_unsigned_<mode>): New.
1140 * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
1141 as valid comparisons and adjust operands and output appropriately.
1142 (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
1143
0c86e0dd
CLT
11442010-10-12 Chung-Lin Tang <cltang@codesourcery.com>
1145
1146 * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
1147 DATA_ALIGNMENT and add COND parameter. Update comments above.
1148 (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
ba492752 1149 (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !flag_conserve_stack.
0c86e0dd 1150
515fe073
L
11512010-10-12 H.J. Lu <hongjiu.lu@intel.com>
1152
1153 PR bootstrap/45958
ba492752 1154 * exec-tool.in: Support '-plugin' as the second option to the linker.
515fe073 1155
533f611a
RH
11562010-10-12 Richard Henderson <rth@redhat.com>
1157
1158 PR middle-end/45962
1159 * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
1160 (expand_stack_vars): Assert large base allocated when used.
1161
1f181fde
RG
11622010-10-12 Richard Guenther <rguenther@suse.de>
1163
1164 * tree-ssa-structalias.c (get_constraint_for_1): Constants
1165 only point to nonlocal, not anything.
1166
83e350f7
HS
11672010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
1168
1169 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
1170 unwind info for exceptions.
1171
cf3e1041
RO
11722010-10-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1173
1174 PR testsuite/45851
1175 * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
1176 Document optional target selector.
1177
f938f60c
JM
11782010-10-12 Joseph Myers <joseph@codesourcery.com>
1179
1180 * flag-types.h: New.
1181 * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
1182 (FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
1183 options.h.
1184 (OPTIONS_H): Define.
1185 (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
1186 of options.h.
1187 * configure.ac (tm_include_list): Include options.h not flags.h.
1188 * configure: Regenerate.
1189 * flags.h: Include flag-types.h. Include options.h at top of file
1190 again.
1191 (enum debug_info_type, enum debug_info_level, enum
1192 debug_info_usage, enum symbol_visibility, struct visibility_flags,
1193 enum ira_algorithm, enum ira_region, enum excess_precision, enum
ba492752
UB
1194 graph_dump_types, enum stack_check_type,
1195 enum warn_strict_overflow_code): Move to flag-types.h
f938f60c
JM
1196 * opth-gen.awk: Include flag-types.h in options.h.
1197
d95828db
JJ
11982010-10-12 Jakub Jelinek <jakub@redhat.com>
1199
a4feaa71
JJ
1200 * expr.c (store_expr): Share code for STRING_CST and
1201 MEM_REF of &STRING_CST cases. Don't require BLKmode, instead
1202 check if target is a MEM.
1203
d95828db
JJ
1204 * rtl.h: Include hashtab.h.
1205 (iterative_hash_rtx): New prototype.
1206 * rtl.c (iterative_hash_rtx): New function.
1207 * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
ba492752 1208 (output_loc_list): Return immediately if emitted is set, set it.
d95828db
JJ
1209 (hash_loc_operands, hash_locs, hash_loc_list,
1210 compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
1211 optimize_location_lists_1, optimize_location_lists): New function.
1212 (dwarf2out_finish): Call optimize_location_lists.
1213 * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
1214
8207e1fb
RW
12152010-10-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1216
1217 PR testsuite/45974
1218 Revert:
1219 * Makefile.in ($(lang_checks_parallel))
1220 ($(lang_checks_parallelized)): Use single quotes for
1221 $(RUNTESTFLAGS), to allow passing quoted content.
1222
5dbae367
JDA
12232010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1224
1225 * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
1226 actual_oldval. Use __builtin_expect.
1227 (SUBWORD_VAL_CAS): Likewise.
1228
2c8865f1
NF
12292010-10-11 Nathan Froyd <froydnj@codesourcery.com>
1230
1231 * recog.c (nonmemory_operand): Call immediate_operand for
1232 CONSTANT_P operands.
1233
bbc8841b
UB
12342010-10-11 Uros Bizjak <ubizjak@gmail.com>
1235
1236 * config/i386/i386.md (movmem<mode>): Macroize expander from
1237 movmem{si,di} using SWI48 mode iterator.
1238 (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
1239 *strmovsi_rex_1 using P mode iterator.
1240 (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
1241 (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
1242 (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
1243 (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
1244 (setmem<mode>): Macroize expander from setmem{si,di} using
1245 SWI48 mode iterator.
1246 (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
1247 *strsetsi_rex_1 using P mode iterator.
1248 (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
1249 (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
1250 (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
1251 (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
1252 (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
1253 (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
1254 (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
1255 mode iterator.
1256 (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
1257 *strlenqi_rex_1 using P mode iterator.
1258
579c1bf3
BS
12592010-10-11 Bernd Schmidt <bernds@codesourcery.com>
1260
1261 PR bootstrap/45445
1262 * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
1263 static functions.
1264 (mark_ref_live, mark_ref_dead): Use them.
1265 (make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
1266 Save the original reg, and use the new functions.
1267 (check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
1268 changed.
1269 (check_and_make_def_conflict): Save the original reg.
1270
3f1f0ae3
MJ
12712010-10-11 Martin Jambor <mjambor@suse.cz>
1272
1273 PR middle-end/45699
1274 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
1275 thunks.
1276
e4590d63
RW
12772010-10-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1278
9dd57a6e
RW
1279 * Makefile.in ($(lang_checks_parallel))
1280 ($(lang_checks_parallelized)): Use single quotes for
1281 $(RUNTESTFLAGS), to allow passing quoted content.
1282
e4590d63
RW
1283 PR bootstrap/35855
1284 * opt-functions.awk (BEGIN): New section.
1285 (lower, upper, digit, alnum): New variables.
1286 (static_var, opt_sanitized_name): Use alnum instead of character
1287 classes, for non-C locale.
1288 * optc-gen.awk: Likewise.
1289 * opth-gen.awk: Likewise.
1290
fba42e24
AS
12912010-10-11 Anatoly Sokolov <aesok@post.ru>
1292
1293 * target.def (preferred_reload_class): New hook.
1294 * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
1295 * doc/tm.texi: Regenerate.
1296 * targhooks.c (default_preferred_reload_class): New function.
1297 * targhooks.h (default_preferred_reload_class): Declare.
1298 * reload.c (find_dummy_reload): Change preferred_class variable type
1299 from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
1300 target hook.
1301 (find_reloads): Change goal_alternative array type from int to
1302 reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
1303 (push_reload, find_reloads_address_part): Use
1304 TARGET_PREFERRED_RELOAD_CLASS target hook.
1305 * reload1.c (emit_input_reload_insns): Ditto.
1306 * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
1307 hook. Change rclass argument and secondary_class variable types from
1308 'enum reg_class' to reg_class_t.
1309
1310 * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
1311 * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
1312 * config/i386/i386.c (ix86_preferred_reload_class): Make static.
1313 Change regclass argument and result types from enum reg_class to
1314 reg_class_t.
1315 (TARGET_PREFERRED_RELOAD_CLASS): Define.
1316
43c36287
EB
13172010-10-11 Eric Botcazou <ebotcazou@adacore.com>
1318
1319 * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
1320 in masking operations.
1321 (simplify_const_unary_operation): Likewise.
1322 (simplify_binary_operation_1): Likewise.
1323 (simplify_const_binary_operation): Likewise.
1324 (simplify_const_relational_operation): Likewise.
1325 (simplify_ternary_operation): Likewise.
1326 (simplify_immed_subreg): Likewise.
1327
74b90fe2
JDA
13282010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1329
1330 PR middle-end/45862
1331 * doc/tm.texi.in (SUPPORTS_WEAK): Update.
1332 (TARGET_SUPPORTS_WEAK): New.
1333 * doc/tm.texi: Regenerate.
1334 * defaults.h (SUPPORTS_WEAK): Update comment.
1335 (TARGET_SUPPORTS_WEAK): New.
1336 * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
1337 * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
1338 SUPPORTS_WEAK.
1339 (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
1340 make_decl_one_only): Likewise.
1341 * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
1342 TARGET_SUPPORTS_WEAK.
1343 (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
1344 instead of SUPPORTS_WEAK.
1345
2861cfa1
RO
13462010-10-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1347
1348 * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
1349
5095da95
NF
13502010-10-11 Nathan Froyd <froydnj@codesourcery.com>
1351
1352 * vec.h (VEC_qsort): Define.
1353 * dbxout.c (output_used_types): Use it.
1354 * df-scan.c (df_sort_and_compress_refs): Likewise.
1355 (df_sort_and_compress_mws): Likewise.
1356 * genautomata.c (uniq_sort_alt_states): Likewise.
1357 (evaluate_equiv_classes): Likewise.
1358 (output_trans_table): Likewise.
1359 (output_state): Likewise.
1360 * gimplify.c (compare_case_labels): Likewise.
1361 * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
1362 * ipa.c (build_cdtor_fns): Likewise.
1363 * lto.c (lto_wpa_write_files): Likewise.
1364 * sel-sched.c (fill_vec_av_set): Likewise.
1365 * tree-predcom.c (determine_roots_comp): Likewise.
1366 * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
1367 (splice_param_accesses): Likewise.
1368 * tree-ssa-live.c (dump_enumerated_decls): Likewise.
1369 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
1370 (reassociate_bb): Likewise.
1371 * tree-ssa-sccvn.c (sort_scc): Likewise.
1372 * tree-ssa-structalias.c (sort_fieldstack): Likewise.
1373
3748f5c9
ILT
13742010-10-11 Ian Lance Taylor <iant@google.com>
1375
1376 * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
1377 * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
1378 TREE_THIS_NOTRAP when appropriate.
bbc8841b 1379 (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
3748f5c9
ILT
1380 * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
1381 newly created MEM_REF.
1382
c159751b
HS
13832010-10-11 Hariharan Sandanagobalane <hariharan@picochip.com>
1384
bbc8841b 1385 Nathan Froyds patch to hooks FUNCTION_ARG etc.
c159751b
HS
1386 * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
1387 (picochip_incoming_function_arg): Delete.
1388 (picochip_arg_advance): Delete.
1389 * config/picochip/picochip.h (FUNCTION_ARG): Delete.
1390 (FUNCTION_INCOMING_ARG): Delete.
1391 (FUNCTION_ARG_ADVANCE): Delete.
1392 * config/picochip/picochip.c (picochip_function_arg): Take a
1393 const_tree and a bool.
1394 (picochip_incoming_function_arg): Likewise.
1395 (picochip_arg_advance): Likewise.
1396 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1397 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1398
7d26a391
JDA
13992010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1400
1401 PR middle-end/45955
1402 * ipa.c (build_cdtor): Delete endless loop.
1403
d6d5951a
AK
14042010-10-07 Andi Kleen <ak@linux.intel.com>
1405
1406 * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
1407 checksum-options.
1408 (checksum-options): Add.
1409 (cc1-dummy): Remove.
1410 (cc1-checksum): Change to run checksum over object files
1411 and options only.
1412 * dummy-checksum.c: Remove.
1413 * genchecksum.c: Update copyright.
1414 (usage): Allow multiple arguments.
1415 (BLOCKSIZE): Add.
1416 (dosum): Change for incremental checksum. Remove C output.
1417 (main): Iterate over all argument files. Add C output.
1418
128dc8e2
JM
14192010-10-11 Joseph Myers <joseph@codesourcery.com>
1420
1421 * params.c (set_param_value_internal): New.
1422 (set_param_value): Use set_param_value_internal.
1423 (maybe_set_param_value, set_default_param_value): New.
1424 * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
1425 (maybe_set_param_value, set_default_param_value): Declare.
bbc8841b 1426 * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
128dc8e2
JM
1427 * config/i386/i386.c (ix86_option_override_internal): Use
1428 maybe_set_param_value.
1429 * config/ia64/ia64.c (ia64_option_default_params,
1430 TARGET_OPTION_DEFAULT_PARAMS): New.
1431 (ia64_option_optimization): Move some code to
1432 ia64_option_default_params.
1433 * config/picochip/picochip.c (picochip_option_override): Use
1434 maybe_set_param_value.
1435 * config/rs6000/rs6000.c (rs6000_option_default_params,
1436 TARGET_OPTION_DEFAULT_PARAMS): New.
1437 (rs6000_option_override_internal): Use maybe_set_param_value.
1438 (rs6000_option_optimization): Move some code to
1439 rs6000_option_default_params.
bbc8841b 1440 * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
128dc8e2
JM
1441 * config/sh/sh.c (sh_option_default_params,
1442 TARGET_OPTION_DEFAULT_PARAMS): New.
bbc8841b 1443 (sh_option_optimization): Move some code to sh_option_default_params.
128dc8e2
JM
1444 * config/sparc/sparc.c (sparc_option_override): Use
1445 maybe_set_param_value.
1446 * config/spu/spu.c (spu_option_default_params,
1447 TARGET_OPTION_DEFAULT_PARAMS): New.
bbc8841b 1448 (spu_option_optimization): Move some code to spu_option_default_params.
128dc8e2
JM
1449 (spu_option_override): Use maybe_set_param_value.
1450 * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
1451 * doc/tm.texi: Regenerate.
1452 * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
1453 * opts.c (init_options_once): Use PARAM_VALUE not direct access to
1454 compiler_params.
1455 (default_options_optimization): Use maybe_set_param_value.
1456 (finish_options): Use maybe_set_param_value.
1457 * target.def (target_option.default_params): New hook.
bbc8841b 1458 * toplev.c (general_init): Call targetm.target_option.default_params.
128dc8e2 1459
49077698
IR
14602010-10-11 Ira Rosen <irar@il.ibm.com>
1461
1462 PR tree-optimization/45902
1463 * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
1464 vector type for constants, unless it's a pointer.
1465
a6510374
AK
14662010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1467
1468 * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
1469
922a06c3
JJ
14702010-10-11 Jakub Jelinek <jakub@redhat.com>
1471
1472 PR target/45870
1473 * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
1474 (ix86_delegitimize_address): Use it.
1475
e9acb323
EB
14762010-10-10 Eric Botcazou <ebotcazou@adacore.com>
1477
1478 * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
1479
bdf057c6
UB
14802010-10-10 Uros Bizjak <ubizjak@gmail.com>
1481
1482 * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
1483 to cum struct in the call to function_arg_advance.
1484 (alpha_function_arg_advance): Mark named as unused.
1485
0e88eb86
RS
14862010-10-10 Richard Sandiford <rdsandiford@googlemail.com>
1487
1488 * config/mips/mips.c (mips_handle_option): Make "value" with
1489 ATTRIBUTE_UNUSED.
1490
3a42502d
RH
14912010-10-09 Richard Henderson <rth@redhat.com>
1492
1493 PR rtl-opt/33721
1494 * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
1495 remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor
1496 required_align, tidy the code a bit. Emit split_stack code in the
1497 right place. Mark the return value with the alignment properly.
1498 * expr.h (allocate_dynamic_stack_space): Update decl.
1499 * builtins.c (expand_builtin_apply): Update call to
1500 allocate_dynamic_stack_space.
1501 (expand_builtin_alloca): Likewise. Remove TARGET parameter.
1502 * calls.c (initialize_argument_information): Update call to
1503 allocate_dynamic_stack_space.
1504 (expand_call): Likewise.
1505
1506 * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
1507 Don't update_stack_alignment here.
1508 (alloc_stack_frame_space): Make ALIGN unsigned.
1509 (stack_var_cmp): Sort by alignment too.
1510 (partition_stack_vars): Don't merge large and small alignment vars.
1511 (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
1512 Take care when BASE is not virtual_stack_vars_rtx.
1513 (expand_stack_vars): Allocate dynamic stack space for large
1514 alignment variables.
1515 (expand_one_stack_var): Update all to expand_one_stack_var_at.
1516 (defer_stack_allocation): True for large alignment vars.
1517 (update_stack_alignment): Merge into ...
1518 (expand_one_var): ... here.
1519 (gimple_expand_cfg): Place code from expand_stack_vars.
1520
a5f4f531
NF
15212010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1522
1523 * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1524 * config/pdp11/pdp11.c (pdp11_function_arg): New function.
1525 (pdp11_function_arg_advance): New function.
1526 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1527
4471aff6
NF
15282010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1529
1530 * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
1531 * libgcc2.c: Likewise.
1532
5074d72c
RG
15332010-10-09 Richard Guenther <rguenther@suse.de>
1534
1535 PR lto/45956
1536 * lto-streamer-in.c (lto_register_var_decl_in_symtab):
1537 Properly check if a decl is an automatic var.
1538
865e8e8e
RG
15392010-10-09 Richard Guenther <rguenther@suse.de>
1540
1541 PR lto/45947
1542 * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
1543
9fb41e15
NF
15442010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1545
1546 * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
1547 * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1548 * config/mmix/mmix.c (mmix_function_arg): Rename to...
1549 (mmix_function_arg_1): ...this. Make static. Take a const_tree and
1550 bool arguments.
1551 (mmix_function_arg): New function.
1552 (mmix_function_incoming_arg): New function.
1553 (mmix_function_arg_advance): New function.
1554 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
1555 (TARGET_FUNCTION_ARG_ADVANCE): Define.
1556
8f8a46ba
NF
15572010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1558
1559 * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1560 * config/vax/vax.c (vax_function_arg): New function.
1561 (vax_function_arg_advance): New function.
1562 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1563
fd29bdaf
NF
15642010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1565
1566 * config/pa/pa-protos.h (function_arg): Delete.
1567 * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1568 * config/pa/pa.c (function_arg): Rename to...
1569 (pa_function_arg): ...this. Make static. Take a const_tree and
1570 a bool.
1571 (pa_function_arg_advance): New function.
1572 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1573
13d3961c
NF
15742010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1575
1576 * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1577 * config/m68k/m68k.c (m68k_function_arg): New function.
1578 (m68k_function_arg_advance): New function.
1579 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1580
733bdfbd
NF
15812010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1582
1583 * config/avr/avr-protos.h (function_arg): Delete.
1584 (function_arg_advance): Delete.
1585 * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1586 * config/avr/avr.c (function_arg): Rename to...
1587 (avr_function_arg): ...this. Make static. Take a const_tree and
1588 a bool.
1589 (function_arg_advance): Rename to...
1590 (avr_function_arg_advance): ...this. Make static. Take a
1591 const_tree and a bool.
1592 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1593
0c3a9758
NF
15942010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1595
1596 * config/alpha/alpha-protos.h (function_arg): Delete.
1597 * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1598 * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
1599 * config/alpha/alpha.c (function_arg): Rename to...
1600 (alpha_function_arg): ...this. Make static. Take a const_tree and
1601 a bool. Delete TARGET_ABI_UNICOSMK code.
1602 (alpha_function_arg_advance): New function.
1603 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1604
0851c6e3
NF
16052010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1606
1607 * config/mep/mep-protos.h (mep_function_arg): Delete.
1608 (mep_function_arg_advance): Delete.
1609 * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1610 * config/mep/mep.c (mep_function_arg): Make static. Take a
1611 const_tree and a bool.
1612 (mep_function_arg_advance): Likewise.
1613 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1614
e5160e93
RG
16152010-10-09 Richard Guenther <rguenther@suse.de>
1616
1617 PR tree-optimization/45945
bdf057c6 1618 * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
e5160e93 1619
1802378d
EB
16202010-10-09 Eric Botcazou <ebotcazou@adacore.com>
1621
1622 PR tree-optimization/45612
1623 * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
1624 Test LABEL_DECLs as well. Fix formatting issues.
1625 (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
1626 whose label is present in NON_SSA_VARS.
1627 (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED. Handle LABEL_DECLs
1628 as well. Fix formatting issues.
1629 (visit_bb): Fix typos and formatting issue.
1630
64978ba3
NF
16312010-10-09 Nathan Froyd <froydnj@codesourcery.com>
1632
1633 PR tree-optimization/45950
1634 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
1635 before initializing vno->op.
1636
1ddc8057
RC
16372010-10-09 Ralf Corsépius <ralf.corsepius@rtems.org>
1638
1639 * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
1640 * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
1641
c2c795ff
L
16422010-10-08 H.J. Lu <hongjiu.lu@intel.com>
1643
1644 PR target/45913
1645 * config/i386/i386.c (ix86_binary_operator_ok): Support
1646 "andhi/andsi/anddi" as a zero-extending move.
1647
8897c9ce
NF
16482010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1649
1650 * builtins.c (fold_call_stmt): Don't copy gimple call arguments
1651 into a temporary array.
1652
509dd380
JJ
16532010-10-08 Jakub Jelinek <jakub@redhat.com>
1654
1655 PR tree-optimization/45903
1656 * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
bdf057c6 1657 of {A,L}SHIFTRT of MEM.
509dd380 1658
bd39cb52
RG
16592010-10-08 Richard Guenther <rguenther@suse.de>
1660
1661 * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
1662 Re-construct BLOCK_VARS.
1663 (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
1664 * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
1665 * tree.c (free_lang_data_in_block): Remove.
1666 (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
1667 Do not touch the BLOCK tree.
1668 * expr.c (expand_expr_real_1): Allow externals.
1669
8686c474
RG
16702010-10-08 Richard Guenther <rguenther@suse.de>
1671
1672 * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
1673 Do not output BLOCK_SUBBLOCKS.
1674 * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
1675 Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
1676 Re-construct BLOCK_SUBBLOCKS of parent block.
1677 (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
1678 for BINFO_BASE_ACCESSES.
1679
a75bfaa6
JM
16802010-10-08 Joseph Myers <joseph@codesourcery.com>
1681
1682 * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
1683 (TREE_H): Include $(FLAGS_H) instead of options.h.
1684 (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
1685 * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1686 * common.opt (flag_complex_method, flag_evaluation_order,
1687 flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
1688 Variable declarations.
bdf057c6 1689 * configure.ac (tm_include_list): Include flags.h instead of options.h.
a75bfaa6
JM
1690 * configure: Regenerate.
1691 * flags.h: Condition out contents for target libraries. Include
1692 options.h at end of file.
1693 (flag_complex_method, flag_ira_algorithm, flag_ira_region,
1694 flag_evaluation_order, flag_warn_unused_result): Remove.
1695 * gcc.c (main): Intialize global_options with global_options_init.
1696 * langhooks-def.h (lhd_init_options_struct): Declare.
1697 (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1698 (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
1699 * langhooks.c (lhd_init_options_struct): New.
1700 * langhooks.h (struct lang_hooks): Add init_options_struct.
1701 Update comment on init_options.
1702 * optc-gen.awk: Generate initializer for global_options_init, not
1703 global_options.
1704 * opth-gen.awk: Condition out structure declarations for target
1705 libraries. Declare global_options_init.
1706 * opts-common.c: Include flags.h instead of options.h.
1707 * opts.c (flag_warn_unused_result): Remove.
1708 (read_cmdline_options): Take gcc_options parameters. Pass them to
1709 read_cmdline_option.
1710 (initial_lang_mask, initial_min_crossjump_insns,
1711 initial_max_fields_for_field_sensitive,
1712 initial_loop_invariant_max_bbs_in_loop): Define at file scope.
1713 (init_options_once): New. Split out of decode_options.
1714 (init_options_struct): New. Split out of decode_options.
1715 (decode_cmdline_options_to_array_default_mask): New.
1716 (default_options_optimization): New. Split out of decode_options.
1717 (decode_options): Move most code to other functions. Update call
1718 to read_cmdline_options.
1719 (finish_options): New. Split out of decode_options.
1720 * opts.h (decode_options): Add gcc_options parameters.
1721 (init_options_once, init_options_struct,
1722 decode_cmdline_options_to_array_default_mask): New.
1723 * toplev.c (flag_complex_method, flag_ira_algorithm,
1724 flag_ira_region, flag_evaluation_order): Remove.
1725 (general_init): Use global_options_init for initial flag values
1726 for global_dc.
1727 (toplev_main): Call init_options_once, init_options_struct,
1728 lang_hooks.init_options_struct,
1729 decode_cmdline_options_to_array_default_mask and
1730 lang_hooks.init_option before decode_options. Update arguments to
1731 decode_options.
1732 * tree.h: Include flags.h instead of options.h.
1733
ab86687c
NF
17342010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1735
1736 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1737
9adafb9f
NF
17382010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1739
1740 * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
1741 Delete.
1742 * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
1743 (FUNCTION_INCOMING_ARG): Delete.
1744 * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
1745 (function_arg_slotno): Likewise. Take bool arguments.
1746 (sparc_arg_partial_bytes): Update call to it.
1747 (function_arg): Rename to...
1748 (sparc_function_arg_1): ...this. Take bool arguments.
1749 (sparc_function_arg, sparc_function_incoming_arg): New functions.
1750 (function_arg_advance): Rename to...
1751 (sparc_function_arg_advance): ...this. Take bool argument.
1752 (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
1753 (TARGET_FUNCTION_INCOMING_ARG): Define.
1754
74f41f02
NF
17552010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1756
1757 * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
1758 Delete.
1759 * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1760 * config/bfin/bfin.c (function_arg_advance): Rename to...
1761 (bfin_function_arg_advance): ...this. Make static. Take const_tree
1762 and bool arguments.
1763 (function_arg): Rename to...
1764 (bfin_function_arg): ...this. Make static. Take const_tree and bool
1765 arguments.
1766 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1767
3a2bd2f4
NF
17682010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1769
1770 * config/score/score-protos.h (score_function_arg): Delete.
1771 (score_function_arg_advance): Delete.
1772 * config/score/score3.h (score3_function_arg_advance): Take a
1773 const_tree and a bool.
1774 (score3_function_arg): Likewise.
1775 * config/score/score7.h (score7_function_arg_advance): Likewise.
1776 (score7_function_arg): Likewise.
1777 * config/score/score3.c (score3_classify_arg): Likewise.
1778 (score3_function_arg_advance, score3_function_arg): Likewise.
1779 * config/score/score7.c (score7_classify_arg): Likewise.
1780 (score7_function_arg_advance, score7_function_arg): Likewise.
1781 * config/score/score.c (score_function_arg_advance): Likewise.
1782 (score_function_arg): Likewise. De-const-ify `cum' argument.
1783 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1784
3cb1da52
NF
17852010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1786
1787 * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
1788 (s390_function_arg): Delete.
1789 * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
1790 * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
1791 (s390_function_arg_integer): Likewise.
1792 (s390_function_arg_advance): Make static. Take a const_tree and
1793 a bool.
1794 (s390_function_arg): Likewise.
1795 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1796
925ed112
NF
17972010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1798
1799 * config/spu/spu-protos.h (spu_function_arg): Delete.
1800 * config/spu/spu.h (FUNCTION_ARG): Delete.
1801 (FUNCTION_ARG_ADVANCE): Move code to ...
1802 * config/spu/spu.c (spu_function_arg_advance): New function.
1803 (spu_function_arg): Make static. Take a const_tree and a bool.
1804 (spu_setup_incoming_varargs): Call spu_function_arg_advance.
1805 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
1806
18072010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1808
1809 * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1810
9ad6bebe
NF
18112010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1812
1813 * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
1814 (init_vn_nary_op_from_op): New function.
1815 (init_vn_nary_op_from_stmt): New function.
1816 (vn_nary_op_lookup_1): New function.
1817 (sizeof_vn_nary_op): New function.
1818 (alloc_vn_nary_op_noinit): New function.
1819 (alloc_vn_nary_op): New function.
1820 (vn_nary_op_insert_into): New function.
1821 (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
1822 (vn_nary_op_lookup): Likewise.
1823 (vn_nary_op_lookup_stmt): Likewise.
1824 (vn_nary_op_insert_pieces): Likewise.
1825 (vn_nary_op_insert): Likewise.
1826 (vn_nary_op_insert_stmt): Likewise.
1827 (copy_nary): Likewise.
1828 (set_value_id_for_result): New function.
1829 (set_hashtable_value_ids): Call it.
1830
0db0c836
NF
18312010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1832
1833 * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1834 * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
1835
fd02e833
NF
18362010-10-08 Nathan Froyd <froydnj@codesourcery.com>
1837
1838 * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
1839 * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1840
5f262d13
AO
18412010-10-08 Alexandre Oliva <aoliva@redhat.com>
1842
1843 PR debug/45656
1844 * cse.c (cse_extended_basic_block): Preserve cc0 info across
1845 debug isnsn. Skip them when searching for cc0 setter.
1846 (set_live_p): Skip debug insns when searching for cc0 user.
1847
7de9e0a1
AO
18482010-10-08 Alexandre Oliva <aoliva@redhat.com>
1849
1850 PR debug/45673
1851 PR debug/45604
1852 PR debug/45419
1853 PR debug/45408
1854 * tree-pretty-print.c (dump_generic_node): Explicitly dump the
1855 type of MEM_REFs to INTEGER_CSTs.
1856
5bd84829
NF
18572010-10-07 Nathan Froyd <froydnj@codesourcery.com>
1858
1859 * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
1860 m68hc11_print_operand_address.
1861
43ea30dc
NF
18622010-10-07 Nathan Froyd <froydnj@codesourcery.com>
1863
1864 * builtins.c (rewrite_call_expr): Move code to...
bdf057c6 1865 (rewrite_call_expr_valist): ...here. Call build_call_expr_loc_array.
43ea30dc
NF
1866 (rewrite_call_expr_array): New function.
1867 (fold_builtin_sprintf_chk_1): New function.
1868 (fold_builtin_sprintf_chk): Call it.
1869 (gimple_fold_builtin_sprintf_chk): Likewise.
1870 (fold_builtin_snprintf_chk_1): New function.
1871 (fold_builtin_snprintf_chk): Call it.
1872 (gimple_fold_builtin_snprintf_chk): Likewise.
1873 (gimple_rewrite_call_expr): Delete.
1874
39604ffe
DK
18752010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1876
1877 * config.host: Update copyright year.
1878
1cd0b716
DK
18792010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1880
1881 * config.host (host_lto_plugin_soname): New shell variable.
1882 * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
1883 * config.in: Regenerate.
1884 * configure: Regenerate.
1885 * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
1886 LTO plugin shared library.
1887
6ba74c2d
RH
18882010-10-07 Richard Henderson <rth@redhat.com>
1889
1890 * target.h (enum unwind_info_type): Move ...
1891 * coretypes.h: ... here.
1892
038d22b6
NP
18932010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1894
1895 * doc/objc.texi (Fast enumeration protocol): Mention that
1896 'unsigned int' can also be used instead of 'unsigned long' in
1897 countByEnumeratingWithState:objects:count:.
1898
fc37536b
MJ
18992010-10-07 Martin Jambor <mjambor@suse.cz>
1900
1901 * tree-sra.c (struct access): New field grp_assignment_write.
1902 (dump_access): Dump grp_assignment_write.
1903 (build_accesses_from_assign): Set grp_assignment_write.
1904 (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
1905 (mark_read_status): Renamed to mark_rw_status, individual values
1906 renamed too.
1907 (analyze_access_subtree): Changed type of mark_write to
1908 mark_read_status. Fixed propagating of mark_read and
1909 mark_write. Changed benefit estimate. Updated comment.
1910
d163c4f7
TB
19112010-10-07 Tejas Belagod <tejas.belagod@arm.com>
1912
78e27dd3 1913 PR Tree-Vect/45847
d163c4f7
TB
1914 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
1915 check for vectype_out returned by get_vectype_for_scalar_type().
1916
7f27ec08
TB
19172010-10-07 Tejas Belagod <tejas.belagod@arm.com>
1918
78e27dd3 1919 PR target/45805
7f27ec08
TB
1920 * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
1921 constraint, add register specifier in instruction template.
1922 (neon_vec_pack_trunc_<mode>): Likewise.
1923 (neon_vec_<US>mult_<mode>): Add register specifier to
1924 instruction template.
1925
3edeb30d
DK
19262010-10-07 Dave Korn <dave.korn.cygwin@gmail.com>
1927
1928 * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
1929 cygwin2.o.
1930 (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
1931 (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
1932 * config/i386/t-cygwin (cygwin1.o): Delete build rule.
1933 (cygwin2.o): Likewise.
1934 * config/i386/cygwin1.c: Delete file.
1935 * config/i386/cygwin2.c: Likewise.
1936 * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
1937 make all {%!mno-cygwin} ones unconditional.
1938 (STARTFILE_SPEC): Likewise.
1939 (REAL_LIBGCC_SPEC): Likewise.
1940 (LIB_SPEC): Likewise.
1941 (CXX_WRAP_SPEC): Likewise.
1942 (LINK_SPEC): Likewise.
1943 (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
1944 (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
1945 (cygwin_gplusplus_include_dir): Delete now-unused array.
1946 (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
1947 (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
1948 (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
1949 (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
1950 (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
1951 (cygwin_local_include_dir): Delete now-unused array.
1952 (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
1953 (cygwin_cross_include_dir): Delete now-unused array.
1954 (CROSS_INCLUDE_DIR): Don't redefine to point to it.
1955 (cygwin_tool_include_dir): Delete now-unused array.
1956 (TOOL_INCLUDE_DIR): Don't redefine to point to it.
1957 (cygwin_standard_include_dir): Delete now-unused array.
1958 (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
1959 (GEN_CVT_ARRAY): Delete now-unused macro definition.
1960 (cvt_to_mingw): Delete now-unused array.
1961 (mingw_scan): Remove prototype of deleted function.
1962 (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
1963 * config/i386/cygming.opt (mcygwin): Delete target-specific option.
1964 * doc/invoke.texi (-mcygwin): Don't document removed option.
1965 (-mno-cygwin): Likewise.
1966
bb67d9c7
RG
19672010-10-07 Richard Guenther <rguenther@suse.de>
1968
1969 * machmode.h (mode_for_vector): Declare.
1970 * stor-layout.c (mode_for_vector): New function, split out from ...
1971 (layout_type): ... here.
1972 * tree-vectorizer.h (current_vector_size): Declare.
1973 * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
1974 mask vector type is available.
1975 (get_vectype_for_scalar_type): Rename to ...
1976 (get_vectype_for_scalar_type_and_size): ... this. Get a vector
1977 size argument.
1978 (get_vectype_for_scalar_type): New wrapper around
1979 get_vectype_for_scalar_type_and_size using current_vector_size.
1980 (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
1981 * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
1982 of vect_analyze_loop here.
1983 (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
1984 * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
1985 to autodetect.
1986 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
1987 V8SF to V8SI conversion builtin.
1988
767f865f
RG
19892010-10-07 Richard Guenther <rguenther@suse.de>
1990
1991 * target.def (autovectorize_vector_sizes): New target hook.
1992 * targhooks.c (default_autovectorize_vector_sizes): New function.
1993 * targhooks.h (default_autovectorize_vector_sizes): Declare.
1994 * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
1995 Document.
1996 * doc/tm.texi: Update.
1997 * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
1998 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1999
cc4b5170
RG
20002010-10-07 Richard Guenther <rguenther@suse.de>
2001
2002 * target.def (units_per_simd_word): Rename to ...
2003 (preferred_simd_mode): ... this. Return mode instead of size.
2004 * targhooks.c (default_units_per_simd_word): Rename to ...
2005 (default_preferred_simd_mode): ... this. Return word_mode.
2006 * targhooks.h (default_preferred_simd_mode): Declare.
2007 * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
2008 (arm_preferred_simd_mode): ... this. Re-implement.
2009 * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
2010 (ix86_preferred_simd_mode): ... this. Re-implement.
2011 * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
2012 (sparc_preferred_simd_mode): ... this. Re-implement.
2013 * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
2014 (mips_preferred_simd_mode): ... this. Re-implement.
2015 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
2016 (rs6000_preferred_simd_mode): ... this. Re-implement.
2017 * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
2018 * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
2019 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
2020 * doc/tm.texi: Update.
2021
65dcb901
RG
20222010-10-07 Richard Guenther <rguenther@suse.de>
2023
2024 PR middle-end/45869
2025 * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
2026 of pointers.
2027
a557f9cc
AM
20282010-10-07 Alan Modra <amodra@gmail.com>
2029
2030 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
2031 rather than sign extension by hand.
2032
bd67cff1
JH
20332010-10-07 Jan Hubicka <jh@suse.cz>
2034
2035 PR middle-end/45926
2036 * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
2037
2b48f20d
RG
20382010-10-07 Richard Guenther <rguenther@suse.de>
2039
2040 PR bootstrap/45914
2041 * configure.ac: Fix typo.
2042 * configure: Regenerated.
2043
826d817f
FXC
20442010-10-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2045
2046 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
2047 define_builtin_std where it's unnecessary.
2048 * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
2049
32bd8fcf
AS
20502010-10-06 Anatoly Sokolov <aesok@post.ru>
2051
2052 * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
2053 * doc/tm.texi.in: Regenerate.
2054 * system.h (CLASS_LIKELY_SPILLED_P): Poison.
a557f9cc 2055 * targhooks.c (default_class_likely_spilled_p): Don't use the
32bd8fcf
AS
2056 CLASS_LIKELY_SPILLED_P macro.
2057
a557f9cc 2058 * config/arm/arm.md: Update comment.
32bd8fcf 2059
0e9ea52b
JH
20602010-10-06 Jan Hubicka <jh@suse.cz>
2061
a557f9cc
AM
2062 * ipa.c (cgraph_remove_unreachable_nodes): External references can
2063 always be removed.
2064 (cgraph_externally_visible_p): We can not bring local comdats that
2065 are known to linker; fix handling of internal visibility.
0e9ea52b
JH
2066 (function_and_variable_visibility): Likewise.
2067
9c506f10
EB
20682010-10-06 Eric Botcazou <ebotcazou@adacore.com>
2069
2070 PR rtl-optimization/45394
2071 * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
2072 (struct rtx_subst_pair): Remove AFTER field.
2073 (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
2074 (propagate_for_debug): Remove MOVE parameter and adjust.
2075 (try_combine): In the special case where I2 is a PARALLEL, combine only
2076 destinations of SETs and set I2SRC to the I2 source.
2077 Adjust calls to propagate_for_debug throughout.
2078 * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
2079 insns.
2080
35c26820
OH
20812010-10-06 Olivier Hainque <hainque@adacore.com>
2082
2083 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
2084 switch on insn codes as sequence of ifs.
2085
9c506f10
EB
20862010-10-06 Hariharan Sandanagobalane <hariharan@picochip.com>
2087
131e5634
HS
2088 * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
2089 be UI_NONE for picochip.
2090 (picochip_option_override): Do not disable exception flags.
9c506f10 2091 * config/picochip/picochip-protos.h (picochip_except_unwind_info):
131e5634
HS
2092 Declare.
2093
85194319
RG
20942010-10-06 Richard Guenther <rguenther@suse.de>
2095
2096 * Makefile.in (regmove.o): Depend on $(TARGET_H).
2097
f05b9d93
NP
20982010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
2099
a557f9cc 2100 Implemented fast enumeration for Objective-C.
f05b9d93
NP
2101 * c-parser.c (objc_could_be_foreach_context): New.
2102 (c_lex_one_token): Recognize RID_IN keyword in a potential
2103 Objective-C foreach context.
2104 (c_parser_declaration_or_fndef): Added parameter. Accept
2105 Objective-C RID_IN keyword as terminating a declaration; in that
2106 case, return the declaration in the new parameter.
2107 (c_parser_extenral_declaration): Updated calls to
2108 c_parser_declaration_or_fndef.
2109 (c_parser_declaration_or_fndef): Same change.
2110 (c_parser_compound_statement_nostart): Same change.
2111 (c_parser_label): Same change.
2112 (c_parser_objc_methodprotolist): Same change.
2113 (c_parser_omp_for_loop): Same change.
2114 (c_parser_for_statement): Detect and parse Objective-C foreach
2115 statements.
2116 (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
2117 * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
2118 fast enumeration parsing code to turn off the c99 error but still
2119 perform checks on the loop declarations.
2120 * c-tree.h (check_for_loop_decls): Updated declaration.
2121 * doc/objc.texi: Document fast enumeration.
a557f9cc 2122
2720cc47
NC
21232010-10-06 Nick Clifton <nickc@redhat.com>
2124
bdf057c6 2125 * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
2720cc47 2126 (MDR_REGNUM): Define.
bdf057c6 2127 (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
2720cc47
NC
2128 (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
2129 (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
2130 (REGISTER_NAMES): Add MDR.
2131 (DWARF2_DEBUGGING_INFO): Define to 1.
2132 * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2133 (F): New function. Sets RTX_FRAME_RELATED_P.
2134 (mn10300_gen_multiple_store): Use F.
2135 (expand_prologue): Use F. Use gen_movsf() to push floating
2136 point registers.
bdf057c6 2137 (expand_epilogue): Use gen_movsf() to pop floating point registers.
2720cc47
NC
2138 (mn10300_option_override): Disable combine stack adjust pass.
2139
28ce2f29
TS
21402010-10-06 Thomas Schwinge <thomas@schwinge.name>
2141
2142 PR target/45901
2143 * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
2144 LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
2145
d724c876
JJ
21462010-10-06 Jakub Jelinek <jakub@redhat.com>
2147
933bc232
JJ
2148 * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
2149 BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
2150 BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
2151 BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
2152 BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
2153 BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
2154 BUILT_IN_TOUPPER): Mark as leaf.
2155
d724c876
JJ
2156 PR middle-end/45838
2157 * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
2158 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
2159 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
2160 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
2161 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
2162 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
2163 Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
2164
c1f9afd1
AS
21652010-10-05 Anatoly Sokolov <aesok@post.ru>
2166
2167 * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
2168 * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2169 (m68hc11_class_likely_spilled_p): New function.
2170
a26d8862
NP
21712010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
2172
2173 * c-parser.c (c_parser_objc_method_definition): Updated comment.
2174
852e4bd2
JH
21752010-10-05 Jan Hubicka <jh@suse.cz>
2176
2177 * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
2178 Document.
2179 * opts.c (decode_options): Handle lto partitions.
2180 * common.opt (flto-partition=1to1, flto-partition=balanced): New.
2181 * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
2182
21832010-10-05 Jan Hubicka <jh@suse.cz>
5806d9ac
JH
2184
2185 * cgraphunit.c (assemble_function): Output thunks and aliases before
2186 the function itself.
2187
9c506f10 21882010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
0378450e
HS
2189
2190 * config/picochip/picochip.c (picochip_option_override): Disable
2191 exception flags for picochip.
2192
1ebe4b4f
JM
21932010-10-05 Joseph Myers <joseph@codesourcery.com>
2194
2195 * opts-common.c (handle_option, handle_generated_option,
2196 read_cmdline_option, set_option): Add diagnostic_context
2197 parameter. Update calls among these functions.
2198 (set_option): Don't use global_dc.
bdf057c6 2199 * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
1ebe4b4f
JM
2200 (decode_options): Pass global_dc to enable_warning_as_error.
2201 (common_handle_option): Pass global_dc to enable_warning_as_error.
2202 (enable_warning_as_error): Add diagnostic_context parameter.
2203 Document parameters. Don't use global_dc. Pass
2204 diagnostic_context parameter to handle_generated_option.
2205 * opts.h (set_option, handle_option, handle_generated_option,
2206 read_cmdline_option, enable_warning_as_error): Add
2207 diagnostic_context parameter.
2208 * Makefile.in (lto-opts.o): Update dependencies.
2209 * coretypes.h (struct diagnostic_context, diagnostic_context):
2210 Declare here.
2211 * diagnostic.h (diagnostic_context): Don't declare typedef here.
2212 * gcc.c (process_command): Pass global_dc to read_cmdline_option.
2213 * langhooks-def.h (struct diagnostic_context): Don't declare here.
2214 (lhd_print_error_function, lhd_initialize_diagnostics): Declare
2215 using diagnostic_context typedef.
2216 * langhooks.c (lhd_initialize_diagnostics): Declare using
2217 diagnostic_context typedef.
2218 * langhooks.h (struct diagnostic_context): Don't declare here.
2219 (initialize_diagnostics, print_error_function): Declare using
2220 diagnostic_context typedef.
2221 * lto-opts.c: Include diagnostic.h.
2222 (lto_reissue_options): Pass global_dc to set_option. Pass
2223 DK_UNSPECIFIED not 0.
2224 * plugin.c (plugins_internal_error_function): Declare using
2225 diagnostic_context typedef.
2226 * plugin.h (struct diagnostic_context): Don't declare here.
2227 (plugins_internal_error_function): Declare using
2228 diagnostic_context typedef.
2229
bcee41ff 22302010-10-05 Olivier Hainque <hainque@adacore.com>
bdf057c6 2231 Nicolas Roche <roche@adacore.com>
bcee41ff
OH
2232
2233 * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
2234 * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
2235
694a4f61
IR
22362010-10-05 Ira Rosen <irar@il.ibm.com>
2237
2238 PR tree-optimization/45752
2239 * tree-vect-slp.c (vect_get_mask_element): Remove static
2240 variables, make them function arguments.
2241 (vect_transform_slp_perm_load): Pass new arguments to
2242 vect_get_mask_element.
2243
4d3814a5
RG
22442010-10-05 Richard Guenther <rguenther@suse.de>
2245
2246 * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
2247 (gimple_mod_pow2): Likewise.
2248 (gimple_mod_subtract): Likewise.
2249 (gimple_ic): Likewise.
2250 (gimple_stringop_fixed_value): Likewise.
2251 * tree-profile.c (tree_init_edge_profiler): Mark profile
2252 functions nothrow and leaf.
2253 (add_abnormal_goto_call_edges): Remove.
2254 (tree_gen_edge_profiler): Work on SSA form.
2255 (tree_gen_ic_profiler): Likewise. Simplify.
2256 (do_tree_profiling): Update SSA form.
2257 (pass_tree_profile): Remove.
2258 (do_tree_profiling): Likewise.
2259 (gate_tree_profile_ipa): New function.
2260 (pass_ipa_tree_profile): New.
2261 (tree_profiling): Re-write as IPA pass. Properly drop const/pure
2262 state of instrumented functions.
2263 * passes.c (init_optimization_passes): Remove early non-SSA
2264 inlining. Move profiling after early optimizations.
2265 * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
2266 (pass_ipa_early_inline): Likewise.
2267 * tree-pass.h (pass_ipa_early_inline): Remove.
2268 (pass_tree_profile): Likewise.
2269 (pass_ipa_tree_profile): Declare.
2270
65b1d8ea 22712010-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
bdf057c6 2272 Christian Borntraeger <Christian.Borntraeger@de.ibm.com>
65b1d8ea
AK
2273
2274 * gcc/config/s390/s390.c (z196_cost): New.
2275 (s390_handle_arch_option): Add -march=z196.
2276 (s390_option_override): Use the new cost function and use the z10
2277 defaults also for z196.
2278 (legitimate_reload_constant_p): Adjust comment.
2279 (legitimate_reload_fp_constant_p): New function.
2280 (s390_preferred_reload_class): Distingiush between FP and Int constants.
2281 (preferred_la_operand_p): Avoid la with index on z196.
2282 (s390_adjust_priority): Trigger also for z196.
2283 (s390_issue_rate): Issue rate for z196 is 3.
2284 (s390_z10_fix_long_loop_prediction): Rename to ...
2285 (s390_fix_long_loop_prediction): ... this.
2286 (s390_reorg): Apply the z10 adjustments also for z196.
2287 (s390_loop_unroll_adjust): Do this also for z196.
2288 * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
2289 (enum processor_flags): Add PF_Z196.
2290 (TARGET_AVOID_CMP_AND_BRANCH): New macro.
2291 (TARGET_CPU_Z196, TARGET_Z196): New macros.
2292 * gcc/config.gcc: Enable z196 for --with-arch.
2293 * gcc/config/s390/2817.md: New file.
2294 * gcc/config/s390/2084.md: New type for multiply and add.
2295 * gcc/config/s390/2097.md: Likewise.
2296 * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
2297 (UNSPECV_ATOMIC_OP): New constants.
2298 (fmadddf, fmaddsf): New values for type attribute.
2299 (z196prop): New insn attribute.
2300 (cpu, cpu_facility): Add z196.
2301 (ATOMIC_Z196): New code iterator.
2302 (noxa): New code attribute.
2303 (gk): New mode attribute.
2304 (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
2305 Support load zero for fp constants.
2306 (fixuns_truncdddi2, fixuns_trunctddi2)
2307 (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
2308 for z196.
2309 (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
2310 (popcounthi2, popcountqi2): New expander.
2311 (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
2312 (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
2313 (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
2314 insn definition.
2315 (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
2316 (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
bdf057c6
UB
2317 (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
2318 (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
2319 (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
2320 (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
2321 (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
2322 (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
2323 (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
2324 (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
2325 (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
2326 (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
65b1d8ea
AK
2327 (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
2328 Support new z196 instructions.
2329
6e572326
RG
23302010-10-05 Richard Guenther <rguenther@suse.de>
2331
2332 PR middle-end/45877
2333 * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
2334 case where gimplification optimizes away the stmt.
2335
098db05e
JJ
23362010-10-04 Jakub Jelinek <jakub@redhat.com>
2337
2338 PR debug/45849
2339 * var-tracking.c (strip_pointer_flags): New function.
2340 (emit_note_insn_var_location): If rtx_equal_p check failed,
2341 retry on locations simplified with simplify_replace_fn_rtx
2342 and strip_pointer_flags as its callback.
2343
b3b9f3d0
JH
23442010-10-04 Jan Hubicka <jh@suse.cz>
2345
2346 * gimple-fold.c (static_object_in_other_unit_p): Rename to...
2347 (can_refer_decl_in_current_unit_p): ... this one; reverse return
2348 value; handle comdats too.
2349 (canonicalize_constructor_val): Use it; handle function_decls
2350 correctly.
2351 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2352 * gimple.c (get_base_address): Accept all kinds of decls.
2353
fa37ed29
JM
23542010-10-04 Joseph Myers <joseph@codesourcery.com>
2355
2356 * flags.h (g_switch_value, g_switch_set): Remove.
2357 * opts.c (g_switch_value, g_switch_set): Remove.
2358 * config/g.opt (G): Add Var(g_switch_value).
bdf057c6 2359 * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
fa37ed29
JM
2360 (alpha_option_override): Check global_options_set.x_g_switch_value
2361 instead of g_switch_set.
2362 (alpha_in_small_data_p): Remove cast in comparison with
2363 g_switch_value.
2364 * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
2365 g_switch_value to unsigned HOST_WIDE_INT.
2366 * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
2367 with g_switch_value.
2368 (frv_handle_option): Don't handle -G here.
2369 (frv_option_override): Check global_options_set.x_g_switch_value
2370 instead of g_switch_set. Don't modify g_switch_set.
bdf057c6 2371 (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
fa37ed29
JM
2372 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
2373 g_switch_value to unsigned HOST_WIDE_INT.
2374 * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
2375 (ia64_option_override): Check global_options_set.x_g_switch_value
2376 instead of g_switch_set.
2377 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
2378 Remove.
2379 (lm32_in_small_data_p): Remove cast in comparison with
2380 g_switch_value.
2381 * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
2382 ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
2383 HOST_WIDE_INT.
2384 * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
2385 (m32r_init): Check global_options_set.x_g_switch_value instead of
2386 g_switch_set.
2387 (m32r_in_small_data_p): Remove cast in comparison with
2388 g_switch_value.
2389 (m32r_file_start): Format g_switch_value with %d.
2390 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
bdf057c6 2391 ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
fa37ed29
JM
2392 * config/microblaze/microblaze.c (microblaze_handle_option): Don't
2393 handle -G here.
2394 (microblaze_option_override): Check
2395 global_options_set.x_g_switch_value instead of g_switch_set.
2396 * config/mips/mips.c (mips_handle_option): Don't handle -G here.
2397 (mips_option_override): Check global_options_set.x_g_switch_value
2398 instead of g_switch_set.
bdf057c6 2399 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
fa37ed29
JM
2400 (rs6000_file_start): Format g_switch_value with %d.
2401 (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
2402 comparisons with g_switch_value.
2403 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
2404 global_options_set.x_g_switch_value instead of g_switch_set.
2405 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
2406 global_options_set.x_g_switch_value instead of g_switch_set.
bdf057c6 2407 * config/score/score.c (score_handle_option): Don't handle -G here.
fa37ed29
JM
2408 * config/score/score3.c (score3_option_override): Check
2409 global_options_set.x_g_switch_value instead of g_switch_set.
2410 * config/score/score7.c (score7_option_override): Check
2411 global_options_set.x_g_switch_value instead of g_switch_set.
2412
22b0982c
VM
24132010-10-04 Vladimir Makarov <vmakarov@redhat.com>
2414
2415 * common.opt (fira-coalesce): Remove.
2416
2417 * doc/invoke.texi (flag_ira_coalesce): Remove.
2418
2419 * ira-color.c (allocno_coalesced_p): Move before
2420 copy_freq_compare_func.
2421 processed_coalesced_allocno_bitmap): Ditto.
2422 (update_conflict_hard_regno_costs): Don't use
2423 ALLOCNO_FIRST_COALESCED_ALLOCNO.
2424 (allocno_cost_compare_func, print_coalesced_allocno): Remove.
2425 (assign_hard_reg): Assume no coalesced allocnos.
2426 (get_coalesced_allocnos_attributes): Remove.
2427 (bucket_allocno_compare_func): Assume no coalesced allocnos.
2428 (push_allocno_to_stack): Ditto.
2429 (remove_allocno_from_bucket_and_push): Use
2430 ira_print_expanded_allocno instead of print_coalesced_allocno.
2431 (push_allocnos_to_stack): Assume uncoalesced allocnos.
2432 (all_conflicting_hard_regs_coalesced): Ditto. Rename to
2433 all_conflicting_hard_regs.
2434 (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
2435 (setup_allocno_left_conflicts_size): Ditto.
2436 (put_allocno_into_bucket): Ditto.
2437 (copy_freq_compare_func): Remove.
2438 (copy_freq_compare_func, merge_allocnos): Move before
2439 coalesced_pseudo_reg_freq_compare.
2440 coalesced_allocno_conflict_p): Ditto.
2441 (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto. Remove
2442 parameter. Assume it true.
2443 (color_allocnos): Assume uncoalesced allocnos. Use
2444 ira_print_expanded_allocno instead of print_coalesced_allocno.
2445 (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
2446 parameter.
2447
2448 * ira.c: Remove comment about coalescing.
2449
f770d743
JM
24502010-10-04 Joseph Myers <joseph@codesourcery.com>
2451
2452 * config/mips/mips.h (target_flags_explicit): Declare for
2453 GENERATOR_FILE.
2454
a90163e9
AK
24552010-10-04 Andi Kleen <ak@linux.intel.com>
2456
2457 * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
a557f9cc 2458 gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
a90163e9 2459
6fda54ac
MK
24602010-10-04 Matthias Klose <doko@ubuntu.com>
2461
2462 * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
2463 multilib osdirname if it exists.
2464 * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
2465
828fde80
JJ
24662010-10-04 Jakub Jelinek <jakub@redhat.com>
2467
2468 PR middle-end/45876
2469 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
2470 arg0's type or its unsigned counterpart as utype. Convert
2471 arg1 to utype unconditionally.
2472
c452684d
JB
24732010-10-04 Julian Brown <julian@codesourcery.com>
2474
2475 * expr.c (expand_assignment): Add assertion to prevent emitting
2476 null rtx for movmisalign pattern.
2477 (expand_expr_real_1): Likewise.
2478 * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
2479 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
2480 (arm_vector_alignment_reachable): New.
2481 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
2482 (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
2483 (arm_print_operand): Include alignment qualifier in %A.
2484 * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
2485 (movmisalign<mode>): New expander.
2486 (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
2487 insn patterns.
2488
d4d24ba4
JM
24892010-10-04 Joseph Myers <joseph@codesourcery.com>
2490
2491 * optc-gen.awk: Define global_options_set. Don't define
2492 target_flags_explicit.
2493 * opth-gen.awk: Declare global_options_set. Define
2494 target_flags_explicit as macro.
2495 * opts-common.c (handle_option): Take opts_set and generated_p
2496 parameters.
2497 (handle_generated_option, read_cmdline_option, set_option): Take
2498 opts_set parameter.
2499 (set_option): Use opts_set instead of hardcoding target_flags and
2500 target_flags_explicit.
2501 * opts.c (sel_sched_switch_set, profile_arc_flag_set,
2502 flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
2503 flag_value_profile_transformations_set, flag_peel_loops_set,
2504 flag_branch_probabilities_set, flag_inline_functions_set,
2505 flag_ipa_cp_set, flag_ipa_cp_clone_set,
2506 flag_predictive_commoning_set, flag_unswitch_loops_set,
2507 flag_gcse_after_reload_set): Remove.
2508 (common_handle_option, lang_handle_option, target_handle_option):
2509 Take opts_set parameter. Assert that it is &global_options_set.
2510 (common_handle_option): Don't set _set variables. Check opts_set
2511 instead of such variables.
2512 (enable_warning_as_error): Pass &global_options_set to
2513 handle_generated_option.
2514 * opts.h (cl_option_handler_func.handler, set_option,
2515 handle_option, handle_generated_option, read_cmdline_option): Add
2516 opts_set parameters.
2517 (handle_option): Add generated_p parameter.
2518 * config/i386/i386.c (ix86_function_specific_save,
2519 ix86_function_specific_restore): Updat for renaming of
2520 target_flags_explicit field.
2521 * config/i386/i386.opt (target_flags_explicit): Rename to
2522 ix86_target_flags_explicit.
2523 * config/ia64/ia64.c (ia64_override_options_after_change): Check
2524 global_options_set.x_flag_selective_scheduling and
2525 global_options_set.x_flag_selective_scheduling2, not
2526 sel_sched_switch_set.
2527 * flags.h (sel_sched_switch_set,
2528 flag_speculative_prefetching_set): Remove.
2529 * gcc.c (driver_handle_option): Take opts_set parameter. Assert
2530 that it is &global_options_set.
bdf057c6 2531 (process_command): Pass &global_options_set to read_cmdline_option.
d4d24ba4
JM
2532 * lto-opts.c (lto_reissue_options): Pass &global_options_set to
2533 set_option.
2534 * toplev.c (target_flags_explicit): Remove.
2535
4a2da105
JH
25362010-10-04 Jan Hubicka <jh@suse.cz>
2537
2538 PR middle-end/45871
2539 * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
2540 use get_ref_base_and_offset to handle references.
2541 (fold_const_aggregate_ref): Update.
2542
1dbee8c9
MJ
25432010-10-04 Martin Jambor <mjambor@suse.cz>
2544
2545 PR tree-optimization/45572
2546 * ipa-prop.c (ipa_make_edge_direct_to_target): Call
2547 ipa_check_create_node_params.
2548 * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
2549
eeb4dfda
YQ
25502010-10-04 Yao Qi <yao@codesourcery.com>
2551
2552 * doc/passes.texi: Clean up.
2553
478a1c5b
ILT
25542010-10-03 Ian Lance Taylor <iant@google.com>
2555
2556 * c-typeck.c (lookup_field): If -fplan9-extensions, permit
2557 referring to a field using a typedef name.
2558 (find_anonymous_field_with_type): New static function.
2559 (convert_to_anonymous_field): New static function.
2560 (convert_for_assignment): If -fplan9-extensions, permit converting
2561 pointer to struct to pointer to anonymous field.
bdf057c6 2562 * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
478a1c5b
ILT
2563 (is_duplicate_field): New static function.
2564 (detect_field_duplicates_hash): If -fplan9-extensions, check for
2565 typedef names duplicating field names.
2566 (detect_field_duplicates): Likewise.
2567 * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
2568 (C Dialect Options): Document -fplan9-extensions.
2569 * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
2570
a1e53f3f
L
25712010-10-03 H.J. Lu <hongjiu.lu@intel.com>
2572
2573 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
2574 revision 164914.
2575 (vect_create_data_ref_ptr): Likewise.
2576 * tree-vect-stmts.c (vectorizable_store): Likewise.
2577 (perm_mask_for_reverse): Likewise.
2578 (reverse_vec_elements): Likewise.
2579 (vectorizable_load): Likewise.
2580
82a1c2fe
FXC
25812010-10-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2582
2583 * cppbuiltin.c: New file.
2584 * cppbuiltin.h: New file.
2585 * Makefile.in: Take into account cppbuiltin.{h,c}.
2586
f1e92a43
AK
25872010-10-03 Andi Kleen <ak@linux.intel.com>
2588
82a1c2fe 2589 * lto-cgraph.c (input_cgraph): Check for missing sections.
f1e92a43 2590
5ed69344
UB
25912010-10-03 Uros Bizjak <ubizjak@gmail.com>
2592
bdf057c6 2593 * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
5ed69344
UB
2594 to nonimmediate_operand. Force operand 2 to register when allowed.
2595 (*<shiftrt_insn><mode>3_mask): Ditto.
2596 (*<rotate_insn><mode>3_mask): Ditto.
2597
888a22d0
L
25982010-10-02 H.J. Lu <hongjiu.lu@intel.com>
2599
2600 PR tree-optimization/45720
2601 PR tree-optimization/45764
2602 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
2603 Don't accept backwards consecutive accesses.
2604 (vect_create_data_ref_ptr): Disallow negative steps.
2605
2606 * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
2607 (perm_mask_for_reverse): Removed.
2608 (reverse_vec_elements): Likewise.
5ed69344 2609 (vectorizable_load): Don't handle negative steps.
888a22d0 2610
31ceb574
JH
26112010-10-02 Jan Hubicka <jh@suse.cz>
2612
2613 * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
2614 call destination is known.
2615
715a567d
JDA
26162010-10-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2617
2618 PR target/45820
2619 * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
2620 earlier.
2621
ffedf511
RW
26222010-10-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2623
2624 * doc/install.texi (Configuration): Document build_configargs,
2625 host_configargs, target_configargs.
2626
c44d6c47
UB
26272010-10-01 Uros Bizjak <ubizjak@gmail.com>
2628
2629 * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
2630 (*<shiftrt_insn><mode>3_mask): Ditto.
2631 (*<rotate_insn><mode>3_mask): Ditto.
2632
1cc2d70b
SE
26332010-10-01 Steve Ellcey <sje@cup.hp.com>
2634
2635 PR tree-optimization/44716
2636 * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
2637 (HOT_TEXT_SECTION_NAME): Define.
2638
ccaeeafe
NC
26392010-10-01 Nick Clifton <nickc@redhat.com>
2640
2641 * common.opt: Add -fcombine-stack-adjustments.
c44d6c47 2642 * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
ccaeeafe
NC
2643 * combine-stack-adj.c (gate_handle_stack_adjustments): Check
2644 flag_combine_stack_adjustments.
2645 * doc/invoke.texi: Document the new option.
2646
0d228a52
RG
26472010-10-01 Richard Guenther <rguenther@suse.de>
2648
2649 PR tree-optimization/45854
2650 * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
2651
83f7dcf2
AG
26522010-10-01 Anthony Green <green@moxielogic.com>
2653
2654 * config.gcc: Fix moxie-*-rtems* configuration.
2655
29aca1e1
RG
26562010-10-01 Richard Guenther <rguenther@suse.de>
2657
2658 * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
2659 (gen_decl_die): Likewise.
2660
fec6e65b
UW
26612010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2662
2663 * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
2664 to the function code for SPU MD builtins.
2665 (spu_expand_builtin): Update.
2666 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
2667
1ae3762d
UW
26682010-10-01 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2669
2670 * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
2671 sjlj_except_unwind_info.
2672
16045c71
TG
26732010-10-01 Tristan Gingold <gingold@adacore.com>
2674
2675 * configure.ac: Define the nop insn for avr*-*-*
2676 * configure: Regenerate.
2677
d7e7073f
AM
26782010-10-01 Alan Modra <amodra@gmail.com>
2679
2680 PR target/45807
2681 * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
2682 extend toc_restore_insn.
2683
c98b08ff
RG
26842010-09-30 Richard Guenther <rguenther@suse.de>
2685
2686 PR tree-optimization/43959
2687 * function.c (gimplify_parameters): Use create_tmp_reg instead of
2688 create_tmp_var.
2689
e631262b
KK
26902010-09-30 Kaz Kojima <kkojima@gcc.gnu.org>
2691
2692 * config/sh/sh.c (sh_expand_prologue): Set
2693 current_function_static_stack_size.
2694
319840d3
RO
26952010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2696
2697 * configure.ac: Check for Solaris 8 ld with .hidden support.
2698 * configure: Regenerate.
2699
cdb9802c
SP
27002010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2701
2702 PR middle-end/45758
2703 * graphite.c (graphite_initialize): Call scev_reset.
2704
8ba78f92
SP
27052010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2706
2707 * sese.h (scev_analyzable_p): Return false for real or floating
2708 point. Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
2709
cb5f9ec6
SP
27102010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2711
2712 * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
2713 and ps.
2714 * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
2715 domain.
2716 * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
2717 Do not allocate ub_expr, it is passed in initialized.
2718
03c830c2
SP
27192010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2720
2721 * graphite-clast-to-gimple.c (init_cloog_input_file): New.
2722 (build_cloog_prog): Dump CLooG input file when
2723 flag_graphite_dump_cloog is set. This is disabled on trunk.
2724 * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
2725
61c6973f
SP
27262010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2727
2728 * graphite-clast-to-gimple.c (graphite_verify): Remove call to
2729 verify_dominators for CDI_POST_DOMINATORS.
2730 * sese.h: Remove comment about CDI_POST_DOMINATORS.
2731 (recompute_all_dominators): Remove call to free_dominance_info
2732 for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
2733 for CDI_POST_DOMINATORS.
2734
aad78a1a
SP
27352010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2736
2737 * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
2738 over pbb_dim_iter_domain.
2739
26315ccf
SP
27402010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2741
2742 * graphite-flattening.c: Fix comments.
2743
98af4c9f
SP
27442010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2745
2746 * Makefile.in (OBJS-common): Add graphite-flattening.o.
2747 (graphite-flattening.o): New rule.
2748 * common.opt (floop-flatten): New flag.
2749 * doc/invoke.texi (-floop-flatten): Documented.
2750 * graphite-flattening.c: New.
2751 * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
2752 * graphite-poly.h (flatten_all_loops): Declared.
2753 (lst_remove_loop_and_inline_stmts_in_loop_father): New.
2754 * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
2755 is set, also set flag_graphite.
2756
c498b9b9
SP
27572010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2758
2759 * graphite-poly.c (cloog_checksum): New.
2760 * graphite-poly.h (cloog_checksum): Declared.
2761
26ccb556
SP
27622010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2763
2764 * graphite-poly.c (pbb_number_of_iterations): Removed.
2765 (pbb_number_of_iterations_at_time): Correctly compute the number
2766 of iterations in the transformed loop.
2767 * graphite-poly.h (pbb_number_of_iterations): Removed.
2768
b8745012
SP
27692010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2770
2771 * graphite-poly.h (lst_update_scattering_seq): Removed.
2772 (lst_update_scattering): Correctly handle outermost loop dewey
2773 renumbering.
2774
22280f63
SP
27752010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2776
2777 * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
2778 lst_strip_mine_profitable_p. Call lst_niter_for_loop.
2779 * graphite-poly.h (lst_niter_for_loop): New.
2780
6eb412ef
SP
27812010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2782
2783 * graphite-poly.c (apply_poly_transforms): Do not abort when the
2784 transform read from disk is not legal. Call fatal_error instead.
2785
0ba82567
SP
27862010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2787
2788 * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
2789 (print_scop_header): Removed. Inlined in the only call place...
2790 (print_scop): ... here.
2791
69ac2bb6
SP
27922010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2793
2794 * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
2795
27962010-09-30 Sebastian Pop <sebastian.pop@amd.com>
da8cebd1
SP
2797
2798 * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
2799
1635d7b0
SP
28002010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2801
2802 * graphite-dependences.c (dot_deps): Avoid set but not used warning.
2803 (dot_deps_stmt): Same.
2804 * graphite-poly.c (dot_lst): Same.
2805
3a7cd438
SP
28062010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2807
2808 * graphite-blocking.c (scop_do_strip_mine): Do not call
2809 graphite_legal_transform.
2810 (scop_do_block): Same.
2811
45fc26fc
VK
28122010-09-30 Vladimir Kargov <kargov@gmail.com>
2813
2814 * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
2815 description.
2816
dbc08079
SP
28172010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2818
2819 * tree-scalar-evolution.c (instantiate_array_ref): New.
2820 (instantiate_scev_r): Also handle ARRAY_REFs.
2821
492e5456
SP
28222010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2823
2824 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
2825 Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
2826 RESULT_DECL, and FIELD_DECL. Return false for an
2827 SSA_NAME_IS_DEFAULT_DEF.
2828 (compute_scalar_evolution_in_loop): Do not further analyze the
2829 scalar evolution when no_evolution_in_loop_p returns true.
2830
21d91009
SP
28312010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2832
2833 * tree-chrec.h (evolution_function_is_affine_p): Do not check
2834 whether CHREC_LEFT is invariant. A function is affine when
2835 CHREC_RIGHT is invariant.
2836
c2bc669e
SP
28372010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2838
2839 * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
2840 is_gimple_reg.
2841 (rewrite_degenerate_phi): Same.
2842 (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
2843
56f30f65
VK
28442010-09-30 Vladimir Kargov <kargov@gmail.com>
2845
2846 * graphite-scop-detection.c (graphite_can_represent_scev,
2847 graphite_can_represent_expr, stmt_has_simple_data_refs_p,
2848 graphite_can_represent_loop): Remove outermost_loop.
2849
b4c8119f
SP
28502010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2851
2852 PR middle-end/45229
2853 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
2854 handle GIMPLE_CALLs with no LHS.
2855
f06ecc4b
RB
28562010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2857
2858 * graphite-poly.c (init_graphite_out_file): New.
2859 (init_graphite_in_file): New.
2860 (apply_poly_transforms): Updated to enable reading and writing of
2861 multiple scop files.
2862
d9ae7906
SP
28632010-09-30 Tobias Grosser <grosser@fim.uni-passau.de>
2864
2865 * graphite-scop-detection.c (graphite_can_represent_scev): Remove
2866 redundant checks.
2867
28682010-09-30 Sebastian Pop <sebastian.pop@amd.com>
02315365
SP
2869
2870 * graphite-clast-to-gimple.c (precision_for_value): Adjust
2871 computation of precision by 1.
2872
721c8b1e
RB
28732010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2874
2875 * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
2876 (openscop_read_polyhedron_matrix): New.
2877 * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
2878 (openscop_read_N_int): Same.
2879 * graphite-poly.c (openscop_read_N_int): New.
2880 (openscop_read_one_int): New.
2881 (openscop_read_N_string): New.
2882 (openscop_read_one_string): New.
2883 (openscop_read_powerset_matrix): New.
2884 (graphite_read_transforms): Remove.
2885 (graphite_read_scatt): New.
2886 (graphite_read_scop_file): New.
2887 (apply_poly_transforms): Updated to call graphite_read_scop_file.
2888
fd8bb591
AS
28892010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2890
2891 * graphite-poly.c: Change include order.
2892
562c1b02
AS
28932010-09-30 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2894
2895 * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
2896 (cloog_matrix_nrows): New.
2897
7241f8c5
RB
28982010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2899
2900 * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
2901 from matrix lines.
2902 * graphite-poly.c (openscop_print_scattering_function_1): Same.
2903 (print_scattering_function_1): Same.
2904 (openscop_print_pbb_domain): Same.
2905 (openscop_print_scop_context): Same.
2906 (print_scop_context): Same.
2907
d72f5037
RB
29082010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2909
2910 * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
2911 (openscop_print_pdr_polyhedron): Print pph.
2912
c6060639
SP
29132010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2914
2915 * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
2916 priority signed types.
2917
2c2aceeb
SP
29182010-09-30 Sebastian Pop <sebastian.pop@amd.com>
2919
c44d6c47
UB
2920 * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
2921 the call to lang_hooks.types.type_for_size. Call
2922 build_nonstandard_integer_type.
2c2aceeb 2923
ae403f5a
RB
29242010-09-30 Riyadh Baghdadi <baghdadi.mr@gmail.com>
2925
2926 * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
2927 (openscop_print_polyhedron_matrix): New.
2928 * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
2929 * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
2930 (openscop_print_pdr_powerset): New.
2931 (openscop_print_powerset_matrix): New.
2932 (openscop_print_scattering_function_1): New.
2933 (print_scattering_function): Add support for scattering names and
2934 OpenScop format.
2935 (graphite_write_transforms): Remove.
2936 (print_pdr_access_layout): Updated to support OpenScop format.
2937 (print_pdr): Same.
2938 (openscop_print_pbb_domain): New.
c44d6c47
UB
2939 (print_pbb_body): Added a parameter to allow indicating that pbb_body
2940 is not provided.
ae403f5a
RB
2941 (print_pbb): Updated to call the new print_pbb_body.
2942 (openscop_print_scop_context): New.
2943 (print_scop_header): New.
2944 (print_scop): Updated to call print_scop_header.
2945 * graphite-poly.h: Document OpenScop format.
2946
b95491a0
AS
29472010-09-30 Anatoly Sokolov <aesok@post.ru>
2948
2949 * config/cris/m32c.c (cris_memory_move_cost): New.
2950 (cris_register_move_cost): Make static. Change arguments type from
2951 enum reg_class to reg_class_t.
2952 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2953 * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2954 * config/cris/cris-protos.h (cris_register_move_cost): Remove.
2955
45c13d4c
JJ
29562010-09-30 Jakub Jelinek <jakub@redhat.com>
2957
2958 PR target/45843
2959 * config/i386/i386.c (ix86_gimplify_va_arg): Use
2960 INTVAL (XEXP (slot, 1)) as prev_size.
2961
78009d9f
MM
29622010-09-30 Michael Meissner <meissner@linux.vnet.ibm.com>
2963
2964 PR target/45837
2965 * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
2966 * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
2967 defined.
2968 * config/rs6000/option-defaults.h (toplevel): Change #if
2969 TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
2970 global option changes.
2971
140d4eff
JJ
29722010-09-30 Jakub Jelinek <jakub@redhat.com>
2973
bb6b5461
JJ
2974 * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
2975
140d4eff
JJ
2976 PR tree-optimization/31261
2977 * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
2978 for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
2979
6ddddaed
RW
29802010-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2981
2982 PR bootstrap/45796
2983 * Makefile.in (build/gen%$(build_exeext)): Move rule after all
2984 special-casing for generators and turn into ...
2985 ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
c44d6c47 2986 rule, for better error messages in case of toplevel dependency errors.
6ddddaed
RW
2987 (genprog): Add hooks, rename to ...
2988 (genprogerr): ... this, and let genprog also contain check,
2989 checksum, condmd.
2990 ((genprog:%=build/gen%$(build_exeext))): Rename to ...
2991 ((genprogerr:%=build/gen%$(build_exeext))): ... this.
2992 (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
2993
abcc9b2a 29942010-09-30 Jonathan Wakely <jwakely.gcc@gmail.com>
c44d6c47 2995 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
abcc9b2a
JW
2996
2997 * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
2998 for GMP, MPFR and MPC.
2999
c28aa982
RO
30002010-09-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3001
3002 * config/sparc/sparc.opt (mimpure-text): Move ...
c44d6c47 3003 * config/sol2.opt: ... here. Correct description.
c28aa982
RO
3004 * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
3005 * doc/invoke.texi (Option Summary, SPARC Options): Move
3006 -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
3007 (Option Summary, Solaris 2 Options): ... here.
3008 (Submodel Options, Solaris 2 Options): New menu entry.
3009 (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
3010 (Solaris 2 Options): ... here.
3011
80920132
ME
30122010-09-30 Michael Eager <eager@eagercon.com>
3013
3014 * extend.texi (interrupt_handler): Add MicroBlaze to list.
3015 (save_volatiles): Describe option for MicroBlaze.
3016 * invoke.texi: Add MicroBlaze Options.
a557f9cc 3017 * contrib.texi: Add acknowledgment.
80920132
ME
3018 * md.texi: Add MicroBlaze d and z constraints.
3019 * install.texi: Add microblaze-*-elf.
3020 * configure.ac: Add microblaze-*-* to target list.
3021 * configure: Regenerate.
3022 * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
3023 * config/microblaze/microblaze-protos.h: New.
3024 * config/microblaze/crti.s: New.
3025 * config/microblaze/predicates.md: New.
3026 * config/microblaze/linux.h: New.
3027 * config/microblaze/microblaze.md: New.
3028 * config/microblaze/constraints.md: New.
3029 * config/microblaze/crtn.s: New.
3030 * config/microblaze/microblaze.opt: New.
3031 * config/microblaze/microblaze-c.c: New.
3032 * config/microblaze/t-microblaze: New.
3033 * config/microblaze/microblaze.c: New.
3034 * config/microblaze/microblaze.h: New.
3035
92902b1b
IS
30362010-09-30 Iain Sandoe <iains@gcc.gnu.org>
3037
3038 * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
3039 parse @optional/@required and set the flags as appropriate.
3040
ca01d012
NF
30412010-09-30 Nathan Froyd <froydnj@codesourcery.com>
3042
3043 * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
3044
46625112
JM
30452010-09-30 Joseph Myers <joseph@codesourcery.com>
3046
3047 * opt-functions.awk (static_var): Update comment.
3048 (var_ref): Return offsetof expression or -1, not variable address.
3049 * optc-gen.awk: Generate structure field initializers instead of
3050 static variables. Expect -1 for missing variables instead of null
3051 pointer. Add gcc_options parameters to generated functions.
3052 * opth-gen.awk: Generate structure fields for static variables.
3053 Add gcc_options parameters to generated functions.
3054 * common.opt (optimize, optimize_size): Add variables.
3055 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
3056 &global_options to cl_target_option_restore.
3057 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
3058 &global_options to cl_optimization_restore, cl_target_option_save
3059 and cl_target_option_restore.
3060 (ix86_set_current_function): Pass &global_options to
3061 cl_target_option_restore.
3062 * config/pdp11/pdp11.h (optimize): Remove.
3063 * config/rs6000/rs6000.h (optimize): Remove.
3064 * config/sh/sh.h (optimize): Remove.
3065 * config/xtensa/xtensa.h (optimize): Remove.
3066 * coretypes.h (struct gcc_options): Declare.
3067 * diagnostic.c (diagnostic_initialize): Initialize
3068 context->option_state.
3069 (diagnostic_report_diagnostic): Pass option_state to
3070 option_enabled hook.
3071 * diagnostic.h (diagnostic_context.option_enabled): Add void *
3072 parameter.
3073 (diagnostic_context.option_state): New field.
3074 * final.c (final_start_function, final, final_scan_insn): Rename
3075 optimize parameter to optimize_p.
3076 * flags.h (optimize, optimize_size): Remove.
3077 * function.c (invoke_set_current_function_hook): Pass
3078 &global_options to cl_optimization_restore.
3079 * gcc.c (driver_handle_option): Take gcc_options parameter.
3080 Assert that it is &global_options.
3081 (process_command): Pass &global_options to read_cmdline_option.
3082 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
3083 option_enabled.
3084 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
3085 &global_options to set_option.
3086 * opts-common.c (handle_option, handle_generated_option,
3087 read_cmdline_option, set_option): Take explicit gcc_options
3088 parameters. Use option_flag_var.
3089 (option_flag_var): New.
3090 * opts.c (common_handle_option, lang_handle_option,
3091 target_handle_option): Take gcc_options parameter. Assert that it
3092 is &global_options.
c44d6c47 3093 (read_cmdline_options): Pass &global_options to read_cmdline_option.
46625112
JM
3094 (print_filtered_help): Use option_flag_var. Pass &global_options
3095 to option_enabled.
3096 (common_handle_option): Use option_flag_var.
3097 (option_enabled): Take opts parameter. Use option_flag_var.
3098 (get_option_state): Take gcc_options parameter. Use
3099 option_flag_var. Pass gcc_options parameter to option_enabled.
3100 (enable_warning_as_error): Pass &global_options to
3101 handle_generated_option.
3102 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
3103 (cl_option_handler_func.handler): Take gcc_options parameter.
3104 (option_enabled, get_option_state, set_option, handle_option,
3105 handle_generated_option, read_cmdline_option): Take gcc_options
3106 parameters.
3107 * toplev.c (optimize, optimize_size): Remove.
3108 (print_switch_values): Pass &global_options to option_enabled.
3109 (option_affects_pch_p): Use option_flag_var. Pass &global_options
3110 to get_option_state.
3111 (general_init): Initialize global_dc->option_state.
3112 * tree.c (build_optimization_node): Pass &global_options to
3113 cl_optimization_save.
3114 (build_target_option_node): Pass &global_options to
3115 cl_target_option_save.
3116
37ccfc46
MJ
31172010-09-30 Martin Jambor <mjambor@suse.cz>
3118
3119 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
3120 zero sized bit-fields.
3121
49b91f05
NP
31222010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
3123
3124 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
3125 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
c44d6c47 3126 (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
49b91f05
NP
3127 (c_parser_objc_class_declaration): Same change.
3128 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
3129 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
3130 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
3131 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
3132 and RID_AT_PUBLIC instead of RID_PUBLIC.
3133 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
3134 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
a557f9cc 3135
58735e03
TC
31362010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
3137
3138 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
3139 Add links to current providers of packages for Solaris and IRIX.
3140
a6341d57
NP
31412010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3142
3143 Merge from 'apple/trunk' branch on FSF servers.
3144 * c-parser.c: Applied change originally in c-parse.in.
a557f9cc 3145
a6341d57
NP
3146 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
3147
3148 Radar 4281748
3149 * c-decl.c (start_decl): Check for redeclaration of class name.
3150 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
3151
b14446e2
SE
31522010-09-29 Steve Ellcey <sje@cup.hp.com>
3153
3154 * config/ia64/ia64.c (ia64_builtin_decl): New.
3155 (TARGET_BUILTIN_DECL): Define.
3156 (ia64_builtins): New.
3157 (ia64_init_builtins): Save decls in ia64_builtins.
3158
22939744
BS
31592010-09-29 Bernd Schmidt <bernds@codesourcery.com>
3160
3161 PR target/40457
c44d6c47 3162 * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
22939744
BS
3163 (move2add_use_add3_insn): Likewise.
3164 (reload_cse_move2add): Likewise.
3165 * rtlanal.c (get_full_rtx_cost): New function.
3166 * rtl.h (struct full_rtx_costs): New.
3167 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
3168 costs_add_n_insns): New inline functions.
3169 (get_full_rtx_cost): Declare.
3170
907c53bb
BS
3171 PR c/45054
3172 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
3173 invariants. Check for reg_equiv_invariant.
3174 (reload): Assert that spilled_pseudos is empty when returning.
3175
0f23bc16
KT
31762010-09-29 Kai Tietz <kai.tietz@onevision.com>
3177
3178 * config/i386/mingw32.h (TARGET_64BIT): replaced by
3179 TARGET_64BIT_DEFAULT in #if check.
3180
a0c6102d
JH
31812010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
3182
c44d6c47 3183 * varasm.c (assemble_alias): Add error message for unsupported ifunc.
a0c6102d 3184
48b3f0a0
MS
31852010-09-29 Mike Stump <mikestump@comcast.net>
3186
3187 * config/darwin.h (flag_mkernel): Remove.
3188 (flag_apple_kext): Likewise.
3189
006097f4
JM
31902010-09-29 Joseph Myers <joseph@codesourcery.com>
3191 Jack Howarth <howarth@bromo.med.uc.edu>
3192
3193 * config/darwin.opt (undefined): Add.
3194
f6c5fbfd
NS
31952010-09-29 Nathan Sidwell <nathan@codesourcery.com>
3196
416ccea5 3197 PR testsuite/45664
f6c5fbfd
NS
3198 * configure.ac: Add --enable-indirect-function option.
3199 * config.gcc: Add default_gnu_indirect_function.
3200 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
3201 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
416ccea5 3202 * varasm.c (do_assemble_alias): Adjust for macro name change.
f6c5fbfd
NS
3203 * configure: Rebuilt.
3204 * doc/install.texi: Document --enable-indirect-function.
3205
f0036cca
JM
32062010-09-29 Joseph Myers <joseph@codesourcery.com>
3207
3208 * doc/options.texi (Variable, Var, Init): Update documentation
3209 without reference to VarExists.
3210 (VarExists): Remove.
3211 * common.opt, config/i386/i386.opt, config/linux.opt,
3212 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
3213 Don't use VarExists.
3214
e3339d0f
JM
32152010-09-29 Joseph Myers <joseph@codesourcery.com>
3216
3217 * optc-gen.awk: Generate global_options initializer instead of
c44d6c47 3218 individual variables. Add x_ prefix to names of structure members.
e3339d0f
JM
3219 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
3220 names of structure members.
3221 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3222 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
3223 * doc/tm.texi: Regenerate.
3224 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3225 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
3226 * c-parser.c (disable_extension_diagnostics,
c44d6c47 3227 restore_extension_diagnostics): Update names of cpp_options members.
e3339d0f
JM
3228 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3229 * common.opt (fcompare-debug-second): Don't use Var.
3230 * config/alpha/alpha.h (target_flags): Remove.
3231 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3232 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
3233 * config/bfin/bfin.h (target_flags): Remove.
3234 * config/cris/cris.h (target_flags): Remove.
3235 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
3236 cl_target_option members.
3237 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
3238 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
3239 ix86_can_inline_p): Update names of cl_target_option members.
3240 * config/i386/i386.h (ix86_isa_flags): Remove.
3241 * config/lm32/lm32.h (target_flags): Remove.
3242 * config/mcore/mcore.h (mcore_stack_increment): Remove.
3243 * config/mcore/mcore.md (addsi3): Remove extern declaration of
3244 flag_omit_frame_pointer.
3245 * config/mep/mep.h (target_flags): Remove.
3246 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3247 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
3248 * config/mmix/mmix.h (target_flags): Remove.
3249 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
3250 flag_expensive_optimizations): Remove.
3251 * config/s390/s390.h (flag_pic): Remove.
3252 * config/score/score-conv.h (target_flags): Remove.
3253 * config/sh/sh.h (sh_fixed_range_str): Remove.
3254 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
3255 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
3256 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3257 * diagnostic.c (diagnostic_initialize): Update names of
3258 diagnostic_context members.
3259 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
3260 warn_system_headers.
3261 (diagnostic_report_warnings_p): Update for new names.
3262 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
3263 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
3264 HARD_FRAME_POINTER_IS_ARG_POINTER.
3265 * flags.h (flag_compare_debug): Declare.
3266 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3267 * opts.c (flag_compare_debug): Define.
3268 (common_handle_option): Update names of diagnostic_context
3269 members. Handle -fcompare-debug-second.
3270 (fast_math_flags_struct_set_p): Update names of cl_optimization
3271 members.
3272 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3273 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3274 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3275 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3276 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
3277 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
3278 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
3279 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
3280 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
3281
9c506f10 32822010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
66dfc610
HS
3283
3284 * config/picochip/picochip.c (picochip_output_internal_label):
c44d6c47
UB
3285 This function can now be called for debug CFI labels, which can come
3286 in the middle of a vliw instruction. Postpone until end of vliw.
66dfc610 3287
725214ac
RG
32882010-09-29 Richard Guenther <rguenther@suse.de>
3289
3290 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
3291 (DECL_FILE_SCOPE_P): Use it.
3292 (TYPE_FILE_SCOPE_P): New macro.
3293
1973201f
NP
32942010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3295
3296 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
3297 a CPP_NAME which is a reserved word, clearly separate cases for
3298 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
3299
a1ec5747
NP
33002010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
3301
3302 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
3303 token->value with the canonical spelling. Do exactly like C and
3304 C++ and leave it as it is.
3305
fd930388
RH
33062010-09-28 Richard Henderson <rth@redhat.com>
3307
3308 * config/alpha/alpha.c (alpha_builtins): New.
3309 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
3310 (alpha_builtin_function): New.
3311 (alpha_add_builtins, alpha_init_builtins): Use it.
3312
6b79b1b7
NP
33132010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
3314
3315 * doc/standards.texi (Standards): Expanded the section on
3316 Objective-C and Objective-C++.
3317
146456c1
DD
33182010-09-28 DJ Delorie <dj@redhat.com>
3319
3320 PR target/45800
3321 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
3322 volatile MEMs.
3323
f7e71da5
IS
33242010-09-28 Iain Sandoe <iains@gcc.gnu.org>
3325
3326 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
3327 attributes on methods.
3328 (c_parser_objc_method_definition): Handle attributes.
3329 (c_parser_objc_methodproto): Likewise.
3330 (c_parser_objc_maybe_method_attributes): New.
3331 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
3332 missing definition, similar to that in ObjC++.
3333
f0a0390e
RH
33342010-09-28 Richard Henderson <rth@redhat.com>
3335
3336 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
3337 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3338 (CONFIG_SJLJ_EXCEPTIONS): Remove.
3339 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
3340 (STACK_CHECK_PROTECT): Likewise.
3341 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
3342 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
3343 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
3344 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
3345 (dwarf2out_assembly_start): Likewise.
3346 * except.c (init_eh): Use targetm.except_unwind_info.
3347 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
3348 (output_one_function_exception_table): Likewise.
3349 * final.c: Unconditionally include dwarf2out.h.
3350 (final_start_function): Unconditionally call dwarf2out routines.
3351 (final_end_function, final_scan_insn): Likewise.
3352 * function.c (expand_function_end): Use targetm.except_unwind_info.
3353 * opts.c (decode_options): Use targetm.except_unwind_info.
3354 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
3355 * target.def (debug_unwind_info, except_unwind_info): New.
3356 * target.h (enum unwind_info_type): New.
3357 * targhooks.c (default_debug_unwind_info): New.
3358 (default_except_unwind_info): New.
3359 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
3360 * targhooks.h: Declare them.
3361 * tree-tailcall.c: Include "target.h"
3362 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
3363 * Makefile.in (tree-tailcall.o): Update.
3364 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
3365 (lhd_gcc_personality): Likewise.
3366
3367 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
3368 (TARGET_EXCEPT_UNWIND_INFO): New.
3369 (DWARF2_UNWIND_INFO): Update.
3370 (TARGET_DEBUG_UNWIND_INFO): New.
3371 * doc/tm.texi: Rebuild.
3372
3373 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
3374 targetm.except_unwind_info.
3375
3376 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
3377 (arm_except_unwind_info): New.
3378 (arm_compute_func_type): Use it.
3379 (arm_expand_prologue, thumb_pushpop): Likewise.
3380 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
3381 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
3382 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
3383 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
3384 (DWARF2_UNWIND_INFO): Remove.
3385 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
3386 (ARM_EABI_UNWIND_TABLES): Remove.
3387
3388 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
3389 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
3390 (ia64_except_unwind_info): New.
3391 (ia64_output_function_prologue): Use it.
3392 (ia64_add_bundle_selector_before): Likewise.
3393 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
3394 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
3395 (TARGET_UNWIND_INFO): Remove.
3396
3397 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
c44d6c47 3398
c165dca7
IS
33992010-09-28 Iain Sandoe <iains@gcc.gnu.org>
3400
3401 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
3402 (c_parser_objc_protocol_definition): Likewise.
3403 (c_parser_external_declaration): Provide dummy attribute arguments.
3404 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
3405 (c_parser_objc_class_definition): Handle attributes.
3406 (c_parser_objc_protocol_definition): Likewise.
3407
41804a5b
TB
34082010-09-28 Tobias Burnus <burnus@net-b.de>
3409
3410 PR fortran/40569
3411 PR fortran/40568
3412 * toplev.h (save_decoded_options, save_decoded_options_count):
3413 New global variables.
3414 * toplev.c (save_decoded_options, save_decoded_options_count):
c44d6c47 3415 Export variables.
41804a5b 3416
7647b127
ILT
34172010-09-28 Ian Lance Taylor <iant@google.com>
3418
3419 * config/i386/i386.c (ix86_supports_split_stack): Test
c44d6c47 3420 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
7647b127 3421
bb469872
ILT
34222010-09-28 Ian Lance Taylor <iant@google.com>
3423
3424 PR target/45815
3425 * opts.c (decode_options): Don't test whether the target supports
3426 split stack if flag_split_stack == 0.
3427
0d6e14fd
JH
34282010-09-28 Jan Hubicka <jh@suse.cz>
3429
3430 * builtin-attrs.def (ATTR_LEAF): New attribute.
3431 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
3432 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
3433 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
3434 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
3435 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
3436 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
3437 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
3438 * sync-builtins.def: Annotate all builtins by leaf.
3439 * omp-builtins.def: Annotate all builtins by leaf.
3440 * builtins.def: Annotate relevant builtins with leaf attribute.
3441 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
3442 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
3443 leaf.
3444
697c3575
JH
34452010-09-28 Jan Hubicka <jh@suse.cz>
3446
3447 * tree-ssa-ccp.c (fold_ctor_reference): New function.
3448 (fold_const_aggregate_ref): Use it.
3449 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
3450 into external static.
3451
2770264a
RO
34522010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3453
3454 PR target/44452
3455 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
3456 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
3457 (ix86_solaris_return_in_memory): Remove.
3458 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
3459 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3460 (TARGET_SUBTARGET_DEFAULT): Redefine.
3461 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
3462 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
3463 (TARGET_SUBTARGET_DEFAULT): Redefine.
3464 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
3465 -mvect8-ret-in-mem.
3466 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
3467
2268453b
AM
34682010-09-29 Alan Modra <amodra@gmail.com>
3469
3470 PR target/45807
3471 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
3472 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
3473 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
3474 Delete.
3475 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
3476 (rs6000_emit_prologue): Don't just create frame save info for r2,
3477 actually save r2.
3478
4d508d59
RH
34792010-09-28 Richard Henderson <rth@redhat.com>
3480
3481 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
3482 when 8 bytes are requested.
3483
247df3b6
TG
34842010-09-28 Tristan Gingold <gingold@adacore.com>
3485
3486 * config/avr/avr.c (expand_prologue): Set
3487 current_function_static_stack_size.
3488
d5ad88c0
TG
34892010-09-28 Tristan Gingold <gingold@adacore.com>
3490
3491 * config/alpha/alpha.md: Change the initial condition of the
3492 probing loop.
3493
4150f926
UB
34942010-09-28 Uros Bizjak <ubizjak@gmail.com>
3495
3496 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
3497 Split from *avx_<maxmin:code><mode>3.
3498 (*avx_<smaxmin:code><mode>3): Ditto.
3499 * config/i386/i386.md (maxmin): Remove code iterator.
3500
b6110d6d
ILT
35012010-09-27 Ian Lance Taylor <iant@google.com>
3502
3503 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
3504 requires assembler support for CFI directives.
3505
9b809695
RH
35062010-09-27 Richard Henderson <rth@redhat.com>
3507
3508 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
3509
4f8344eb
HPN
35102010-09-27 Hans-Peter Nilsson <hp@axis.com>
3511
3512 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
3513 that AFTER is not in the range FROM..TO, inclusive.
3514
fdf0b018
HPN
35152010-09-27 Hans-Peter Nilsson <hp@axis.com>
3516 Bernd Schmidt <bernds@codesourcery.com>
3517
3518 PR rtl-optimization/45792
3519 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
3520 If not all insns are to be merged, for each edge, stash the
3521 next candidate after the to-be-merged insns before doing the
3522 merge, and use them for the retry at the new insertion point.
3523 Handle CC0 targets when retrying.
3524
7458026b
ILT
35252010-09-27 Ian Lance Taylor <iant@google.com>
3526
3527 * common.opt (fsplit-stack): New option.
3528 * opts.c (decode_options): Set flag_split_stack to final value.
3529 * target.def (supports_split_stack): New hook.
3530 * gcc.c (STACK_SPLIT_SPEC): Define.
3531 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
3532 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
3533 (Code Gen Options): Document -fsplit-stack.
3534 * doc/extend.texi (Function Attributes): Mention no_split_stack.
3535 (Function Attributes): Document no_split_stack.
3536 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
3537 TARGET_SUPPORTS_SPLIT_STACK.
3538 * doc/tm.texi: Rebuild.
3539 * function.c (thread_prologue_and_epilogue_insns): If
3540 flag_split_stack, add split stack prologue.
3541 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
3542 * varasm.c (saw_no_split_stack): New static variable.
3543 (assemble_start_function): Set saw_no_split_stack if the function
3544 has the no_split_stack attribute.
3545 (file_end_indicate_split_stack): New function.
3546 * output.h (file_end_indicate_split_stack): Declare.
3547 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
3548 and function.
3549 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
3550 routines.
3551 * config/i386/i386.c (ix86_option_override_internal): Don't set
3552 expand_builtin_va_start to NULL if -fsplit-stack.
3553 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
3554 -fsplit-stack.
3555 (ix86_va_start): If -fsplit-stack, get overflow pointer from
3556 scratch register set by prologue.
3557 (ix86_code_end): If -fsplit-stack, call
3558 file_end_indicate_split_stack.
3559 (ix86_supports_split_stack): New static function.
3560 (SPLIT_STACK_AVAILABLE): Define.
3561 (split_stack_prologue_scratch_regno): New static function.
3562 (split_stack_fn): New static variable.
3563 (ix86_expand_split_stack_prologue): New function.
3564 (ix86_live_on_entry): New static function.
3565 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
3566 (output_pic_addr_const): Likewise.
3567 (i386_asm_output_addr_const_extra): Likewise.
3568 (ix86_expand_call): Change return type to rtx. Return the new
3569 call instruction.
3570 (TARGET_SUPPORTS_SPLIT_STACK): Define.
3571 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
3572 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
3573 (split_stack_prologue, split_stack_return): New insns.
3574 (split_stack_space_check): New insn.
3575 * config/i386/i386.h (struct machine_function): Add
3576 split_stack_varargs_pointer field.
3577 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
3578 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3579 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
3580 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
3581 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
3582 Declare.
3583 (ix86_expand_call): Update declaration.
3584
177b48f9
NP
35852010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
3586
3587 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
3588 code. Added byref, which was missing in the list of codes.
3589 Explain that enumeration values are encoded as the integer type
3590 that the compiler uses to store them. Explain and make examples
3591 of how 'const' interacts with pointers, and the complication of
3592 the encoding of 'const char *'.
3593 (Legacy type encoding): New subsection, explaining that GCC emits
3594 incorrect type encodings for the NeXT runtime for compatibility
3595 reasons.
3596 (@@encode): New subsection, explaining @encode and particularly
3597 that protocol qualifiers are not recognized inside an @encode()
3598 expression.
3599 (Method signatures): New subsection, explaining how method
3600 signatures are encoded.
3601
b581b85b
NP
36022010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
3603
3604 Merge from 'apple/trunk' branch on FSF servers. Removed small
3605 change in build_conditional_expr that had been added when fixing
3606 PR objc/27377 and which did the same check in a less complete way.
3607
3608 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
3609
3610 Radar 4229905
3611 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
3612 looking for objective-c common pointer types.
c44d6c47 3613
b581b85b
NP
3614 2005-06-22 Ziemowit Laski <zlaski@apple.com>
3615
3616 Radar 4154928
3617 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
3618 use their ObjC common type.
3619
1787f59e
RG
36202010-09-27 Richard Guenther <rguenther@suse.de>
3621
3622 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
3623
16892055
JZ
36242010-09-27 Jie Zhang <jie@codesourcery.com>
3625
3626 * print-tree.c (print_node): Print in-constant-pool.
3627
63001560
UB
36282010-09-27 Uros Bizjak <ubizjak@gmail.com>
3629
3630 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
3631 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
3632 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
3633 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
3634
4470a3a3
UB
36352010-09-26 Uros Bizjak <ubizjak@gmail.com>
3636
3637 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
3638 from pro_epilogue_adjust_stack_<mode>_{1,2}.
3639 (pro_epilogue_adjust_stack_<mode>_add): Rename from
3640 pro_epilogue_adjust_stack_<mode>_3.
3641 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
3642 renamed pro_epilogue_adjust_stack_{si,di}_add.
3643 (ix86_expand_prologue): Use indirect functions. Update for renamed
3644 pro_epilogue_adjust_stack_{si,di}_sub.
3645
d355d5ea
UB
36462010-09-26 Uros Bizjak <ubizjak@gmail.com>
3647
3648 * config/i386/i386.md (movmsk_df): New insn.
3649 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
3650 sequence for TARGET_SSE_MATH.
3651
7725086e
RS
36522010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
3653
3654 * config/mips/mips.c (mips_builtin_decls): Declare.
3655 (mips_init_builtins): Store function declarations in
3656 mips_builtin_decls.
3657 (mips_builtin_decl): New function.
3658 (TARGET_BUILTIN_DECL): Define.
3659
174425ad
KT
36602010-09-25 Kai Tietz <kai.tietz@onevision.com>
3661 Richard Henderson <rth@redhat.com>
3662
3663 * config/i386/cygwin.asm: Include auto-host.h.
3664 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
3665 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
3666 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
3667 alignment code from the 64-bit path. Use gas local labels.
3668 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
3669 from _di_2. Remove the useless constant integer argument.
3670 (pro_epilogue_adjust_stack_<mode>_3): New.
3671 (allocate_stack_worker_probe_<mode>): Macroize from
3672 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
3673 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
3674 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
3675 (__chkstk_ms): New function.
3676 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
3677 * gcc/config/i386/t-interix: Likewise.
3678 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
3679 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
3680 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
3681 * configure, config.in: Rebuild.
3682
cf1bcf06
EB
36832010-09-25 Eric Botcazou <ebotcazou@adacore.com>
3684
3685 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
3686 statements because of the return slot optimization.
3687
c21136ee
AS
36882010-09-25 Anatoly Sokolov <aesok@post.ru>
3689
3690 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
3691 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
3692 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3693 (class_likely_spilled_p): Rename to...
3694 (avr_class_likely_spilled_p): ...this. Make static. Change argument
3695 type to reg_class_t.
3696
051f8cc6
JH
36972010-09-24 Jan Hubicka <jh@suse.cz>
3698
3699 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
3700 (lto_symtab_resolve_symbols): Set it.
3701 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
3702 store resolution field in cgraph/varpool.
3703 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
3704 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
3705 (cgraph_dump_node): Drop used_from_object_file.
3706 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
3707 (cgraph_function_body_availability): Use decl_replaceable_p.
3708 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
3709 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
3710 cgraph_used_from_object_file_p.
3711 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
3712 cgraph_used_from_object_file_p.
3713 (resolution_used_from_other_file_p): New functoin.
3714 (cgraph_used_from_object_file_p): New predicate.
3715 * cgraph.h: Include plugin-api.h
3716 (struct cgraph_local_info): Remove used_from_object_file.
3717 (struct cgraph_node): Add resolution field.
3718 (struct varpool_node): Likewise; remove used_from_object_file;
3719 reove const_value_known.
3720 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
3721 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
3722 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
3723 varpool_used_from_object_file_p): Declare.
3724 (varpool_get_node, varpool_extra_name_alias): Update prototype.
3725 * tree.h (DECL_REPLACEABLE_P): Remove.
3726 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
3727 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
3728 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
3729 input_overwrite_node, input_node, input_varpool_node): Stream
3730 resolution.
3731 * expr.c (expand_expr_real_1): Use const_value_known_p
3732 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
3733 const_value_known.
3734 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
3735 (function_and_variable_visibility): Set resolution for local vars
d355d5ea 3736 and functions; use varpool_used_from_object_file_p.
051f8cc6
JH
3737 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
3738 static functions.
3739 (default_binds_local_p_1): Use resolutoin info.
3740 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
3741 * varpool.c (varpool_get_node): Constify.
3742 (const_value_known_p): Do not use vnode->const_value_known;
3743 use decl_replaceable_p.
3744 (varpool_finalize_decl): Do not set const_value_known.
3745 (cgraph_variable_initializer_availability): Use decl_replaceable_p
3746 (varpool_extra_name_alias): Return new node.
3747 (varpool_used_from_object_file_p): New function.
3748
5c255b57
RH
37492010-09-24 Richard Henderson <rth@redhat.com>
3750
3751 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
3752 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
3753 (do_spill): Use REG_CFA_OFFSET.
3754 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
3755 as appropriate.
3756 (ia64_expand_epilogue): Likewise.
3757 (process_set): Split into ...
3758 (process_cfa_adjust_cfa): this,
3759 (process_cfa_register): this,
3760 (process_cfa_offset): and this new function.
3761 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
3762 instead of REG_FRAME_RELATED_EXPR.
3763
42d87712
OH
37642010-09-24 Olivier Hainque <hainque@adacore.com>
3765
3766 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
3767
46a4da10
JH
37682010-09-24 Jan Hubicka <jh@suse.cz>
3769
3770 * doc/extend.texi: (attribute leaf): Document.
3771 * tree.c (local_define_builtin): Handle ECF_LEAF.
3772 (build_common_builtin_nodes): Set ECF_LEAF where needed.
3773 * tree.h (ECF_LEAF): New.
d355d5ea
UB
3774 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
3775 overwrittable and unavailable functions.
46a4da10
JH
3776 (ipa_init): Put all_module_statics into optimization_summary_obstack.
3777 (copy_global_bitmap): Do not copy all_module_statics.
3778 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
3779 (propagate): Handle overwritable and unavailable leaf functions;
3780 initialize global info for overwritable and unavailable leaf functions;
3781 do not free all module statics.
74164603 3782 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
d355d5ea 3783 local statics.
46a4da10
JH
3784 * calls.c (flags_from_decl_or_type): Handle leaf.
3785 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
3786 abnormal gotos.
e1b793e7
BS
3787
37882010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
3789
3790 * gengtype.c: Reindented.
e1b793e7 3791 * gengtype.h: Reindented.
e1b793e7
BS
3792 * gengtype-parse.c: Reindented.
3793
1d0804d4
JH
37942010-09-24 Jan Hubicka <jh@suse.cz>
3795
3796 PR tree-optimization/45738
3797 PR tree-optimization/45741
3798 * expr.c (string_constant): Allow CONST_DECL too;
3799 check that DECL_INITIAL is set.
3800 * varpool.c (const_value_known_p): Only look into VAR_DECL
3801 and CONST_DECL.
3802
5642f5d5
JM
38032010-09-24 Joseph Myers <joseph@codesourcery.com>
3804
3805 * common.opt (undef): New.
3806
32990d5b
JJ
38072010-09-24 Jakub Jelinek <jakub@redhat.com>
3808
3809 PR middle-end/45234
3810 * rtl.h (enum global_rtl_index): Add
3811 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
3812 (LAST_VIRTUAL_POINTER_REGISTER): Define.
3813 (virtual_preferred_stack_boundary_rtx,
3814 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
3815 (LAST_VIRTUAL_REGISTER): Increase by one.
3816 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
3817 instead of LAST_VIRTUAL_REGISTER.
3818 * function.c (instantiate_new_reg): Handle
3819 virtual_preferred_stack_boundary_rtx.
3820 * emit-rtl.c (init_virtual_regs): Handle
3821 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
3822 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
3823 * explow.c (round_push): If crtl->preferred_stack_boundary
3824 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
3825 virtual_preferred_stack_boundary_rtx alignment instead of
3826 crtl->preferred_stack_boundary alignment.
3827 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
3828 macros. Never decrease crtl->preferred_stack_boundary,
3829 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
3830 instead of PREFERRED_STACK_BOUNDARY. Don't modify
3831 stack_pointer_delta in dynamic allocation, even when size
3832 is constant.
3833 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
3834 macro.
3835 * print-rtl.c (print_rtx): Handle
3836 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
3837 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
3838 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
3839 * config/frv/frv.c (frv_emit_movsi): Likewise.
3840 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
3841 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
3842 Likewise.
3843
3844 Revert:
3845 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
3846
3847 PR middle-end/45234
3848 * calls.c (expand_call): Make sure that all variable sized
3849 adjustments are multiple of preferred stack boundary after
3850 stack alignment.
3851
3d1b7f13
IS
38522010-09-24 Iain Sandoe <iains@gcc.gnu.org>
3853 Dominique Dhumieres <dominiq@lps.ens.fr>
d355d5ea 3854
3d1b7f13
IS
3855 PR bootstrap/45751
3856 * gcc/config/darwin-driver.c (darwin_default_min_version):
3857 Adjust size passed to memcpy in two places.
d355d5ea 3858
116f30c3
RG
38592010-09-24 Richard Guenther <rguenther@suse.de>
3860
3861 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
3862 Make sure to not call set_type_context with error_mark_node.
3863 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
3864
de6ba7ae
RG
38652010-09-24 Richard Guenther <rguenther@suse.de>
3866
3867 * Makefile.in (OBJS-onestep): Remove.
3868 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
3869 (libbackend.a): Remove onestep support.
3870 (libbackend.o): Remove.
3871 * configure.ac (--enable-intermodule): Remove.
3872 * configure: Regenerate.
3873
662592e1
BS
38742010-09-24 Bernd Schmidt <bernds@codesourcery.com>
3875
3876 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
3877 reaching the end of a block if it occurs at a DEBUG_INSN.
3878
5501bdc1
TG
38792010-09-09 Tristan Gingold <gingold@adacore.com>
3880
3881 PR target/44242
3882 * config/vms/vms-crt0-64.c: Removed.
3883 * config/vms/vms-crt0.c: Removed.
3884 * config/vms/vms-psxcrt0-64.c: Removed.
3885 * config/vms/vms-psxcrt0.c: Removed.
3886 * config/vms/vms-ucrt0.c: New file.
3887 * config/vms/t-vms64: Removed.
3888 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
3889 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
3890 * config.gcc (alpha-dec-vms): Use t-vms.
3891
35e711d3
NP
38922010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
3893
3894 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
3895 underfull hbox in DVI output.
3896 (-fobjc-class-cxx-cdtors): Same change.
3897 (-fobjc-exceptions): Tidied up documentation. Explain what the
3898 option does, but moved the (lenghty) description of the exception
3899 syntax into objc.texi.
3900 (-fobjc-gc): Explain that the option is not useful with the GNU
3901 runtime.
3902 (-fzero-link): Explain that the GNU runtime always works in
3903 "zero-link" mode.
3904 * doc/objc.texi: All sections: simplified @node declarations
3905 removing specification of next, previous, up node.
3906 (Objective-C): Updated introduction.
3907 (Garbage Collection): Updated. The bohem-gc library is now
3908 included in gcc itself. Mention that this section only applies to
3909 the GNU Objective-C runtime.
3910 (compatibility_alias): Small tidy up.
3911 (Exceptions): New section mostly containing text previously in the
3912 description of the -fobjc-exception command-line option.
3913 (Synchronization): Same.
5501bdc1 3914
6fd71fde
UB
39152010-09-24 Uros Bizjak <ubizjak@gmail.com>
3916
3917 * config/i386/i386.md (ix86_code_end): Move the initialization of
3918 xops array near the consumer. Use AX_REG and SP_REG instead of
3919 numerical constants.
3920
19dc6d01
NP
39212010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
3922
6fd71fde
UB
3923 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
3924 method [methodname]' for an Objective-C method instead of the less
3925 satisfactory 'too many arguments to function' (with no method name).
19dc6d01 3926
f61c8291
EB
39272010-09-23 Eric Botcazou <ebotcazou@adacore.com>
3928
452648a8 3929 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
f61c8291 3930 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
452648a8
EB
3931 (execute_update_addresses_taken): Remove parameter. Execute the
3932 optimization unconditionally.
3933 * passes.c (execute_function_todo): Call execute_update_addresses_taken
3934 unconditionally if TODO_rebuild_alias is set, else only when optimizing
3935 if TODO_update_address_taken is set.
f61c8291 3936
ffda8a0d
AS
39372010-09-23 Anatoly Sokolov <aesok@post.ru>
3938
3939 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3940 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
3941 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3942 (arm_output_addr_const_extra): Make static.
3943
17eba947
UB
39442010-09-23 Uros Bizjak <ubizjak@gmail.com>
3945
3946 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
3947 define as unspec_volatile.
3948 ("nops"): Define as unspec_volatile. Use fputs to write to
3949 asm_out_file directly. Output NOPs on separate lines using while loop.
3950 * config/i386/i386.c (ix86_code_end): Use fputs to write to
3951 asm_out_file directly. Output NOPs on separate lines using while loop.
3952
3d113394
RG
39532010-09-23 Richard Guenther <rguenther@suse.de>
3954
3955 PR tree-optimization/45565
3956 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3957 Make sure to adjust the fndecl before replacing the stmt.
3958
dca26746
RG
39592010-09-23 Richard Guenther <rguenther@suse.de>
3960
3961 PR middle-end/45750
3962 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
3963 gimplifying MEM_REF.
3964
9f2e34e1
AM
39652010-09-23 Alan Modra <amodra@gmail.com>
3966
3967 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
3968 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
3969
3c3bd471
BS
39702010-09-23 Bernd Schmidt <bernds@codesourcery.com>
3971
3972 PR rtl-optimization/44374
3973 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
3974 * df-core.c (df_set_bb_dirty): Set it.
3975 * ifcvt.c (find_memory): Remove function.
3976 (dead_or_predicable): Use can_move_insns_across.
3977 * df.h (can_move_insns_across): Declare function.
3978 * cfgcleanup.c (block_was_dirty): New static variable.
3979 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
3980 than df_get_bb_dirty.
3981 (try_head_merge_bb): New static function.
3982 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
3983 is set.
3984 * df-problems.c: Include "target.h"
3985 (df_simulate_find_uses): New static function.
3986 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
3987 (find_memory, find_memory_store): New static functions.
3988 (can_move_insns_across): New function.
3989 * Makefile.in (df-problems.o): Update dependencies.
3990
40ea67af
EB
39912010-09-22 Eric Botcazou <ebotcazou@adacore.com>
3992
3993 PR java/44095
3994 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
3995 is specified and the suffix of the file isn't ".c".
3996 * config/sparc/linux64.h (ASM_SPEC): Likewise.
3997
39982010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ab940b73 3999
17eba947 4000 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
ab940b73
RW
4001 * doc/cppopts.texi: Fix markup of index entry.
4002 * doc/extend.texi (Constructing Calls): Fix markup of
4003 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
4004 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
4005 (Vague Linkage, C++ Attributes): Fix markup of index entries and
4006 keywords.
4007 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
4008 avoid long lines.
4009 (C Dialect Options, C++ Dialect Options, Warning Options)
4010 (Debugging Options, Spec Files, Darwin Options)
4011 (i386 and x86-64 Options, MIPS Options)
4012 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
4013 index entries, avoid abbreviations, allow URLs to wrap, avoid
4014 long lines, avoid overlong pages from long @itemx lists.
4015 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
4016 * doc/standards.texi (Standards): Likewise.
17eba947 4017 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
ab940b73 4018
60cf253a
JM
40192010-09-22 Joseph Myers <joseph@codesourcery.com>
4020
4021 * opts-common.c (prune_options): Make static. Work with decoded
4022 options.
4023 (decode_cmdline_options_to_array): Call prune_options. Don't
4024 resize option array here.
4025 * opts.h (prune_options): Remove prototype.
4026 * gcc.c (process_command): Take decoded options; don't call
17eba947 4027 decode_cmdline_options_to_array here. Use decoded options for argv[0].
60cf253a
JM
4028 (main): Call decode_cmdline_options_to_array here instead of
4029 prune_options. Update call to process_command.
4030 * config/darwin-driver.c: Include opts.h.
4031 (darwin_default_min_version): Work with decoded options. Don't
4032 handle -b or -V here.
4033 * config/darwin.h (darwin_default_min_version): Update prototype.
4034 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
4035 darwin_default_min_version.
4036 * config/i386/cygwin.h (mingw_scan): Update prototype.
4037 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
4038 * config/i386/cygwin1.c: Include opts.h.
4039 (mingw_scan): Work with decoded options.
4040 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
4041 * config/t-darwin (darwin-driver.o): Update dependencies.
4042
e200444e
JM
40432010-09-22 Joseph Myers <joseph@codesourcery.com>
4044
4045 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
4046 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
4047 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
4048 -force-link, -force-link=, -language, -language=,
4049 -library-directory, -library-directory=, -no-canonical-prefixes,
4050 -no-standard-libraries, -no-warnings, -optimize, -output,
4051 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
4052 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
4053 -print-file-name=, -print-libgcc-file-name,
4054 -print-multi-directory, -print-multi-lib,
4055 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
4056 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
4057 -profile, -save-temps, -shared, -specs, -specs=, -static,
4058 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
4059 symbolic): New.
4060 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
4061 * gcc.c (A Short Introduction to Adding a Command-Line Option):
4062 Remove comment.
4063 (cc1_options): Correct specs for passing down --help,
4064 --target-help and --help=*. Add spec for passing down --version.
4065 (struct option_map, option_map, target_option_translations,
4066 translate_options): Remove.
4067 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
4068 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
4069 OPT_fhelp_ and OPT_ftarget_help.
4070 (process_command): Don't call translate_options. Call
4071 decode_cmdline_options_to_array before checking for
4072 -no-canonical-prefixes using decoded options.
4073 * opts-common.c (tm.h): Update comment on #include.
4074 (find_opt): Allow abbreviations of long options.
4075 (struct option_map, option_map): New.
4076 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
4077 and -mno handling.
4078 (target_option_translations): New.
4079 (decode_cmdline_options_to_array): Handle
4080 TARGET_OPTION_TRANSLATE_TABLE in driver.
4081 * opts.c (common_handle_option): Don't handle OPT_fhelp,
4082 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
4083
5d7b099c
RG
40842010-09-22 Richard Guenther <rguenther@suse.de>
4085
4086 * tree-inline.c (optimize_inline_calls): Schedule cleanups
4087 only if we inlined something. Block compaction and conditional
4088 folding are done by cfg cleanup. Schedule update-address-taken.
4089 (tree_function_versioning): Remove redundant call to number_blocks.
4090 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
4091 folding is done by cfg cleanup.
4092 * passes.c (init_optimization_passes): Remove update-address-taken
4093 pass after IPA inlining.
4094
27d5e204
CLT
40952010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
4096
4097 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
4098 to update conditions. Fix reg_mode[] check.
4099
17eba947 41002010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
be6388e1
HS
4101
4102 * config/picochip/picochip.md (movhicc): Use expand to check whether
4103 movhicc is available and split it after reload.
4104
736fe2d5
RG
41052010-09-22 Richard Guenther <rguenther@suse.de>
4106
4107 * tree-ssanames.c (release_dead_ssa_names): Do not remove
4108 callee edges here.
4109 * passes.c (init_optimization_passes): Remove early CFG cleanup.
4110 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
4111 (pass_cleanup_cfg): Likewise.
4112 (execute_fixup_cfg): Cleanup.
4113 * tree-pass.h (pass_cleanup_cfg): Remove.
4114
23c1da7a
MJ
41152010-09-22 Martin Jambor <mjambor@suse.cz>
4116
4117 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
4118 builtins if it is true.
4119 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
4120 parameter.
4121
9271a43c
MJ
41222010-09-22 Martin Jambor <mjambor@suse.cz>
4123
4124 * tree-sra.c (struct access): New field grp_no_warning.
4125 (create_access_replacement): Set TREE_NO_WARNING according to
4126 grp_no_warning.
4127 (create_artificial_child_access): Use build_ref_for_model and set
4128 grp_no_warning if build_user_friendly_ref_for_offset fails.
4129 (propagate_subaccesses_across_link): Likewise.
4130
77167b6f
EB
41312010-09-22 Eric Botcazou <ebotcazou@adacore.com>
4132
4133 PR target/35664
4134 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
4135 ('f'): Likewise.
4136
50842acb
TG
41372010-09-22 Tristan Gingold <gingold@adacore.com>
4138
4139 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
4140
c69fa2d4
UB
41412010-09-22 Uros Bizjak <ubizjak@gmail.com>
4142
4143 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
4144 * config/i386/i386.c (decide_alg): Update for rename.
4145
a82e045d
JJ
41462010-09-22 Jakub Jelinek <jakub@redhat.com>
4147
4148 PR rtl-optimization/45739
4149 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
4150 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
4151
5e68c77a
AS
41522010-09-21 Anatoly Sokolov <aesok@post.ru>
4153
4154 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
4155 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
4156 Remove.
c69fa2d4 4157 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
5e68c77a
AS
4158 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
4159
45547c7f
NP
41602010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
4161
4162 PR objc/23710
45547c7f
NP
4163 * c-parser.c (c_parser_objc_method_definition): Check the return
4164 value of objc_start_method_definition and if false is returned,
4165 parse the method definition but emit no code.
50842acb 4166
c0c24aa4
NP
41672010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
4168
4169 PR objc/25965
4170 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
4171 call objc_get_interface_ivars ().
50842acb 4172
f997b875
KT
41732010-09-21 Kai Tietz <kai.tietz@onevision.com>
4174
4175 PR target/45694
4176 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
4177 static chain-register is used for 64-bit.
4178
54394f4d
RG
41792010-09-21 Richard Guenther <rguenther@suse.de>
4180
4181 * dwarf2out.c (is_cu_die): New function.
4182 (add_pubtype): Use it.
4183 (gen_subprogram_die): Likewise.
4184 (gen_struct_or_union_type_die): Likewise.
4185 (dwarf2out_finish): Likewise.
4186 (comp_unit_die): Rename to ...
4187 (single_comp_unit_die): ... this.
4188 (comp_unit_die): New function lazily constructing and
4189 returning single_comp_unit_die.
4190 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
4191 base_type_die, subrange_type_die, modified_type_die,
4192 lower_bound_default, add_bound_info, add_prototyped_attribute,
4193 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
4194 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
4195 force_decl_die, gen_namespace_die, dwarf2out_decl,
4196 dwarf2out_start_source_file, dwarf2out_end_source_file,
4197 prune_unused_types, dwarf2out_finish): Use it.
4198 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
4199 the global list of translation-unit decls.
4200 (dwarf2out_init): Do not create single_comp_unit_die here.
4201 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
4202
9cad5fe7
RG
42032010-09-21 Richard Guenther <rguenther@suse.de>
4204
4205 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
4206 for bool for C++.
4207
c9cdcaa5
BS
42082010-09-21 Bernd Schmidt <bernds@codesourcery.com>
4209
4210 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
4211 (qhs_extenddi_cstr): Likewise.
4212 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
4213 them for the source operand.
4214
903c31ee
UB
42152010-09-21 Uros Bizjak <ubizjak@gmail.com>
4216
4217 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
4218 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
4219 (ix86_split_ashr): Ditto.
4220 (ix86_split_lshr): Ditto.
4221
ce2b1d68
RG
42222010-09-21 Richard Guenther <rguenther@suse.de>
4223
4224 PR tree-optimization/45580
4225 * tree-ssa-propagate.c (substitute_and_fold): Always replace
4226 regular uses.
4227 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
4228 virtuals fold the call into a regular indirect one.
4229
ad78b8a6
EB
42302010-09-20 Eric Botcazou <ebotcazou@adacore.com>
4231
4232 PR rtl-optimization/42775
4233 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
4234 scheduling is enabled.
4235
0a7a6af6
JJ
42362010-09-20 Jakub Jelinek <jakub@redhat.com>
4237
220c5f0c
JJ
4238 PR rtl-optimization/45728
4239 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
4240 gen_lowpart_common first and if that fails, force_reg first
4241 before calling gen_lowpart.
4242
0a7a6af6
JJ
4243 PR middle-end/45678
4244 * cfgexpand.c (expand_one_stack_var_at): Use
4245 crtl->max_used_stack_slot_alignment as max_align, instead
4246 of maximum of that and PREFERRED_STACK_BOUNDARY.
4247 Don't call update_stack_alignment.
4248
523e82a7
EB
42492010-09-20 Eric Botcazou <ebotcazou@adacore.com>
4250
4251 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
4252 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
4253 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
4254 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
4255 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
4256 (build_nonstandard_integer_type): Likewise.
4257 (build_range_type_1): New function, built from...
4258 (build_range_type): ...this. Call build_range_type_1.
4259 (build_nonshared_range_type): New function.
4260 (build_array_type_1): New function, built from...
4261 (build_array_type: ...this. Call build_array_type_1.
4262 (build_nonshared_array_type): New function.
4263 * tree.h (build_nonshared_range_type): Declare.
4264 (build_nonshared_array_type): Likewise.
4265
d163e655
AS
42662010-09-20 Anatoly Sokolov <aesok@post.ru>
4267
4268 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
4269 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4270 (arm_class_likely_spilled_p): New function.
4271
382eb33c
UB
42722010-09-20 Uros Bizjak <ubizjak@gmail.com>
4273
4274 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
4275 indirect functions.
4276 (ix86_split_ashl): Ditto.
4277 (ix86_split_ashr): Ditto.
4278 (ix86_split_lshr): Ditto.
4279 (ix86_adjust_counter): Ditto.
4280
abc88a08
NP
42812010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
4282
4283 * c-family/c-common.h (constant_string_class): Documented with
4284 comment identical to the one already in c-common.c.
4285
fbbe0995
JJ
42862010-09-20 Jakub Jelinek <jakub@redhat.com>
4287
9bedc09b
JJ
4288 * dwarf2out.c (any_cfis_emitted): New static variable.
4289 (add_fde_cfi): Set it.
4290 (dwarf2out_frame_debug): Clear it before processing,
4291 if it is set afterwards, flush any queued reg saves.
4292
fbbe0995
JJ
4293 PR debug/45124
4294 * dwarf2out.c (add_accessibility_attribute): Assume
4295 DW_ACCESS_private as the default for dwarf_version > 2
4296 and DW_TAG_class_type parent.
4297 (gen_inheritance_die): Assume DW_ACCESS_public as the default
4298 for dwarf_version > 2 and parent other than DW_TAG_class_type.
4299
382eb33c 43002010-09-20 Rafael Carre <rafael.carre@gmail.com>
cce470f9
RC
4301
4302 PR target/45726
4303 * arm.md (arm_movt): Only enable on machines with MOVT.
4304
47d8f18d
JZ
43052010-09-20 Jie Zhang <jie@codesourcery.com>
4306
4307 * config/arm/arm.c (arm_address_offset_is_imm): New.
4308 (arm_early_store_addr_dep): New.
4309 (arm_early_load_addr_dep): New.
4310 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
4311 (arm_early_load_addr_dep): Declare.
4312 (arm_address_offset_is_imm): Declare.
4313 * config/arm/cortex-m4.md: New file.
4314 * config/arm/cortex-m4-fpu.md: New file.
4315 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
4316 (attr generic_sched): Exclude cortexm4.
4317 (attr generic_vfp): Exclude cortexm4.
4318
06baaba3
RG
43192010-09-20 Richard Guenther <rguenther@suse.de>
4320
4321 PR middle-end/45704
4322 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
4323
64e0f5ff
JH
43242010-09-20 Jan Hubicka <jh@suse.cz>
4325
4326 PR tree-optimize/45605
4327 * cgraph.h (const_value_known_p): Declare.
4328 (varpool_decide_const_value_known): Remove.
4329 * tree-ssa-ccp.c (get_base_constructor): Use it.
4330 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
4331 * expr.c (string_constant): Likewise.
4332 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
4333 * ipa.c (ipa_discover_readonly_nonaddressable_var,
4334 function_and_variable_visibility): Likewise.
4335 * gimplify.c (gimplify_call_expr): Likewise.
4336 * gimple-fold.c (get_symbol_constant_value): Likewise.
4337 * varpool.c (varpool_decide_const_value_known): Replace by...
4338 (const_value_known_p): ... this one; handle other kinds of DECLs
4339 too and work for automatic vars.
4340 (varpool_finalize_decl): Use const_value_known_p.
4341
382eb33c 43422010-09-20 Rafael Carre <rafael.carre@gmail.com>
4ce9b2b2
RC
4343
4344 PR target/45726
4345 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
4346
565b8886
RG
43472010-09-20 Richard Guenther <rguenther@suse.de>
4348
4349 PR tree-optimization/45705
4350 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
4351
2960be83
JJ
43522010-09-20 Jakub Jelinek <jakub@redhat.com>
4353
4354 PR rtl-optimization/45695
4355 * combine.c (try_combine): When splitting a two set pattern,
4356 make sure the pattern which will be put into i2 doesn't use REGs
4357 or MEMs set by insns in between i2 and i3.
4358
d1f6261f
JH
43592010-09-19 Jan Hubicka <jh@suse.cz>
4360
4361 PR lto/44246
4362 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
4363 processing same node twice.
4364
0b182178
AS
43652010-09-19 Anatoly Sokolov <aesok@post.ru>
4366
4367 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
4368 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
4369 (bfin_class_likely_spilled_p): New function
4370
039d9ea1
IR
43712010-09-19 Ira Rosen <irar@il.ibm.com>
4372
4373 PR tree-optimization/45714
4374 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
4375 created in vectorizable_call instead of the original statement in
4376 def stmt updates.
4377
b146446c
UB
43782010-09-19 Uros Bizjak <ubizjak@gmail.com>
4379
4380 * config/i386/i386-protos.h (split_double_mode): New prototype.
4381 (split_di, split_ti): Remove prototypes.
4382 * config/i386/i386.c (split_double_mode): New function.
4383 (split_di, split_ti): Remove.
4384 (ix86_expand_branch): Use split_double_mode.
4385 (ix86_split_to_parts): Ditto.
4386 (ix86_split_ashl): Ditto.
4387 (ix86_split_ashr): Ditto.
4388 (ix86_split_lshr): Ditto.
4389 (ix86_force_to_memory): Ditto.
4390 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
4391
9b389a5e
JH
43922010-09-18 Jan Hubicka <jh@suse.cz>
4393
4394 PR tree-optimization/45453
4395 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
4396 virtual functions are reachable.
4397 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
4398 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
4399 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
4400 when modifying function.
4401
1389294c
JH
44022010-09-18 Jan Hubicka <jh@suse.cz>
4403
4404 PR tree-optimization/45605
4405 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
4406 * gimple-fold.c (static_object_in_other_unit_p): New function.
4407 (canonicalize_constructor_val): Use it.
4408 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
4409 returning NULL.
b146446c
UB
4410 (gimple_fold_obj_type_ref_known_binfo): Use
4411 static_object_in_other_unit_p.
1389294c 4412
6a78fd06
RG
44132010-09-18 Richard Guenther <rguenther@suse.de>
4414
4415 PR tree-optimization/45709
4416 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
4417 insertions until after all PHI nodes of the block are processed.
4418
17eba947 44192010-09-18 Tijl Coosemans <tijl@coosemans.org>
f52a39cd
TC
4420
4421 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
4422
b4b7e792
KT
44232010-09-18 Kai Tietz <kai.tietz@onevision.com>
4424
4425 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
4426
a9db10d4
RG
44272010-09-18 Richard Guenther <rguenther@suse.de>
4428
4429 PR tree-optimization/45709
b146446c 4430 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
a9db10d4 4431
1f424006
SP
44322010-09-17 Sebastian Pop <sebastian.pop@amd.com>
4433
4434 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
4435 (dot_deps_stmt): Same.
4436 * graphite-poly.c (dot_lst): Same.
4437 * graphite-scop-detection.c (dot_all_scops): Same.
4438 (dot_scop): Same.
4439
f3241b29
SP
44402010-09-17 Sebastian Pop <sebastian.pop@amd.com>
4441
b146446c
UB
4442 Revert:
4443 2009-12-16 Ben Elliston <bje@au.ibm.com>
4444
f3241b29
SP
4445 * tree-data-ref.c (dot_rdg_1): Added back.
4446 (dot_rdg): Same. Added "#if 0" around system call.
4447
e7ed95a2
L
44482010-09-17 H.J. Lu <hongjiu.lu@intel.com>
4449 Richard Henderson <rth@redhat.com>
4450
4451 * config/i386/i386.c (initial_ix86_tune_features): Add
4452 X86_TUNE_PAD_SHORT_FUNCTION.
4453 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
4454 (ix86_count_insn): New.
4455 (ix86_pad_short_function): Likewise.
4456 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
4457
4458 * config/i386/i386.h (ix86_tune_indices): Add
4459 X86_TUNE_PAD_SHORT_FUNCTION.
4460 (TARGET_PAD_SHORT_FUNCTION): New.
4461
4462 * config/i386/i386.md (UNSPEC_NOPS): New.
4463 (nops): Likewise.
4464
2b3ded42
L
44652010-09-17 H.J. Lu <hongjiu.lu@intel.com>
4466
4467 PR middle-end/45234
4468 * calls.c (expand_call): Make sure that all variable sized
4469 adjustments are multiple of preferred stack boundary after
4470 stack alignment.
4471
bf9afb7d
DD
44722010-09-17 DJ Delorie <dj@redhat.com>
4473
4474 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
4475 passed an invalid value, print an error instead of ICEing.
4476 (valid_psw_flag): New.
4477 (rx_expand_builtin): Call it for setpsw/clrpsw.
b146446c 4478 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
bf9afb7d
DD
4479
4480 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
4481 (bitclr_in_memory): Likewise.
4482 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
4483
765c3e8f
L
44842010-09-17 H.J. Lu <hongjiu.lu@intel.com>
4485
4486 PR middle-end/45678
4487 * cfgexpand.c (update_stack_alignment): New.
4488 (get_decl_align_unit): Use it.
4489 (expand_one_stack_var_at): Call update_stack_alignment.
4490
0982fd64
RG
44912010-09-17 Richard Guenther <rguenther@suse.de>
4492
4493 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
4494 Properly copy the read string.
4495
e90afde6
JM
44962010-09-17 Joseph Myers <joseph@codesourcery.com>
4497
4498 * doc/options.texi (Variable): Document.
4499 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
4500 generate target_flags declarations explicitly. Don't define
4501 VarExists variables for the driver.
4502 * common.opt (target_flags): New Variable record.
4503 (flag_dump_unnumbered, flag_dump_unnumbered_links,
4504 flag_var_tracking, flag_var_tracking_assignments,
4505 flag_var_tracking_assignments_toggle): Don't mark variables with
4506 VarExists.
4507 * config/i386/i386.c (ix86_isa_flags): Don't define here.
4508 * config/i386/i386.opt (ix86_isa_flags): Define here.
4509 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
4510 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
4511 VarExists.
4512 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
4513 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
4514 Only define for generator programs.
4515 * rtlanal.c (target_flags): Remove.
4516 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
4517 flag_var_tracking_assignments_toggle): Remove.
4518
18ba3ce7
MM
45192010-09-17 Michael Matz <matz@suse.de>
4520
4521 PR tree-optimization/43432
4522 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
4523 Accept backwards consecutive accesses.
4524 (vect_create_data_ref_ptr): If step is negative generate
4525 decreasing IVs.
4526 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
4527 (perm_mask_for_reverse, reverse_vec_elements): New functions.
4528 (vectorizable_load): Handle loads with negative steps when easily
4529 possible.
4530
4c588abf
JH
45312010-09-03 Jan Hubicka <jh@suse.cz>
4532
4533 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
4534
122603fa
N
45352010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
4536
4537 * config/v850/v850.c (v850_function_value_regno_p): Make static.
4538 Adjust comments. Declare.
4539 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
4540 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
4541
c3224d6f
RG
45422010-09-17 Richard Guenther <rguenther@suse.de>
4543
4544 * common.opt (combine): Remove.
4545 * gcc.c (default_compilers): Remove specs testing combine.
4546 The C compilers no longer can combine.
4547 (option_map): Remove -combine.
4548 (display_help): Remove -combine.
4549 (driver_handle_option): Remove OPT_combine handling.
4550 (compile_input_file_p): Remove.
4551 (do_spec): Remove code concerning combine.
4552 (main): Likewise.
4553 * doc/invoke.texi: Remove traces of -combine.
b146446c 4554 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
c3224d6f 4555
dbad82f5
RG
45562010-09-17 Richard Guenther <rguenther@suse.de>
4557
4558 PR middle-end/45678
4559 * builtins.c (fold_builtin_memory_op): Always properly adjust
4560 alignment of memory accesses.
4561
52b3b3c7
JH
45622010-09-16 Jan Hubicka <jh@suse.cz>
4563
4564 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
4565 processing clone.
4566
26ec9308
L
45672010-09-16 H.J. Lu <hongjiu.lu@intel.com>
4568
4569 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
4570
4571 * config/i386/i386.c (predict_jump): Add prototype.
4572 (flag_opts): Add -m8bit-idiv.
4573 (ix86_split_idivmod): New.
4574
4575 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
4576 Add 2 splitters for SI/DI mode divide.
4577 (divmod<mode>4_1): New pattern.
4578 (udivmod<mode>4_1): Likewise.
4579 (testdi_ccno_1): Likewise.
4580
4581 * config/i386/i386.opt (m8bit-idiv): New.
4582
4583 * doc/invoke.texi: Document -m8bit-idiv.
4584
782d5172
RY
45852010-09-16 Reza Yazdani <reza.yazdani@amd.com>
4586
4587 PR bootstrap/45680
4588 * config/i386/i386.c (min_insn_size): Moved out of the
4589 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
4590
0cac82a0
JH
45912010-09-16 Jan Hubicka <jh@suse.cz>
4592
4593 * lto-cgraph.c (lto_output_node): Fix handling of clones.
4594 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
4595 unreachable clones with reachable clones.
4596 * tree-inline.c (copy_bb): Fix sanity checking when producing
4597 unreachable clone.
4598
40e2dfaa
AS
45992010-09-16 Anatoly Sokolov <aesok@post.ru>
4600
4601 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
4602 (TARGET_MEMORY_MOVE_COST): Define.
4603 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
4604
65592aad
AM
46052010-09-16 Alexander Monakov <amonakov@ispras.ru>
4606
4607 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
4608 maybe_tidy_empty_bb.
4609
4610 Revert:
4611 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
4612 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
4613
fac0f722
JM
46142010-09-16 Joseph Myers <joseph@codesourcery.com>
4615
4616 * target.def (target_option.optimization): New hook.
4617 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
4618 TARGET_OPTION_OPTIMIZATION hook.
4619 * doc/tm.texi: Regenerate.
4620 * hooks.c (hook_void_int_int): New.
4621 * hooks.h (hook_void_int_int): Declare.
4622 * opts.c: Don't include tm_p.h.
4623 (decode_options): Use targetm.target_option.optimization instead
4624 of OPTIMIZATION_OPTIONS.
4625 * system.h (OPTIMIZATION_OPTIONS): Poison.
4626 * config/arm/arm-protos.h (arm_optimization_options): Remove.
4627 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
4628 (arm_optimization_options): Rename to arm_option_optimization.
4629 Make static.
4630 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
4631 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
4632 (cris_option_optimization): New.
4633 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
4634 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
4635 (crx_option_optimization): New.
4636 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
4637 * config/frv/frv-protos.h (frv_optimization_options): Remove.
4638 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
4639 (frv_optimization_options): Rename to frv_option_optimization.
4640 Make static.
4641 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
4642 * config/h8300/h8300.c (h8300_option_optimization): New.
4643 (TARGET_OPTION_OPTIMIZATION): Define.
4644 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
4645 * config/i386/i386-protos.h (optimization_options): Remove.
4646 * config/i386/i386.c (optimization_options): Rename to
4647 ix86_option_optimization. Make static.
4648 (TARGET_OPTION_OPTIMIZATION): Define.
4649 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
4650 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
4651 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
4652 (ia64_optimization_options): Rename to ia64_option_optimization.
4653 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
4654 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
4655 commented-out definition.
4656 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
4657 instead of OPTIMIZATION_OPTIONS.
4658 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
4659 (m32r_option_optimization): New.
4660 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
4661 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
4662 Remove.
4663 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
4664 (mcore_option_optimization): New.
4665 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
4666 * config/mep/mep-protos.h (mep_optimization_options): Remove.
4667 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
4668 (mep_optimization_options): Rename to mep_option_optimization.
4669 Make static. Take unused level and size parameters.
4670 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
4671 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
4672 (mmix_option_optimization): New.
4673 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
4674 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
4675 (pdp11_option_optimization): New.
4676 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
4677 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
4678 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
4679 (optimization_options): Rename to rs6000_option_optimization.
4680 Make static.
4681 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
4682 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
4683 * config/rx/rx.c (rx_set_optimization_options): Rename to
4684 rx_option_optimization. Make static. Take unused level and size
4685 parameters.
4686 (TARGET_OPTION_OPTIMIZATION): Define.
4687 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
4688 * config/s390/s390-protos.h (optimization_options): Remove.
4689 * config/s390/s390.c (optimization_options): Rename to
4690 s390_option_optimization. Make static. Don't mark size parameter
4691 unused.
4692 (TARGET_OPTION_OPTIMIZATION): Define.
4693 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
4694 * config/sh/sh-protos.h (sh_optimization_options): Remove.
4695 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
4696 (sh_optimization_options): Rename to sh_option_optimization. Make
4697 static. Don't mark parameters unused.
4698 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
4699 * config/spu/spu-protos.h (spu_optimization_options): Remove.
4700 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
4701 (spu_optimization_options): Rename to spu_option_optimization.
4702 Make static.
4703 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
4704 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
4705 (v850_option_optimization): New.
4706 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
4707 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
4708 (xtensa_option_optimization): New.
4709 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
4710
c5387660
JM
47112010-09-16 Joseph Myers <joseph@codesourcery.com>
4712
4713 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
4714 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
4715 * doc/tm.texi: Regenerate.
4716 * system.h (OVERRIDE_OPTIONS): Poison.
4717 * target.def (override): Default to hook_void_void.
4718 * targhooks.c (default_target_option_override): Remove.
4719 * genmodes.c, machmode.def: Update comments mentioning
4720 OVERRIDE_OPTIONS.
4721 * config/alpha/alpha-modes.def: Update comment mentioning
4722 alpha_override_options.
4723 * config/alpha/alpha-protos.h (override_options): Remove.
4724 * config/alpha/alpha.c (override_options): Rename to
b146446c 4725 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
c5387660
JM
4726 (TARGET_OPTION_OVERRIDE): Define.
4727 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
4728 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
4729 of OVERRIDE_OPTIONS.
4730 * config/arc/arc-protos.h (arc_init): Remove.
4731 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
4732 (arc_init): Rename to arc_option_override. Make static.
4733 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
4734 (OVERRIDE_OPTIONS): Remove.
4735 * config/arm/arm-protos.h (arm_override_options): Remove.
4736 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
4737 (arm_override_options): Rename to arm_option_override. Make
4738 static. Call SUBTARGET_OVERRIDE_OPTIONS.
4739 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
b146446c 4740 * config/arm/arm.md: Update comment referring to arm_override_options.
c5387660
JM
4741 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
4742 instead of OVERRIDE_OPTIONS.
4743 * config/avr/avr-protos.h (avr_override_options): Remove.
4744 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4745 (avr_override_options): Rename to avr_option_override. Make static.
c5387660
JM
4746 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
4747 * config/bfin/bfin-protos.h (override_options): Remove (twice).
4748 * config/bfin/bfin.c (override_options): Rename to
4749 bfin_option_override. Make static.
4750 (TARGET_OPTION_OVERRIDE): Define.
4751 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
4752 * config/cris/cris-protos.h (cris_override_options): Remove.
4753 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4754 (cris_override_options): Rename to cris_option_override. Make static.
c5387660
JM
4755 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
4756 * config/frv/frv-protos.h (frv_override_options): Remove.
4757 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4758 (frv_override_options): Rename to frv_option_override. Make static.
c5387660
JM
4759 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
4760 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
4761 * config/h8300/h8300.c (h8300_init_once): Rename to
4762 h8300_option_override. Make static.
4763 (TARGET_OPTION_OVERRIDE): Define.
4764 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
4765 * config/i386/i386-protos.h (override_options): Remove.
4766 * config/i386/i386.c (override_options): Rename to
4767 ix86_option_override_internal. Make static. Comments referring
4768 to this function and callers changed.
4769 (ix86_option_override): New.
4770 (TARGET_OPTION_OVERRIDE): Define.
4771 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
b146446c 4772 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
c5387660
JM
4773 * config/ia64/ia64.c (ia64_file_start): Update comment referring
4774 to ia64_override_options.
4775 * config/iq2000/iq2000-protos.h (override_options): Remove.
4776 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4777 (override_options): Rename to iq2000_option_override. Make static.
c5387660
JM
4778 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
4779 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
4780 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4781 (lm32_override_options): Rename to lm32_option_override. Make static.
c5387660
JM
4782 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
4783 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
4784 (m32r_option_override): New.
4785 (m32r_init): Update comment.
4786 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
b146446c 4787 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
c5387660
JM
4788 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
4789 (m68hc11_override_options): Rename to m68hc11_option_override.
4790 Make static. Return void.
4791 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
4792 * config/m68k/m68k-protos.h (override_options): Remove.
4793 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
4794 (override_options): Rename to m68k_option_override. Make static.
4795 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
4796 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
4797 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
4798 (mcore_override_options): Rename to mcore_option_override. Make
4799 static.
4800 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
4801 * config/mep/mep-protos.h (mep_override_options): Remove.
4802 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4803 (mep_override_options): Rename to mep_option_override. Make static.
c5387660
JM
4804 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
4805 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
4806 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4807 (mmix_override_options): Rename to mmix_option_override. Make static.
c5387660 4808 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
b146446c 4809 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
c5387660
JM
4810 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
4811 (mn10300_override_options): Rename to mn10300_option_override.
4812 Make static.
4813 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
4814 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
4815 * config/moxie/moxie.c (moxie_override_options): Rename to
4816 moxie_option_override. Make static.
4817 (TARGET_OPTION_OVERRIDE): Define.
4818 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
4819 * config/picochip/picochip-protos.h (picochip_override_options):
4820 Remove. Update comment referring to picochip_override_options.
4821 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
4822 (picochip_override_options): Rename to picochip_option_override.
4823 Make static. Update comment and definition of
4824 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
4825 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
b146446c
UB
4826 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
4827 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
4828 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
4829 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
4830 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
4831 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
4832 instead of OVERRIDE_OPTIONS.
4833 * config/rs6000/rs6000-modes.def: Update comment referring to
4834 rs6000_override_options.
4835 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
4836 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
4837 (rs6000_override_options): Rename to
4838 rs6000_option_override_internal. Make static. Commented
4839 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
4840 (rs6000_option_override): New.
4841 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
4842 instead of OVERRIDE_OPTIONS.
b146446c 4843 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
c5387660
JM
4844 * config/s390/s390-protos.h (override_options): Remove.
4845 * config/s390/s390.c (override_options): Rename to
4846 s390_option_override. Make static.
4847 (TARGET_OPTION_OVERRIDE): Define.
4848 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
4849 * config/score/score-protos.h (score_override_options): Remove.
4850 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
4851 (score_override_options): Rename to score_option_override. Make
4852 static.
4853 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
4854 Update comment referring to override_options.
4855 * config/score/score3.c (score3_override_options): Rename to
4856 score3_option_override.
4857 * config/score/score3.h (score3_override_options): Rename to
4858 score3_option_override.
4859 * config/score/score7.c (score7_override_options): Rename to
4860 score7_option_override.
4861 * config/score/score7.h (score7_override_options): Rename to
4862 score7_option_override.
4863 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
4864 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
4865 (sparc_override_options): Rename to sparc_option_override. Make
4866 static. Call SUBTARGET_OVERRIDE_OPTIONS.
4867 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
4868 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
4869 instead of OVERRIDE_OPTIONS.
4870 * config/spu/spu-protos.h (spu_override_options): Remove.
4871 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
4872 (spu_override_options): Rename to spu_option_override. Make
4873 static.
4874 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
4875 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
4876 OVERRIDE_OPTIONS.
4877 * config/vax/vax-protos.h (override_options): Remove.
4878 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
4879 (override_options): Rename to vax_option_override. Make static.
4880 Call SUBTARGET_OVERRIDE_OPTIONS.
4881 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
4882 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
4883 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
4884 * config/xtensa/xtensa-protos.h (override_options): Remove.
4885 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
b146446c 4886 (override_options): Rename to xtensa_option_override. Make static.
c5387660
JM
4887 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
4888
ed6c4831
RG
48892010-09-16 Richard Guenther <rguenther@suse.de>
4890
4891 PR tree-optimization/45623
4892 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
4893 (get_constraint_for_component_ref): If computing a constraint
4894 for the rhs handle type punning through unions.
4895 (get_constraint_for_address_of): Adjust.
4896 (get_constraint_for_1): Likewise.
4897 (get_constraint_for): Likewise.
4898 (get_constraint_for_rhs): New function.
4899 (do_structure_copy): Adjust.
4900 (make_constraint_to): Likewise.
4901 (handle_const_call): Likewise.
4902 (find_func_aliases): Likewise.
4903 (process_ipa_clobber): Likewise.
4904 (create_variable_info_for): Likewise.
4905
ff802fa1
IR
49062010-09-16 Ira Rosen <irar@il.ibm.com>
4907
4908 * tree-vectorizer.c: Fix documentation.
4909 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
4910 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
4911 is_pattern_stmt_p, is_loop_header_bb_p,
4912 stmt_vinfo_set_inside_of_loop_cost,
4913 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
4914 known_alignment_for_access_p): Likewise.
4915 * tree-vect-loop.c: Fix documentation.
4916 (vect_get_cost): Start function name from new line.
4917 * tree-vect-data-refs.c: Fix documentation.
4918 * tree-vect_stmts.c: Likewise.
4919 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
4920 (vectorizable_store): Free vec_oprnds if allocated.
4921 (vectorizable_condition): Initialize several variables to avoid
4922 warnings.
4923 * tree-vect-slp.c: Fix documentation.
4924
6be14c0e
RG
49252010-09-16 Richard Guenther <rguenther@suse.de>
4926
4927 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
4928 is TS_TRANSLATION_UNIT_DECL.
4929 (initialize_tree_contains_struct): Adjust.
4930 (all_translation_units): New global vector.
4931 (build_translation_unit_decl): New function.
4932 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
4933 (struct tree_translation_unit_decl): New.
4934 (all_translation_units): Declare.
4935 (union tree_node): Add translation_unit_decl member.
4936 (build_translation_unit_decl): Declare.
4937 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
4938 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
4939 New function.
4940 (pack_value_fields): Call it.
4941 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
4942 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
4943 (lto_output_tree_pointers): Call it.
4944 * lto-streamer-in.c (lto_input_tree_ref): Handle references
4945 to TRANSLATION_UNIT_DECL.
4946 (unpack_ts_translation_unit_decl_value_fields): New function.
4947 (unpack_value_fields): Call it.
4948 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
4949 (lto_input_tree_pointers): Call it.
4950 * lto-streamer.c (check_handled_ts_structures): Adjust.
4951 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
4952 * c-decl.c (all_translation_units): Remove.
4953 (pop_scope): Use build_translation_unit_decl.
4954 (collect_all_refs): Adjust.
4955 (for_each_global_decl): Likewise.
4956 (c_write_global_declarations): Likewise.
4957
0c3dbcf0
JJ
49582010-09-16 Jakub Jelinek <jakub@redhat.com>
4959
4960 PR bootstrap/45686
4961 * fold-const.c (fold_checksum_tree): Change slot from const void **
4962 to void **, use CONST_CAST_TREE to store into *slot.
4963
a427621f
UB
49642010-09-16 Uros Bizjak <ubizjak@gmail.com>
4965
4966 * config/i386/i386.md: Remove unneeded empty conditions and
4967 preparation statements from expanders.
4968 * config/i386/mmx.md: Ditto.
4969 * config/i386/sse.md: Ditto.
4970
8c2b2fae
UB
49712010-09-16 Uros Bizjak <ubizjak@gmail.com>
4972
4973 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
4974
9fa07b13
EB
49752010-09-15 Eric Botcazou <ebotcazou@adacore.com>
4976
4977 PR rtl-optimization/45593
4978 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
4979 insns that were in delay slots as stand-alone insns.
4980
46327e12
ILT
49812010-09-15 Ian Lance Taylor <iant@google.com>
4982
4983 * incpath.c (remove_duplicates): If name is not a directory, issue
4984 a warning rather than an error.
4985
1faab08d
MJ
49862010-09-15 Martin Jambor <mjambor@suse.cz>
4987
4988 PR middle-end/45644
4989 * tree-sra.c (create_access): Check for bit-fields directly.
4990
cc99c5fe
JJ
49912010-09-15 Jakub Jelinek <jakub@redhat.com>
4992
4993 PR tree-optimization/45633
4994 * tree-cfg.c (verify_gimple_assign_binary): Allow
4995 MINUS_EXPR with lhs and rhs1 pointer vector and
4996 rhs2 sizetype vector.
4997 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
4998 or vector pointer use TER to optimize pointer subtraction.
4999
7dd8ecf0
JZ
50002010-09-15 Jie Zhang <jie@codesourcery.com>
5001
5002 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
5003 fcmpd to fcmps.
5004
1f944e88
ILT
50052010-09-15 Ian Lance Taylor <iant@google.com>
5006
5007 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
5008
c1d9a70a
ILT
50092010-09-15 Ian Lance Taylor <iant@google.com>
5010
5011 * function.c (get_arg_pointer_save_area): Set
5012 arg_pointer_save_area_init to true.
5013
ea395a11
MJ
50142010-09-15 Martin Jambor <mjambor@suse.cz>
5015
5016 * tree-sra.c (generate_subtree_copies): Updated comment.
5017 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
5018 obtained from the statement iterator instead.
5019 (load_assign_lhs_subreplacements): Removed parameters lhs and
5020 right_offset, which is obtained from top_racc instead. Parameter lacc
5021 is now expected to be the root of the processed tree rather than root's
5022 first child. Updated all callers.
5023
6d96b48b
JM
50242010-09-15 Joseph Myers <joseph@codesourcery.com>
5025
5026 * config/pdp11/pdp11.c (register_move_cost): Rename to
5027 pdp11_register_move_cost.
5028 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
5029 pdp11_register_move_cost.
5030 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
5031 pdp11_register_move_cost instead of register_move_cost.
5032
0f38f229
TB
50332010-09-15 Tejas Belagod <tejas.belagod@arm.com>
5034
5035 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
17eba947 5036 pattern for vmovn. Expansion in case of non
0f38f229
TB
5037 -mvectorize-with-neon-quad.
5038 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
5039 non- -mvectorize-with-neon-quad case.
5040 (move_lo_quad_<mode>): New expansion to vmov into low part.
5041 (move_hi_quad_<mode>): New expansion to vmov into high part.
5042 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
5043 (move_lo_quad_v4sf): Likewise.
5044 (move_lo_quad_v8hi): Likewise.
5045 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
5046 low part.
5047 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
5048 high part.
5049 * config/arm/iterators.md (ANY128): New mode iterator.
5050 (V_narrow_pack): New mode attribute.
5051 (V_HALF): Add attribute.
5052 (V_DOUBLE): Add attribute.
5053 (V_mode_nunits): Add attribute.
5054
10937190
EB
50552010-09-15 Eric Botcazou <ebotcazou@adacore.com>
5056
5057 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
5058 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
5059
6c175675 50602010-09-15 Olivier Hainque <hainque@adacore.com>
8c2b2fae 5061 Jose Ruiz <ruiz@adacore.com>
6c175675
OH
5062
5063 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
5064 * config/alpha/osf5-unwind.h: New file.
5065
2b7237bb
L
50662010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5067
5068 PR bootstrap/45672
8c2b2fae 5069 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2b7237bb
L
5070 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
5071 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
5072
969c37b7
LB
50732010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
5074
5075 * c-lang.h (struct lang_type): Add variable_size GTY option.
5076
187c10dc
L
50772010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5078
5079 PR bootstrap/45672
5080 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
5081
2c03791b
L
50822010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5083
5084 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
5085 result isn't used in memory address.
5086
26983c22
L
50872010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5088
5089 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
5090 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
5091 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
5092 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
5093 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
5094 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
5095
5096 * target.def: Add units_per_simd_word to vectorize.
5097
5098 * targhooks.c (default_units_per_simd_word): New.
5099 * targhooks.h (default_units_per_simd_word): Likewise.
5100 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
5101 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5102 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
5103 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5104 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
5105 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5106 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
5107 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
5108
5109 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
5110 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
5111
5112 * tree-vect-stmts.c: Don't include "tm_p.h".
5113 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
5114 with targetm.vectorize.units_per_simd_word.
5115
5116 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
5117
5118 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
5119
8c2b2fae 5120 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
26983c22
L
5121 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
5122
5123 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
5124 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
5125
5126 * doc/tm.texi: Regenerated.
5127
4de264ab
L
51282010-09-14 H.J. Lu <hongjiu.lu@intel.com>
5129
5130 * tree-vect-stmts.c: Include "tm_p.h".
5131
5132 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
5133 out of RTX_CODE.
5134
e4b5cace
MJ
51352010-09-14 Martin Jambor <mjambor@suse.cz>
5136
5137 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
5138 location of generated statement. Changed all callers.
5139 (build_ref_for_model): New parameter loc which used to set location of
5140 all generated expressions. Changed all callers.
5141 (generate_subtree_copies): Likewise.
5142 (init_subtree_with_zero): Likewise.
5143 (sra_modify_expr): Set locations of all generated statements and
5144 expressions to the location the original statement.
5145 (handle_unscalarized_data_in_subtree): Likewise.
5146 (load_assign_lhs_subreplacements): Likewise.
5147 (sra_modify_constructor_assign): Likewise.
5148 (sra_modify_assign): Likewise.
5149
d191cd06
EB
51502010-09-14 Eric Botcazou <ebotcazou@adacore.com>
5151
5152 PR target/45277
5153 PR target/45363
5154 PR target/45407
5155 * doc/install.texi (sparc*-*-*): New section.
5156 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
5157
4359dc2a
JJ
51582010-09-14 Jakub Jelinek <jakub@redhat.com>
5159
5160 PR middle-end/45567
5161 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
5162 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
5163 (expand_builtin): Adjust caller.
5164 (expand_builtin_unop): Only use subtarget if it has the right mode.
5165
515871c7
TG
51662010-09-14 Tristan Gingold <gingold@adacore.com>
5167
5168 * configure.ac (plugins): Fix typos.
5169 * configure: Regenerate.
5170
4a6e5cc8
JJ
51712010-09-14 Jakub Jelinek <jakub@redhat.com>
5172
5173 PR debug/45660
5174 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
5175 gen_type_die for function/method return type.
5176
5a2c1986
IR
51772010-09-14 Ira Rosen <irar@il.ibm.com>
5178
5179 PR tree-optimization/45470
5180 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
5181 can throw an exception.
8c2b2fae 5182 * tree-vect-stmts.c (vectorizable_call): Likewise.
5a2c1986 5183
c28883e6
DD
51842010-09-14 DJ Delorie <dj@redhat.com>
5185
5186 PR target/44749
5187 * config/mep/mep-protos.h (mep_save_register_info,
5188 mep_reinit_regs, mep_init_regs): Declare.
5189
5190 * config/mep/mep.c: Move all target definitions to the end of the
5191 file to avoid the need for duplicate declarations.
5192 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
5193 (mep_reorg_erepeat): Remove unused variables.
5194 (mep_expand_builtin): Likewise.
5195
5196 * config/mep/mep-pragma.c: Don't include rtl.h.
5197 (INVALID_REGNUM): New.
5198 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
5199 functions.
5200 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
5201 Avoid enum/integer math.
5202
ce959463
JM
52032010-09-13 Joseph Myers <joseph@codesourcery.com>
5204
5205 PR target/44749
5206 * config/mep/t-mep (GTM_H): Add insn-constants.h.
5207 * config/mep/mep.c (mep_conditional_register_usage): Take no
5208 parameters.
5209 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
5210 prototype.
5211 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
5212 call to mep_conditional_register_usage.
5213
5c9bf752
EB
52142010-09-13 Eric Botcazou <ebotcazou@adacore.com>
5215
5216 PR debug/43937
5217 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
5218 the DECL as well.
5219
ef3be7da
JJ
52202010-09-13 Jakub Jelinek <jakub@redhat.com>
5221
5222 PR rtl-optimization/45617
5223 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
5224 even if low N bits of X aren't known to be zero.
5225
e72eba85
L
52262010-09-13 H.J. Lu <hongjiu.lu@intel.com>
5227
5228 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
5229
5230 * config/i386/i386.c (initial_ix86_tune_features): Add
5231 X86_TUNE_VECTORIZE_DOUBLE.
5232 (ix86_units_per_simd_word): New.
5233
5234 * config/i386/i386.h (ix86_tune_indices): Add
5235 X86_TUNE_VECTORIZE_DOUBLE.
5236 (TARGET_VECTORIZE_DOUBLE): New.
5237 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
5238
2ea5ee06
PH
52392010-09-13 Pat Haugen <pthaugen@us.ibm.com>
5240
5241 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
5242 (new_temp_expr_table): Allocate call_cnt vector.
5243 (free_temp_expr_table): Free it.
5244 (process_replaceable): Add call_cnt parm and set in vector.
5245 (find_replaceable_in_bb): Skip replacement if def/use span a call.
5246 (debug_ter): Dump call_cnt value, remove stderr uses.
5247
e196b221
JH
52482010-09-13 Jan Hubicka <jh@suse.cz>
5249
5250 * tree.c (build_zero_cst): New.
5251 * tree.h (build_zero_cst): Declare.
5252 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
5253 (get_base_constructor): Break out from ...
5254 (fold_const_aggregate_ref): Here; handle empty constructors.
5255
e88290ac
MS
52562010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
5257
5258 * config/arm/arm.md: (define_attr "conds"): Update comment.
8c2b2fae 5259 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
e88290ac 5260 conds attribute to clob.
8c2b2fae 5261 (arm_sync_compare_and_swapsi): Likewise.
e88290ac
MS
5262 (arm_sync_compare_and_swap<mode>): Likewise.
5263 (arm_sync_lock_test_and_setsi): Likewise.
5264 (arm_sync_lock_test_and_set<mode>): Likewise.
5265 (arm_sync_new_<sync_optab>si): Likewise.
5266 (arm_sync_new_nandsi): Likewise.
5267 (arm_sync_new_<sync_optab><mode>): Likewise.
5268 (arm_sync_new_nand<mode>): Likewise.
5269 (arm_sync_old_<sync_optab>si): Likewise.
5270 (arm_sync_old_nandsi): Likewise.
5271 (arm_sync_old_<sync_optab><mode>): Likewise.
5272 (arm_sync_old_nand<mode>): Likewise.
5273
2f434b97
OH
52742010-09-13 Olivier Hainque <hainque@adacore.com>
5275
8c2b2fae 5276 * fwprop.c (forward_propagate_and_simplify): Only attach a
2f434b97 5277 REG_EQUAL note to an insn if the destination is a register.
8c2b2fae 5278 * gcse.c (try_replace_reg): Likewise.
2f434b97 5279
654a61fb
RG
52802010-09-13 Richard Guenther <rguenther@suse.de>
5281
5282 PR tree-optimization/45611
5283 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
5284 (copy_ref_info): Likewise.
5285
4e3a5f19
AO
52862010-09-13 Alexandre Oliva <aoliva@redhat.com>
5287
5288 PR debug/45604
5289 PR debug/45419
5290 PR debug/45408
5291 * tree-pretty-print.c (dump_generic_node): Disregard top-level
5292 types of MEM_REF pointer types to the same type.
5293
ddf68ab9
HPN
52942010-09-13 Hans-Peter Nilsson <hp@axis.com>
5295
5296 PR rtl-optimization/41087
5297 * ifcvt.c (noce_get_condition): Don't allow conditions with
5298 side-effects.
5299
33124e84
AS
53002010-09-12 Anatoly Sokolov <aesok@post.ru>
5301
5302 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5303 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
5304 * config/frv/frv.c (frv_register_move_cost): Make static. Change
5305 arguments type to reg_class_t. Add mode argument.
5306 (frv_memory_move_cost): New.
5307 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
5308
2cea21dd
BS
53092010-09-12 Bernd Schmidt <bernds@codesourcery.com>
5310
5311 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
5312 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
5313
1b0086cc
JH
53142010-09-10 Jan Hubicka <jh@suse.cz>
5315
5316 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
5317
bedbdfcf
RG
53182010-09-10 Richard Guenther <rguenther@suse.de>
5319
5320 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
5321 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
5322 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
5323 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
5324 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
5325
cf6a4097
RG
53262010-09-10 Richard Guenther <rguenther@suse.de>
5327
5328 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
5329 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
5330 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
5331 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
5332
90966337
L
53332010-09-10 H.J. Lu <hongjiu.lu@intel.com>
5334
5335 PR middle-end/45634
5336 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
5337 of string folding is of integral type.
5338
2962b1bb
RM
53392010-09-10 Ryan Mansfield <rmansfield@qnx.com>
5340
5341 * doc/invoke.texi (-x): Fix typo.
5342
e836611d
RG
53432010-09-10 Richard Guenther <rguenther@suse.de>
5344
5345 PR debug/44115
5346 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
5347 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
5348 Output DECL_DEBUG_EXPR.
5349 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
5350 Input DECL_DEBUG_EXPR.
5351
8c4353b7
RG
53522010-09-10 Richard Guenther <rguenther@suse.de>
5353
8c2b2fae 5354 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
8c4353b7
RG
5355 (build_index_type): Implement in terms of build_range_type.
5356 (build_range_type): Do not allow NULL_TREE type, improve
5357 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
5358 if we didn't hash.
5359 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
5360 create a distinct copy of the type.
5361
996b42ef
KT
53622010-09-10 Kai Tietz <kai.tietz@onevision.com>
5363
5364 * configure: Regenerated.
5365 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
5366
a8c171c1
RR
53672010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5368
8c2b2fae
UB
5369 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
5370 * config/arm/cortex-a9-neon.md: New and partially generated.
5371 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
a8c171c1 5372
88df93ce
RG
53732010-09-10 Richard Guenther <rguenther@suse.de>
5374
5375 * tree.h (build_index_2_type): Remove.
5376 * tree.c (build_index_2_type): Remove.
5377
40ed057b
JJ
53782010-09-10 Jakub Jelinek <jakub@redhat.com>
5379
5380 PR bootstrap/45630
5381 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
5382 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
5383 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
5384
d242d063
MJ
53852010-09-10 Martin Jambor <mjambor@suse.cz>
5386
5387 PR tree-optimization/44972
5388 * tree-sra.c: Include toplev.h.
5389 (build_ref_for_offset): Entirely reimplemented.
5390 (build_ref_for_model): New function.
5391 (build_user_friendly_ref_for_offset): New function.
5392 (analyze_access_subtree): Removed build_ref_for_offset check.
5393 (propagate_subaccesses_across_link): Likewise.
5394 (create_artificial_child_access): Use
5395 build_user_friendly_ref_for_offset.
5396 (propagate_subaccesses_across_link): Likewise.
5397 (ref_expr_for_all_replacements_p): Removed.
5398 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
5399 (sra_modify_expr): Use build_ref_for_model.
5400 (load_assign_lhs_subreplacements): Likewise.
5401 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
5402 checks for return values of build_ref_for_offset.
5403 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
5404 build_ref_for_offset.
5405 * ipa-prop.h: Include gimple.h
5406 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
5407 (ipa_analyze_indirect_call_uses): Update comment.
5408 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
5409 (IPA_PROP_H): Likewise.
5410
fffe1e40
MJ
54112010-09-10 Martin Jambor <mjambor@suse.cz>
5412
5413 PR tree-optimization/44972
5414 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
5415 calling build_ref_for_offset.
5416
508371fe
RR
54172010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5418
2b74262b
UB
5419 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
5420 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
5421 * config/arm/arm-tune.md: Regenerate.
5422 * doc/invoke.texi (ARM Options): Document it.
508371fe 5423
7942e47e
RY
54242010-09-09 Reza Yazdani <reza.yazdani@amd.com>
5425
5426 * config/i386/i386.c: Include sched-int.h.
5427 (TARGET_SCHED_DISPATCH): Defined.
5428 (TARGET_SCHED_DISPATCH_DO): Defined.
5429 (DISPATCH_WINDOW_SIZE): Defined.
5430 (MAX_DISPATCH_WINDOWS): Defined.
5431 (MAX_INSN): Defined.
5432 (MAX_IMM): Defined.
5433 (MAX_IMM_SIZE): Defined.
5434 (MAX_IMM_32): Defined.
5435 (MAX_IMM_64): Defined.
5436 (MAX_LOAD): Defined.
5437 (MAX_STORE): Defined.
5438 (BIG): Defined.
5439 (dispatch_group): New.
5440 (num_allowable_groups): New.
5441 (group_name): New.
5442 (sched_insn_info_s): New.
5443 (dispatch_windows_s): New.
5444 (imm_info_s): New.
5445 (dispatch_window_list): New.
5446 (dispatch_window_list1): New.
5447 (get_mem_group): New.
5448 (is_cmp): New.
5449 (dispatch_violation): New.
5450 (is_branch): New.
5451 (is_prefetch): New.
5452 (init_window): New.
5453 (allocate_window): New.
5454 (init_dispatch_sched): New.
5455 (is_end_basic_block): New.
5456 (process_end_window): New.
5457 (allocate_next_window): New.
5458 (find_constant_1): New.
5459 (find_constant): New.
5460 (get_num_immediates): New.
5461 (has_immediate): New.
5462 (get_insn_path): New.
5463 (get_insn_group): New.
5464 (count_num_restricted): New.
5465 (fits_dispatch_window): New.
5466 (add_insn_window): New.
5467 (add_to_dispatch_window): New.
5468 (debug_dispatch_window_file): New.
5469 (debug_dispatch_window): New.
5470 (debug_insn_dispatch_info_file): New.
5471 (debug_ready_dispatch): New.
5472 (do_dispatch): New.
5473 (has_dispatch): New.
5474 * config/i386/i386.h (debug_ready_dispatch): Declared.
5475 (debug_dispatch_window): Declared.
5476 * config/i386/i386.opt (mdispatch-scheduler): New flag.
5477 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
5478 (TARGET_SCHED_DISPATCH_DO): New.
5479 * doc/tm.texi: Regererated.
5480 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
5481 ready_remove_first_dispatch
5482 (schedule_block): Call targetm.sched.dispatch and
5483 targetm.sched.dispatch_do.
5484 (sched_init): Call targetm.sched.dispatch and
5485 targetm.sched.dispatch_do.
5486 (ready_remove_first_dispatch): New.
5487 (number_in_ready): New.
5488 (get_ready_element): New.
5489 * hooks.c (hook_bool_rtx_int_false): New.
5490 (hook_void_rtx_int): New.
5491 * hooks.h (hook_bool_rtx_int_false): Declared.
5492 (hook_void_rtx_int): Declared.
5493 * sched-int.h (IS_DISPATCH_ON): Defined.
5494 (IS_CMP): Defined.
5495 (DISPATCH_VIOLATION): Defined.
5496 (FITS_DISPATCH_WINDOW): Defined.
5497 (DISPATCH_INIT): Defined.
5498 (ADD_TO_DISPATCH_WINDOW): Defined.
5499 (get_ready_element): Declared.
5500 (number_in_ready): Declared.
5501 * target.def (dispatch): Defined.
5502 (dispatch_do): Defined.
5503
82916e7e
VM
55042010-09-09 Vladimir Makarov <vmakarov@redhat.com>
5505
5506 PR middle-end/45312
5507 * reload1.c (merge_assigned_reloads): Remove.
5508 (reload_as_needed): Don't call it.
5509
b9be2842
AS
55102010-09-09 Anatoly Sokolov <aesok@post.ru>
5511
5512 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
5513 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
5514 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
5515
709e26f0
MK
55162010-09-09 Matthias Klose <doko@ubuntu.com>
5517
5518 PR bootstrap/43847
5519 * configure.ac (--enable-plugin): Enhance for cross builds.
5520 * configure: Regenerate.
5521
54e34c35
JH
55222010-09-09 Jan Hubicka <jh@suse.cz>
5523
5524 PR tree-optimization/45598
5525 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
5526 string folding is of integral type.
5527
ba885ec5
NS
55282010-09-09 Nathan Sidwell <nathan@codesourcery.com>
5529
5530 * configure.ac (gnu_indirect_function): New test.
5531 * configure: Rebuilt.
5532 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
5533 * defaults.h (IFUNC_ASM_TYPE): Provide default.
5534
5535 * doc/extend.texi (Function Attributes): Document ifunc.
5536 * varasm.c (do_assemble_alias): Deal with ifuncs too.
5537
74164603 55382010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
5582cb29
HS
5539
5540 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
5541 epilogue instruction move.
5542
ed2222c8
JH
55432010-09-09 Jan Hubicka <jh@suse.cz>
5544
5545 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
5546 command line to allow more partitions than input files.
5547
de8e52f0
VM
55482010-09-09 Vladimir Makarov <vmakarov@redhat.com>
5549
5550 PR middle-end/44554
5551 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
5552
b100151b
VM
55532010-09-09 Vladimir Makarov <vmakarov@redhat.com>
5554
5555 PR middle-end/40386
5556 * ira.c (pseudo_for_reload_consideration_p): Don't use
5557 flag_ira_share_spill_slots.
5558
45e5214c
UW
55592010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5560
5561 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
5562 point zero operands that fit into a single GPR.
5563 (s390_preferred_reload_class): Ensure we only return general-purpose
5564 register classes.
5565 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
5566 floating-point zero operands into GPRs.
5567 ("*mov<mode>_64"): Likewise.
5568 ("mov<mode>"): Likewise using lhi.
5569
98635b04
UW
55702010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5571
5572 * config/s390/s390.c (s390_symref_operand_p): Return false for
5573 literal pool references.
5574 (s390_check_qrst_address): Update caller.
5575
d2795d58
UB
55762010-09-09 Uros Bizjak <ubizjak@gmail.com>
5577
5578 * config/i386/predicates.md (ext_register_operand): Check that
5579 SUBREG_REG is really a register before looking for REGNO.
5580 (reg_not_xmm0_operand): Handle SUBREGs correctly.
5581 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
5582
c8a27c40
JJ
55832010-09-09 Jakub Jelinek <jakub@redhat.com>
5584
5585 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
5586 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
5587 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
5588 * print-rtl.c (print_rtx): Likewise.
5589 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
5590 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
5591 for ADDR_EXPR with non-addressable object.
5592 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
5593 (struct dw_val_struct): Add v.val_decl_ref.
5594 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
5595 Handle DW_OP_GNU_implicit_pointer.
5596 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
5597 (get_ref_die_offset_label): New function.
5598 (implicit_ptr_descriptor): New function.
5599 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
5600 (loc_descriptor): Likewise.
5601 (gen_variable_die): Put even definitions into decl_die_table.
5602 (resolve_addr_in_expr): Resolve still unresolved
5603 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
5604 return false.
5605 (dwarf2out_finish): Call output_location_lists after outputting
5606 .debug_info and .debug_abbrev instead of before.
5607
56082010-09-09 Roland McGrath <roland@redhat.com>
5609
5610 * dwarf2out.c (DWARF_REF_SIZE): Define.
5611 (size_of_loc_descr): Use it for DW_OP_call_ref.
5612
5a79bcc4
AM
56132010-09-09 Alan Modra <amodra@gmail.com>
5614
5615 * doc/invoke.text: Reinstate mcmodel=medium.
5616 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
5617 CMODEL_MEDIUM as default.
5618 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
5619 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
5620 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
5621 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
5622
bc707992
JDA
56232010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5624
5625 PR target/45250
5626 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
5627 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
5628 (builtin_longjmp): Likewise.
5629 (allocate_stack): Use hard_frame_pointer_rtx instead of
5630 frame_pointer_rtx.
5631 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
5632 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
5633 (pa_can_eliminate): Likewise.
5634 (TARGET_INTERNAL_ARG_POINTER): Define.
5635 (TARGET_CAN_ELIMINATE): Define.
5636 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
5637 pointer.
5638 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
5639 (pa_internal_arg_pointer, pa_can_eliminate,
5640 pa_initial_elimination_offset): New.
5641 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
5642 (HARD_FRAME_POINTER_REGNUM): Set to register three.
5643 (INITIAL_FRAME_POINTER_OFFSET): Delete.
5644 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
5645 Define.
5646 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
5647 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
5648 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
5649 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
5650 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
5651 new soft frame pointer.
5652 * config/pa/pa64-regs.h: Likewise.
5653
2824d6e5
UB
56542010-09-08 Uros Bizjak <ubizjak@gmail.com>
5655
5656 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
5657 numerical constant.
5658 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
5659
c485684d
AO
56602010-09-08 Alexandre Oliva <aoliva@redhat.com>
5661
5662 PR debug/45531
5663 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
5664
359bea1d
AO
56652010-09-08 Alexandre Oliva <aoliva@redhat.com>
5666
5667 PR debug/45419
5668 PR debug/45408
5669 * tree-pretty-print.c (dump_generic_node): Disregard top-level
5670 qualifiers in otherwise equal MEM_REF pointer types.
5671 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
5672 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
5673
0a7822a3
RR
56742010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5675
5676 PR target/44392
5677 * config/arm/arm.md (bswapsi2): Handle condition correctly
5678 for armv6 and optimize_size.
5679
2bfef1ad
FXC
56802010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
5681
5682 PR other/18555
2824d6e5 5683 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2bfef1ad 5684
19ed9d7b
UB
56852010-09-08 Uros Bizjak <ubizjak@gmail.com>
5686
5687 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
5688 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
5689 ix86_expand_strlen, legitimate_pic_address_disp_p,
5690 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
5691 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
5692 ix86_check_movabs, ix86_secondary_memory_needed): Change function
5693 prototype to bool.
5694 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
5695 return_in_memory_ms_64, ix86_check_movabs,
5696 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
5697 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
5698 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
5699 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
5700 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
5701 ix86_secondary_memory_needed): Change to bool. Return
5702 "true" and "false" values.
5703 * config/i386/i386.md: Return "true" and "false" values.
5704
0fa3d594
RO
57052010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5706
5707 * doc/sourcebuild.texi (Effective-Target Keywords): Document
5708 run_expensive_tests.
5709
86923f6e
RO
57102010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5711
19ed9d7b 5712 * toplev.c (output_stack_usage): Use lbasename instead of basename.
86923f6e 5713
da1cc2e4
MJ
57142010-09-08 Martin Jambor <mjambor@suse.cz>
5715
5716 PR other/45443
5717 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
5718 at -O3.
5719
0f443ad0
RG
57202010-09-08 Richard Guenther <rguenther@suse.de>
5721
5722 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
5723 (visit): Adjust.
5724 (iterative_hash_gimple_type): Likewise.
5725 (gimple_type_hash): Likewise.
5726 (gimple_register_type): Likewise.
5727 (print_gimple_types_stats): Likewise.
5728 (free_gimple_type_tables): Likewise.
5729
a855b1b1
MM
57302010-09-08 Michael Matz <matz@suse.de>
5731
5732 PR tree-optimization/43430
5733 * tree-vect-stmts.c (vectorizable_condition): Support multiple
5734 copies for conditional statements if it's not part of a reduction.
5735
3834917d
MM
57362010-09-08 Michael Matz <matz@suse.de>
5737
5738 PR tree-optimization/33244
5739 * tree-ssa-sink.c (statement_sink_location): Don't sink into
5740 empty loop latches.
5741
b5c878a5
RG
57422010-09-08 Richard Guenther <rguenther@suse.de>
5743
5744 PR tree-optimization/45578
5745 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
5746 Be more careful when transfering alignment information to
5747 the new induction variable.
5748 (copy_ref_info): Likewise.
5749
1814522d
RG
57502010-09-08 Richard Guenther <rguenther@suse.de>
5751
5752 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
19ed9d7b 5753 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
1814522d 5754
7370e0da
AC
57552010-09-08 Arnaud Charlet <charlet@adacore.com>
5756
5757 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
5758 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
5759
74164603 57602010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
19ed9d7b 5761
e0d4c0b3
KZ
5762 PR doc/45587
5763 * doc/md.texi: Fixed modes on several standard pattern names.
5764
59bdeecb
MX
57652010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
5766
5767 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
5768 (ashl<mode>3): ...this.
5769 (loongson_psra<V_suffix>): Rename to...
5770 (ashr<mode>3): ...this.
5771 (loongson_psrl<V_suffix>): Rename to...
5772 (lshr<mode>3): ...this.
5773 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
5774 (CODE_FOR_loongson_psllw): Define.
5775 (CODE_FOR_loongson_psrlh): Define.
5776 (CODE_FOR_loongson_psrlw): Define.
5777 (CODE_FOR_loongson_psrah): Define.
5778 (CODE_FOR_loongson_psraw): Define.
5779
237e9c04
RH
57802010-09-07 Richard Henderson <rth@redhat.com>
5781
5782 * tree-vect-data-refs.c: Include tm_p.h.
5783 * Makefile.in (tree-vect-data-refs.o): Update deps.
5784 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
5785 Move delarations outside #ifdef RTX_CODE.
5786
182a0c11
RH
57872010-09-07 Richard Henderson <rth@redhat.com>
5788
19ed9d7b 5789 * final.c (rest_of_handle_final): Unconditionally do
182a0c11
RH
5790 output_function_exception_table before assemble_end_function.
5791
f27e50db
JH
57922010-09-07 Jan Hubicka <jh@suse.cz>
5793
19ed9d7b
UB
5794 * tree-inline.c (tree_inlinable_function_p): Do not test
5795 DECL_REPLACEABLE_P.
5796 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
5797 update_callee_keys, cgraph_decide_inlining): Test function availability.
f27e50db
JH
5798 * cif-code.def (OVERWRITABLE): New code.
5799
a0766cdb 58002010-09-07 H.J. Lu <hjl.tools@gmail.com>
74164603 5801 Jack Howarth <howarth@bromo.med.uc.edu>
a0766cdb
L
5802
5803 PR target/36502
5804 PR target/42313
5805 PR target/44651
eed023cc 5806 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
a0766cdb
L
5807 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
5808 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
5809 MAX macro.
5810
4e751772
L
58112010-09-07 H.J. Lu <hongjiu.lu@intel.com>
5812
5813 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
5814 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
5815
274eec6c
L
58162010-09-07 H.J. Lu <hongjiu.lu@intel.com>
5817
5818 * config.gcc: Don't append t-android for Android targets.
5819
5820 * config/t-android: Removed.
5821
a68b5e52
RH
58222010-09-07 Richard Henderson <rth@redhat.com>
5823
5824 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
5825 * doc/tm.texi.in: Add doc marker.
5826 * doc/tm.texi: Rebuild.
5827 * except.c (switch_to_exception_section): Always build.
5828 (output_one_function_exception_table): Move section switch,
5829 personality output, and label output ...
5830 (output_function_exception_table): ... here. Use the new
5831 personality hook.
5832
5833 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
5834 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
5835 TARGET_ASM_INIT_SECTIONS): New.
5836 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
5837 make static.
5838 (TARGET_ASM_UNWIND_EMIT): Update to match.
5839 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
5840
5841 * config/arm/arm.c (arm_asm_emit_except_personality): New.
5842 (arm_asm_init_sections): New.
5843 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
5844
9b3a7a26
RR
58452010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5846
5847 * config/arm/arm.md: Remove unused variable.
5848
7149f02c
AS
58492010-09-07 Anatoly Sokolov <aesok@post.ru>
5850
5851 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5852 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
5853 (m32r_memory_move_cost): New function.
5854
c811b2a5
L
58552010-09-07 H.J. Lu <hongjiu.lu@intel.com>
5856
5857 * config.gcc: Append t-android for Android targets.
5858
5859 * config/t-android: New.
5860
3bc6b3e6
RH
58612010-09-07 Richard Henderson <rth@redhat.com>
5862
5863 * target.def (unwind_emit_before_insn): New hook.
5864 * doc/tm.texi.in: Add @hook marker for it.
5865 * doc/tm.texi: Rebuild.
5866 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
5867
aa229804
MJ
58682010-09-07 Martin Jambor <mjambor@suse.cz>
5869
5870 PR fortran/43665
5871 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
5872 are any type attributes.
5873
9c4ce18d
JH
58742010-09-07 Jan Hubicka <jh@suse.cz>
5875
3bc6b3e6
RH
5876 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
5877 array_ref_low_bound in string access folding.
9c4ce18d 5878
d341a5d0
UB
58792010-09-07 Uros Bizjak <ubizjak@gmail.com>
5880
5881 PR target/45206
5882 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
5883 eh_return fixup sequence.
5884
8683f051
JH
58852010-09-07 Jan Hubicka <jh@suse.cz>
5886
9c4ce18d 5887 * gimple-fold.c (maybe_fold_reference): Verify that operand is
8683f051
JH
5888 gimple_min_invariant.
5889
f5e5b46c
RG
58902010-09-07 Richard Guenther <rguenther@suse.de>
5891
5892 PR middle-end/45569
5893 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
5894 nor CONSTRUCTOR can trap.
5895 * tree-complex.c (update_complex_assignment): Update EH info.
5896
c9d6130e
RG
58972010-09-07 Richard Guenther <rguenther@suse.de>
5898
5899 PR middle-end/45569
5900 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
5901 * passes.c (execute_function_todo): Do not verify anything if
5902 we saw errors.
5903
d7806def
RG
59042010-09-07 Richard Guenther <rguenther@suse.de>
5905
d341a5d0 5906 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
d7806def 5907
da0a441d
BS
59082010-09-07 Bernd Schmidt <bernds@codesourcery.com>
5909
5910 PR target/43137
5911 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
5912 New define_mode_attrs.
5913 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
5914 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
5915 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
5916 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
5917 Remove pool_range attribute.
5918 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
5919 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
5920 pool_range and neg_pool_range attributes.
5921 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
5922 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
5923 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
5924
4e18507b
L
59252010-09-06 H.J. Lu <hongjiu.lu@intel.com>
5926
5927 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
5928 check glibc.
5929
61ec1123
UB
59302010-09-06 Uros Bizjak <ubizjak@gmail.com>
5931
5932 PR target/22152
5933 * config/i386/mmx.md (*mov<mode>_internal_rex64,
5934 *mov<mode>_internal_avx, *mov<mode>_internal,
5935 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
5936 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
5937
c5ee1358
MM
59382010-09-06 Mark Mitchell <mark@codesourcery.com>
5939
5940 * c-typeck.c (do_warn_double_promotion): Remove.
5941 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
5942 Objective-C++ too.
5943
c28350ab
AS
59442010-09-06 Anatoly Sokolov <aesok@post.ru>
5945
5946 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
5947 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
5948 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
5949 argument type to reg_class_t. Change result type to bool.
5950 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5951
708e07fb
NP
59522010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
5953
5954 PR libobjc/19850
5955 * gthr-posix.h (__gthread_objc_thread_detach): Use
5956 _objc_thread_attribs when detaching a thread.
5957 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
5958
cc0ae0ca
L
59592010-09-06 H.J. Lu <hongjiu.lu@intel.com>
5960
5961 PR target/45524
61ec1123 5962 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
cc0ae0ca
L
5963 * configure: Regenerated.
5964
c18605cc
AK
59652010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5966
5967 * combine.c (try_combine): Set subst_low_luid to i0.
5968
be1ac4ec
RG
59692010-09-06 Richard Guenther <rguenther@suse.de>
5970
5971 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
5972 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
5973 (build_aligned_type): Declare.
5974 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
5975 (check_aligned_type): New function.
5976 (build_aligned_type): Likewise.
5977 * expr.c (expand_assignment): Handle misaligned stores via
5978 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
5979 (expand_expr_real_1): Likewise.
5980 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
5981 * tree-vect-stmts.c (vectorizable_store): Do not build
5982 MISALIGNED_INDIRECT_REF but initialize alignment information.
5983 (vectorizable_load): Likewise.
5984 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
5985 handling.
5986 * cfgexpand.c (expand_debug_expr): Likewise.
5987 * dwarf2out.c (loc_list_from_tree): Likewise.
5988 * fold-const.c (maybe_lvalue_p): Likewise.
5989 (operand_equal_p): Likewise.
5990 (build_fold_addr_expr_with_type_loc): Likewise.
5991 * gimplify.c (gimplify_addr_expr): Likewise.
5992 (gimplify_expr): Likewise.
5993 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
5994 (verify_gimple_assign_single): Likewise.
5995 * tree-dump.c (dequeue_and_dump): Likewise.
5996 (tree_could_trap_p): Likewise.
5997 * tree-predcom.c (ref_at_iteration): Likewise.
5998 * tree-pretty-print.c (dump_generic_node): Likewise.
5999 (op_code_prio): Likewise.
6000 (op_symbol_code): Likewise.
6001 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
6002 * tree-ssa-loop-im.c (for_each_index): Likewise.
6003 (gen_lsm_tmp_name): Likewise.
6004 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
6005 (find_interesting_uses_address): Likewise.
6006 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
6007 * tree-ssa-operands.c (get_expr_operands): Likewise.
6008 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6009 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6010 (ao_ref_init_from_vn_reference): Likewise.
6011 * tree.c (staticp): Likewise.
6012 (build1_stat): Likewise.
6013 (reference_alias_ptr_type): Likewise.
6014 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6015 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
6016 MISALIGNED_INDIRECT_REF handling.
6017
863a7578
RB
60182010-09-06 Richard Guenther <rguenther@suse.de>
6019
6020 PR tree-optimization/45534
6021 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
6022 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
6023 on the target.
6024 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
6025 valid on the target.
6026
84f47d20
AS
60272010-09-06 Andreas Schwab <schwab@redhat.com>
6028
6029 * configure.ac: Quote argument of AC_MSG_WARN.
6030 * configure: Regenerate.
6031
e5cb031f
AM
60322010-09-06 Alexander Monakov <amonakov@ispras.ru>
6033
863a7578
RB
6034 * sel-sched.c (move_cond_jump): Correct arguments to
6035 maybe_tidy_empty_bb.
e5cb031f
AM
6036 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
6037
324d3f45
AM
60382010-09-06 Andrey Belevantsev <abel@ispras.ru>
6039
6040 PR rtl-optimization/44919
6041 * sel-sched.c (move_cond_jump): Remove assert, check that
6042 the several blocks case can only happen with mutually exclusive
6043 insns instead. Rewrite the movement code to support moving through
6044 several basic blocks.
6045
d1e74401
UB
60462010-09-06 Uros Bizjak <ubizjak@gmail.com>
6047
6048 * config/i386/i386.md (iptrsize): New mode attribute.
6049 (tp_seg): Ditto.
6050 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
6051 mode iterator.
6052 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
6053 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
6054 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
6055 (stack_tls_protect_set_<mode>): Ditto from
6056 stack_tls_protect_set_{si,di}. Use %@ to output segment register
6057 of thread base pointer load.
6058 (stack_tls_protect_test_<mode>): Ditto from
6059 stack_tls_protect_test_{si,di}. Use %@ to output segment register
6060 of thread base pointer load.
6061 (stack_protect_set): Rewrite using indirect functions.
6062 (stack_protect_test): Ditto.
6063 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
6064 (ix86_print_operand): Handle '@'.
6065
68fce4ed
GS
60662010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
6067
6068 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
6069 MINUS_EXPR.
6070
0a0b3574
MM
60712010-09-05 Mark Mitchell <mark@codesourcery.com>
6072
6073 * doc/invoke.texi: Document -Wdouble-promotion.
6074 * c-typeck.c (convert_arguments): Check for implicit conversions
6075 from float to double.
6076 (do_warn_double_promotion): New function.
6077 (build_conditional_expr): Use it.
6078 (build_binary_op): Likewise.
6079
f38fb2c4
RG
60802010-09-05 Richard Guenther <rguenther@suse.de>
6081
6082 PR tree-optimization/45535
6083 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
6084 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
6085 dereferencing it.
6086 (indirect_refs_may_alias_p): Likewise.
6087
e7a8f681
N
60882010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
6089
6090 * config/sh/sh.c (sh_option_override): Make static.
6091 Adjust comments. Declare.
68fce4ed 6092 (sh_function_value_regno_p): Likewise.
e7a8f681
N
6093 (sh_register_move_cost): Modify the arguments, make static.
6094 Adjust comments. Declare.
6095 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
6096 TARGET_FUNCTION_VALUE_REGNO_P): Define.
6097 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
6098 REGISTER_MOVE_COST): Delete.
6099 * config/sh/sh-protos.h (sh_override_options): Delete.
6100 (sh_register_move_cost): Delete.
6101 (sh_function_value_regno_p): Delete.
6102
8c9cb6e6
AS
61032010-09-04 Anatoly Sokolov <aesok@post.ru>
6104
6105 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
6106 m32r_function_value_regno_p): New functions.
6107 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
6108 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
6109 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
6110 FUNCTION_VALUE_REGNO_P): Remove.
6111
17f39a39
JH
61122010-09-04 Jan Hubicka <jh@suse.cz>
6113
6114 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
6115 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
6116 fold_read_from_constant_string.
6117
6118 * gimple.h (canonicalize_constructor_val): Declare.
6119 * gimple-fold.c (canonicalize_constructor_val): New function.
6120 (get_symbol_constant_value):Use it.
6121 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
6122
5f7ae6b6
JH
61232010-09-04 Jan Hubicka <jh@suse.cz>
6124
6125 * tree-switch-conversion.c (build_one_array): Set constructor to be
6126 static.
6127 * varpool.c (varpool_finalize_decl): Compute const_value_known.
6128
bcf71673
RG
61292010-09-04 Richard Guenther <rguenther@suse.de>
6130
6131 PR bootstrap/45519
6132 * tree-flow.h (force_gimple_operand_1): Declare.
6133 (force_gimple_operand_gsi_1): Likewise.
6134 * gimplify.c (force_gimple_operand_1): New worker taking a
6135 gimple predicate for ...
6136 (force_gimple_operand): ... which now wraps it.
6137 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
6138 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
6139 last change.
6140 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
6141 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
6142 (create_mem_ref): Likewise.
6143
770b37b9
UB
61442010-09-04 Uros Bizjak <ubizjak@gmail.com>
6145
6146 * config/i386/predicates.md (sse_reg_operand): New predicate.
6147 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
6148 predicate for operand 1.
6149 (XFmode push splitter): Use fp_register_operand predicate
6150 for operand 1.
6151 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
6152 (SF-DF float_extend push splitter): Add reload_completed insn
6153 predicate.
6154 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
6155 MODEF mode macro. Add reload_completed insn predicate.
6156
502ef838
PB
61572010-09-04 Paolo Bonzini <bonzini@gnu.org>
6158
6159 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
6160 (struct df_extract_ref): Remove.
6161 (union df_ref_d): Remove extract_ref member.
6162 (df_ref_create): Remove last three arguments.
6163 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
6164 * df-scan.c (df_ref_record): Remove last three arguments, do not
6165 pass them to df_ref_create_structure.
6166 (df_uses_record): Remove first and last three arguments. Replace
6167 first argument with DF_REF_REGULAR, adjust calls to remove the
6168 width, offset and mode. Always call recursively on the second
6169 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
6170 (df_ref_create_structure): Remove first argument.
6171 (struct df_scan_problem_data): Remove ref_extract_pool.
6172 (df_scan_free_internal): Do not free it.
6173 (df_scan_alloc): Do not allocate it.
6174 (df_ref_create): Remove last three arguments, do not pass them to
6175 df_ref_create_structure.
6176 (df_free_ref): Remove DF_REF_EXTRACT case.
6177 (df_notes_rescan): Adjust call to df_uses_record.
6178 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
6179 Remove DF_REF_EXTRACT case.
6180 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
6181 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
6182 and SUBREG definitions.
6183 (df_get_conditional_uses): Remove references to width/offset/mode,
6184 adjust call to df_ref_create_structure.
6185 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
6186 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
6187 calls to df_uses_record and df_ref_record.
6188 * fwprop.c (update_df): Remove references to width/offset/mode,
6189 adjust call to df_ref_create.
6190
48c24aca
JH
61912010-09-03 Jan Hubicka <jh@suse.cz>
6192
6193 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
6194 (build_cdtor_fns): Update use of build_cdtor.
6195
d1583032
JM
61962010-09-03 Joseph Myers <joseph@codesourcery.com>
6197
6198 * doc/options.texi (SeparateAlias): Document.
6199 * opt-functions.awk (switch_flags): Handle SeparateAlias.
6200 * opth-gen.awk: Generate enumeration names for options marked
6201 SeparateAlias, but not for those marked Ignore.
6202 * opts-common.c (generate_canonical_option): Don't output separate
6203 argument for options marked CL_SEPARATE_ALIAS.
6204 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
6205 * opts.h (CL_SEPARATE_ALIAS): New.
6206 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
6207 CL_COMMON): Adjust definitions.
6208 * config/i386/darwin.opt, config/mips/sde.opt: New.
6209 * common.opt (fdump-final-insns): New.
6210 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
6211 i386/darwin.opt.
6212 (mips*-sde-elf*): Add mips/sde.opt.
6213 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
6214 -mno-data-in-code and -mcode-xonly here.
6215 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
6216 * gcc.c (option_map): Add "j" to --dump entry.
770b37b9 6217 (translate_options): Don't translate -d to -foutput-class-dir= here.
d1583032 6218
b0af49c4
SP
62192010-09-03 Sebastian Pop <sebastian.pop@amd.com>
6220
6221 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
6222 DR_IS_WRITE.
6223 (compute_all_dependences): Same.
6224 (create_rdg_edge_for_ddr): Same.
6225 * tree-data-ref.h (DR_IS_WRITE): New.
6226 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
6227 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
6228 (write_memrefs_written_at_least_once): Same.
6229 * tree-predcom.c (suitable_component_p): Same.
6230 (determine_roots_comp): Same.
6231 (execute_load_motion): Same.
6232 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
6233 (vect_enhance_data_refs_alignment): Same.
6234 (vect_analyze_group_access): Same.
6235
de3f621b
JR
62362010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
6237
6238 PR testsuite/42843
6239 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
6240 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
6241
4d8ff563
MB
62422010-09-03 Marcin Baczynski <marbacz@gmail.com>
6243
6244 * dwarf2out.c (file scope): Remove #if0'd code.
6245 (gen_subprogram_die): Same.
6246
87df9ea5
JJ
62472010-09-03 Jakub Jelinek <jakub@redhat.com>
6248
6249 PR middle-end/45484
6250 * dwarf2out.c (flush_queued_reg_saves): Rename to...
6251 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
6252 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
6253 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
6254 * config/i386/i386.c (output_set_got): Call it.
6255
15a54c10
MM
62562010-09-03 Michael Matz <matz@suse.de>
6257
6258 PR middle-end/45415
6259 * tree-sra.c (sra_modify_assign): If we modify the statement,
6260 say so.
6261
6262 * tree-ssa.c (verify_ssa): Check number of operands and links
6263 per statement to agree.
6264
0df8fcc8
UB
62652010-09-03 Uros Bizjak <ubizjak@gmail.com>
6266 Iain Sandoe <iains@gcc.gnu.org>
6267
6268 PR target/45476
6269 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
6270 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
6271 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
6272
ac364a48
RG
62732010-09-03 Richard Guenther <rguenther@suse.de>
6274
6275 * lto-streamer-out.c (output_function): Output function
6276 start and end loci.
6277 * lto-streamer-in.c (input_function): Input function start
6278 and end loci.
6279
3c39bca6
AK
62802010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6281
6282 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
6283 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
6284 * configure: Regenerate.
6285 * aclocal.m4: Regenerate.
6286
1c7b11d2
JH
62872010-09-03 Jan Hubicka <jh@suse.cz>
6288
6289 PR lto/44812
6290 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
6291 on functions/variables in other partition.
6292
155c92a7
JH
62932010-09-03 Jan Hubicka <jh@suse.cz>
6294
6295 * cgraph.h (struct varpool_node): Add const_value_known.
6296 (varpool_decide_const_value_known): Declare.
6297 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
6298 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
6299 (input_varpool_node): Restore const_value_known.
6300 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
6301 initializer folding.
6302 * ipa.c (ipa_discover_readonly_nonaddressable_var,
6303 function_and_variable_visibility): Compute const_value_known.
0df8fcc8
UB
6304 * gimple-fold.c (get_symbol_constant_value): Use varpool for
6305 initializer folding.
155c92a7
JH
6306 * varpool.c (varpool_decide_const_value_known): New function.
6307
cb1b497e
UB
63082010-09-03 Uros Bizjak <ubizjak@gmail.com>
6309
0df8fcc8 6310 * config/i386/i386.md: Remove empty preparation statements
cb1b497e
UB
6311 from splitters.
6312
a482b1f5
JH
63132010-09-03 Jan Hubicka <jh@suse.cz>
6314
cb1b497e
UB
6315 * passes.c (rest_of_decl_compilation): Do not add local vars into
6316 varpool.
a482b1f5
JH
6317 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
6318 static or extern vars are in varpool.
cb1b497e
UB
6319 (varpool_finalize_decl): Sanity check that only static vars are
6320 finalized.
a482b1f5 6321
2f757e4a
JJ
63222010-09-03 Jakub Jelinek <jakub@redhat.com>
6323
6324 PR debug/45500
6325 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
6326 not just generic vectors with BLKmode.
6327
4d948885
RG
63282010-09-03 Richard Guenther <rguenther@suse.de>
6329
6330 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
6331 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
6332 * tree.h (TMR_SYMBOL): Remove.
6333 (TMR_BASE, TMR_OFFSET): Adjust.
6334 (TMR_INDEX2): New.
6335 * alias.c (ao_ref_from_mem): Use TMR_BASE.
6336 * builtins.c (get_object_alignment): Merge TMR_BASE and
6337 TMR_SYMBOL handling.
6338 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
6339 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
6340 handling. Also allow TARGET_MEM_REF as base address.
6341 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
6342 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
6343 base. Gimplify TMR_INDEX2.
6344 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
6345 * tree-dfa.c (get_ref_base_and_extent): Likewise.
6346 (get_addr_base_and_unit_offset): Likewise.
6347 * tree-eh.c (tree_could_trap_p): Likewise.
6348 * tree-pretty-print.c (dump_generic_node): Likewise.
cb1b497e 6349 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
4d948885
RG
6350 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
6351 base to index2.
6352 (get_address_description): Reconstruct addres description
6353 from merged TMR_BASE and TMR_INDEX2.
6354 (maybe_fold_tmr): Fold propagated addresses.
6355 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
6356 MEM_REF and TARGET_MEM_REF paths.
6357 (indirect_refs_may_alias_p): Likewise.
6358 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
6359 instead of TMR_SYMBOL.
6360 * tree-ssa-operands.c (get_tmr_operands): Simplify.
6361 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
6362 according to changes ...
6363 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
6364 Split TARGET_MEM_REF into two fields plus the base.
6365 * tree.c (mem_ref_offset): Simplify.
6366 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
6367 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
6368 Strip NOPs when folding MEM_REF addresses.
6369 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
6370 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
6371 (fold_gimple_assign): ... not here.
6372
49042313
MX
63732010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
6374
6375 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
6376 * config/mips/mips.c (mips_shift_truncation_mask): New function.
6377 (TARGET_SHIFT_TRUNCATION_MASK): Define.
6378
92053f38
RH
63792010-09-02 Richard Henderson <rth@redhat.com>
6380
6381 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
6382 instead of readelf in the test.
6383 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
6384 in the .debug_frame section for coff targets.
6385 * configure: Rebuild.
6386
184866c5
AS
63872010-09-02 Anatoly Sokolov <aesok@post.ru>
6388
6389 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
6390 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
6391 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6392 (m32c_class_likely_spilled_p): Make static. Change argument type to
6393 reg_class_t. Change result type to bool.
6394
688e4919
MM
63952010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
6396
6397 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
6398 to convert (double)(long) into a single FRIZ instruction or not
6399 when -ffast-math is used.
6400
6401 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
6402 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
6403 or FRIZ instruction if -ffast-math.
6404 * config/rs6000/rs6000.md (friz): Ditto.
6405
6406 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
6407
398da2ac
JM
64082010-09-02 Joseph Myers <joseph@codesourcery.com>
6409
6410 * opth-gen.awk (quote, comma): Remove unused variables.
6411
fe7645b9
RM
64122010-09-02 Ryan Mansfield <rmansfield@qnx.com>
6413
6414 * arm.c (arm_override_options): Correct fall-back code to use
6415 SUBTARGET_CPU_DEFAULT.
6416
5bfc5baa
JB
64172010-09-02 Julian Brown <julian@codesourcery.com>
6418
6419 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
6420 unspecs.
6421 (vcond<mode>, vcondu<mode>): New expanders.
6422 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
6423 comparisons with zero.
6424 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
6425 * config/arm/constraints.md (Dz): New constraint.
6426
07b8f0a8
AS
64272010-09-02 Anatoly Sokolov <aesok@post.ru>
6428
6429 * target.def (class_likely_spilled_p): New hook.
6430 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
6431 * doc/tm.texi: Regenerate.
6432 * targhooks.c (default_class_likely_spilled_p): New function.
6433 * targhooks.h (default_class_likely_spilled_p): Declare.
6434 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
cb1b497e 6435 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
07b8f0a8
AS
6436 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
6437 Use fixed_reg_set instead of fixed_regs.
6438 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
6439 * calls.c (avoid_likely_spilled_reg): Ditto.
cb1b497e 6440 * ira-conflicts.c (ira_build_conflicts): Ditto.
07b8f0a8
AS
6441 * ira.c (update_equiv_regs): Ditto.
6442 * mode-switching.c (create_pre_exit): Ditto.
6443 * regmove.c (find_matches): Ditto.
cb1b497e 6444 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
07b8f0a8
AS
6445 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
6446 (small_register_class_p): New inline function.
6447 (push_secondary_reload, find_reusable_reload, find_reloads): Use
6448 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
6449
6450 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
6451 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
6452 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
6453
6b8c9df8
RG
64542010-09-02 Richard Guenther <rguenther@suse.de>
6455
6456 PR tree-optimization/44937
6457 PR tree-optimization/45412
6458 * ipa-split.c (split_function): Properly remove PHI nodes.
6459
2d2bd949
JM
64602010-09-02 Joseph Myers <joseph@codesourcery.com>
6461
6462 * opts.h (struct cl_option): Add warn_message field.
6463 (struct cl_decoded_option): Add warn_message field.
6464 * doc/options.texi (Ignore, Warn): Document.
6465 * opt-functions.awk (needs_state_p): Don't consider aliases or
6466 ignored options to need state saved.
6467 * optc-gen.awk: Handle Warn and Ignore.
6468 * opth-gen.awk: Output OPT_SPECIAL_ignore.
6469 * opts-common.c (decode_cmdline_option): Set warn_message field.
6470 Handle ignored options.
6471 (decode_cmdline_options_to_array, generate_option,
6472 generate_option_input_file): Set warn_message field.
6473 (read_cmdline_option): Generate warnings from warn_message field.
6474 Handle ignored options.
6475 * common.opt (Wunreachable-code, fargument-alias,
6476 fargument-noalias, fargument-noalias-global,
6477 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
6478 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
6479 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
6480 ftree-salias): Mark Ignore.
6481 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
6482 -mintel-syntax and -mno-intel-syntax here.
6483 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
6484 using Warn.
6485 * opts.c (common_handle_option): Don't handle options marked as
6486 ignored.
6487 (enable_warning_as_error): Handle ignored options.
6488
5de8299c
JM
64892010-09-02 Joseph Myers <joseph@codesourcery.com>
6490
6491 PR driver/44076
6492 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
6493 alias_target fields.
6494 * opt-functions.awk (opt_sanitized_name): Don't handle
6495 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
6496 * optc-gen.awk: Generate alias fields.
6497 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
6498 Don't generate such constants for aliases.
6499 * opts-common.c (generate_canonical_option): New.
6500 (decode_cmdline_option): Handle aliases. Use
6501 generate_canonical_option for known options instead of copying the
6502 input option text.
6503 * doc/options.texi (Alias): Document.
6504 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
6505 fstack-check, specs): Mark as aliases.
6506 * gcc.c (driver_handle_option): Canonicalize -L options to joined
6507 arguments.
6508 (driver_handle_option): Don't handle OPT_specs.
6509 * opts.c (common_handle_option): Don't handle options marked as
6510 aliases.
6511 (enable_warning_as_error): Handle aliases.
6512 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
6513 OPT_Wlarger_than_eq.
6514 * tree-optimize.c (tree_rest_of_compilation): Use
6515 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
6516
cfc20f00
UB
65172010-09-02 Uros Bizjak <ubizjak@gmail.com>
6518
6519 * config/i386/i386.md (nonmemory_operand): New mode attribute.
6520 (push memory peephole2): Macroize peepholes using SWI mode iterator.
6521 (move immediate to memory peephole2): Macroize peepholes using
6522 SWI124 mode iterator.
6523 (non-pairable NOT peephole2): Macroize peepholes using SWI124
6524 mode iterator.
6525 (simple lea add peephole2): Macroize peepholes using SWI48
6526 mode iterator.
6527 (simple lea mult peephole2): Ditto.
6528 (imul by 3,5,9 to lea peephole2): Ditto.
6529 (mov $-1, reg peephole2): Macroize peepholes using SWI248
6530 mode iterator.
6531 (imul $32bit_imm,mem,reg peephole2): Ditto.
6532 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
6533
bae077dc
IB
65342010-09-02 Ian Bolton <ian.bolton@arm.com>
6535
6536 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
6537
71af27d2
OH
65382010-09-02 Olivier Hainque <hainque@adacore.com>
6539
815248b1 6540 PR middle-end/44763
71af27d2
OH
6541 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
6542 (allocno_priority_compare_func): Use it instead of a straight
6543 difference computation over priorities.
6544
e10909ce
AK
65452010-09-02 Andi Kleen <ak@linux.intel.com>
6546
6547 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
6548
e4a707c4
IR
65492010-09-02 Ira Rosen <irar@il.ibm.com>
6550
6551 * tree-vectorizer.h (get_later_stmt): New function.
6552 (vect_analyze_data_ref_dependences): Add argument.
6553 * tree-vect-loop.c (vect_analyze_loop): Update call to
6554 vect_analyze_data_ref_dependences.
6555 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
6556 New function.
6557 (vect_analyze_data_ref_dependence): Add argument for basic block
6558 dependencies. Check dependencies in basic block vectorization.
6559 (vect_analyze_data_ref_dependences): Add argument and update call to
6560 vect_analyze_data_ref_dependences.
6561 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
6562 (vect_bb_vectorizable_with_dependencies): New.
6563 (vect_slp_analyze_bb): Check dependencies in basic block.
6564 (vect_schedule_slp_instance): Insert stores before the last store in
6565 SLP instance.
6566
282ac51f
UB
65672010-09-02 Uros Bizjak <ubizjak@gmail.com>
6568
6569 PR target/45476
6570 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
6571 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
6572
596aa3f0
JJ
65732010-09-01 Jakub Jelinek <jakub@redhat.com>
6574
6575 PR middle-end/45458
6576 * bb-reorder.c (add_labels_and_missing_jumps): Treat
6577 bbs ending with throwing insns like blocks ending with a call.
6578 (fix_up_fall_thru_edges): Likewise.
6579
cd34bbe8
NF
65802010-09-01 Nathan Froyd <froydnj@codesourcery.com>
6581
6582 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
6583 (m32c_function_arg_advance): Delete.
6584 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6585 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
6586 comments. Take a const_tree and a bool. Declare.
6587 (m32c_function_arg_advance): Likewise.
6588 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6589
cecab05b
UB
65902010-09-01 Uros Bizjak <ubizjak@gmail.com>
6591
cb1b497e
UB
6592 PR target/45476
6593 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
cecab05b 6594 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
cb1b497e 6595 * config/i386/mingw32.h: ... here.
cecab05b 6596
427eb57d
AK
65972010-09-01 Andi Kleen <ak@linux.intel.com>
6598
cecab05b
UB
6599 PR lto/45475
6600 * lto-streamer-in.c (lto_input_ts_target_option): Add.
6601 (lto_input_tree_pointers): Call lto_input_ts_target_option.
cb1b497e 6602 * lto-streamer-out (lto_output_ts_target_option): Add.
cecab05b 6603 (lto_output_tree_pointers): Call lto_output_ts_target_option.
427eb57d 6604
d323f47e
KT
66052010-09-01 Kai Tietz <kai.tietz@onevision.com>
6606
6607 PR/target 45452
6608 * config/i386/cygwin.h: Change order of specified import libraries.
6609 * config/i386/mingw32.h: Likewise.
6610 * config/i386/t-cygwin: Likewise.
6611 * config/i386/t-mingw32: Likewise.
6612 * config/i386/t-mingw-w32: Likewise.
6613 * config/i386/t-mingw-w64: Likewise.
6614
4600a8d1
RR
66152010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6616
6617 * config/arm/neon-schedgen.ml (core): New type.
6618 (allCores): List of supported cores.
6619 (availability_table): Add supported cores.
6620 (collate_bypasses): Accept core as a parameter.
282ac51f
UB
6621 (worst_case_latencies_and_bypasses): Accept core as a parameter.
6622 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
6623 and coreStr to get tune attribute and prefix for functional units.
4600a8d1
RR
6624 (emit_bypasses): Accept core name and use it.
6625 (calculate_per_core_availability_table): New.
6626 (filter_core): New.
6627 (calculate_core_availability_table): New.
6628 (main): Use calculate_core_availablity_table.
6629 * config/arm/cortex-a8-neon.md: Update copyright year.
6630 Regenerated from ml file and merged in.
6631 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
6632 cortex_a8_neon_mrc.
6633
f6857310
IB
66342010-09-01 Ian Bolton <ian.bolton@arm.com>
6635
6636 * Makefile.in (tree-switch-conversion.o): Update dependencies.
6637
23a534a1
RG
66382010-09-01 Richard Guenther <rguenther@suse.de>
6639
6640 * alias.c (ao_ref_from_mem): Adjust.
6641 * builtins.c (get_object_alignment): Likewise.
6642 * cfgexpand.c (expand_debug_expr): Likewise.
6643 * gimple.c (get_base_address): Likewise.
6644 * tree-dfa.c (get_ref_base_and_extent): Likewise.
6645 (get_addr_base_and_unit_offset): Likewise. Fix for
6646 both TMR_SYMBOL and TMR_BASE being set.
6647 * tree-eh.c (tree_could_trap_p): Likewise.
6648 * gimplify.c (gimplify_expr): Do not attempt to gimplify
6649 TMR_SYMBOL. Always gimplify TMR_BASE.
6650 * tree-cfg.c (verify_types_in_gimple_reference): Verify
6651 TMR_BASE if there is a TMR_SYMBOL.
6652 * tree-pretty-print.c (dump_generic_node): Adjust.
6653 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
6654 (tree_mem_ref_addr): Likewise.
6655 (create_mem_ref_raw): Likewise.
6656 (move_fixed_address_to_symbol): Likewise.
6657 (create_mem_ref): Likewise.
6658 (dump_mem_address): Likewise.
6659 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
6660 Fix for both TMR_SYMBOL and TMR_BASE being set.
6661 (indirect_refs_may_alias_p): Likewise.
6662 * tree-ssa-operands.c (get_tmr_operands): Adjust.
6663 * tree.def (TARGET_MEM_REF): Adjust documentation.
6664
d8b08ecd
UB
66652010-09-01 Uros Bizjak <ubizjak@gmail.com>
6666
6667 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
6668 Rename from X86_TUNE_ADD_ESP_4.
6669 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
6670 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
6671 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
6672 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
6673 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
6674 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
6675 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
6676 * config/i386/i386.c (initial_ix86_tune_features)
6677 <X86_TUNE_SINGLE_POP>: Invert members.
6678 <X86_TUNE_DOUBLE_POP>: Ditto.
6679 <X86_TUNE_SINGLE_PUSH>: Ditto.
6680 <X86_TUNE_DOUBLE_PUSH>: Ditto.
6681 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
6682 No longer exported.
6683 (push peephole2 patterns): Macroize peepholes using P mode iterator.
6684 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
6685 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
6686 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
6687
558af7ca
EB
66882010-09-01 Eric Botcazou <ebotcazou@adacore.com>
6689
6690 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
6691 a volatile LHS if the constructor has only one element.
6692
6e0833db
MP
66932010-09-01 Mikael Pettersson <mikpe@it.uu.se>
6694
558af7ca
EB
6695 PR bootstrap/45321
6696 * tree.c (stdarg_p): Make fntype parameter const.
6697 * tree.h (stdarg_p): Likewise.
6698 (function_args_iterator): Remove unused fntype field.
6699 (function_args_iter_init): Do not initialize fntype
d8b08ecd 6700 field. Make fntype parameter const.
6e0833db 6701
e3488283
RG
67022010-09-01 Richard Guenther <rguenther@suse.de>
6703
6704 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
6705 estimate.
d8b08ecd 6706 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
e3488283
RG
6707 (execute_vrp): Compute number of iteration estimates.
6708 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
6709 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
6710 * tree-data-ref.c (estimated_loop_iterations): Adjust.
6711 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
d8b08ecd 6712 Infer loop bounds from undefined behavior based on a new parameter.
e3488283
RG
6713 (estimate_numbers_of_iterations): Likewise.
6714 (scev_probably_wraps_p): Adjust.
6715 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
6716
a21eaf5e
NC
67172010-09-01 Nick Clifton <nickc@redhat.com>
6718
6719 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
6720 where appropriate.
6721 (xstormy16_legitimate_address_p): Use true and false instead of 1
6722 and 0.
6723 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
6724 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
6725 magic constant 2.
6726 (xstormy16_expand_call): Fix comment at start of function.
6727
e14ca1ce
NC
67282010-09-01 Nick Clifton <nickc@redhat.com>
6729
6730 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
6731 when pushing accumulator register.
6732 (rx_get_stack_layout): Always save call clobbered registers inside
6733 interrupt handlers.
6734 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
6735
d78552bd
UB
67362010-09-01 Uros Bizjak <ubizjak@gmail.com>
6737
6738 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
6739 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
6740
6741 * libgcc-std.ver (GCC_4.6.0): Define version.
6742
0c1bebc4
EB
67432010-08-31 Eric Botcazou <ebotcazou@adacore.com>
6744
6745 * tree-nested.c (convert_all_function_calls): Iterate until after the
6746 sum of static chains in the nest doesn't change.
6747
0e607518
AS
67482010-08-31 Anatoly Sokolov <aesok@post.ru>
6749
6750 * config/m32c/m32c.c (classes_intersect): Remove.
6751 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
6752 reg_classes_intersect_p instead of classes_intersect.
6753 (class_can_hold_mode): Change arguments type from enum reg_class to
6754 reg_class_t. Use reg_class_contents instead of class_contents.
6755 (m32c_register_move_cost): Make static. Change arguments type from
6756 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
6757 classes_intersect. Use reg_class_contents instead of class_contents.
6758 (m32c_memory_move_cost): Make static. Change arguments type from
6759 enum reg_class to reg_class_t.
6760 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
6761 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
6762 * config/m32c/m32c-protos.h (m32c_register_move_cost,
6763 m32c_memory_move_cost): Remove.
6764
9c6a2bee
NF
67652010-08-31 Nathan Froyd <froydnj@codesourcery.com>
6766
6767 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
6768 (arm_function_arg): Delete.
6769 (arm_needs_doubleword_align): Take a const_tree.
6770 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6771 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
6772 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
6773 (arm_function_arg): Make static. Take a const_tree and a bool.
6774 (arm_function_arg_advance): Likewise.
6775 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6776
d78552bd 67772010-08-31 Andi Kleen <ak@linux.intel.com>
a478ffff
AK
6778
6779 * common.opt (fwhopr=): Update for -fwhopr=jobserver
6780 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
6781 * lto-wrapper.c (run_gcc): Add jobserver mode.
6782 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
6783 argument.
6784
7d2c38c0
UB
67852010-08-31 Uros Bizjak <ubizjak@gmail.com>
6786
6787 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
6788 (popsi1): Ditto.
6789 (*popdi1_epilogue): Ditto.
6790 (*popsi1_epilogue): Ditto.
6791 (popsi, popdi peephole2 patterns): Update peepholes for changed
6792 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
6793
6794 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
6795 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
6796
6797 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
6798 (override_options): Do not initialize removed ix86_gen_pop1.
6799 (gen_pop): New static function.
6800 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
6801 (release_scratch_register_on_entry): Ditto.
6802 (ix86_restore_reg_using_pop): Ditto.
6803 (ix86_expand_epilogue): Ditto.
6804
0f643366
JJ
68052010-08-31 Jakub Jelinek <jakub@redhat.com>
6806
6807 PR middle-end/45461
6808 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
6809
08350106
NF
68102010-08-31 Nathan Froyd <froydnj@codesourcery.com>
6811
6812 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
6813 semicolons.
6814
6cea734d
FXC
68152010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6816
6817 * doc/extend.texi: Fix documentation of the return value of
6818 __builtin_choose_expr.
6819
74a3d2c3
NF
68202010-08-31 Nathan Froyd <froydnj@codesourcery.com>
6821
6822 * config/v850/v850-protos.h (function_arg): Delete.
6823 * config/v850/v850.h (FUNCTION_ARG): Delete.
6824 (FUNCTION_ARG_ADVANCE): Move code to...
6825 * config/v850/v850.c (v850_function_arg_advance): ...here.
6826 (v850_function_arg): Make static. Take a const_tree and a bool.
6827 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6828
6fadd9bb
NF
68292010-08-31 Nathan Froyd <froydnj@codesourcery.com>
6830
6831 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
6832 these...
6833 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
6834 ...and these...
6835 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
6836 ..to here..
6837 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
6838 ...and here.
6839 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6840
3968a1c0
NF
68412010-08-31 Nathan Froyd <froydnj@codesourcery.com>
6842
6843 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
6844 Delete.
6845 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6846 * config/rx/rx.c (rx_function_arg_size): Make static.
6847 (rx_function_arg): Likewise.
6848 (rx_function_arg_advance): New function.
6849 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6850
4546a2ef
JT
68512010-08-31 John Tytgat <John.Tytgat@aaug.net>
6852
6853 * config/arm/arm.c (arm_override_options): Remove superfluous test.
6854 Fix indentation.
6855
658af27d
EB
68562010-08-31 Eric Botcazou <ebotcazou@adacore.com>
6857
6858 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
6859 (dwarf2out_decl) <CONST_DECL>: Likewise.
6860
d3c12306
EB
68612010-08-30 Eric Botcazou <ebotcazou@adacore.com>
6862
6863 Stack usage support
6864 * common.opt (-fstack-usage): New option.
6865 * doc/invoke.texi (Debugging options): Document it.
6866 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
6867 allocate_dynamic_stack_space.
6868 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
6869 and propagate it to allocate_dynamic_stack_space.
6870 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
6871 * calls.c (initialize_argument_information): Pass TRUE as 4th
6872 argument to allocate_dynamic_stack_space.
6873 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
6874 to 1 when pushing a variable-sized argument onto the stack. Pass
6875 TRUE as 4th argument to allocate_dynamic_stack_space.
6876 Update current_function_pushed_stack_size.
6877 (emit_library_call_value_1): Likewise.
6878 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
6879 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
6880 attempt to find an upper bound. Remove redundant code for the
6881 SETJMP_VIA_SAVE_AREA case.
6882 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
6883 * function.h (struct stack_usage): New structure.
6884 (current_function_static_stack_size): New macro.
6885 (current_function_dynamic_stack_size): Likewise.
6886 (current_function_pushed_stack_size): Likewise.
6887 (current_function_dynamic_alloc_count): Likewise.
6888 (current_function_has_unbounded_dynamic_stack_size): Likewise.
6889 (current_function_allocates_dynamic_stack_space): Likewise.
6890 (struct function): Add new field 'su'.
6891 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
6892 add the value of the dynamic offset to the dynamic stack usage.
6893 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
6894 for variable-sized objects.
6895 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
6896 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
6897 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
6898 BUILT_IN_ALLOCA for variable-sized objects.
6899 * output.h (output_stack_usage): Declare.
6900 * toplev.c (stack_usage_file): New file pointer.
6901 (output_stack_usage): New function.
6902 (open_auxiliary_file): Likewise.
6903 (lang_dependent_init): Open file if flag_stack_usage is set.
6904 (finalize): Close file if stack_usage_file is not null.
6905 * tree.h (ALLOCA_FOR_VAR_P): New macro.
6906 * config/alpha/alpha.c (compute_frame_size): New function.
6907 (alpha_expand_prologue): Use it.
6908 (alpha_start_function): Likewise.
6909 (alpha_expand_epilogue): Likewise. Set stack usage info.
6910 * config/i386/i386.c (ix86_expand_prologue): Likewise.
6911 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
6912 * config/mips/mips.c (mips_expand_prologue): Likewise.
6913 * config/pa/pa.c (hppa_expand_prologue): Likewise.
6914 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6915 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6916
1987baa3
ZD
69172010-08-30 Zdenek Dvorak <ook@ucw.cz>
6918
6919 PR tree-optimization/45427
6920 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
6921 Handle the case that the exit is never taken correctly.
6922 (number_of_iterations_ne): Pass exit_must_be_taken to
6923 number_of_iterations_ne_max.
6924
d3c12306 69252010-08-30 Catherine Moore <clm@codesourcery.com>
037f9973
CM
6926
6927 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
6928 Infer -mdspr2 for the the 74K.
6929
f2b11865
JJ
69302010-08-30 Jakub Jelinek <jakub@redhat.com>
6931
b0268cc0
JJ
6932 PR debug/45419
6933 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
6934
f2b11865
JJ
6935 PR middle-end/45423
6936 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
6937 and TRUTH_{AND,OR,XOR}_EXPR.
6938 * c-parser.c (c_parser_omp_atomic): Handle boolean
6939 {PRE,POST}_{INC,DEC}REMENT.
6940
626a4b31
NF
69412010-08-30 Nathan Froyd <froydnj@codesourcery.com>
6942
6943 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
6944 (function_arg): Delete.
6945 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6946 (FUNCTION_INCOMING_ARG): Delete.
6947 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
d78552bd 6948 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
626a4b31
NF
6949 and a bool.
6950 (function_arg): Rename to...
6951 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
6952 a bool.
6953 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
6954 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6955 (TARGET_FUNCTION_INCOMING_ARG): Define.
6956
2e481a2f
RG
69572010-08-30 Richard Guenther <rguenther@suse.de>
6958
6959 PR tree-optimization/21602
6960 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
6961 using points-to information.
6962
a95054c1
L
69632010-08-30 H.J. Lu <hongjiu.lu@intel.com>
6964
6965 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
6966
525fb35c
RG
69672010-08-30 Richard Guenther <rguenther@suse.de>
6968
6969 PR tree-optimization/45449
6970 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
6971 variables.
6972
184eb658
JM
69732010-08-30 Joseph Myers <joseph@codesourcery.com>
6974
6975 * opts.h (CL_ERR_NEGATIVE): Define.
6976 * opts.c (unknown_option_callback): Don't postpone warnings for
6977 options marked with CL_ERR_NEGATIVE.
6978 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
6979 for negative versions of CL_REJECT_NEGATIVE options.
6980
9552aca7
UB
69812010-08-30 Uros Bizjak <ubizjak@gmail.com>
6982
6983 * config/i386/i386.md (zero_extendsidi2_1): Rename from
6984 zero_extendsidi2_32.
6985 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
6986 using SWI12 mode iterator.
6987 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
6988 to define_insn_and_split pattern.
6989 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
6990 using SWI24 mode iterator.
6991 (*zero_extendqi<mode>2_and): Macroize insn from
6992 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
6993 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
6994 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
6995 SWI24 mode iterator.
6996 (*zero_extendqi<mode>2_movzbl): Ditto from
6997 *zero_extendqi{hi,si}2_movzbl.
6998 (extendsidi2_1): Rename from extendsidi2_32.
6999 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
7000 SWI12 mode iterator.
7001
33620355
EB
70022010-08-29 Eric Botcazou <ebotcazou@adacore.com>
7003
7004 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
7005 general purpose registers.
7006 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
7007 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
7008 with general purpose registers and memory operands. Add associated
7009 CCImode post-reload splitter.
7010 * config/ia64/div.md: Change BImode to CCImode throughout.
7011
bf321310
EB
70122010-08-28 Eric Botcazou <ebotcazou@adacore.com>
7013
7014 * config/ia64/ia64.md (cstorebi4): Fix thinko.
7015
74164603 70162010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
179ba6b8
HS
7017
7018 * config/picochip/picochip.c (reorder_var_tracking_notes): This
7019 function was dropping debug insns which caused PR45299.
ee9dd92e 7020
179ba6b8 70212010-08-28 Uros Bizjak <ubizjak@gmail.com>
bf321310 7022
ee9dd92e
UB
7023 * config/i386/sse.md (extsuffix): New code attribute.
7024 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
7025 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
7026 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
7027 and sse4_1_zero_extendv4qiv4si2.
7028 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
7029 and sse4_1_zero_extendv2qiv2di2.
7030 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
7031 and sse4_1_zero_extendv4hiv4si2.
7032 (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
7033 and sse4_1_zero_extendv2hiv2di2.
7034 (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
7035 and sse4_1_zero_extendv2siv2di2
7036
7037 (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
7038 using any_extend code iterator.
7039 (*avx_<s>mulv8hi3_highpart): Macroize insn from
7040 *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
7041 (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
7042
7043 * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
7044 gen_sse4_1_sign_extend* functions.
7045 (struct builtin_description bdesc_args): Ditto.
7046
f06e400f
XDL
70472010-08-27 Xinliang David Li <davidxl@google.com>
7048
7049 PR/45422
7050 * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
7051 (iv_ca_set_no_cp): Update used inv expr count.
7052 (iv_ca_set_cp): Ditto.
7053 (iv_ca_new): Initialize new member.
7054 (iv_ca_free): Free memory.
7055
b64336b8
NF
70562010-08-27 Nathan Froyd <froydnj@codesourcery.com>
7057
7058 * config/sh/sh-protos.h (sh_function_arg): Delete.
7059 (sh_function_arg_advance): Delete.
7060 * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7061 (PASS_IN_REG_P): Eliminate cast.
7062 * config/sh/sh.c (sh_function_arg_advance): Make static. Take a
7063 const_tree and a bool.
7064 (sh_function_arg): Likewise.
7065 (sh_output_mi_thunk): Call sh_function_arg_advance) and
7066 sh_function_arg.
7067 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7068
91a19652
N
70692010-08-27 Naveen H.S <naveen.S@kpitcummins.com>
7070 Kaz Kojima <kkojima@gcc.gnu.org>
7071
7072 * config/sh/sh.c (push_regs): Emit movml for interrupt handler
7073 when possible.
7074 (sh_expand_epilogue): Likewise.
7075 * config/sh/sh.md (movml_push_banked): New insn.
7076 (movml_pop_banked): Likewise.
7077
c1cb371a
BS
70782010-08-28 Bernd Schmidt <bernds@codesourcery.com>
7079
7080 * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
7081 gen_regexp_oneof, gen_regexp_sequence): Use the string found
7082 in vector element 0 rather than the original string when there's
7083 only one element.
7084 (gen_regexp): Remove extra semicolon.
7085
f8045c41
BS
7086 * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
7087 thumb2_movsf_vfp): Set attribute "insn".
7088 * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
7089 not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
7090 thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
7091 arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
7092 arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
7093 thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
7094 thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
7095 movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
7096 if_not_move, if_shift_move, if_move_shift, if_shift_shift,
7097 if_not_arith, if_arith_not, cond_move_not): Likewise.
7098
7042fe5e
MM
70992010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7100
7101 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
7102 New declaration.
7103 (rs6000_allocate_stack_temp): Ditto.
7104 (rs6000_expand_convert_si_to_sfdf): Ditto.
7105
7106 * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
7107 line. Update the options set if power6 or power7 server/embedded
7108 type options are used. If we give a warning for no vsx under
7109 -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
7110 (rs6000_allocate_stack_temp): New function to allocate a stack
7111 tempoary and adjust the address so it meets either REG+OFFSET or
7112 REG+REG addressing requirements.
7113 (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
7114 that they can be used with the LFIWAX/LFIWZX instrucitons.
7115 (rs6000_expand_convert_si_to_sfdf): New helper funciton for
7116 converting signed/unsigned SImode to either SFmode/DFmode.
7117
7118 * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
7119 whether certain instructions can be generated.
7120 (TARGET_FCTIDZ): Ditto.
7121 (TARGET_STFIWX): Ditto.
7122 (TARGET_LFIWAX): Ditto.
7123 (TARGET_LFIWZX): Ditto.
7124 (TARGET_FCFIDS): Ditto.
7125 (TARGET_FCFIDU): Ditto.
7126 (TARGET_FCFIDUS): Ditto.
7127 (TARGET_FCTIDUZ): Ditto.
7128 (TARGET_FCTIWUZ): Ditto.
7129
7130 * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
7131 (UNSPEC_FCTID): Ditto.
7132 (UNSPEC_LFIWAX): Ditto.
7133 (UNSPEC_LFIWZX): Ditto.
7134 (UNSPEC_FCTIWUZ): Ditto.
7135 (rreg): Use correct constraints.
7136 (SI_CONVERT_FP): New mode attribute for floating point conversion
7137 tests.
7138 (E500_CONVERT): Ditto.
7139 (lfiwax): New insns for converting from integer to floating point
7140 utilizing newer instructions. Attempt to optimize conversions
7141 that come from memory so that we don't load the value into a GPR,
7142 spill it to the stack and reload it into a FPR.
7143 (floatsi<mode>2_lfiwax): Ditto.
7144 (floatsi<mode>2_lfiwax_mem): Ditto.
7145 (floatsi<mode>2_lfiwax_mem2): Ditto.
7146 (lfiwzx): Ditto.
7147 (floatunssi<mode>2_lfiwzx): Ditto.
7148 (floatunssi<mode>2_lfiwzx_mem): Ditto.
7149 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
7150 (floatdidf2_mem): Ditto.
7151 (floatunsdidf2_fcfidu): Ditto.
7152 (floatunsdidf2_mem): Ditto.
7153 (floatunsdisf2): Ditto.
7154 (floatunsdisf2_fcfidus): Ditto.
7155 (floatunsdisf2_mem): Ditto.
7156 (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
7157 Use FCFID on 32-bit hosts that support it.
7158 (floatsidf2_internal): Ditto.
7159 (floatunssisf2): Ditto.
7160 (floatunssidf2): Ditto.
7161 (floatunssidf2_internal): Ditto.
7162 (floatsisf2): Ditto.
7163 (floatdidf2): Ditto.
7164 (floatdidf2_fpr): Ditto.
7165 (floatunsdidf2): Ditto.
7166 (floatdisf2): Ditto.
7167 (floatdisf2_fcfids): Ditto.
7168 (floatdisf2_internal1): Ditto.
7169 (fixuns_truncsfsi2): Delete, merge into common pattern for both
7170 SF/DF. Add power7 support.
7171 (fix_truncsfsi2): Ditto.
7172 (fixuns_truncdfsi2): Ditto.
7173 (fixuns_truncdfdi2): Ditto.
7174 (fix_truncdfsi2): Ditto.
7175 (fix_truncdfsi2_internal): Ditto.
7176 (fix_truncdfsi2_internal_gfxopt): Ditto.
7177 (fix_truncdfsi2_mfpgpr): Ditto.
7178 (fctiwz): Ditto.
7179 (btruncdf2): Ditto.
7180 (btruncdf2_fpr): Ditto.
7181 (btructsf2): Ditto.
7182 (ceildf2): Ditto.
7183 (ceildf2_fpr): Ditto.
7184 (ceilsf2): Ditto.
7185 (floordf2): Ditto.
7186 (floordf2_fpr): Ditto.
7187 (floorsf2): Ditto.
7188 (rounddf2): Ditto.
7189 (rounddf2_fpr): Ditto.
7190 (roundsf2): Ditto.
7191 (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
7192 (fix_trunc<mode>di2): Ditto.
7193 (fixuns_trunc<mode>si2): Ditto.
7194 (fixuns_trunc<mode>di2): Ditto.
7195 (fctiwz_<mode>): Ditto.
7196 (btrunc<mode>2): Ditto.
7197 (btrunc<mode>2_fpr): Ditto.
7198 (ceil<mode>2): Ditto.
7199 (ceil<mode>2_fpr): Ditto.
7200 (floor<mode>2): Ditto.
7201 (float<mode>2_fpr): Ditto.
7202 (round<mode>2): Ditto.
7203 (round<mode>2_fpr): Ditto.
7204 (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
7205 (fixuns_trunc<mode>si2_stfiwx): Ditto.
7206 (fix_truncdfsi2_internal): Ditto.
7207 (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
7208 converted value on stack, loaded into GPR, and then stored into
7209 the final destination.
7210 (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
7211 FCTIDZ.
7212 (lrint<mode>di2): New insn, provide the lrint builtin functions.
7213 (ftruncdf2): Delete, unused.
7214 (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
7215
7216 * config/rs6000/vsx.md (toplevel): Update copyright year.
7217 (VSr2): Use "ws" contraint for DFmode, not "!r#r".
7218 (VSr3): Ditto.
6ba2db5e
BS
7219
72202010-08-27 Basile Starynkevitch <basile@starynkevitch.net>
7d2c38c0 7221 Jeremie Salvucci <jeremie.salvucci@free.fr>
6ba2db5e 7222
7d2c38c0 7223 * gengtype.c (output_type_enum): Test the right union member.
6ba2db5e 7224
83d58961
UB
72252010-08-27 Uros Bizjak <ubizjak@gmail.com>
7226
7227 PR target/41484
7228 * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
7229 operands for operand 1.
7230 (sse4_1_extendv4qiv4si2): Ditto.
7231 (sse4_1_extendv2qiv2di2): Ditto.
7232 (sse4_1_extendv4hiv4si2): Ditto.
7233 (sse4_1_extendv2hiv2di2): Ditto.
7234 (sse4_1_extendv2siv2di2): Ditto.
7235 (sse4_1_zero_extendv8qiv8hi2): Ditto.
7236 (sse4_1_zero_extendv4qiv4si2): Ditto.
7237 (sse4_1_zero_extendv2qiv2di2): Ditto.
7238 (sse4_1_zero_extendv4hiv4si2): Ditto.
7239 (sse4_1_zero_extendv2hiv2di2): Ditto.
7240 (sse4_1_zero_extendv2siv2di2): Ditto.
7241 (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
7242 (*sse4_1_extendv4qiv4si2): Ditto.
7243 (*sse4_1_extendv2qiv2di2): Ditto.
7244 (*sse4_1_extendv4hiv4si2): Ditto.
7245 (*sse4_1_extendv2hiv2di2): Ditto.
7246 (*sse4_1_extendv2siv2di2): Ditto.
7247 (*sse4_1_zero_extendv8qiv8hi2): Ditto.
7248 (*sse4_1_zero_extendv4qiv4si2): Ditto.
7249 (*sse4_1_zero_extendv2qiv2di2): Ditto.
7250 (*sse4_1_zero_extendv4hiv4si2): Ditto.
7251 (*sse4_1_zero_extendv2hiv2di2): Ditto.
7252 (*sse4_1_zero_extendv2siv2di2): Ditto.
7253
c8717ea3
NF
72542010-08-27 Nathan Froyd <froydnj@codesourcery.com>
7255
7256 * config/mips/mips-protos.h (mips_function_arg_advance): Delete
7257 (mips_function_arg): Delete.
7258 (mips_function_arg_boundary): Take a const_tree.
7259 * config/mips/mips.c (mips_function_arg_boundary): Likewise.
7260 (mips_arg_info): Likewise.
7261 (mips_setup_incoming_varargs): Call mips_function_arg_advance
7262 instead of FUNCTION_ARG_ADVANCE.
7263 (mips_function_arg_advance): Adjust prototype. Make static.
7264 (mips_function_arg): Likewise.
7265 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7266 * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
7267
7c8232a2
NF
72682010-08-27 Nathan Froyd <froydnj@codesourcery.com>
7269
7270 * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
7271 * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
7272 (function_arg): Delete.
7273 (function_arg_boundary): Take a const_tree.
7274 * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
7275 (rs6000_spe_function_arg): Likewise.
7276 (rs6000_parm_start): Likewise.
7277 (rs6000_arg_size): Likewise.
7278 (rs6000_darwin64_record_arg_advance_recurse): Likewise.
83d58961 7279 (rs6000_darwin64_record_arg): Likewise. Take a bool instead of an int.
7c8232a2
NF
7280 (rs6000_mixed_function_arg): Likewise.
7281 (function_arg): Rename to...
7282 (rs6000_function_arg): ...this.
7283 (function_arg_advance): Rename to...
7284 (rs6000_function_arg_advance_1): ...this
7285 (rs6000_function_arg_advance): New function. Call it.
7286 (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
7287 (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
7288 (rs6000_function_value): Likewise.
7289 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
7290
da787dec
RR
72912010-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7292
7293 * config/arm/arm.md (enabled): Test the value of arch_enabled
ee9dd92e 7294 rather than just using it.
da787dec 7295
d32f725a 72962010-08-27 Olivier Hainque <hainque@adacore.com>
ee9dd92e 7297 Eric Botcazou <ebotcazou@adacore.com>
d32f725a
OH
7298
7299 * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
7300 cover all the possible offsets from this base.
7301 (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
7302
9e3920e9
JJ
73032010-08-26 Jakub Jelinek <jakub@redhat.com>
7304
7305 PR tree-optimization/44485
7306 * calls.c (flags_from_decl_or_type): For const or pure
7307 noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
7308 together with ECF_CONST resp. ECF_PURE.
7309 * builtins.c (expand_builtin): Use flags_from_decl_or_type
7310 instead of querying flags directly.
7311 * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
7312 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
7313
4be4cd6d
RG
73142010-08-26 Richard Guenther <rguenther@suse.de>
7315
7316 PR tree-optimization/45255
83d58961
UB
7317 * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
7318 and externals are also invariant.
4be4cd6d 7319
932c9bff
JJ
73202010-08-25 Jakub Jelinek <jakub@redhat.com>
7321
ea9f1d6f
JJ
7322 PR rtl-optimization/44858
7323 * combine.c (try_combine): If recog_for_combine added CLOBBERs to
7324 newi2pat, make sure they don't affect newpat.
7325
932c9bff
JJ
7326 PR rtl-optimization/45400
7327 * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
7328 SUBREG_REG if both modes are of MODE_INT class.
7329
d8099dd8
JB
73302010-08-25 Julian Brown <julian@codesourcery.com>
7331
7332 * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
7333 * config/arm/arm.md (generic_sched): No for Cortex-A5.
7334 (generic_vfp): Likewise.
7335 (cortex-a5.md): Include.
7336 * config/arm/cortex-a5.md: New.
7337
0ceb0201
RG
73382010-08-25 Richard Guenther <rguenther@suse.de>
7339
83d58961 7340 * alias.c (get_alias_set): Assign a single alias-set to all pointers.
0ceb0201
RG
7341 * gimple.c (gimple_get_alias_set): Remove special handling
7342 for pointers.
7343
4942fc56
BS
73442010-08-25 Bernd Schmidt <bernds@codesourcery.com>
7345
7346 PR middle-end/45355
7347 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
7348 dead_or_set_p when computing i0_feeds_i2_n.
7349
0cdf7b49
BS
7350 * combine.c (find_split_point): Undo canonicalization of multiply-add
7351 to (minus x (mult)) when it seems likely that this will increase the
7352 chances of a split.
7353
1cf01301
RG
73542010-08-25 Richard Guenther <rguenther@suse.de>
7355
7356 PR lto/44562
7357 * lto-streamer.c (lto_record_common_node): Do not mess with
7358 TYPE_CANONICAL when not in lto.
7359 * gimple.c (gimple_register_type): Likewise.
7360
a2c0ed2e
RG
73612010-08-25 Richard Guenther <rguenther@suse.de>
7362
7363 PR tree-optimization/45316
7364 * tree-ssa-pre.c (eliminate): Properly clean EH info.
7365
90bc1cb8
RG
73662010-08-25 Richard Guenther <rguenther@suse.de>
7367
7368 PR tree-optimization/45393
7369 * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
7370 and clean EH info. Avoid SSA update.
7371 (execute_cse_sincos): Cleanup the CFG if it has changed.
7372
9407f6bc
RG
73732010-08-25 Richard Guenther <rguenther@suse.de>
7374
7375 PR middle-end/45379
7376 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
7377 TARGET_MEM_REF in alignment computation.
7378
ca046f7f
JJ
73792010-08-25 Jakub Jelinek <jakub@redhat.com>
7380
7381 PR tree-optimization/45059
7382 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
7383 type conversions from newop{1,2}. Assert t is a comparison and
7384 newop{1,2} after the stripping are gimple vals.
7385
46b57af1
TB
73862010-08-25 Tejas Belagod <tejas.belagod@arm.com>
7387
7388 * config/arm/iterators.md (VU, SE, V_widen_l): New.
7389 (V_unpack, US): New.
83d58961 7390 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
46b57af1
TB
7391 (vec_unpack<US>_lo_<mode>): Likewise.
7392 (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
7393 (neon_vec_unpack<US>_lo_<mode>): Likewise.
7394 (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
7395 (vec_widen_<US>mult_hi_<mode>): Likewise.
7396 (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
7397 (neon_vec_<US>mult_hi_<mode>"): Likewise.
7398 (neon_unpack<US>_<mode>): Widening move intermediate step for
7399 vectorizing without -mvectorize-with-neon-quad.
7400 (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
7401 for vectorizing without -mvectorize-with-neon-quad.
7402 * config/arm/predicates.md (vect_par_constant_high): Check for
7403 high-half lanes of a vector.
7404 (vect_par_constant_low): Check for low-half lanes of a vector.
7405
4b9c23ea
SP
74062010-08-24 Sebastian Pop <sebastian.pop@amd.com>
7407
7408 * tree-if-conv.c (struct ifc_dr): New.
7409 (IFC_DR): New.
7410 (DR_WRITTEN_AT_LEAST_ONCE): New.
7411 (DR_RW_UNCONDITIONALLY): New.
7412 (memref_read_or_written_unconditionally): Use the cached values
7413 when possible.
7414 (write_memref_written_at_least_once): Same.
7415 (if_convertible_loop_p): Initialize and free DR->aux fields.
7416
e1fd038a
SP
74172010-08-24 Sebastian Pop <sebastian.pop@amd.com>
7418
7419 * gimple.c (gimple_could_trap_p_1): Not static anymore.
7420 Pass an extra bool parameter include_mem.
7421 (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
7422 (gimple_assign_rhs_could_trap_p): Same.
7423 * gimple.h (gimple_could_trap_p_1): Declared.
7424 * tree-data-ref.h (same_data_refs_base_objects): New.
7425 (same_data_refs): New.
7426 * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
7427 (write_memrefs_written_at_least_once): New.
7428 (ifcvt_memrefs_wont_trap): New.
7429 (operations_could_trap): New.
7430 (ifcvt_could_trap_p): New.
7431 (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
7432 Gets a vector of data refs.
7433 (if_convertible_stmt_p): Same.
7434 (if_convertible_loop_p_1): New.
7435 (if_convertible_loop_p): Call if_convertible_loop_p_1.
7436
bd544141
SP
74372010-08-24 Sebastian Pop <sebastian.pop@amd.com>
7438
7439 * common.opt (ftree-loop-if-convert-stores): New flag.
7440 * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
7441 * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI. Insert
7442 the created statement before GSI.
7443 (if_convertible_phi_p): Allow virtual phi nodes when
7444 flag_loop_if_convert_stores is set.
7445 (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
7446 Do not handle types that do not match is_gimple_reg_type.
7447 Remove loop and bb parameters. Call gimple_could_trap_p instead of
7448 when flag_loop_if_convert_stores is set, as LHS can contain
7449 memory refs.
7450 (if_convertible_stmt_p): Remove loop and bb parameters. Update calls
7451 to if_convertible_gimple_assign_stmt_p.
7452 (if_convertible_loop_p): Update call to if_convertible_stmt_p.
7453 (replace_phi_with_cond_gimple_assign_stmt): Renamed
7454 predicate_scalar_phi. Do not handle virtual phi nodes.
7455 (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
7456 Call predicate_scalar_phi.
7457 (insert_gimplified_predicates): Insert the gimplified predicate of a BB
7458 just after the labels for flag_loop_if_convert_stores, otherwise
7459 insert the predicate in the end of the BB.
7460 (predicate_mem_writes): New.
7461 (combine_blocks): Call predicate_all_scalar_phis. When
7462 flag_loop_if_convert_stores is set, call predicate_mem_writes.
7463 (tree_if_conversion): Call mark_sym_for_renaming when
7464 flag_loop_if_convert_stores is set.
7465 (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
7466 flag_loop_if_convert_stores is set.
7467
8a5b8538
AS
74682010-08-24 Anatoly Sokolov <aesok@post.ru>
7469
7470 * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
7471 pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
7472 (pa_function_value): Make static.
7473 (override_options): Rename to...
7474 (pa_option_override): ...this. Make static.
7475 (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
7476 TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
7477 TARGET_OPTION_OVERRIDE): Define.
7478 * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
7479 LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
7480 Remove.
7481 * config/pa/pa-protos.h (override_options): Remove.
7482
d15adbeb
RG
74832010-08-24 Richard Guenther <rguenther@suse.de>
7484
7485 PR middle-end/45379
7486 * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
7487 if addr->index is NULL or zero.
7488 * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
7489 TARGET_MEM_REF more properly.
7490 (indirect_ref_may_alias_decl_p): Likewise.
7491 * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
83d58961 7492 * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
d15adbeb 7493
f28f2337
AS
74942010-08-23 Anatoly Sokolov <aesok@post.ru>
7495
7496 * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
7497 (m32c_override_options): Rename to...
7498 (m32c_option_override): ...this. Make static.
7499 (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
7500 * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
7501 Remove.
7502 * config/m32c/m32c-protos.h (m32c_override_options,
7503 m32c_function_value_regno_p): Remove.
7504
756f50ce
CF
75052010-08-23 Changpeng Fang <changpeng.fang@amd.com>
7506
7507 * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
7508 Fix a typo in a previous commit.
7509
0b3f0088
KT
75102010-08-23 Kai Tietz <kai.tietz@onevision.com>
7511
7512 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
7513 Pre-initialize innerloop_iters to one.
7514
bc068a23
CF
75152010-08-23 Changpeng Fang <changpeng.fang@amd.com>
7516
7517 * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
7518 existing static function global.
7519
83d58961 7520 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
bc068a23
CF
7521 is changed to global.
7522
83d58961 7523 * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
bc068a23
CF
7524 may_be_nonaddressable_p on base, and don't collect this reference
7525 if the address of the base could not be taken.
7526
8bcc0304
MM
75272010-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7528
b36cf9d2
MM
7529 * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
7530 enable the compiler to autovectorize mathmetical functions for
7531 power7 using the Mathematical Acceleration Subsystem library.
8bcc0304 7532
b36cf9d2
MM
7533 * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
7534 handle which vector math library we have.
7535 (rs6000_override_options): Add -mveclibabi=mass support.
7536 (rs6000_builtin_vectorized_libmass): New function to handle auto
7537 vectorizing math functions that are in the MASS library.
8bcc0304
MM
7538 (rs6000_builtin_vectorized_function): Call it.
7539
b36cf9d2
MM
7540 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7541 -mveclibabi=mass.
8bcc0304 7542
8c157f90
JDA
75432010-08-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7544
7545 PR boehm-gc/34544
7546 * gthr-posix.h (__gthread_active_init): Delete.
7547 (__gthread_active_p): Do activity check here.
7548 Don't include errno.h on hppa-hpux. Update comment.
7549 * gthr-posix95.h (__gthread_active_init): Delete.
7550 (__gthread_active_p): Do activity check here.
7551 Don't include errno.h on hppa-hpux. Update comment.
7552 * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
7553 * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
7554 add -lpthread when -mt or -pthread is specified.
7555 * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
7556 (LINK_GCC_C_SEQUENCE_SPEC): Define.
7557 * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
7558 (stublib.c, pthread_default_stacksize_np-stub.o,
7559 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
7560 $(T)libgcc_stub.a): Add methods.
7561 * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
7562 (stublib.c, pthread_default_stacksize_np-stub.o,
7563 pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
7564 * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
7565 pthread_mutex_unlock): New stubs.
7566
d9d16a19
JM
75672010-08-22 Joseph Myers <joseph@codesourcery.com>
7568
7569 * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
7570 * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
7571 options.
7572 * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
7573 * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
7574 * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
7575 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
7576 * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
7577 "-l".
7578 * cppspec.c: Include opts.h.
7579 (lang_specific_driver): Use cl_decoded_option structures.
7580 * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
7581 * doc/tm.texi: Regenerate.
7582 * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
7583 (driver_handle_option): Allow driver options needing no special
7584 processing.
7585 (process_command): Decode options before call to
7586 lang_specific_driver. Pass decoded options to
7587 lang_specific_driver.
7588 * gcc.h (lang_specific_driver): Update prototype.
7589 * gccspec.c: Include opts.h.
7590 (lang_specific_driver): Use cl_decoded_option structures.
7591 * opts-common.c (option_ok_for_language, generate_option,
7592 generate_option_input_file): New.
7593 (decode_cmdline_option): Use option_ok_for_language.
7594 (decode_cmdline_options_to_array): Use generate_option_input_file.
7595 (handle_generated_option): Use generate_option.
7596 * opts.h (generate_option, generate_option_input_file): Declare.
7597
525c561d
AS
75982010-08-22 Anatoly Sokolov <aesok@post.ru>
7599
7600 * config/mips/mips.c (mips_override_options): Rename to...
7601 (mips_option_override): ...this. Make static.
7602 (TARGET_OPTION_OVERRIDE): Define.
7603 (mips_in_small_data_p): Update comment.
7604 * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
7605 (FIXED_REGISTERS): Update comment.
7606 * config/mips/mips-protos.h (mips_override_options): Remove.
7607
65f1047a
OH
76082010-08-21 Olivier Hainque <hainque@adacore.com>
7609
7610 * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
7611
b3552548
OH
76122010-08-21 Olivier Hainque <hainque@adacore.com>
7613
74025114 7614 * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
b3552548
OH
7615 ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
7616
9e97ff61
JH
76172010-08-20 Jan Hubicka <jh@suse.cz>
7618
7619 * tree-pass.h (pass_ipa_cdtor_merge): New function.
7620 * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
7621 heap allocated.
7622 (record_cdtor_fn): Move to ipa.c; do not test for
7623 have_ctors_dtors.
7624 (build_cdtor): Move to ipa.c; add code avoiding construction
7625 when target have ctors/dtors and there is only one ctor/dtor at given
7626 priority.
757fc8ed
EB
7627 (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
7628 sort; reverse order of constructors.
83d58961 7629 (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
9e97ff61
JH
7630 (cgraph_finalize_function): Do not call record_cdtor_fn.
7631 (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
7632 (cgraph_build_static_cdtor): Move to ipa.c.
7633 * ipa.c: Include target.h and tree-iterator.h.
7634 (cgraph_build_static_cdtor, static_ctors, static_dtors,
7635 record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
7636 build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
7637 pass_ipa_cdtor_merge): New.
7638 * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
757fc8ed
EB
7639 * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
7640 bounds access.
9e97ff61 7641
508e4757
JH
76422010-08-20 Jan Hubicka <jh@suse.cz>
7643
7644 PR c++/45307
7645 PR c++/17736
7646 * cgraph.h (cgraph_only_called_directly_p,
7647 cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
7648 static cdtors.
7649 * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
7650 are not needed.
7651 (cgraph_finalize_function): Static cdtors are reachable.
7652 (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
7653
f1395d4a
JH
76542010-08-20 Jan Hubicka <jh@suse.cz>
7655
757fc8ed
EB
7656 * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
7657 flag_wpa.
f1395d4a 7658 * lto-streamer-out.c (lto_output): Likewise.
83d58961
UB
7659 * passes.c (ipa_write_optimization_summaries): Initialize statement
7660 uids.
f1395d4a 7661
b4d456ff
OH
76622010-08-20 Olivier Hainque <hainque@adacore.com>
7663
7664 * tree.h (alias_diag_flags): New enum.
7665 (alias_pair): Add an 'emitted_diags' field.
7666 * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
7667 (assemble_alias): Initialize emitted_diags of new pairs.
7668
39acb18f
EB
76692010-08-20 Eric Botcazou <ebotcazou@adacore.com>
7670
7671 * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
7672 * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7673 * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
7674 (STACK_CHECK_PROTECT): Define.
7675 * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
7676 (output_probe_stack_range): Likewise.
7677 (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
7678 builtin stack checking is enabled.
7679 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
7680 * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
7681 (probe_stack_range): New insn.
7682
410841c6
L
76832010-08-20 H.J. Lu <hongjiu.lu@intel.com>
7684
7685 PR target/45336
7686 * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
7687 short first.
7688
7689 * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
7690 char first.
7691
50d724a7
JJ
76922010-08-20 Jakub Jelinek <jakub@redhat.com>
7693
7694 PR target/45336
7695 * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
7696 to cover zero extension into 64-bit register.
7697 (*sse2_pextrw): Likewise.
7698 (*sse4_1_pextrd_zext): New insn.
7699
c6d8116a
IS
77002010-08-20 Iain Sandoe <iains@gcc.gnu.org>
7701
7702 revert r163410, partially revert r163267.
7703 * config/rs6000/darwin.h (LIB_SPEC): Remove.
83d58961 7704 * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
c6d8116a 7705 Darwin versions.
83d58961 7706
994fc9ab
JJ
77072010-08-20 Jakub Jelinek <jakub@redhat.com>
7708
7709 PR middle-end/44974
7710 * builtins.c (expand_builtin): Don't optimize away
7711 calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
7712
6c334090
UB
77132010-08-20 Uros Bizjak <ubizjak@gmail.com>
7714
83d58961 7715 * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
6c334090
UB
7716 (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
7717 alternative 1 of operand 2.
7718
561da6bc
JJ
77192010-08-20 Jakub Jelinek <jakub@redhat.com>
7720 Paolo Bonzini <bonzini@gnu.org>
7721
7722 * simplify-rtx.c (simplify_unary_operation_1): Optimize
6c334090 7723 (sign_extend (zero_extend (...)) and
561da6bc
JJ
7724 ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
7725
89ad0f25
JJ
77262010-08-20 Jakub Jelinek <jakub@redhat.com>
7727
7728 PR rtl-optimization/45353
7729 * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
7730 after bb_note is a BARRIER.
7731
bf794e41
IS
77322010-08-20 Iain Sandoe <iains@gcc.gnu.org>
7733
6c334090 7734 * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
bf794e41 7735 linking libgcc.a.
6c334090 7736
521fdcda
JJ
77372010-08-20 Jakub Jelinek <jakub@redhat.com>
7738 Michael Matz <matz@suse.de>
7739
6c334090 7740 * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
521fdcda 7741
71bb2d86
NF
77422010-08-20 Nathan Froyd <froydnj@codesourcery.com>
7743
7744 * ggc-common.c (ggc_mark_root_tab): New function, split out from...
7745 (ggc_mark_roots): ...here.
7746
ac47786e
NF
77472010-08-20 Nathan Froyd <froydnj@codesourcery.com>
7748
7749 * vec.h (FOR_EACH_VEC_ELT): Define.
7750 * c-decl.c: Use it.
7751 * cfgloop.c: Likewise.
7752 * cfgloopmanip.c: Likewise.
7753 * cgraph.c: Likewise.
7754 * cgraphunit.c: Likewise.
7755 * combine.c: Likewise.
7756 * config/bfin/bfin.c: Likewise.
7757 * config/mips/mips.c: Likewise.
7758 * config/rs6000/rs6000.c: Likewise.
7759 * dbxout.c: Likewise.
7760 * df-scan.c: Likewise.
7761 * dominance.c: Likewise.
7762 * dse.c: Likewise.
7763 * dwarf2out.c: Likewise.
7764 * except.c: Likewise.
7765 * expr.c: Likewise.
7766 * function.c: Likewise.
7767 * gcse.c: Likewise.
7768 * genattr.c: Likewise.
7769 * ggc-common.c: Likewise.
7770 * gimplify.c: Likewise.
7771 * graphite-blocking.c: Likewise.
7772 * graphite-clast-to-gimple.c: Likewise.
7773 * graphite-dependences.c: Likewise.
7774 * graphite-interchange.c: Likewise.
7775 * graphite-poly.c: Likewise.
7776 * graphite-scop-detection.c: Likewise.
7777 * graphite-sese-to-poly.c: Likewise.
7778 * graphite.c: Likewise.
7779 * haifa-sched.c: Likewise.
7780 * ifcvt.c: Likewise.
7781 * implicit-zee.c: Likewise.
7782 * ipa-prop.c: Likewise.
7783 * ipa-struct-reorg.c: Likewise.
7784 * ipa.c: Likewise.
7785 * ira-build.c: Likewise.
7786 * ira-color.c: Likewise.
7787 * ira-emit.c: Likewise.
7788 * lambda-code.c: Likewise.
7789 * loop-invariant.c: Likewise.
7790 * loop-unroll.c: Likewise.
7791 * lower-subreg.c: Likewise.
7792 * lto-cgraph.c: Likewise.
7793 * lto-opts.c: Likewise.
7794 * lto-streamer-in.c: Likewise.
7795 * lto-streamer-out.c: Likewise.
7796 * lto-streamer.c: Likewise.
7797 * lto-symtab.c: Likewise.
7798 * matrix-reorg.c: Likewise.
7799 * opts.c: Likewise.
7800 * predict.c: Likewise.
7801 * print-tree.c: Likewise.
7802 * sdbout.c: Likewise.
7803 * sel-sched-dump.c: Likewise.
7804 * sel-sched-ir.c: Likewise.
7805 * sel-sched.c: Likewise.
7806 * sese.c: Likewise.
7807 * stor-layout.c: Likewise.
7808 * tree-cfg.c: Likewise.
7809 * tree-cfgcleanup.c: Likewise.
7810 * tree-chrec.c: Likewise.
7811 * tree-data-ref.c: Likewise.
7812 * tree-emutls.c: Likewise.
7813 * tree-inline.c: Likewise.
7814 * tree-into-ssa.c: Likewise.
7815 * tree-loop-distribution.c: Likewise.
7816 * tree-loop-linear.c: Likewise.
7817 * tree-mudflap.c: Likewise.
7818 * tree-outof-ssa.c: Likewise.
7819 * tree-parloops.c: Likewise.
7820 * tree-predcom.c: Likewise.
7821 * tree-pretty-print.c: Likewise.
7822 * tree-scalar-evolution.c: Likewise.
7823 * tree-ssa-live.c: Likewise.
7824 * tree-ssa-loop-im.c: Likewise.
7825 * tree-ssa-loop-ivcanon.c: Likewise.
7826 * tree-ssa-loop-ivopts.c: Likewise.
7827 * tree-ssa-loop-manip.c: Likewise.
7828 * tree-ssa-loop-niter.c: Likewise.
7829 * tree-ssa-loop-prefetch.c: Likewise.
7830 * tree-ssa-phiprop.c: Likewise.
7831 * tree-ssa-pre.c: Likewise.
7832 * tree-ssa-reassoc.c: Likewise.
7833 * tree-ssa-sccvn.c: Likewise.
7834 * tree-ssa-structalias.c: Likewise.
7835 * tree-ssa.c: Likewise.
7836 * tree-vect-data-refs.c: Likewise.
7837 * tree-vect-loop-manip.c: Likewise.
7838 * tree-vect-loop.c: Likewise.
7839 * tree-vect-patterns.c: Likewise.
7840 * tree-vect-slp.c: Likewise.
7841 * tree-vect-stmts.c: Likewise.
7842 * tree-vrp.c: Likewise.
7843 * tree.c: Likewise.
7844 * value-prof.c: Likewise.
7845 * var-tracking.c: Likewise.
7846 * varasm.c: Likewise.
7847 * vmsdbgout.c: Likewise.
7848
1f5a46fe
NS
78492010-08-19 Nathan Sidwell <nathan@codesourcery.com>
7850 Richard Guenther <richard.guenther@gmail.com>
7851
7852 * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
7853 copy the src value and return a copy.
7854 * doc/extend.texi (Volatiles): Move from C++ to C and expand.
7855 (C++ Volatiles): Adjust to describe C++ semantics only.
7856
f8fe0a4a
JM
78572010-08-20 Joseph Myers <joseph@codesourcery.com>
7858
7859 * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
7860 be zero or nonzero.
7861 * doc/tm.texi: Regenerate.
7862 * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
7863 * df-scan.c (df_get_exit_block_use_set), reginfo.c
7864 (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
7865 Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
7866 * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
7867 to 1.
7868
891aa2ec
OH
78692010-08-20 Olivier Hainque <hainque@adacore.com>
7870
7871 * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
7872 an extra nop past a sibling call at the very end.
7873
b98425da
BS
78742010-08-19 Bernd Schmidt <bernds@codesourcery.com>
7875
7876 PR bootstrap/45350
7877 * combine.c (try_combine): Initialize i1_is_used and i2_is_used. Fix
7878 a comment.
7879
29e88142
NF
78802010-08-19 Nathan Froyd <froydnj@codesourcery.com>
7881
7882 * target.def (function_arg, function_incoming_arg): Remove const
7883 qualifier on CUMULATIVE_ARGS parameter.
7884 * targhooks.h (default_function_arg, default_function_incoming_arg):
7885 Likewise.
7886 * targhooks.c (default_function_arg, default_function_incoming_arg):
7887 Likewise.
7888 * config/i386/i386.c (ix86_function_arg): Likewise.
7889
a5d8253f
JJ
78902010-08-19 Jakub Jelinek <jakub@redhat.com>
7891
7892 PR target/45336
7893 * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
7894 SIGN_EXTENDs or ZERO_EXTENDs.
7895
0524d2d6
BS
78962010-08-19 Bernd Schmidt <bernds@codesourcery.com>
7897
7898 PR target/42172
7899 * combine.c (combine_validate_cost): New arg I0. All callers changed.
7900 Take its cost into account if nonnull.
7901 (insn_a_feeds_b): New static function.
7902 (combine_instructions): Look for four-insn combinations.
7903 (can_combine_p): New args PRED2, SUCC2. All callers changed. Take
7904 them into account when computing all_adjacent and looking for other
7905 uses.
7906 (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC. All callers
7907 changed. Treat them like I1DEST and I1_NOT_IN_SRC.
7908 (try_combine): New arg I0. Handle four-insn combinations.
7909 (distribute_notes): New arg ELIM_I0. All callers changed. Treat it
7910 like ELIM_I1.
7911
ce3beba3
JM
79122010-08-19 Jason Merrill <jason@redhat.com>
7913
7914 PR c++/45307
7915 * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
7916 if ctor is empty.
7917 (gimplify_modify_expr_rhs): Adjust.
7918
fcaa4ca4
NF
79192010-08-19 Nathan Froyd <froydnj@codesourcery.com>
7920
7921 * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
7922 bitmap_bit_p.
7923 * config/bfin/bifn.c (bfin_discover_loop): Likewise.
7924 * dominance.c (iterate_fix_dominators): Likewise.
7925 * dse.c (set_usage_bits): Likewise.
7926 (set_position_unneeded, record_store): Likewise.
7927 * gimple-fold.c (get_maxval_strlen): Likewise.
7928 * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
7929 * ipa-inline.c (update_caller_keys): Likewise.
7930 * ipa-split.c (verify_non_ssa_vars): Likewise.
7931 * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
7932 (close_type_exposed_parameter, close_type_full_escape): Likewise.
7933 (close_addressof_down): Likewise.
7934 * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
7935 (setup_allocno_left_conflicts_size): Likewise.
7936 (ira_reassign_conflict_allocnos): Likewise.
7937 (ira_reassign_pseudos): Likewise.
7938 * ira-emit.c (change_loop): Likewise.
7939 * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
7940 * lto-streamer-out.c (write_symbol): Likewise.
7941 * predict.c (expr_expected_value_1): Likewise.
7942 * regstat.c (regstat_bb_compute_ri): Likewise.
7943 * sel-sched.c (create_block_for_bookkeeping): Likewise.
7944 (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
7945 * stmt.c (expand_case): Likewise.
7946 * tree-eh.c (emit_eh_dispatch): Likewise.
7947 * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
7948 * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
7949 Likewise.
7950 (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
7951 (rdg_build_components): Likewise.
7952 * tree-object-size.c (collect_object_sizes_for): Likewise.
7953 * tree-sra.c (convert_callers): Likewise.
7954 * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
7955 * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
7956 * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
7957
f1b62c9f
UB
79582010-08-19 Uros Bizjak <ubizjak@gmail.com>
7959
7960 * config/i386/i386.md (*lea_1): Use P mode iterator.
7961 (lea add splitter): Also handle DImode operands.
7962 (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
7963 predicate. Do not use ix86_lea_for_add_ok.
7964 (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
7965 (lea ashift splitter): Also handle DImode operands.
7966 (DImode lea ashift splitter): Remove splitter.
7967
79682010-08-19 Uros Bizjak <ubizjak@gmail.com>
7969
7970 * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
7971 ix86_binary_operator_ok.
7972
5e841c82
AB
79732010-08-19 Andrey Belevantsev <abel@ispras.ru>
7974
7975 PR rtl-optimization/44691
7976 * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
f1b62c9f 7977 is not a register.
5e841c82 7978
c92f1823
IB
79792010-08-19 Ian Bolton <ian.bolton@arm.com>
7980
7981 PR target/45070
7982 * config/arm/arm.c (arm_output_epilogue): Ensure that return
7983 value of size 1-3 is handled correctly.
7984
f096c02a
IB
79852010-08-19 Ian Bolton <ian.bolton@arm.com>
7986
7987 * tree-switch-conversion.c (gen_inbound_check): Ensure that the
7988 type for the conditional has wide enough range.
7989
0fb2f9b1
UB
79902010-08-18 Uros Bizjak <ubizjak@gmail.com>
7991
7992 PR target/45327
7993 * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
7994 ix86_binary_operator_ok.
7995
21667997
UB
79962010-08-18 Uros Bizjak <ubizjak@gmail.com>
7997
7998 * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
7999 <default>: Swap operands 1 and 2 for alternative 2 to use existing
8000 code to output insn mnemonic. Fix comment.
8001 (*addsi_1_zext): Add r-r-0 alternative 1.
8002 <TYPE_LEA>: Split insn to lea.
8003 <default>: Handle alternative 1.
8004 (*addhi_1_lea): Add r-r-0 alternative 2. Use cond RTX instead of
8005 multi-level if_then_else RTX to set "type" attribute.
8006 <default>: Handle alternative 2.
8007 (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
8008 Use cond RTX instead of multi-level if_then_else RTX to set
8009 "type" attribute.
8010 <default>: Handle alternatives 2 and 4.
8011 (lea splitters): Update calls to ix86_lea_for_add_ok.
8012
8013 * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
8014 argument.
8015 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
8016
480161b5
RG
80172010-08-18 Richard Guenther <rguenther@suse.de>
8018
8019 * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
8020 use operand helpers.
8021
e5f5fa2d
PB
80222010-08-18 Paolo Bonzini <bonzini@gnu.org>
8023
8024 PR middle-end/45292
8025 * optabs.c (expand_bool_compare_and_swap): Expand pending
8026 pops before trying the optab.
8027
8019fcfb
YQ
80282010-08-18 Yao Qi <yao@codesourcery.com>
8029
8030 PR target/45094
21667997 8031 * config/arm/arm.c (output_move_double): Fix typo generating
8019fcfb
YQ
8032 instructions ('ldr'->'str').
8033
c701e857
MK
80342010-08-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8035
8036 PR rtl-optimization/42575
8037 * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
8038 live ranges.
8039
029e79eb
MS
80402010-08-18 Marcus Shawcroft <marcus.shawcroft@arm.com>
8041
8042 * config/arm/arm-protos.h (arm_expand_sync): New.
8043 (arm_output_memory_barrier, arm_output_sync_insn): New.
8044 (arm_sync_loop_insns): New.
8045 * config/arm/arm.c (FL_ARCH7): New.
8046 (FL_FOR_ARCH7): Include FL_ARCH7.
8047 (arm_arch7): New.
8048 (arm_print_operand): Support %C markup.
8049 (arm_legitimize_sync_memory): New.
8050 (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
8051 (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
8052 (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
8053 (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
8054 (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
8055 (arm_process_output_sync_insn, arm_output_sync_insn): New.
8056 (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
8057 * config/arm/arm.h (struct arm_sync_generator): New.
8058 (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
8059 (TARGET_HAVE_MEMORY_BARRIER): New.
8060 (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
8061 * config/arm/arm.md: Include sync.md.
8062 (UNSPEC_MEMORY_BARRIER): New.
8063 (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
8064 (VUNSPEC_SYNC_OP):New.
8065 (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
8066 (sync_result, sync_memory, sync_required_value): New attributes.
8067 (sync_new_value, sync_t1, sync_t2): Likewise.
8068 (sync_release_barrier, sync_op): Likewise.
8069 (length): Add logic to length attribute defintion to call
8070 arm_sync_loop_insns when appropriate.
8071 * config/arm/sync.md: New file.
8072
a085a55a
JJ
80732010-08-17 Jakub Jelinek <jakub@redhat.com>
8074
8075 * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
8076 ENABLE_TREE_CHECKING.
8077 (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
8078 and GCC >= 4.3.
8079
1c111d0a
L
80802010-08-17 H.J. Lu <hongjiu.lu@intel.com>
8081
8082 * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
8083 or optimizing for size, always avoid lea if possible.
8084
21667997 8085 * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
1c111d0a 8086
e2a1fcf0
IS
80872010-08-17 Iain Sandoe <iains@gcc.gnu.org>
8088
8089 * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
21667997 8090 Dunmmy function with NULL return unless the target is
e2a1fcf0 8091 OSX >= 10.6 (Darwin10).
21667997 8092
74164603 80932010-08-17 Jack Howarth <howarth@bromo.med.uc.edu>
2642f659
JH
8094
8095 * gcc.c (spec_function): Add remove-outfile.
8096 (remove_outfile_spec_function): New function.
21667997 8097 * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
2642f659
JH
8098 * invoke.texi (replace-outfile): Document.
8099
2c65142a
UB
81002010-08-17 Uros Bizjak <ubizjak@gmail.com>
8101
8102 PR target/45296
8103 * reginfo.c (globalize_reg): Reject stack registers.
8104
fd4a760e
RG
81052010-08-17 Richard Guenther <rguenther@suse.de>
8106
8107 * tree-ssa-dom.c (struct edge_info): Use a VEC for the
8108 list of conditional equivalences.
8109 (free_all_edge_infos): Adjust.
8110 (record_equivalences_from_incoming_edge): Likewise.
8111 (record_cond): Likewise.
8112 (build_and_record_new_cond): Likewise.
8113 (record_conditions): Likewise.
8114 (dom_opt_leave_block): Likewise.
8115
b17b584f
KT
81162010-08-17 Kai Tietz <kai.tietz@onevision.com>
8117
8118 * doc/invoke.texi (ms-extension): Add documentation.
8119
743ad76e
RG
81202010-08-17 Richard Guenther <rguenther@suse.de>
8121
21667997 8122 * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
743ad76e 8123
51f4ec66
SZ
81242010-08-17 Shujing Zhao <pearly.zhao@oracle.com>
8125
8126 PR c/40563
8127 * c-decl.c (diagnose_uninitialized_cst_member): New function.
8128 (finish_decl): Use it to issue a -Wc++-compat warning about
8129 uninitialized const field in struct or union.
2c65142a 8130
51f4ec66
SZ
8131 (finish_struct): Use strip_array_types.
8132
3373692b
JJ
81332010-08-17 Jakub Jelinek <jakub@redhat.com>
8134
8135 * function.c (block_fragments_nreverse, blocks_nreverse_all): New
8136 functions.
8137 (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
8138 (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL. Don't
8139 call block_nreverse here.
8140 (blocks_nreverse): Rename decl temporary to block.
8141
c29e2982
BS
81422010-08-16 Bernd Schmidt <bernds@codesourcery.com>
8143
8144 * config/arm/thumb2.md (thumb2_notsi_shiftsi,
8145 thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
8146 thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
8147 thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
8148 thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
8149 thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
8150 thumb2_iorsi3): Delete.
8151 (orsi_notsi_si): No longer a named pattern.
8152 (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
8153 * config/arm/predicates.md (shift_amount_operand): New.
8154 (mult_operator): New.
8155 * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
8156 attr enabled): New.
8157 (iorsi3_insn): Renamed from arm_iorsi3. Handle a new alternative if
8158 arch matches t2.
8159 (not_shiftsi): Renamed from arm_notsi_shiftsi. Handle Thumb2 variant.
8160 (not_shiftsi_compare0): Likewise, renamed from
8161 arm_notsi_shiftsi_compare0.
8162 (not_shiftsi_compare0_scratch): Likweise, renamed from
8163 arm_notsi_shiftsi_compare0_scratch.
8164 (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
8165 (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
8166 (arith_shiftsi): Handle Thumb2 variant. Set insn_enabled attribute
8167 so that the register alternative is disabled when the shift_operator
8168 is MULT. Use "M" as the constraint for constants.
8169 (arith_shiftsi splitter): Enable for TARGET_32BIT.
8170 (arith_shiftsi_compare0): Handle Thumb2 variant. Use "M" as the
8171 constraint for constants.
8172 (arith_shiftsi_compare0_scratch): Likewise.
8173 (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
8174 Handle Thumb2 alternative.
8175
c878765b
JM
81762010-08-16 Joseph Myers <joseph@codesourcery.com>
8177
8178 * doc/options.texi (NoDriverArg): Document.
8179 * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
8180 -MDX and -MMDX.
8181 * opt-functions.awk (switch_flags): Handle NoDriverArg.
8182 * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
8183 marking for CL_NO_DRIVER_ARG options when in the driver.
8184 * opts.h (CL_NO_DRIVER_ARG): Define.
8185 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
8186 CL_COMMON): Update values.
8187
603349bf
JM
81882010-08-16 Joseph Myers <joseph@codesourcery.com>
8189
8190 * common.opt: Add driver options.
8191 (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
8192 * doc/options.texi (Driver, RejectDriver): Document.
8193 * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
8194 print_prog_name, print_multi_directory, print_sysroot,
8195 print_multi_os_directory, print_multi_lib,
8196 print_sysroot_headers_suffix, report_times, combine_flag,
8197 use_pipes, wrapper_string): Remove.
8198 (save_switch, driver_unknown_option_callback,
8199 driver_wrong_lang_callback, driver_post_handling_callback,
8200 driver_handle_option): New.
8201 (spec_lang, last_language_n_infiles): Make file-scope static
8202 instead of local to process_command.
8203 (process_command): Use decode_cmdline_options_to_array and
8204 read_cmdline_option for option processing. Compute have_c in
8205 prescan of decoded options.
8206 * opt-functions.awk (switch_flags): Handle Driver and
8207 RejectDriver.
8208 (var_type, var_type_struct): Handle Separate options as generating
8209 const char * variables.
8210 * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
8211 CL_TARGET to be passed by caller if required.
8212 (decode_cmdline_options_to_array): Update comment.
8213 * opts.c (complain_wrong_lang): Handle options only valid for the
8214 driver.
8215 (decode_options): Update call to decode_cmdline_options_to_array.
8216 (print_filtered_help): Ignore driver-only options.
8217 (print_specific_help): Ignore CL_DRIVER.
2c65142a 8218 (common_handle_option): Don't call print_specific_help for CL_DRIVER.
603349bf
JM
8219 * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
8220 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
8221 Update values.
8222
4b228e61
RG
82232010-08-16 Richard Guenther <rguenther@suse.de>
8224
8225 * tree-cfg.c (verify_types_in_gimple_reference): Verify
8226 TARGET_MEM_REF a bit.
8227 * tree-ssa-address.c (addr_for_mem_ref): Adjust.
8228 (create_mem_ref_raw): Always create TMR_OFFSET, store the
8229 alias pointer type via it.
8230 (copy_mem_ref_info): Adjust.
8231 (maybe_fold_tmr): Likewise.
8232 * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
8233 (reference_alias_ptr_type): Likewise.
8234 * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
8235 adjust documentation of TMR_OFFSET operand.
8236 * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
8237 use the alias pointer type.
8238 * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
8239 initialize mem attrs but the TMR itself.
8240 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
8241 similar to MEM_REF.
8242 * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
8243 * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
8244 (unshare_and_remove_ssa_names): Likewise.
8245 (copy_ref_info): Adjust.
8246 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
8247 TARGET_MEM_REF case.
8248 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
8249 at TMR_ORIGINAL.
8250 * tree.h (TMR_ORIGINAL): Remove.
8251 * gimple.c (get_base_address): For TARGET_MEM_REF with a
8252 symbol return that.
8253 * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
8254 with a symbol.
8255 (get_addr_base_and_unit_offset): Likewise.
8256 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
8257 TARGET_MEM_REFs.
8258 (indirect_ref_may_alias_decl_p): Likewise.
8259 (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
8260
ef7e0035
UB
82612010-08-15 Uros Bizjak <ubizjak@gmail.com>
8262
8263 * doc/invoke.texi (-fomit-frame-pointer): Document that starting
8264 with GCC version 4.6, the default setting (when not optimizing
8265 for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
8266 been changed to -fomit-frame-pointer.
8267
5fc265c1
IS
82682010-08-15 Iain Sandoe <iains@gcc.gnu.org>
8269
ef7e0035 8270 * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
5fc265c1
IS
8271 Darwin10. Do not link libgcc.a for Darwin >= 9.
8272
09ccff9f
GP
82732010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
8274
8275 * doc/invoke.texi (Warning Options): Fix terminology and markup
8276 in the description of how unknown warning options are handled.
8277
69f11a13
IR
82782010-08-15 Ira Rosen <irar@il.ibm.com>
8279
8280 * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
8281 in basic blocks.
8282 (vect_supportable_dr_alignment): Check alignment for basic blocks.
ef7e0035 8283 * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
69f11a13
IR
8284 data references.
8285 (vect_bb_vectorization_profitable_p): New function.
8286 (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
8287 check if it's worthwhile to vectorize the basic block.
8288
faa832a7
AS
82892010-08-14 Anatoly Sokolov <aesok@post.ru>
8290
8291 * reload.h (register_move_cost, memory_move_secondary_cost,
8292 secondary_reload_class): Adjust prototype.
8293 * rtl.h (reg_class_subset_p): Adjust prototype.
8294 * reload.c (secondary_reload_class): Change arguments type from
8295 enum reg_class to reg_class_t. Change result type to reg_class_t.
8296 * reginfo.c (register_move_cost, reg_class_subset_p): Change
8297 arguments type from enum reg_class to reg_class_t.
8298 (memory_move_secondary_cost): Change arguments type from
8299 enum reg_class to reg_class_t. Change type of saved_flags to
8300 reg_class_t.
8301
ef7e0035 8302 * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
faa832a7
AS
8303 Remove macros.
8304 (mips_cost): Remove.
8305 (struct mips_rtx_cost_data): Moved to mips.c.
8306 * config/mips/mips-protos.h (mips_register_move_cost): Remove.
8307 * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
8308 (mips_cost): Make static.
8309 (mips_canonicalize_move_class): Change argument type to reg_class_t.
8310 Change result type to reg_class_t.
8311 (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
8312 type from enum reg_class to reg_class_t.
8313 (mips_register_move_cost): Make static. Change arguments
8314 type from enum reg_class to reg_class_t.
8315 (mips_memory_move_cost): New function.
8316 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
8317
6d1e1a26
RS
83182010-08-14 Richard Sandiford <rdsandiford@googlemail.com>
8319
8320 PR rtl-optimization/43358
8321 * ira-lives.c (process_single_reg_class_operands): Adjust the costs
8322 of a single hard register, using simplify_subreg_regno to decide
8323 what that register should be.
8324
a44ecea1
MX
83252010-08-14 Mingjie Xing <mingjie.xing@gmail.com>
8326
8327 * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
8328 * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
8329 (loongson_pmull<V_suffix>): Rename to...
8330 (mul<mode>3): ...this and use MULT instead of an UNSPEC.
8331
74164603 83322010-08-13 Jack Howarth <howarth@bromo.med.uc.edu>
1b2d4118 8333
eed023cc 8334 * configure.ac: Enable -fomit-frame-pointer on darwin
1b2d4118
JH
8335 which support dwarf2.
8336 * config/i386/i386.c (override_options): Same.
8337
9b821a09
JZ
83382010-08-13 Jie Zhang <jie@codesourcery.com>
8339
ef7e0035 8340 * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
9b821a09 8341
644fa7ac
JM
83422010-08-12 Joseph Myers <joseph@codesourcery.com>
8343
8344 * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
8345 -MMD.
8346
3cb35c12
CF
83472010-08-12 Changpeng Fang <changpeng.fang@amd.com>
8348
8349 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
8350 up dot_prod pattern searching if a stmt is outside the loop.
8351
d79389af
L
83522010-08-12 H.J. Lu <hongjiu.lu@intel.com>
8353 Uros Bizjak <ubizjak@gmail.com>
8354
8355 * config.gcc: Handle --enable-frame-pointer.
8356
8357 * configure.ac: Add --enable-frame-pointer.
8358 * configure: Regenerated.
8359
8360 * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
8361 (override_options): If not configured with --enable-frame-pointer,
8362 enable -fomit-frame-pointer (but not for TARGET_MACHO or when
8363 optimizing for size), -fasynchronous-unwind-tables and
8364 -maccumulate-outgoing-args by default.
8365
d2be8071
JJ
83662010-08-12 Jakub Jelinek <jakub@redhat.com>
8367
ef7e0035 8368 * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
d2be8071 8369
a8c56818
JJ
8370 PR middle-end/45262
8371 * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
8372 -a overflows. Normalize the range.
8373
2d698d3b
RG
83742010-08-12 Richard Guenther <rguenther@suse.de>
8375
8376 PR tree-optimization/45232
8377 * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
8378 for types with undefined overflow.
8379 (reassociate_bb): Allow re-associating of bit and min/max
8380 operations for types with undefined overflow.
8381 * tree-ssa-forwprop.c (associate_plusminus): New function.
8382 (tree_ssa_forward_propagate_single_use_vars): Call it.
8383
1be38ccb
RG
83842010-08-12 Richard Guenther <rguenther@suse.de>
8385
8386 * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
8387 * tree-ssa-alias.c (get_ptr_info): Move ...
8388 * tree-ssanames.c (get_ptr_info): ... here. Initialize
8389 align and misalign fields conservatively.
8390 * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
8391 derive alignment information.
8392 (evaluate_stmt): Derive alignment information from memory
8393 allocation functions.
8394 * tree.h (get_pointer_alignment): Make unsigned.
8395 * builtins.c (get_object_alignment): Use alignment information we
8396 have computed for pointers.
8397 (get_pointer_alignment): Likewise. Make conservative, return
8398 and unsigned value.
8399 (expand_builtin_strlen): Adjust.
8400 (expand_builtin_memcmp): Likewise.
8401 (expand_builtin_strcmp): Likewise.
8402 (expand_builtin_strncmp): Likewise.
8403 (get_builtin_sync_mem): Use at least mode alignment.
8404 (fold_builtin_memset): Adjust.
8405 (fold_builtin_memory_op): Likewise.
8406 * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
8407 information also dump pointer alignment knowledge.
8408 (dump_gimple_stmt): Likewise.
8409
a96ad348
UB
84102010-08-12 Uros Bizjak <ubizjak@gmail.com>
8411
8412 * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
8413 (EMPTY_FIELD_BOUNDARY): Remove.
8414 * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
8415
49b48605
JJ
84162010-08-12 Jakub Jelinek <jakub@redhat.com>
8417
8418 PR debug/45259
8419 * caller-save.c (save_call_clobbered_regs): Only swap notes with
8420 DEBUG_INSNs if n_regs_saved.
8421
3565ffed
WG
84222010-08-12 Wei Guozhi <carrot@google.com>
8423
8424 PR target/44999
8425 * config/arm/arm.md (andsi3): Change to zero extension if possible.
8426 * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
8427
183c87cd
VM
84282010-08-11 Vladimir Makarov <vmakarov@redhat.com>
8429
8430 * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
8431
8432 * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
8433
cb5da135 84342010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9707eeb0
SP
8435
8436 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
8437 the case removed in the previous patch, when the only phi argument
8438 is defined in the same loop as the phi node itself. Handle it
8439 separately from the invariant case by both propagating it outside
8440 the region and replacing the phi node with an assign.
8441
cb5da135 84422010-08-11 Sebastian Pop <sebastian.pop@amd.com>
974335d6
SP
8443
8444 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
8445 constant phi nodes with one argument are is_gimple_min_invariant
8446 and SSA_NAME_IS_DEFAULT_DEF.
8447
cb5da135 84482010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
8449
8450 * graphite-cloog-util.c (oppose_constraint):
8451 Extend loop counter's value range (CLOOG_ORG).
8452 (cloog_matrix_to_ppl_constraint): Same.
8453 (new_Constraint_System_from_Cloog_matrix): Same.
8454 * graphite-cloog-compat.h (matrix_num_type): New.
8455
cb5da135 84562010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
85437633
AS
8457
8458 * graphite.c (graphite_initialize): Do not initialize
8459 CLooG and initialize the Parma Polyhedra Library
8460 manually when using CLOOG_ORG.
8461 (graphite_finalize): Do not finalize CLooG and finalize
8462 the Parma Polyhedra Library manually when using CLOOG_ORG.
8463 * graphite-cloog-compat.h (cloog_initialize): Hide function
8464 when using CLOOG_ORG.
8465 (cloog_finalize): Same.
8466
cb5da135 84672010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
1461761b
AS
8468
8469 * graphite-clast-to-gimple.c (free_scattering): Change
8470 CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
8471 (CLOOG_ORG).
8472 (build_cloog_prog): Same.
8473 * graphite-cloog-compat.h (cloog_domain): Removed.
8474 (cloog_scattering): New.
8475 (cloog_set_domain): Removed.
8476 (cloog_set_scattering): New.
8477 (cloog_next_domain): Removed.
8478 (cloog_next_scattering): New.
8479 (cloog_set_next_domain): Removed.
8480 (cloog_set_next_scattering): New.
8481 (CloogScatteringList): New.
8482 (CloogScattering): New.
8483 (cloog_scattering_free): New.
8484 (new_Cloog_Scattering_from_ppl_Polyhedron): New.
8485 * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
8486 New.
8487
cb5da135 84882010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
60f87855
AS
8489
8490 * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
8491 CloogState.
8492 (set_cloog_options): Same.
8493 (print_clast_stmt): Same.
8494 (scop_to_clast): Same.
8495 (print_generated_program): Same.
8496 (gloog): Same.
8497 * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
8498 (scop_to_clast): Extend with CloogState.
8499 * graphite-cloog-util.c: Include graphite-cloog-compat.h
8500 (new_Cloog_Domain_from_ppl_Polyhedron):
8501 Extend with CloogState. Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
8502 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
8503 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
8504 * graphite-cloog-util.h (build_cloog_prog): Same.
8505 * graphite-cloog-copat.h (build_cloog_prog): New.
8506 (CloogState): New.
8507 (cloog_state_malloc): New.
8508 (cloog_state_free): New.
8509 (cloog_loop_malloc): New.
8510 (cloog_options_malloc): New.
8511 (cloog_statement_alloc): New.
8512 (cloog_domain_from_cloog_matrix): New.
8513 (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
8514 (new_Cloog_Domain_from_ppl_Polyhedron): New.
8515
cb5da135 85162010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
4431102b
AS
8517
8518 * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
8519 type of NAME now depends on used CLooG version.
8520 (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
8521 (gcc_type_for_clast_expr): Same.
8522 (print_clast_stmt): Replace pprint with clast_pprint.
8523 * graphite-cloog-compat.h: Provide compatibility macros for
8524 CLooG Legacy.
8525 (clast_name_p): New.
8526 (clast_expr_term): New.
8527 (clast_expr_red): New.
8528 (clast_expr_bin): New.
8529 (clast_pprint): New.
8530
cb5da135 85312010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
ac3b070a
AS
8532
8533 * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
8534 compatible to newer CLooG releases (CLOOG_ORG).
8535 (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
8536 (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
8537 * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
8538 (build_cloog_prog) : New.
8539 (cloog_program_extract_scalars): New.
8540 (cloog_program_scatter): New.
8541
cb5da135 85422010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2bbb190a
AS
8543
8544 * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
8545 conditionally (CLOOG_ORG).
8546 * graphite-cloog-compat.h: New. Include graphite-cloog-compat.h.
8547 (cloog_statement_usr): New.
8548 (cloog_domain): Same.
8549 (cloog_set_domain): Same.
8550 (cloog_next_domain): Same.
8551 (cloog_set_next_domain): Same.
8552 (cloog_program_nb_scattdims): Same.
8553 (cloog_program_set_nb_scattdims): Same.
8554 (cloog_program_names): Same.
8555 (cloog_program_set_names): Same.
8556 (cloog_program_set_context): Same.
8557 (cloog_program_set_loop): Same.
8558 (cloog_program_blocklist): Same.
8559 (cloog_program_set_blocklist): Same.
8560 (cloog_program_scaldims): Same.
8561 (cloog_program_set_scaldims): Same.
8562 (cloog_names_nb_parameters): Same.
8563 (cloog_names_set_nb_parameters): Same.
8564 (cloog_names_parameters): Same.
8565 (cloog_names_set_parameters): Same.
8566 (cloog_names_set_nb_iterators): Same.
8567 (cloog_names_set_iterators): Same.
8568 (cloog_names_set_nb_scattering): Same.
8569 (cloog_names_set_scattering): Same.
8570 (cloog_statement_set_usr): Same.
8571 (cloog_loop_set_next): Same.
8572 (cloog_loop_set_domain): Same.
8573 (cloog_loop_set_block): Same.
8574 (cloog_block_list_next): Same.
8575 (cloog_block_list_set_next):
8576 (cloog_block_list_set_block): Same.
8577
cb5da135 85782010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5d737345
SP
8579
8580 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
8581 a bool.
8582 (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
8583 (rewrite_commutative_reductions_out_of_ssa_loop): Same.
8584 (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
8585 when something has been changed.
8586 (rewrite_commutative_reductions_out_of_ssa): Same.
8587
cb5da135 85882010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4ee23fa8 8589
ab756588
SP
8590 * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
8591 handle the case when def is in the sese region.
8592 (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
8593 for invariant expressions.
8594 (rewrite_cross_bb_phi_deps): Removed.
8595 (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
8596 (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
cb5da135 8597 rewrite_cross_bb_phi_deps.
ab756588 8598
cb5da135 85992010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ab756588 8600
4ee23fa8
SP
8601 * graphite-sese-to-poly.c
8602 (rewrite_commutative_reductions_out_of_ssa_loop): Call
8603 scev_analyzable_p only on is_gimple_reg
8604
cb5da135 86052010-08-11 Sebastian Pop <sebastian.pop@amd.com>
1c2a7491
SP
8606
8607 * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
8608 (rewrite_close_phi_out_of_ssa): Propagate constant values or
8609 parametric expressions outside the scop region.
8610 (rewrite_cross_bb_scalar_deps): Same.
8611 * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
8612
cb5da135 86132010-08-11 Sebastian Pop <sebastian.pop@amd.com>
320532a8
SP
8614
8615 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
8616 SSA_NAME_DEF_STMT only on SSA_NAMEs.
8617
cb5da135 86182010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2847388e
SP
8619
8620 * tree-scalar-evolution.c (instantiate_scev_name): Do not
8621 instantiate default definitions.
8622
cb5da135 86232010-08-11 Vladimir Kargov <kargov@gmail.com>
f4ce375d
VK
8624 Sebastian Pop <sebastian.pop@amd.com>
8625
8626 * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
8627 (loop_exits_from_bb_p): New.
8628 * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
8629 (loop_exits_from_bb_p): Declared.
8630 * graphite-scop-detection.c (scopdet_basic_block_info): Call
8631 loop_exits_to_bb_p.
8632
cb5da135 86332010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a7d00e71
SP
8634
8635 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
8636 extra parameter for the region. Call scev_analyzable_p.
8637 (rewrite_reductions_out_of_ssa): Update call to
8638 rewrite_close_phi_out_of_ssa.
8639 (rewrite_cross_bb_phi_deps): Same.
8640 (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
8641 parameter for the region. Call scev_analyzable_p.
8642 (rewrite_commutative_reductions_out_of_ssa): Update call to
8643 rewrite_commutative_reductions_out_of_ssa_loop.
8644
cb5da135 86452010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6f23dd91
SP
8646
8647 * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
8648
cb5da135 86492010-08-11 Sebastian Pop <sebastian.pop@amd.com>
87b28340
SP
8650
8651 * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
8652 SSA scalar phi nodes that can be scev_analyzable_p.
8653
cb5da135 86542010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3dd2dd57
SP
8655
8656 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
8657 handle SSA_NAME_IS_DEFAULT_DEF.
8658
cb5da135 86592010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0dd1502
SP
8660
8661 * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
8662
cb5da135 86632010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8af6d9cd
SP
8664
8665 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
8666 case non close-phi nodes with one argument.
8667
cb5da135 86682010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f36fc876
SP
8669
8670 * sese.h (scev_analyzable_p): Scevs could be expressions without
8671 chrecs and still be scev_analyzable_p.
8672
cb5da135 86732010-08-11 Sebastian Pop <sebastian.pop@amd.com>
57fe3c87
SP
8674
8675 * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
8676
cb5da135 86772010-08-11 Sebastian Pop <sebastian.pop@amd.com>
a0d1afb3
SP
8678
8679 * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
8680 * cfgloop.h (struct loop): Remove single_iv field.
8681 * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
8682 (scop_canonicalize_loops): Removed.
8683 (scop_ivs_can_be_represented): Do not use loop->single_iv. Iterate
8684 over all the loop phi nodes in loop->header.
8685 (build_poly_scop): Remove use of scop_canonicalize_loops.
8686
cb5da135 86872010-08-11 Sebastian Pop <sebastian.pop@amd.com>
dba9acfa
SP
8688
8689 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
8690 handle GIMPLE_CALL.
8691
cb5da135 86922010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b059232
SP
8693
8694 * tree-chrec.c (chrec_apply): Should only apply to the specified
8695 variable. Also handle multivariate chains of recurrences that
8696 satisfy evolution_function_is_affine_p. Also handle CASE_CONVERT.
8697
cb5da135 86982010-08-11 Sebastian Pop <sebastian.pop@amd.com>
2e286fd2
SP
8699
8700 * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
8701 (debug_clast_name_indexes_1): Removed.
8702 (debug_clast_name_indexes): Removed.
8703 (pbb_to_depth_to_oldiv): Removed.
8704 (build_iv_mapping): Replace the use of rename_map with iv_map.
8705 (translate_clast_user): Remove uses of rename_map. Allocate and
8706 free iv_map.
8707 (translate_clast_for_loop): Remove uses of rename_map.
8708 (translate_clast_for): Same.
8709 (translate_clast_guard): Same.
8710 (translate_clast): Same.
8711 (gloog): Same.
8712 * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
8713 * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
8714 * sese.c (set_rename): Now static.
8715 (rename_variables_in_stmt): Removed.
8716 (rename_uses): New.
8717 (is_parameter): Removed.
8718 (is_iv): Removed.
8719 (expand_scalar_variables_call): Removed.
8720 (expand_scalar_variables_ssa_name): Removed.
8721 (expand_scalar_variables_expr): Removed.
8722 (expand_scalar_variables_stmt): Removed.
8723 (expand_scalar_variables): Removed.
8724 (rename_variables): Removed.
8725 (remove_condition): Removed.
8726 (get_true_edge_from_guard_bb): Removed.
8727 (get_false_edge_from_guard_bb): Removed.
8728 (struct igp): Removed.
8729 (default_before_guard): Removed.
8730 (convert_for_phi_arg): Removed.
8731 (add_guard_exit_phis): Removed.
8732 (insert_guard_phis): Removed.
8733 (graphite_copy_stmts_from_block): Now also uses iv_map and a
8734 region. Do not copy conditions. Do not copy induction variables.
8735 Call rename_uses.
8736 (copy_bb_and_scalar_dependences): Allocate a local rename_map for
8737 the translated statement. Use the iv_map for the induction
8738 variable renaming.
8739 * sese.h (copy_bb_and_scalar_dependences): Update declaration.
8740 (set_rename): Removed declaration.
8741 (scev_analyzable_p): ...here.
8742 * tree-chrec.c (chrec_apply_map): New.
8743 * tree-chrec.h (chrec_apply_map): Declared.
8744
cb5da135 87452010-08-11 Sebastian Pop <sebastian.pop@amd.com>
e11d25e0
SP
8746
8747 * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
8748 insert_loop_close_phis.
8749 * sese.c (name_defined_in_loop_p): Removed.
8750 (expr_defined_in_loop_p): Removed.
8751 (alive_after_loop): Removed.
8752 (close_phi_not_yet_inserted_p): Removed.
8753 (struct alep): Removed.
8754 (add_loop_exit_phis): Removed.
8755 (insert_loop_close_phis): Removed.
8756
cb5da135 87572010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
61298f69
AS
8758
8759 * graphite-cloog-util.c
8760 (cloog_matrix_to_ppl_constraint): Fix flipped condition.
8761 * graphite-poly.c
8762 (psct_scattering_dim_for_loop_depth): Same.
8763
cb5da135 87642010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
a9c2ba8f
AS
8765
8766 * graphite-cloog-util.h: Added cloog.h.
8767 * graphite-blocking.c: Removed cloog.h.
8768 * graphite-dependences.c: Same.
8769 * graphite-interchange.c: Same.
8770 * graphite-poly.c: Same.
8771 * graphite-ppl.c: Same.
8772 * graphite-scop-detection.c: Same.
8773 * graphite-sese-to-poly.c:
8774 Removed cloog.h.
8775 Removed graphite-clast-to-gimple.h.
8776 (check_poly_representation): Removed (unused).
8777 * graphite-sese-to-poly.h
8778 (check_poly_representation): Removed (unused).
8779
cb5da135 87802010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
0647324a
AS
8781
8782 * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
8783 (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
8784 (graphite-cloog-util.o): New.
8785 (graphite-ppl.o): Added graphite-cloog-util.h.
8786 * graphite-clast-to-gimple.c:
8787 Added graphite-cloog-util.h to include statements.
8788 * graphite-cloog-util.c: New.
8789 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
8790 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
8791 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
8792 (new_C_Polyhedron_from_Cloog_Matrix): Same.
8793 (insert_constraint_into_matrix): Same.
8794 (ppl_Constrain_System_number_of_constraints): Same.
8795 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
8796 (oppose_constraint): Same.
8797 (cloog_matrix_to_ppl_constraint): Same.
8798 (new_Constraint_System_from_Cloog_Matrix): Same.
8799 * graphite-cloog-util.h: New.
8800 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
8801 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
8802 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
8803 (new_C_Polyhedron_from_Cloog_Matrix): Same.
8804 (insert_constraint_into_matrix): Same.
8805 * graphite-ppl.c:
8806 Added graphite-cloog-util.h to include statements.
8807 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
8808 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
8809 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
8810 (new_C_Polyhedron_from_Cloog_Matrix): Same.
8811 (insert_constraint_into_matrix): Same.
8812 (ppl_Constrain_System_number_of_constraints): Same.
8813 (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
8814 (oppose_constraint): Same.
8815 (cloog_matrix_to_ppl_constraint): Same.
8816 (new_Constraint_System_from_Cloog_Matrix): Same.
8817 * graphite-ppl.h:
8818 (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
8819 graphite-cloog-util.h.
8820 (new_Cloog_Domain_from_ppl_Polyhedron): Same.
8821 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
8822 (new_C_Polyhedron_from_Cloog_Matrix): Same.
8823 (insert_constraint_into_matrix): Same.
8824
cb5da135 88252010-08-11 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
589ac63c
AS
8826
8827 * graphite-clast-to-gimple.c
8828 (precision_for_value): Resolve value_* calls to matching mpz_* calls.
8829 (precision_for_interval): Same.
8830 (gcc_type_for_interval): Same.
8831 (compute_type_for_level): Same.
8832 * graphite-interchange.c
8833 (lst_interchange_profitable_p): Same.
8834 * graphite-poly.c
8835 (psct_scattering_dim_for_loop_depth): Same.
8836 * graphite-ppl.c
8837 (ppl_max_for_le_pointset): Same.
8838 (ppl_min_for_le_pointset): Same.
8839
cb5da135 88402010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d3e7b889
SP
8841
8842 * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
8843 (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
8844
cb5da135 88452010-08-11 Sebastian Pop <sebastian.pop@amd.com>
aedede66
SP
8846
8847 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
8848 rewrite_close_phi_out_of_ssa.
8849
cb5da135 88502010-08-11 Sebastian Pop <sebastian.pop@amd.com>
f2c51113
SP
8851
8852 * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
8853
cb5da135 88542010-08-11 Sebastian Pop <sebastian.pop@amd.com>
32e68db9
SP
8855
8856 * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
8857 rename_map.
8858 * sese.c (debug_rename_map): Same.
8859 (get_rename): Same.
8860 (set_rename): Same.
8861 (rename_variables_in_stmt): Same.
8862 (expand_scalar_variables_call): Same.
8863 (expand_scalar_variables_ssa_name): Same.
8864 (expand_scalar_variables_expr): Same.
8865 (expand_scalar_variables_stmt): Same.
8866 (expand_scalar_variables): Same.
8867 (rename_variables): Same.
8868 (graphite_copy_stmts_from_block): Same.
8869 (copy_bb_and_scalar_dependences): Same.
8870
cb5da135 88712010-08-11 Sebastian Pop <sebastian.pop@amd.com>
8b164754
SP
8872
8873 * graphite-clast-to-gimple.c (copy_renames): Removed.
8874 (translate_clast_for): Do not call copy_renames.
8875 (translate_clast_guard): Same.
8876
cb5da135 88772010-08-11 Sebastian Pop <sebastian.pop@amd.com>
9773d730
SP
8878
8879 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
8880 (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
8881 (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
8882 before rewrite_cross_bb_scalar_deps.
8883
cb5da135 88842010-08-11 Sebastian Pop <sebastian.pop@amd.com>
cc588970
SP
8885
8886 * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
8887 Early return in when flag_associative_math is not set.
8888
cb5da135 88892010-08-11 Sebastian Pop <sebastian.pop@amd.com>
4aa9a167
SP
8890
8891 * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
8892 of SSA copies on edges except for loop->latch.
8893
cb5da135 88942010-08-11 Sebastian Pop <sebastian.pop@amd.com>
ee646fc6
SP
8895
8896 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
8897 Split out of rewrite_reductions_out_of_ssa.
8898 * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
8899 Declared.
8900 * graphite.c (graphite_transform_loops): Call it.
8901
cb5da135 89022010-08-11 Sebastian Pop <sebastian.pop@amd.com>
6a7441f5
SP
8903
8904 * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
8905
cb5da135 89062010-08-11 Alexander Monakov <amonakov@ispras.ru>
6a7441f5
SP
8907
8908 * dbgcnt.def (graphite_scop): New counter.
8909 * graphite.c: Include dbgcnt.h.
8910 (graphite_transform_loops): Use new counter to limit transformations.
8911 * Makefile.in (graphite.o): Depend on DBGCNT_H.
8912
cb5da135 89132010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d4332d00
SP
8914
8915 * passes.c (init_optimization_passes): Add pass_graphite.
8916 Schedule a pass_copy_prop before pass_graphite_transforms.
8917 * timevar.def (TV_GRAPHITE): Declared.
8918 * tree-pass.h (pass_graphite): Declared.
8919 * tree-ssa-loop.c (pass_graphite): New.
8920
cb5da135 89212010-08-11 Sebastian Pop <sebastian.pop@amd.com>
14d0e129
SP
8922
8923 * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
8924 Remove calls to rename_nb_iterations and rename_sese_parameters.
8925 * graphite-clast-to-gimple.h (gloog): Update declaration.
8926 * graphite.c (graphite_transform_loops): Update call to gloog.
8927 * sese.c (rename_variables_in_expr): Removed.
8928 (rename_nb_iterations): Removed.
8929 (rename_sese_parameters): Removed.
8930 * sese.h (rename_nb_iterations): Removed.
8931 (rename_sese_parameters): Removed.
8932
cb5da135 89332010-08-11 Sebastian Pop <sebastian.pop@amd.com>
d1ba0721
SP
8934
8935 * graphite-clast-to-gimple.c (gloog): Remove call to
8936 sese_adjust_liveout_phis.
8937 * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
8938 SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
8939 (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
8940 rewrite_phi_out_of_ssa.
8941 * sese.c (get_vdef_before_sese): Removed.
8942 (sese_adjust_vphi): Removed.
8943 (sese_adjust_liveout_phis): Removed.
8944 * sese.h (sese_adjust_liveout_phis): Removed.
8945
cb5da135 89462010-08-11 Sebastian Pop <sebastian.pop@amd.com>
5fed5769
SP
8947
8948 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
8949 argument for the place after which to insert the out of SSA copy.
8950 (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
8951 (rewrite_phi_out_of_ssa): Same.
8952 (rewrite_cross_bb_scalar_deps): Same.
8953 (insert_copyout): Removed.
8954 (insert_copyin): Removed.
8955 (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
8956 insert_out_of_ssa_copy_on_edge instead of insert_copyout and
8957 insert_copyin.
8958
cb5da135 89592010-08-11 Sebastian Pop <sebastian.pop@amd.com>
3a7086cc
SP
8960
8961 * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
8962 (rewrite_reductions_out_of_ssa): Same.
8963 (rewrite_commutative_reductions_out_of_ssa): Same.
8964 (build_poly_scop): Do not call these functions.
8965 * graphite-sese-to-poly.h (build_poly_scop): Declared.
8966 (rewrite_reductions_out_of_ssa): Declared.
8967 (rewrite_commutative_reductions_out_of_ssa): Declared.
8968 * graphite.c (graphite_transform_loops): Call on every scop
8969 rewrite_commutative_reductions_out_of_ssa before calling
8970 rewrite_reductions_out_of_ssa and build_scop_bbs.
8971
cb5da135 89722010-08-11 Sebastian Pop <sebastian.pop@amd.com>
61ca46ce
SP
8973
8974 * graphite-dependences.c (dot_deps): Make system call to dotty run
8975 in background.
8976 (dot_deps_stmt): Same.
8977 * graphite-poly.c (dot_lst): Same.
8978
cb5da135 89792010-08-11 Sebastian Pop <sebastian.pop@amd.com>
159e4616
SP
8980
8981 * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
8982 phi_arg_in_outermost_loop.
8983 (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
8984 (remove_invariant_phi): Same.
8985
6cbd8875
AS
89862010-08-11 Anatoly Sokolov <aesok@post.ru>
8987
8988 * target.def (output_addr_const_extra): New hook.
8989 * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
8990 * doc/tm.texi: Regenerate.
8991 * targhooks.c (default_asm_output_addr_const_extra): New function.
8992 * targhooks.h (default_asm_output_addr_const_extra): Declare.
cb1b497e 8993 * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
6cbd8875
AS
8994 target hook.
8995
8996 * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8997 * config/i386/i386-protos.h (output_addr_const_extra): Remove.
8998 * config/i386/i386.h (output_addr_const_extra): Rename to...
8999 (i386_asm_output_addr_const_extra): ...this. Make static.
9000 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
9001
51ba747a
RH
90022010-08-11 Richard Henderson <rth@redhat.com>
9003
9004 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
9005
bfd71bc1
NC
90062010-08-11 Nick Clifton <nickc@redhat.com>
9007
9008 * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
9009 * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
9010 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
9011 stormy16-lib2-cmpsi.c.
9012
9013 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
9014 -O2.
9015
481e1176
JM
90162010-08-11 Joseph Myers <joseph@codesourcery.com>
9017
9018 * opts.h (struct cl_option_handler_func): Make handler take
9019 cl_decoded_option structure as parameter, not individual elements.
9020 (struct cl_option_handlers): Make callbacks take cl_decoded_option
9021 structure as parameter, not individual elements.
9022 (handle_option): Take cl_decoded_option structure as parameter,
9023 not individual elements.
9024 (handle_generated_option): Declare.
9025 * opts-common.c (handle_option): Take cl_decoded_option structure
9026 as parameter, not individual elements. Update calls to callback
9027 and handler functions.
9028 (handle_generated_option): New.
9029 (read_cmdline_option): Update calls to callback functions and
9030 handle_option.
9031 * opts.c (common_handle_option, complain_wrong_lang,
9032 unknown_option_callback, post_handling_callback,
9033 lang_handle_option, target_handle_option): Take cl_decoded_option
9034 structure as parameter, not individual elements.
9035 (lang_handle_option, target_handle_option, common_handle_option):
9036 Assert option has at most one argument.
9037 (enable_warning_as_error): Call handle_generated_option instead of
9038 handle_option. Do not pass -Werror argument as argument of
9039 generated option.
9040
e5fbc9bf
JDA
90412010-08-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9042
9043 * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
9044 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
9045 (SUBWORD_BOOL_CAS): Likewise.
9046 (SUBWORD_SYNC_OP): Likewise.
9047 (SUBWORD_TEST_AND_SET): Likewise.
9048 (FETCH_AND_OP_WORD): Parenthesise INF_OP
9049 (SUBWORD_SYNC_OP): Likewise.
9050 (OP_AND_FETCH_WORD): Likewise.
9051
d6fa2d17
XDL
90522010-08-10 Xinliang David Li <davidxl@google.com>
9053
9054 * tree-ssa-loop-ivopts.c (get_address_cost): Properly
9055 compute max/min offset in address.
9056
9995f209
VM
90572010-08-10 Vladimir Makarov <vmakarov@redhat.com>
9058
9059 * ira-live.c: Include sbitmap.h.
9060 (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
9061 Compress live ranges even more.
9062
175a62b7
NF
90632010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9064
9065 * coverage.c (ctr_labels): Delete.
9066
8f4c6e28
BS
90672010-08-10 Bernd Schmidt <bernds@codesourcery.com>
9068
9069 PR bootstrap/45177
9070 * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
9071 test here from arm_gen_load_multiple_1.
9072 (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
9073 multiple_operation_profitable_p.
9074
a72ae88a
NF
90752010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9076
009c04bf 9077 * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
a72ae88a
NF
9078 (fini_pre): Call free_aux_for_blocks. Delete unused bb variable.
9079
35b15a46
RH
90802010-08-10 Richard Henderson <rth@redhat.com>
9081
9082 * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
9083 after saving registers. Assert that SSE registers are only saved
9084 with a sufficiently aligned frame.
9085 (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
9086 remove stack_realign_fp handling.
9087 (ix86_expand_prologue): Save int registers before stack_realign_fp,
9088 and do not mark the stack alignment as frame related.
9089 (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
9090
9091 * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
9092 saves when re-aligning the stack.
9093
a398224a
NF
90942010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9095
9096 * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
9097 * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
9098 (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
9099
774038e6
NF
91002010-08-10 Nathan Froyd <froydnj@codesourcery.com>
9101
9102 * dwarf2out.c (struct die_struct): Move die_tag to the end.
9103
ceddf62c
SN
91042010-08-09 Sofiane Naci <sofiane.naci@arm.com>
9105
f6aa1e0f
RR
9106 * config/arm/iterators.md: New file.
9107 * config/arm/arm.md: Include iterators.md.
9108 (QHSI): Move to new file.
9109 (LTUGEU, cnb, optab, ior_xor): Likewise.
9110 * config/arm/iwmmxt.md (VMMX): Move to new file.
9111 (VSHFT, MMX_char): Likewise.
9112 * config/arm/neon.md (VD): Move to new file.
9113 (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
9114 (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
9115 (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
9116 (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
9117 (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
9118 (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
9119 (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
9120 (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
9121 (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
9122 (Is_d_reg, V_mode_nunits): Likewise.
9123 * config/arm/vec-common.md (VALL): Move to new file.
9124 (VALLW, VINT, VINTW): Likewise.
ceddf62c 9125
5466d63d
BS
91262010-08-10 Bernd Schmidt <bernds@codesourcery.com>
9127
9128 PR middle-end/45182
9129 * combine.c (make_compound_operation): Don't try to convert
9130 shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
9131
e80c2726
RG
91322010-08-10 Richard Guenther <rguenther@suse.de>
9133
9134 * tree.h (get_object_alignment): Adjust prototype.
9135 * builtins.c (get_object_alignment): Return unsigned int,
9136 drop the align parameter. Handle MEM_REF, MISALIGNED_INDIRECT_REF
9137 and TARGET_MEM_REF properly.
9138 (get_pointer_alignment): Adjust.
9139 * emit-rtl.c (get_mem_align_offset): Adjust comment.
9140 (set_mem_attributes_minus_bitpos): Adjust.
9141 * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
9142
a024390f
RG
91432010-08-10 Richard Guenther <rguenther@suse.de>
9144
9145 * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
9146 (copy_prop_visit_assignment): Simplify.
9147 (copy_prop_visit_stmt): Also visit assignments from
9148 constants.
9149 (copy_prop_visit_phi_node): Use operand_equal_p.
9150
ff61e417
NF
91512010-08-09 Nathan Froyd <froydnj@codesourcery.com>
9152
9153 * ipa-split.c (find_split_points): Free stack.
9154
5a351c3c
NF
91552010-08-09 Nathan Froyd <froydnj@codesourcery.com>
9156
9157 * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
9158 * tree.c (tree_node_kind): Delete corresponding entries.
9159
0c9510ab
L
91602010-08-09 H.J. Lu <hongjiu.lu@intel.com>
9161
9162 * alias.c (may_alias_p): Remove unused ret.
9163
c6ea834c
BM
91642010-08-09 Bingfeng Mei <bmei@broadcom.com>
9165
9166 * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
9167 alias_sets_conflict_p.
9168 (walk_mems_1): Moved from alias.c.
9169 (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
a96ad348 9170 in alias.c.
ef7e0035
UB
9171 (add_inter_loop_mem_dep): Use insns_may_alias_p now.
9172 * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
9173 * alias.c (walk_mems_2): Moved to ddg.c.
c6ea834c
BM
9174 (walk_mems_1): Ditto.
9175 (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
9176 to ddg.c.
9177 (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
9178 disambiguation.
9179 *(may_alias_p): New function to check whether two memory expression
9180 may alias or not. Currently used in buidling inter-iteration memory
9181 dependence.
9182 *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
9183 (insn_alias_sets_conflict_p): Removed
9184 *rtl.h (may_alias_p): New function prototype.
a96ad348 9185
72ac05b0
NF
91862010-08-09 Nathan Froyd <froydnj@codesourcery.com>
9187
9188 * tree.c (nreverse): Assert that we don't have a BLOCK.
9189
f38958e8
NF
91902010-08-09 Nathan Froyd <froydnj@codesourcery.com>
9191
9192 * builtins.c (fold_builtin_next_arg): Use stdarg_p.
9193 * config/arm/arm.c (arm_get_pcs_model): Likewise.
9194 * config/avr/avr.c (init_cumulative_args): Likewise.
9195 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9196 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9197 * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
9198 * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
9199 * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
9200 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
9201 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
9202 * dwarf2out.c (gen_subprogram_die): Likewise.
9203 * function.c (allocate_struct_function): Likewise.
9204 * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
9205 (deserves_ellipsis): Delete.
9206
ec64af64
RG
92072010-08-09 Richard Guenther <rguenther@suse.de>
9208
9209 * tree-ssa-copy.c (cached_last_copy_of): Remove.
9210 (valueize_val): New function.
9211 (get_last_copy_of): Remove.
9212 (set_copy_of_val): Simplify.
9213 (dump_copy_of): Likewise.
9214 (copy_prop_visit_cond_stmt): Use valueize_val.
9215 (copy_prop_visit_phi_node): Properly handle unvisited names.
9216 Drop code managing copy-of chains.
9217 (init_copy_prop): Adjust.
9218 (fini_copy_prop): Likewise.
9219 (execute_copy_prop): Remove obsolete comment.
9220
37609bf0
RG
92212010-08-09 Richard Guenther <rguenther@suse.de>
9222
9223 PR middle-end/44632
9224 * function.c (gimplify_parameters): Do not clear addressable
9225 bit of the original parameter.
9226
3e32c761
RG
92272010-08-09 Richard Guenther <rguenther@suse.de>
9228
9229 PR middle-end/45212
9230 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
9231 alignment from MEM_REF offset only if we took it from the
9232 base object.
9233
74164603 92342010-08-09 Eric Fisher <joefoxreal@gmail.com>
cee00e22
EF
9235
9236 * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
9237
b3399d18
NF
92382010-08-08 Nathan Froyd <froydnj@codesourcery.com>
9239
9240 * c-tree.h (build_arg_info): Declare.
9241 * c-decl.c (build_arg_info): Define.
9242 (get_parm_info): Call it. Delete initialization code.
9243 * c-parser.c (c_parser_parms_declarator): Likewise.
9244 (c_parser_parms_list_declaractor): Likewise.
9245
e60bf9d4
NF
92462010-08-08 Nathan Froyd <froydnj@codesourcery.com>
9247
9248 * c-tree.h (c_arg_tag): Define. Define a VEC containing it.
9249 (struct c_arg_info): Change type of tags field.
9250 * c-decl.c (grokdeclarator): Update for changed type of tags field.
9251 (get_parm_info): Likewise.
9252 (store_parm_decls_newstyle): Likewise.
9253
e7c64c7d
NF
92542010-08-08 Nathan Froyd <froydnj@codesourcery.com>
9255
9256 * config/rs6000/rs6000.c (branch_island): Define. Define a VEC of it.
9257 (branch_island_list): Delete.
9258 (branch_islands): Declare.
9259 (add_compiler_branch_island): Adjust for branch_islands instead of
9260 branch_island_list.
9261 (macho_branch_islands): Likewise.
9262 (no_previous_def): Likewise.
9263 (get_prev_label): Likewise.
9264
cf00499e
JDA
92652010-08-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9266
9267 PR boehm-gc/34544
9268 * gthr-posix.h (__gthread_start): Delete.
9269 (__gthread_active_init): Use pthread_default_stacksize_np instead of
9270 pthread_create to determine if hpux pthreads are active.
9271 * gthr-posix95.h (__gthread_start): Delete.
9272 (__gthread_active_init): Likewise use pthread_default_stacksize_np.
9273
1159da44
KT
92742010-08-08 Kai Tietz <kai.tietz@onevision.com>
9275
9276 * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
9277 _WIN64 not expanded.
9278
f6ddf131
UB
92792010-08-07 Uros Bizjak <ubizjak@gmail.com>
9280 H.J. Lu <hongjiu.lu@intel.com>
9281
9282 PR target/45213
9283 * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
9284 to output 32bit SFmode immediate as 8 byte sign extended value.
9285
17fec01d
MS
92862010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
9287
9288 * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
9289 'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
9290 (SUBWORD_BOOL_CAS): Likewise.
9291 (SUBWORD_SYNC_OP): Likewise.
9292 (SUBWORD_TEST_AND_SET): Likewise.
9293 (FETCH_AND_OP_WORD): Parenthesise INF_OP
9294 (SUBWORD_SYNC_OP): Likewise.
9295 (OP_AND_FETCH_WORD): Likewise.
9296
b0c13111
RR
92972010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9298
f6ddf131
UB
9299 * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
9300 * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
9301 (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
9302 (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
9303 generic part.
9304 (cortex_a9_sched_adjust_cost): New function.
9305 (xscale_sched_adjust_cost): New function.
9306 * config/arm/arm-protos.h (struct tune_params): New field
9307 sched_adjust_cost.
9308 * config/arm/arm-cores.def: Adjust costs for cortex-a9.
b0c13111 9309
e0c7ff23
EB
93102010-08-06 Eric Botcazou <ebotcazou@adacore.com>
9311
9312 PR target/44942
9313 * config/sparc/sparc.c (function_arg_advance): Always take into account
9314 the padding, if any.
9315
0b4b14ac
RG
93162010-08-06 Richard Guenther <rguenther@suse.de>
9317
9318 * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
9319 (dump_lattice_value): Dump it.
9320 (get_default_value): Adjust.
9321 (get_constant_value): Likewise.
9322 (set_value_varying): Likewise.
9323 (set_lattice_value): Make sure to not go up the lattice
9324 with bitwise constant values.
9325 (get_value_for_expr): Handle ADDR_EXPRs.
9326 (value_to_double_int): New function.
9327 (get_value_from_alignment): Likewise.
9328 (do_dbg_cnt): Adjust.
9329 (ccp_lattice_meet): Handle partially constant values.
9330 (bit_value_unop_1): New function.
9331 (bit_value_binop_1): Likewise.
9332 (bit_value_unop): Likewise.
9333 (bit_value_binop): Likewise.
9334 (evaluate_stmt): Track partially constant values if
9335 flag_tree_bit_ccp is set.
9336 (ccp_fold_stmt): Dump if we folded a predicate.
9337 (ccp_visit_stmt): Adjust.
9338 * common.opt (ftree-bit-ccp): New flag.
9339 * doc/invoke.texi (ftree-bit-ccp): Document.
9340 * opts.c (decode_options): Enable bit-CCP at -O1.
9341
4942323e
AM
93422010-08-06 Alan Modra <amodra@gmail.com>
9343
9344 * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
9345 and -mrelocatable-lib description.
9346
5444da31
BS
93472010-08-05 Bernd Schmidt <bernds@codesourcery.com>
9348
9349 From Martin Thuresson <martint@google.com>
9350 * postreload.c (reload_cse_simplify_operands): Use
9351 SET_REGNO_RAW instead of SET_REGNO.
9352 * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
9353 SET_REGNO.
9354 * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
9355 instead of SET_REGNO.
9356 * rtl.h (SET_REGNO_RAW): New macro.
9357
c04fc4f0
EB
93582010-08-05 Eric Botcazou <ebotcazou@adacore.com>
9359
9360 * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
9361 computations. Fix formatting issues.
9362 (num_sign_bit_copies1): Likewise.
9363 (canonicalize_condition): Likewise.
9364
bd95721f
RH
93652010-08-05 Richard Henderson <rth@redhat.com>
9366
9367 * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
9368 (floor_log2): Use clz_hwi.
9369 (exact_log2): Use ctz_hwi.
9370 * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
9371 * builtins.c (fold_builtin_bitop): Use them.
9372 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9373 * combine.c (get_pos_from_mask): Use ctz_hwi.
9374 * double-int.c (double_int_ctz): Likewise.
9375 * explow.c (force_reg): Likewise.
9376 * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
9377
55b324a6
RH
93782010-08-05 Richard Henderson <rth@redhat.com>
9379
9380 PR target/45189
9381 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
9382 the alignment constant is properly sign-extended.
9383
29e9efdf
RG
93842010-08-05 Richard Guenther <rguenther@suse.de>
9385
9386 * expr.c (store_expr): Use emit_block_move only if both
9387 source and target are MEMs. Use store_bit_field if only
9388 the target is a MEM.
9389
c3576fa7
RH
93902010-08-05 Richard Henderson <rth@redhat.com>
9391
55b324a6 9392 PR debug/45188
c3576fa7
RH
9393 * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
9394 (INCOMING_RETURN_ADDR_RTX): Likewise.
9395 (dwarf2out_do_frame): Remove conditional compilation.
9396 (dwarf2out_frame_init): Likewise.
9397
acdb4da7
NS
93982010-08-05 Nicolas Setton <setton@adacore.com>
9399
9400 * gcov.c (flag_display_progress): New static variable.
9401 (main): Display progress info on standard output if requested.
9402 (options): Add -d/--display-progress.
9403 (print_usage): Print them.
9404 (process_args): Handle them.
9405 * doc/gcov.texi: Document them.
9406
3e66255c
MJ
94072010-08-05 Martin Jambor <mjambor@suse.cz>
9408
9409 * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
9410 (ipcp_insert_stage): Redirect only edges not flagged with
9411 indirect_inlining_edge. Call ipcp_discover_new_direct_edges for all
9412 discovered constants.
9413
3949c4a7
MJ
94142010-08-05 Martin Jambor <mjambor@suse.cz>
9415
9416 * ipa-prop.h (enum ipa_lattice_type): Changed comments.
9417 (struct ipa_param_descriptor): New fields types and
9418 cannot_devirtualize.
9419 (ipa_param_cannot_devirtualize_p): New function.
9420 (ipa_param_types_vec_empty): Likewise.
9421 (ipa_make_edge_direct_to_target): Declare.
9422 * ipa-cp.c: Fixed first stage driver name in initial comment,
9423 described devirtualization there too.
9424 (ipcp_analyze_node): Call ipa_analyze_params_uses.
9425 (ipcp_print_all_lattices): Print devirtualization info.
9426 (ipa_set_param_cannot_devirtualize): New function.
9427 (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
9428 lattice to BOTTOM.
9429 (ipcp_init_stage): Merged into...
9430 (ipcp_generate_summary): ...its caller.
9431 (ipcp_change_tops_to_bottom): Also process type lists.
9432 (ipcp_add_param_type): New function.
9433 (ipcp_copy_types): Likewise.
9434 (ipcp_propagate_types): Likewise.
9435 (ipcp_propagate_stage): Also propagate types.
9436 (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
9437 Also return true if propagated types require it.
9438 (ipcp_update_callgraph): Dump redirection info.
9439 (ipcp_process_devirtualization_opportunities): New function.
9440 (ipcp_const_param_count): Include known type information.
9441 (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
9442 on new node. Fixed formatting.
9443 * ipa-prop.c (make_edge_direct_to_target): Renamed to
9444 ipa_make_edge_direct_to_target and changed all callers. Made
9445 externally visible.
9446 (ipa_node_duplication_hook): Duplicate types vector.
9447 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
9448 redirect outgoing calls for which we can't get a decl from the
9449 statement. Check that we can get a decl from the call statement.
9450 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
9451 ipa_analyze_params_uses only when ipa-cp is disabled.
9452 * tree-inline.c (get_indirect_callee_fndecl): Removed.
9453 (expand_call_inline): Do not call get_indirect_callee_fndecl.
9454 * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
9455 * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
9456
4caa21a1
UB
94572010-08-05 Uros Bizjak <ubizjak@gmail.com>
9458
9459 * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
9460 temporary. Emit move from temporary to accum, so REG_EQUAL note will
9461 be attached to this insn in correct mode.
9462
a5b2e0ef
UB
94632010-08-05 Uros Bizjak <ubizjak@gmail.com>
9464
9465 * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
9466 using REGNO of base_reg directly.
9467
36b86f4a
JZ
94682010-08-05 Jie Zhang <jie@codesourcery.com>
9469
9470 PR tree-optimization/45144
9471 * tree-sra.c (type_consists_of_records_p): Return false
9472 if the record contains bit-field.
9473
9bf40564
RH
94742010-08-04 Richard Henderson <rth@redhat.com>
9475
106c3c10
RH
9476 * config/i386/i386.c (struct ix86_frame): Remove padding and
9477 to_allocate members.
9478 (ix86_compute_frame_layout): Don't store them.
9479 (ix86_can_use_return_insn_p): Use a more direct and more obviously
9480 correct condition for the position of the stack pointer.
9481 (ix86_expand_prologue): Compute remaining stack allocation based
9482 on the ultimate stack pointer offset.
9483 (ix86_expand_epilogue): Use more obvious expressions testing for
9484 the stack pointer already pointing to the saved registers.
9485
87ec2632
RH
9486 * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
9487 duplication deconstructing the frame pointer. Simplify
9488 deallocation of the local stack frame.
9489
c9f4c451
RH
9490 * reg-notes.def (CFA_EXPRESSION): New.
9491 * dwarf2out.c (dwarf2out_frame_debug): Handle it.
9492 (dwarf2out_frame_debug_cfa_expression): New.
9493 (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
9494
9495 * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
9496 * config/i386/i386.c (ix86_expand_prologue): Set it.
9497 (ix86_expand_epilogue): Clear it.
9498 (ix86_emit_save_reg_using_mov): For registers saved in a realigned
9499 context, add REG_CFA_EXPRESSION notes.
9500
ec7ded37
RH
9501 * config/i386/i386.h (struct machine_frame_state): Rename from
9502 machine_cfa_state. Add members tracking SP and FP regardless
a5b2e0ef 9503 of the current CFA register.
ec7ded37
RH
9504 (ix86_cfa_state): Remove.
9505 * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
9506 and sse_reg_save_offset members.
9507 (ix86_compute_frame_layout): Set them.
9508 (gen_push): Increment sp_offset too.
9509 (choose_baseaddr_len, choose_baseaddr): New.
9510 (ix86_emit_save_reg_using_mov): New.
9511 (ix86_emit_save_regs_using_mov): Use it.
9512 (ix86_emit_save_sse_regs_using_mov): Likewise.
9513 (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
9514 compare vs the saved red_zone_offset.
9515 (pro_epilogue_adjust_stack): Adjust sp_offset.
9516 (ix86_adjust_stack_and_probe): Likewise.
9517 (ix86_expand_prologue): Set up, use, and validate the new
9518 frame_state_info members. Use gen_frame_mem.
9519 (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
9520 (ix86_emit_restore_reg_using_pop): Likewise. Use and update the
9521 new frame_state_info members.
9522 (ix86_emit_leave): Likewise.
9523 (ix86_emit_restore_regs_using_mov): Likewise. Don't check for
9524 out-of-range stack pointer offsets here.
9525 (ix86_emit_restore_sse_regs_using_mov): Likewise.
9526 (ix86_expand_epilogue): Use and validate the new frame_state_info
9527 members. Break up and simplify the logic selecting the
9528 restore_regs_via_mov code path. Ensure that there will be no
9529 out-of-range stack pointer offsets.
9530
17959958
RH
9531 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
9532
e8dc4658
RH
9533 * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
9534 argument name to reflect the expected tree; fix indentation.
9535 (ix86_asm_output_function_label): Output the entire 32-bit
9536 ms_hook here as bytes ...
9537 (ix86_expand_prologue): ... not here as insns. Attach the
9538 unwind info for the ms_hook to a blockage insn.
9539 (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
9540 (ix86_ms_bitfield_layout_p): Fix indentation.
9541 * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
9542
25502041
RH
9543 * config/i386/i386.c (ix86_using_red_zone): New.
9544 (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
9545 ix86_expand_prologue, ix86_force_to_memory): Use it.
9546
cdcb5f26
RH
9547 * config/i386/i386.c (ix86_expand_prologue): Simplify logic
9548 saving the int registers.
9549
9bf40564
RH
9550 * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
9551 and DWARF2_UNWIND_INFO conditional compilation.
9552
e78f1a3f
RH
95532010-08-04 Richard Henderson <rth@redhat.com>
9554
9555 PR debug/45171
9556 * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
9557 an is_naming_typedef_decl.
9558
fde157f2
BS
95592010-08-04 Bernd Schmidt <bernds@codesourcery.com>
9560
9561 PR rtl-optimization/45162
9562 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
9563 * dce.c (word_dce_process_block): Likewise.
9564
33974673
SE
95652010-08-04 Steve Ellcey <sje@cup.hp.com>
9566
9567 PR target/44583
9568 * config/ia64/constraints.md (Z): New.
9569 * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
9570 (xfreg_or_signed_fp01_operand): New.
9571 * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
9572 with fr_reg_or_signed_fp01_operand and constraint G with Z.
9573 (subsf3): Ditto.
9574 (*maddsf4): Ditto.
9575 (*msubsf4): Ditto.
9576 (adddf3): Ditto.
9577 (adddf3_trunc): Ditto.
9578 (subdf3): Ditto.
9579 (*subdf3_trunc): Ditto.
9580 (*madddf4): Ditto.
9581 (*madddf4_trunc): Ditto.
9582 (*msubdf4): Ditto.
9583 (*msubdf4_trunc): Ditto.
9584 (addxf3): Replace xfreg_or_fp01_operand with
9585 xfreg_or_signed_fp01_operand and constraint G with Z.
9586 (*addxf3_truncsf): Ditto.
9587 (*addxf3_truncdf): Ditto.
9588 (subxf3): Ditto.
9589 (*subxf3_truncsf): Ditto.
9590 (*subxf3_truncdf): Ditto.
9591 (*maddxf4): Ditto.
9592 (*maddxf4_truncsf): Ditto.
9593 (*maddxf4_truncdf): Ditto.
9594 (*msubxf4): Ditto.
9595 (*msubxf4_truncsf): Ditto.
9596 (*msubxf4_truncdf): Ditto.
9597
55e3bc4c
RG
95982010-08-04 Richard Guenther <rguenther@suse.de>
9599
9600 * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
9601 if either alias-set is zero.
9602
455e6d5b
RG
96032010-08-04 Richard Guenther <rguenther@suse.de>
9604
9605 * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
9606 * tree-ssa-ccp.c: ... here.
9607 * tree-ssa-copy.c: ... and here.
a5b2e0ef 9608 * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
455e6d5b
RG
9609 value_range_t): Move ...
9610 * tree-vrp.c: ... here.
9611 * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
9612 (substitute_and_fold): Adjust prototype.
9613 * tree-ssa-propagate.c (replace_uses_in): Adjust.
9614 (replace_phi_args_in): Likewise.
9615 (substitute_and_fold): Take callback to query lattice instead
9616 of pointer to lattice. Replace SSA name defs with lattice
9617 values first.
9618 * tree-ssa-ccp.c (ccp_finalize): Adjust.
9619 * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
9620 (get_value): New function.
9621 (fini_copy_prop): Adjust.
9622 * tree-vrp.c (vrp_finalize): Adjust.
9623
48176d81
RG
96242010-08-04 Richard Guenther <rguenther@suse.de>
9625
9626 PR middle-end/45176
9627 * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
9628 points-to set for original MEM_REF.
9629
84d77ca6
RG
96302010-08-04 Richard Guenther <rguenther@suse.de>
9631
9632 * tree-ssa-ccp.c (get_constant_value): New function.
9633 (get_rhs_assign_op_for_ccp): Remove.
9634 (valueize_op): New function.
9635 (ccp_fold): Use get_constant_value and valueize_op.
9636 (fold_const_aggregate_ref): Likewise.
9637 (ccp_fold_stmt): Likewise.
9638 (visit_assignment): Simplify.
9639
552cbe64
RG
96402010-08-04 Richard Guenther <rguenther@suse.de>
9641
9642 * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
9643 * double-int.h (double_int_ctz): Declare.
9644 * double-int.c (double_int_ctz): New function.
9645
74164603 96462010-08-04 Hariharan Sandanagobalane <hariharan@picochip.com>
31af8367
HS
9647
9648 * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
9649 Define.
9650 picochip_expand_movmemhi : Expand movmem pattern.
9651 * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
9652 Declare.
9653 * config/picochip/picochip.md (movmemhi) : New pattern.
9654
f39cd38b
UB
96552010-08-03 Uros Bizjak <ubizjak@gmail.com>
9656
9657 * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
9658
29b40d79
BS
96592010-08-03 Bernd Schmidt <bernds@codesourcery.com>
9660
9661 * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
9662 NEG as operand of a MULT by merging it with the other operand.
9663 * combine.c (make_compound_operation): Use trunc_int_for_mode when
9664 generating a MULT with constant. Canonicalize PLUS and MINUS involving
9665 MULT.
9666 * config/arm/constraints.md (M): Examine only 32 bits of a
9667 HOST_WIDE_INT.
9668 * config/arm/predicates.md (power_of_two_operand): Likewise.
9669
051de0eb
UW
96702010-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9671
9672 * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
9673 non-NOTE insns.
9674
241a2b9e
JH
96752010-08-03 Jan Hubicka <jh@suse.cz>
9676
9677 * ipa-split.c (struct split_point): Add split_part_set_retval.
9678 (find_retval): Forward declare.
9679 (test_nonssa_use, mark_nonssa_use): Special case return by reference.
9680 (consider_split): Compute current->split_part_set_retval.
9681 (visit_bb): Do not look into return value.
9682 (split_function): Handle !split_part_set_retval
9683
fc734382
MJ
96842010-08-03 Martin Jambor <mjambor@suse.cz>
9685
9686 * tree-sra.c (completely_scalarize_record): New parameter REF, create
9687 its own access->expr intead of using build_ref_for_offset.
9688
1890bccc
JM
96892010-08-03 Joseph Myers <joseph@codesourcery.com>
9690
9691 * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
9692 * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
f39cd38b 9693 * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
1890bccc
JM
9694 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
9695 * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
9696 * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
9697 * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
9698 DEFAULT_SWITCH_TAKES_ARG.
9699 * config/rx/rx.opt (-patch=): Remove option.
9700 * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
9701 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
9702 * doc/invoke.texi (RX Options): Remove -patch=.
9703 * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
9704 (option_map): Remove --profile-blocks, --quiet and --silent.
9705
dc91d892
UB
97062010-08-03 Uros Bizjak <ubizjak@gmail.com>
9707
9708 * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
9709 * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
9710 (ix86_expand_branch): Add op0 and op1 arguments. Do not access
9711 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
9712 Update calls to ix86_expand_compare and ix86_expand_branch.
9713 (ix86_expand_setcc): Add op0 and op1 arguments. Update calls to
9714 ix86_expand_compare.
9715 (ix86_expand_compare): Add op0 and op1 arguments. Do not access
9716 ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
9717 Make static.
9718 (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
9719 and ix86_compare_op1. Update calls to ix86_expand_compare.
9720 (ix86_expand_int_movcc): Ditto.
9721 (ix86_expand_fp_movcc): Ditto. Update calls to ix86_expand_setcc.
9722 * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
9723 (ix86_expand_setcc): Ditto.
9724 (ix86_expand_compare): Remove prototype.
9725 * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
9726 ix86_compare_op0 and ix86_compare_op1. Update calls
9727 to ix86_expand_branch to directly pass operands[1] and operands[2].
9728 (cbranchxf4): Ditto.
9729 (cbranch<MODEF:mode>4): Ditto.
9730 (cbranchcc4): Ditto.
9731 (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
9732 Update calls to ix86_expand_setcc to directly pass operands[2] and
9733 operands[3].
9734 (cstorexf4): Ditto.
9735 (cstore<MODEF:mode>4): Ditto.
9736 (cstorecc4): Ditto.
9737
14292418
BS
97382010-08-02 Bernd Schmidt <bernds@codesourcery.com>
9739
9740 PR target/45063
9741 * caller-save.c (save_call_clobbered_regs): Remove regs from
9742 hard_regs_saved when they are set.
9743
fea8c257
UB
97442010-08-02 Uros Bizjak <ubizjak@gmail.com>
9745
9746 PR target/41089
9747 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
9748 as volatile.
9749
20769d5e
SP
97502010-08-02 Sebastian Pop <sebastian.pop@amd.com>
9751
9752 * common.opt (ftree-loop-distribute-patterns): New.
9753 * invoke.texi (-ftree-loop-distribute-patterns): Documented.
9754 * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
9755 at -O3.
9756 * tree-data-ref.c (stores_zero_from_loop): New.
9757 * tree-data-ref.h (stores_zero_from_loop): Declared.
9758 * tree-loop-distribution.c (tree_loop_distribution): Call
9759 stores_zero_from_loop.
9760 (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
9761
f37e278a
BS
97622010-08-02 Bernd Schmidt <bernds@codesourcery.com>
9763
9764 * postreload.c (reload_cse_simplify_operands): Take attribute enabled
9765 into account.
9766
906668bb
BS
9767 * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
9768 * config/arm/arm.c (thumb1_code): New variable.
9769 (arm_override_options): Set it.
9770 (thumb1_final_prescan_insn): Keep track of condition code status.
9771 (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
9772 jumps that depend on them.
9773 * config/arm/arm.h (thumb1_code): Declare variable.
9774 (struct machine_function): Guard with #ifndef GENERATOR_FILE. Add
9775 members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
9776 thumb1_cc_mode.
9777 (CC_STATUS_INIT): New macro.
9778 * config/arm/constraints.md (Pd): New constraint.
9779 * config/arm/predicates.md (noov_comparison_operator): New predicate.
9780 * config/arm/arm.md (is_thumb1): New define_attr.
9781 (conds): Set default to "clob" when generating Thumb1 code.
9782 (thumb1_bicsi3): Renamed from bicsi3. All uses changed. Condition
9783 code are set. Use two-operand assembly syntax.
9784 (thumb1_subsi3_insn): Condition codes are set. Now a properly named
9785 pattern.
9786 (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
9787 codes are set. Use two-operand assembly syntax.
9788 (zero_extendhisi splitter): Remove constraints.
9789 (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
9790 thumb1_movsf_insn): Set conds attribute as appropriate.
9791 (cbranchsi4_insn): Use condition code status from struct
9792 machine_function to determine whether the comparison can be eliminated.
9793 Discourage the alternative using high registers.
9794 (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
9795 orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
9796 bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
9797 subsi3_cbranch): Delete.
9798 (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
9799 one subtract and one cbranch insn.
9800
0bd44ba2
BS
9801 * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
9802 thumb2_movdf_soft_insn): Delete patterns.
9803 * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
9804 arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
9805 (pool_range, neg_pool_range): Use them to define defaults.
9806 (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
9807 and allow for TARGET_32BIT.
9808
37119410
BS
9809 PR target/40457
9810 * config/arm/arm.h (arm_regs_in_sequence): Declare.
9811 * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
9812 load_multiple_sequence, store_multiple_sequence): Delete
9813 declarations.
9814 (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
9815 declarations.
9816 * config/arm/ldmstm.md: New file.
9817 * config/arm/arm.c (arm_regs_in_sequence): New array.
9818 (load_multiple_sequence): Now static. New args SAVED_ORDER,
9819 CHECK_REGS. All callers changed.
9820 If SAVED_ORDER is nonnull, copy the computed order into it.
9821 If CHECK_REGS is false, don't sort REGS. Handle Thumb mode.
9822 (store_multiple_sequence): Now static. New args NOPS_TOTAL,
9823 SAVED_ORDER, REG_RTXS and CHECK_REGS. All callers changed.
9824 If SAVED_ORDER is nonnull, copy the computed order into it.
9825 If CHECK_REGS is false, don't sort REGS. Set up REG_RTXS just
9826 like REGS. Handle Thumb mode.
9827 (arm_gen_load_multiple_1): New function, broken out of
9828 arm_gen_load_multiple.
9829 (arm_gen_store_multiple_1): New function, broken out of
9830 arm_gen_store_multiple.
9831 (arm_gen_multiple_op): New function, with code from
9832 arm_gen_load_multiple and arm_gen_store_multiple moved here.
9833 (arm_gen_load_multiple, arm_gen_store_multiple): Now just
9834 wrappers around arm_gen_multiple_op. Remove argument UP, all callers
9835 changed.
9836 (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
9837 * config/arm/predicates.md (commutative_binary_operator): New.
9838 (load_multiple_operation, store_multiple_operation): Handle more
9839 variants of these patterns with different starting offsets. Handle
9840 Thumb-1.
9841 * config/arm/arm.md: Include "ldmstm.md".
9842 (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
9843 ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
9844 stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
9845 peepholes): Delete.
9846 * config/arm/ldmstm.md: New file.
9847 * config/arm/arm-ldmstm.ml: New file.
9848
13cc4787
BS
9849 * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
9850 if statement which adds extra costs to frame-related expressions.
9851
0eeeef07
RR
98522010-08-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9853
9854 * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
9855
22db1fbc
UB
98562010-08-01 Uros Bizjak <ubizjak@gmail.com>
9857
9858 PR target/45142
9859 * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
9860 alternative 2.
b146446c 9861 (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
22db1fbc
UB
9862 split V4SI operands.
9863
501d087d
AS
98642010-08-01 Anatoly Sokolov <aesok@post.ru>
9865
9866 * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
9867 * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
9868 * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
9869 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
9870
da46381f
KT
98712010-07-31 Kai Tietz <kai.tietz@onevision.com>
9872
9873 * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
9874 LOCAL_INCLUDE_DIR.
9875
9eab7f91
RS
98762010-07-31 Richard Sandiford <rdsandiford@googlemail.com>
9877
9878 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
9879 used in the call to optab_for_tree_code. Fix the second
9880 is_widening_mult_p call. Check that both unwidened operands
9881 have the same sign.
9882
6601202c
JT
98832010-07-31 John Tytgat <John.Tytgat@aaug.net>
9884
9885 * config/arm/arm.c (arm_function_arg): Remove superfluous test.
9886
08cbf291
AS
98872010-07-31 Anatoly Sokolov <aesok@post.ru>
9888
9889 * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
9890
cf6521b4
DD
98912010-07-30 DJ Delorie <dj@redhat.com>
9892
9893 * config/rx/predicates.md (rx_constshift_operand): New.
9894 * config/rx/rx.md (zs_cond): New.
9895 (cbranchsi4): Remove mode.
9896 (*cbranchsi4_<code>): Likewise.
9897 (*tstbranchsi4_<code>): New.
9898 (*tstbranchsi4r_<code>): New.
9899 (*tstbranchsi4m_eq): New.
9900 (*tstbranchsi4m_ne): New.
9901 (cbranchsf4): Remove mode.
9902 (*cbranchsf4_<code>): Likewise.
9903
d4e0d036
BS
99042010-07-30 Bernd Schmidt <bernds@codesourcery.com>
9905
9906 * rtlanal.c (simplify_subreg_regno): Don't treat
9907 HARD_FRAME_POINTER_REGNUM specially.
9908
34251c0e
JM
99092010-07-30 Joseph Myers <joseph@codesourcery.com>
9910
9911 * common.opt (-G): Don't define option here.
9912 * config/g.opt: New.
9913 * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
9914 rs6000/powerpc and score targets.
9915 * opts.c (common_handle_option): Don't handle -G here.
9916 * config/alpha/alpha.c (alpha_handle_option): Handle -G.
9917 * config/frv/frv.c (frv_handle_option): Handle -G.
9918 * config/ia64/ia64.c (ia64_handle_option): Handle -G.
22db1fbc 9919 * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
34251c0e
JM
9920 * config/m32r/m32r.c (m32r_handle_option): Handle -G.
9921 * config/mips/mips.c (mips_handle_option): Handle -G.
9922 * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
9923 * config/score/score.c (score_handle_option): Handle -G.
9924
2d5bfc67
AS
99252010-07-30 Anatoly Sokolov <aesok@post.ru>
9926
9927 * config/mmix/mmix.c: Include basic-block.h.
9928
f0fc0803
JJ
99292010-07-30 Jakub Jelinek <jakub@redhat.com>
9930
9931 PR debug/45055
9932 PR rtl-optimization/45137
9933 * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
9934 prototypes.
9935 * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
9936 New functions.
9937 * combine.c (next_nonnote_nondebug_insn): Removed.
9938 * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
9939 * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
9940 * sched-deps.c (sched_analyze_insn): Likewise.
9941 (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
9942 * rtlanal.c (canonicalize_condition): Likewise.
9943 * postreload.c (reload_combine_recognize_pattern): Likewise.
9944 (reload_cse_move2add): Use next_nonnote_nondebug_insn.
9945
f53ea4f0
UB
99462010-07-29 Uros Bizjak <ubizjak@gmail.com>
9947
9948 * config/i386/i386.md (int_cond): Remove code iterator.
9949 (fp_cond): Ditto.
9950 (cbranch<mode>4): Use ordered_comparison_operator predicate
9951 for operator0.
9952 (cstore<mode>4): Ditto for operator1.
8aadc2f3
UB
9953 (mov<SWIM:mode>cc and corresponding splitter): Ditto.
9954 (add<mode>cc): ditto.
f53ea4f0 9955
1f60f74e
RG
99562010-07-30 Richard Guenther <rguenther@suse.de>
9957
9958 PR middle-end/45141
9959 * expr.c (expand_expr_real_1): Check for not handled base address.
9960
4eb3f32c
RG
99612010-07-30 Richard Guenther <rguenther@suse.de>
9962
9963 * ipa-prop.c (ipa_modify_formal_parameters): Use
9964 build_distinct_type_copy.
9965
1242723c
AG
99662010-07-30 Anthony Green <green@moxielogic.com>
9967
9968 * config/moxie/rtems.h: New file.
9969 * config.gcc: Add moxie-rtems support.
9970
25aef556
BS
99712010-07-29 Bernd Schmidt <bernds@codesourcery.com>
9972
9973 * dce.c (run_word_dce): Take flag_dce into account. Clear and restore
9974 df flags as in run_fast_df_dce.
9975
0f953f83
JJ
99762010-07-29 Jakub Jelinek <jakub@redhat.com>
9977
9978 Revert:
f53ea4f0
UB
9979 2010-07-27 Bernd Schmidt <bernds@codesourcery.com>
9980
0f953f83 9981 * rtl.def (NOTE): Swap operands 4 and 5.
f53ea4f0 9982 * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
0f953f83
JJ
9983 NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
9984 Adjust accordingly.
f53ea4f0 9985 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
0f953f83 9986
8b522bef
JJ
99872010-07-29 Jakub Jelinek <jakub@redhat.com>
9988
9989 PR debug/45110
9990 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
9991 (gen_formal_types_die): Add DW_AT_object_pointer in methods.
9992 (gen_subprogram_die): Likewise. Remove it when removing declaration's
9993 formal parameters.
9994 (gen_decl_die): Change return type to dw_die_ref, return what
9995 gen_formal_parameter_die returned.
9996
a1a6c2df
MJ
99972010-07-29 Martin Jambor <mjambor@suse.cz>
9998
9999 * dbgcnt.def (eipa_sra): New counter.
10000 * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
10001
0c5bb946
XDL
100022010-07-29 Xinliang David Li <davidxl@google.com>
10003
10004 PR bootstrap/45119
10005 * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
10006 in revision 162652.
10007
2c2fbff7
RG
100082010-07-29 Richard Guenther <rguenther@suse.de>
10009
10010 * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
10011 (TV_TREE_STORE_CCP): Likewise.
10012 (TV_TREE_REDPHI): Likewise.
10013
100142010-07-29 Richard Guenther <rguenther@suse.de>
950f7f45
RG
10015
10016 * double-int.h (double_int_and_not): New function.
10017 * combine.c (try_combine): Use it.
10018 * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
10019
8d074192
BS
100202010-07-29 Bernd Schmidt <bernds@codesourcery.com>
10021
10022 PR rtl-optimization/42575
10023 * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
10024 Argument AU removed. All callers changed. Ignore artificial refs.
10025 Use return value of df_word_lr_simulate_defs to decide whether an insn
10026 is necessary.
10027 (fast_dce): Rename arg to WORD_LEVEL.
10028 (run_word_dce): Renamed from rest_of_handle_fast_byte_dce. No longer
10029 static.
10030 (pass_fast_rtl_byte_dce): Delete.
10031 * dce.h (run_word_dce): Declare.
10032 * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
10033 All callers changed. Simplify code to only deal with two-word regs.
10034 * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
10035 (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
10036 (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
10037 (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
10038 (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
10039 (df_word_lr_mark_ref): Declare.
10040 (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
10041 df_word_lr_simulate_uses): Declare or rename from byte variants.
10042 (df_byte_lr_simulate_artificial_refs_at_top,
10043 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
10044 df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
10045 declarations.
10046 (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
10047 (enum df_mm): Delete.
10048 * df-byte-scan.c: Delete file.
10049 * df-problems.c (df_word_lr_problem_data): Renamed from
10050 df_byte_lr_problem_data, all members deleted except for
10051 WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS. Uses changed.
10052 (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
10053 df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
10054 df_byte_lr_get_regno_len, df_byte_lr_check_regs,
10055 df_byte_lr_confluence_0): Delete functions.
10056 (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
10057 callers changed.
10058 (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
10059 Don't initialize members that were deleted, don't try to discover data
10060 about registers. Ignore hard regs.
10061 (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
10062 (df_word_lr_mark_ref): New function.
10063 (df_word_lr_bb_local_compute): Renamed from
10064 df_byte_bb_lr_local_compute; all callers changed. Use
10065 df_word_lr_mark_ref. Assert that artificial refs don't include
10066 pseudos. Ignore hard registers.
10067 (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
10068 Assert that exit block uses don't contain pseudos.
10069 (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
10070 (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
10071 callers changed. Ignore hard regs.
10072 (df_word_lr_transfer_function): Renamed from
10073 df_byte_lr_transfer_function; all callers changed.
10074 (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
10075 (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
10076 changed.
10077 (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
10078 callers changed.
10079 (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
10080 confluence operator 0 set to NULL.
10081 (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
10082 callers changed.
10083 (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
10084 Return bool, true if bitmap changed or insn otherwise necessary.
10085 All callers changed. Simplify using df_word_lr_mark_ref.
10086 (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
10087 all callers changed. Simplify using df_word_lr_mark_ref.
10088 * lower-subreg.c: Include "dce.h"
10089 (decompose_multiword_subregs): Call run_word_dce if df available.
10090 * Makefile.in (lower-subreg.o): Adjust dependencies.
10091 (df-byte-scan.o): Delete.
10092 * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
10093
9b638c03
RG
100942010-07-29 Richard Guenther <rguenther@suse.de>
10095
10096 * tree.c (build_vector): Assert that the vector constant
10097 has enough elements.
10098 (build_vector_from_ctor): Pad with trailing zeros.
10099
1c09321c
RG
101002010-07-29 Richard Guenther <rguenther@suse.de>
10101
10102 PR tree-optimization/45120
10103 * tree-ssa-structalias.c (get_constraint_for_component_ref):
10104 Handle offset in DEREFs properly.
10105 (get_constraint_for_1): Handle MEM_REF offset properly.
10106
6befd6b0
RG
101072010-07-29 Richard Guenther <rguenther@suse.de>
10108
10109 PR middle-end/45034
10110 * convert.c (convert_to_integer): Always use an unsigned
10111 type for narrowed negate and bitwise not.
10112
61869cc9
IR
101132010-07-29 Ira Rosen <irar@il.ibm.com>
10114
10115 * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
f53ea4f0 10116 to outer loop when creating reduction epilogue for double reduction,
61869cc9
IR
10117 and switch back to the inner loop when updating the phi nodes.
10118 Update uses of outer loop exit phi nodes in double reduction (instead
10119 of uses of reduction).
10120
8119a6a6
MM
101212010-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
10122
10123 * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
10124 popcount on power7 and parity on power6 systems.
10125 (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
10126 (rs6000_emit_parity): Add support for power6 prtyd/prtyw
10127 instructions.
10128
10129 * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
10130 (UNSPEC_PARITY): Ditto.
10131 (SFDF): New iterator for SF/DF.
10132 (rreg2): New mode attribute for floating register constraint.
10133 (TARGET_FLOAT): New mode attribute for whether single/double float
10134 is supported.
10135 (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
10136 pattern.
10137 (parity<mode>2_cmpb): New insn for parity on power6 and newer
10138 machines.
10139 (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
10140 pattern. Add support for fcpsgn instruction added in power6.
10141 (copysignsf3): Delete.
10142 (copysigndf3): Delete.
10143 (copysign<mode>3_fcpsgn): New insn to generate fcpsgn. Use UNSPEC
10144 instead of if_then_else in RTL to avoid problems with -0.
10145
10146 * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
10147 of if_then_else to mirror scalar code.
10148 (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
10149 rs6000.md.
10150
10151 * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
10152 instead of if_then_else.
10153
18081149
XDL
101542010-07-28 Xinliang David Li <davidxl@google.com>
10155
10156 * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
10157 (dump_cand): Dump var_before/after.
10158 (htab_inv_expr_eq): New function.
10159 (htab_inv_expr_hash): New function.
10160 (tree_ssa_iv_optimize_init): Support pseudo invariants.
10161 (add_candidate_1): consider base type precision.
10162 (set_use_iv_cost): New parameter.
10163 (adjust_setup_cost): Use profile information.
10164 (get_address_cost): Do not hard code width in computing address
10165 offset limits.
10166 (compare_aff_trees): New function.
10167 (get_loop_invariant_expr_id): New function.
10168 (get_computation_cost_at): New parameter and use profile information.
10169 (get_computation_cost): New parameter.
10170 (determine_use_iv_cost_generic): Pass new parameter.
10171 (determine_use_iv_cost_address): Ditto.
10172 (determine_use_iv_cost_condition): Ditto.
10173 (autoinc_possible_for_pair): Ditto.
10174 (determine_use_iv_costs): More dumps.
10175 (iv_ca_get_num_inv_exprs): New function.
10176 (iv_ca_recount_cost): Consider loop invariants in register pressure
10177 cost.
10178 (iv_ca_add_use): New parameter.
10179 (iv_ca_dump): Better dumping.
10180 (iv_ca_extend): New parameter.
10181 (try_add_cand_for): Attempt to get better partial solution.
10182 (try_improve_iv_set): Pass new parameter to iv_ca_extend.
10183 (create_new-ivs): More dumps.
10184 (rewrite_use_compare): Ditto.
10185 (free_loop_data): More cleanup.
10186 (treee_ssa_iv_optimize_finalize): Ditto.
10187
3c5273a9
KT
101882010-07-28 Kai Tietz <kai.tietz@onevision.com>
10189
10190 * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
10191 * config/i386/i386.c (ix86_profile_before_prologue): New.
10192 (override_options): Add special handling for -mfentry.
10193 (ix86_function_regparm): Likewise.
10194 (ix86_function_sseregparm): Likewise.
10195 (ix86_frame_pointer_required): Likewise.
10196 (ix86_expand_prologue): Check for ms_hook_prologue.
10197 (x86_function_profiler): Adjust mcount output.
10198 (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
10199 * config/i386/i386.opt (mfentry): New.
10200 * doc/invoke.texi (mfentry): Add documentation.
10201 * doc/tm.texi: Regenerated..
10202 * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
10203 * final.c (final_start_function): Replace macro
10204 PROFILE_BEFORE_PROLOGUE by target hook.
10205 * function.c (thread_prologue_and_epilogue_insns): Likewise.
10206 * target.def (profile_before_prologue): New hook.
10207 * targhooks.c (default_profile_before_prologue): New.
10208 * targhooks.h (default_profile_before_prologue): New.
10209
652c4638
JJ
102102010-07-28 Jakub Jelinek <jakub@redhat.com>
10211
05b5ea34
JJ
10212 PR debug/45105
10213 * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
10214
652c4638
JJ
10215 PR debug/45103
10216 * dwarf2out.c (dwarf2out_var_location): Always consider
10217 NOTE_DURING_CALL_P notes, even when not followed by real instructions.
10218
fb039b24
MK
102192010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
10220
10221 PR rtl-optimization/45107
10222 * gcse.c (hash_scan_set): Use max_distance for gcse-las.
10223
7a95d078
RG
102242010-07-28 Richard Guenther <rguenther@suse.de>
10225
10226 * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
10227 (set_lattice_value): Do not query an old default value.
10228 (get_value_for_expr): New function. Properly canonicalize
10229 float values.
10230 (ccp_visit_phi_node): Use it.
10231
12ffc7d5
CLT
102322010-07-28 Chung-Lin Tang <cltang@codesourcery.com>
10233
10234 * config/arm/arm.c (arm_pcs_default): Remove static.
10235 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
10236 __ARM_PCS_VFP to indicate soft/hard-float calling convention.
10237 (arm_pcs_default): Declare.
10238
b2a0ce24
IS
102392010-07-28 Iain Sandoe <iains@gcc.gnu.org>
10240
f53ea4f0 10241 * config/rs6000/rs6000.c (rs6000_override_options):
b2a0ce24
IS
10242 Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
10243 ... to darwin_rs6000_override_options.
10244 (rs6000_return_in_memory): Update preceding comment for darwin
10245 64 bit ABI. Use TARGET_MACHO inline.
10246 (rs6000_darwin64_struct_check_p): New.
10247 (function_arg_advance): Use rs6000_darwin64_struct_check_p.
10248 (function_arg): Likewise.
10249 (rs6000_arg_partial_bytes): Likewise.
10250 (rs6000_function_value): Likewise.
10251
74164603 102522010-07-28 Andi Kleen <ak@linux.intel.com>
c71eb2b7
AK
10253
10254 * lto-opts.c (lto_file_read_options): Add loop over all inputs.
10255
3abd6c1a
RG
102562010-07-28 Richard Guenther <rguenther@suse.de>
10257
10258 PR middle-end/44903
10259 * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
10260 targets try harder to not generate unaligned accesses.
10261
4bcaf354
MK
102622010-07-28 Maxim Kuvyrkov <maxim@codesourcery.com>
10263
10264 PR rtl-optimization/45101
10265 * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
10266 for gcse-las.
10267
c2cf2f4a
EB
102682010-07-28 Eric Botcazou <ebotcazou@adacore.com>
10269
10270 PR tree-optimization/44885
10271 * tree-sra.c (find_param_candidates): Skip pointer types to arrays
10272 with non-aliased component.
10273
eea13ead
JM
102742010-07-28 Joseph Myers <joseph@codesourcery.com>
10275
10276 * config/darwin-driver.c (SWITCH_TAKES_ARG,
10277 WORD_SWITCH_TAKES_ARG): Remove.
10278 * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
10279 * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
10280 DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
10281 (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
10282 definitions from gcc.c.
10283 * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
10284 defaults.h.
10285 * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
10286 Move to defaults.h.
10287 * opts-common.c: Include tm.h.
10288 (decode_cmdline_option): Use SWITCH_TAKES_ARG and
10289 WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
10290 Handle more than one argument. Set canonical_option_num_elements.
10291 (decode_cmdline_options_to_array): Set
10292 canonical_option_num_elements and trailing elements of
10293 canonical_option.
10294 * opts.h (struct cl_decoded_option): Allow four elements in
10295 canonical_option. Add field canonical_option_num_elements.
10296 * Makefile.in (opts-common.o): Update dependencies.
10297
b4351367
EB
102982010-07-28 Eric Botcazou <ebotcazou@adacore.com>
10299
10300 PR middle-end/44790
10301 PR middle-end/44993
10302 * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change. Make
10303 sure the base has address_mode before adding the offset.
10304
74164603 103052010-07-27 Xinliang David Li <davidxl@google.com>
b4351367 10306
880a1451
XDL
10307 * tree-flow.h (create_mem_ref): Add one new parameter.
10308 * tree-ssa-address.c (create_mem_ref): New parameter.
10309 (addr_to_parts): Ditto.
10310 (move_variant_to_index): New function.
10311 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
10312
418e920f
BS
103132010-07-27 Bernd Schmidt <bernds@codesourcery.com>
10314
10315 * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
10316 4 and 5.
10317 * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
10318 NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
10319 NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
10320 * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
10321 CODE_LABELs and NOTEs.
10322 * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
10323 * combine.c (try_combine): Likewise.
10324 * ira.c (setup_prohibited_mode_move_regs): Likewise.
10325 * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
10326
5f20c657
JM
103272010-07-27 Joseph Myers <joseph@codesourcery.com>
10328
10329 * coretypes.h (struct cl_option_handlers): Declare.
10330 * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
10331 * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
10332 * langhooks-def.h (lhd_handle_option): Declare.
10333 (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
10334 * langhooks.c (lhd_handle_option): New.
10335 * langhooks.h (struct lang_hooks): Update prototype and return
10336 value type of handle_option hook.
10337 * optc-gen.awk: Generate target_flags_explicit definition for the
10338 driver.
10339 * opts-common.c: Include diagnostic.h.
10340 (handle_option): Move from opts.c. Update prototype and return
10341 value type. Use handlers structure.
10342 (read_cmdline_option): Move from opts.c. Update prototype. Use
10343 handlers structure.
10344 (set_option): Move from opts.c.
10345 * opts.c (common_handle_option): Update prototype and return value
10346 type. Update calls to handle_option and enable_warning_as_error.
10347 (unknown_option_callback, post_handling_callback,
10348 lang_handle_option, target_handle_option): New.
10349 (handle_option, read_cmdline_option): Move to opts-common.c.
10350 (read_cmdline_options): Update prototype. Update call to
10351 read_cmdline_option.
10352 (decode_options): Initialize and use handlers structure.
10353 (set_option): Move to opts-common.c.
10354 (enable_warning_as_error): Update prototype. Update call to
10355 handle_option.
10356 * opts.h (struct cl_option_handler_func, struct
10357 cl_option_handlers): New.
10358 (handle_option, enable_warning_as_error): Update prototypes.
10359 (read_cmdline_option): Declare.
10360 * Makefile.in (opts-common.o): Update dependencies.
10361
ec3728ad
MK
103622010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10363
10364 * config/arm/arm.c (params.h): Include.
10365 (arm_override_options): Tune gcse-unrestricted-cost.
10366 * config/arm/t-arm (arm.o): Define dependencies.
10367
cad9aa15
MK
103682010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10369
10370 PR target/42495
10371 PR middle-end/42574
10372 * basic-block.h (get_dominated_to_depth): Declare.
10373 * dominance.c (get_dominated_to_depth): New function, use
10374 get_all_dominated_blocks as a base.
10375 (get_all_dominated_blocks): Use get_dominated_to_depth.
10376
10377 * gcse.c (occr_t, VEC (occr_t, heap)): Define.
10378 (hoist_exprs): Remove.
10379 (alloc_code_hoist_mem, free_code_hoist_mem): Update.
10380 (compute_code_hoist_vbeinout): Add debug print outs.
10381 (hoist_code): Partially rewrite, simplify. Use get_dominated_to_depth.
10382
10383 * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
10384 quadratic behavior.
10385 * params.h (MAX_HOIST_DEPTH): New macro.
10386 * doc/invoke.texi (max-hoist-depth): Document.
10387
9b9ee6d3
MK
103882010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10389
10390 PR rtl-optimization/40956
10391 * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
10392 constants.
10393
d37c3c62
MK
103942010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10395
10396 PR target/42495
10397 PR middle-end/42574
10398 * config/arm/arm.c (legitimize_pic_address): Use
10399 gen_calculate_pic_address pattern to emit calculation of PIC address.
10400 (will_be_in_index_register): New function.
10401 (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
10402 (thumb1_legitimate_address_p): Use it provided !strict_p.
10403 * config/arm/arm.md (calculate_pic_address): New expand and split.
10404
3393e880
MK
104052010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10406
10407 PR target/42495
10408 PR middle-end/42574
10409 * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
10410 * config/arm/arm.md (define_split "J", define_split "K"): Make
10411 IRA/reload friendly.
10412
eae7938e
MK
104132010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10414
10415 * gcse.c (insert_insn_end_basic_block): Update signature, remove
10416 unused checks.
10417 (pre_edge_insert, hoist_code): Update.
10418
c7c910ce
MK
104192010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10420
10421 PR target/42495
10422 PR middle-end/42574
10423 * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
10424
3d489bc7
MK
104252010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10426
10427 * gcse.c (hoist_code): Generate new pseudo for every new set insn.
10428
ce4c0015
MK
104292010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10430
10431 PR rtl-optimization/40956
10432 PR target/42495
10433 PR middle-end/42574
10434 * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
10435 for hoisting.
10436 (hoist_code): Count occurences in current block too.
10437
20160347
MK
104382010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10439
10440 * gcse.c (struct expr:max_distance): New field.
10441 (doing_code_hoisting_p): New static variable.
10442 (want_to_gcse_p): Change signature. Allow constrained hoisting of
10443 simple expressions, don't change behavior for PRE. Set max_distance.
10444 (insert_expr_in_table): Set new max_distance field.
10445 (hash_scan_set): Update.
10446 (hoist_expr_reaches_here_p): Stop search after max_distance
10447 instructions.
10448 (find_occr_in_bb): New static function. Use it in ...
10449 (hoist_code): Calculate sizes of basic block before any changes are
10450 done. Pass max_distance to hoist_expr_reaches_here_p.
10451 (one_code_hoisting_pass): Set doing_code_hoisting_p.
10452
10453 * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
10454 (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
10455 * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
10456 macros.
10457 * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
10458 Document.
10459
9b774782
JL
104602010-07-27 Jeff Law <law@redhat.com>
10461 Maxim Kuvyrkov <maxim@codesourcery.com>
10462
10463 * gcse.c (compute_transpout, transpout): Remove, move logic
10464 to prune_expressions.
10465 (compute_pre_data): Move pruning of trapping expressions ...
10466 (prune_expressions): ... here. New static function.
10467 (compute_code_hoist_data): Use it.
10468 (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
10469
55791fcd
XDL
104702010-07-27 Xinliang David Li <davidxl@google.com>
10471
10472 * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
10473 (rewrite_use_address): Adjust iv update position when needed.
10474
62a3f636
MK
104752010-07-27 Maxim Kuvyrkov <maxim@codesourcery.com>
10476
10477 * dbgcnt.def (hoist_insn): New debug counter.
10478 * gcse.c (hoist_code): Use it.
10479
e2102efc
XDL
104802010-07-27 Xinliang David Li <davidxl@google.com>
10481
10482 * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
10483 (niter_for_single_dom_exit): Passes additional parameter.
10484 (iv_period): Fix comments.
10485 (may_eliminate_iv): Handles multiple exit loops properly.
10486 (free_tree_niter_desc): New function.
10487 (free_loop_data): Frees up loop iteration descriptors.
10488
fea31288
JJ
104892010-07-27 Jakub Jelinek <jakub@redhat.com>
10490
f3184b4c
JJ
10491 PR target/44542
10492 * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
10493 of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
10494 instead of MAX_SUPPORTED_STACK_ALIGNMENT.
10495 (expand_one_var): Don't consider DECL_ALIGN for variables for
10496 which expand_one_stack_var_at has been already called.
10497
fea31288
JJ
10498 PR testsuite/44701
10499 * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
10500 constraints on IA-64.
10501
65e29588
JZ
105022010-07-27 Jie Zhang <jie@codesourcery.com>
10503
10504 PR target/44290
f53ea4f0 10505 Revert:
65e29588 10506 2010-07-23 Jie Zhang <jie@codesourcery.com>
f53ea4f0 10507
65e29588
JZ
10508 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
10509 false if ! tree_versionable_function_p.
10510
9f39bd53
JJ
105112010-07-27 Jakub Jelinek <jakub@redhat.com>
10512
10513 * dwarf2out.c (add_data_member_location_attribute): Use
10514 add_AT_unsigned instead of add_AT_int if offset is non-negative.
10515
a78e242c
BS
105162010-07-27 Bernd Schmidt <bernds@codesourcery.com>
10517
10518 * postreload.c (try_replace_in_use): New static function.
10519 (reload_combine_recognize_const_pattern): Use it here. Allow
10520 substituting into a final add insn, and substituting into a memory
10521 reference in an insn that sets the reg.
10522
61ff2bdc
JM
105232010-07-27 Joseph Myers <joseph@codesourcery.com>
10524
10525 * common.opt (o): Add MissingArgError.
10526 * doc/options.texi (MissingArgError): Document.
10527 * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
10528 * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
10529 * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
f53ea4f0 10530 (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
61ff2bdc
JM
10531 * langhooks.h (struct lang_hooks): Remove missing_argument.
10532 * optc-gen.awk: Handle MissingArgError and output new structure
10533 field initializers.
10534 * opts.c (read_cmdline_option): Use missing_argument_error field
10535 instead of missing_argument langhook.
10536 * opts.h (struct cl_option): Add missing_argument_error field.
10537 * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
10538
4e98bcaf
IS
105392010-07-27 Iain Sandoe <iains@gcc.gnu.org>
10540
10541 PR target/29090
10542 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
10543 Darwin64 ABI, for zero-sized objects.
10544
a9ab25e2
IS
105452010-07-27 Iain Sandoe <iains@gcc.gnu.org>
10546
10547 PR target/35491
10548 PR target/29090
10549
10550 Merge from Apple local 4.2.1.
10551 2005-05-11 Stan Shebs <shebs@apple.com>
10552 Fix 64-bit varargs for Darwin (Radar 4028089).
10553 * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
10554 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
10555 Add argument, add case for 8-byte register half-filled with a float.
10556 (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
10557 single-precision floats specially.
10558
2200fc49
IR
105592010-07-27 Ira Rosen <irar@il.ibm.com>
10560
10561 PR tree-optimization/44152
10562 * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
10563 complex numbers for further check.
f53ea4f0 10564 (vect_supported_load_permutation_p): Check nodes with
2200fc49
IR
10565 complex numbers.
10566
7a9bf9a4
JM
105672010-07-27 Joseph Myers <joseph@codesourcery.com>
10568
10569 * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
10570 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
10571 (LANG_HOOKS_INIT_OPTIONS): Update default definition.
10572 (LANG_HOOKS_INITIALIZER): Add new hooks.
10573 * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
10574 * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
10575 and complain_wrong_lang_p. Update init_options prototype.
10576 * c-objc-common.c (c_initialize_diagnostics): First call
10577 c_common_initialize_diagnostics.
10578 * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
10579 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
a691bb08 10580 * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
7a9bf9a4
JM
10581 * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
10582 (hook_uint_void_0): New.
10583 * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
10584 (hook_uint_void_0): New.
10585 * opts-common.c (decode_cmdline_option,
a691bb08 10586 decode_cmdline_options_to_array): Also fill in canonical_option field.
7a9bf9a4
JM
10587 * opts.c (complain_wrong_lang): Use langhook to determine whether
10588 to complain instead of special-casing LTO.
10589 (decode_options): Separate lang_mask determination with
10590 option_lang_mask hook from call of init_options hook.
10591 * opts.h (struct cl_decoded_option): Add canonical_option.
10592
42694189
JJ
105932010-07-27 Jakub Jelinek <jakub@redhat.com>
10594
10595 PR tree-optimization/45083
10596 * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
10597
62036819
BS
105982010-07-27 Bernd Schmidt <bernds@codesourcery.com>
10599
10600 * postreload.c (reload_combine_recognize_const_pattern): Move test
10601 for limiting the insn movement to the right scope.
10602
2b0cb007
BS
10603 PR rtl-optimization/45051
10604 * reload1.c (delete_output_reload): Use refers_to_regno_p rather
10605 than reg_mentioned_p.
10606
8b84c596
RH
106072010-07-26 Richard Henderson <rth@redhat.com>
10608
10609 PR target/44132
10610 * tree-emutls.c: New file.
10611 * Makefile.in (OBJS-common): Add it.
10612 * tree-pass.h (pass_ipa_lower_emutls): Declare.
10613 * passes.c (init_optimization_passes): Add it.
10614
10615 * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
10616 pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
10617 * expr.c (emutls_var_address): Delete.
10618 (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
10619 * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
10620 (emutls_finish): Delete.
10621 * toplev.c (compile_file): Don't call it.
10622 * tree.h (emutls_decl): Delete.
10623 * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
10624 (emutls_finish, emutls_finalize_control_var): Delete.
10625 (emutls_object_type): Move to tree-emutls.c.
10626 (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
10627 default_emutls_var_fields, get_emutls_object_type,
10628 get_emutls_init_templ_addr, emutls_decl, emutls_common_1
10629 default_emutls_var_init): Likewise.
10630 (get_variable_section): Don't special case emutls.
10631 (assemble_variable, do_assemble_alias, categorize_decl_for_section,
10632 default_elf_select_section, default_unique_section,
10633 default_encode_section_info): Likewise.
10634 * varpool.c (decide_is_variable_needed): Likewise.
10635 * gimple-iterator.c (update_call_edge_frequencies): New
10636 (gsi_insert_on_edge_immediate): Use it.
10637 (gsi_insert_seq_on_edge_immediate): Likewise.
10638 (gsi_commit_one_edge_insert): Likewise.
10639
10640 * config/i386/i386.c (x86_64_elf_select_section): Don't handle
10641 SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
10642 (x86_64_elf_unique_section): Likewise.
10643
b7956a5b
JH
106442010-07-26 Jan Hubicka <jh@suse.cz>
10645
10646 * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
10647 GTY((skip)).
10648
b5f5d41d
AS
106492010-07-26 Anatoly Sokolov <aesok@post.ru>
10650
10651 * target.def (output_source_filename): New hook.
10652 * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
10653 * doc/tm.texi: Regenerate.
10654 * toplev.c (output_file_directive) Remove function.
10655 * toplev.h (output_file_directive) Remove.
10656 * output.h (default_asm_output_source_filename,
10657 output_file_directive): Declare.
10658 * varasm.h (default_asm_output_source_filename,
10659 output_file_directive): New functions.
10660
10661 * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
10662 * config/mips/mips-protos.h (mips_output_filename): Remove.
10663 * config/mips/mips.c (mips_output_filename): Make Static.
10664 (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
10665
7f8ac3d7
RG
106662010-07-26 Richard Guenther <rguenther@suse.de>
10667
10668 PR tree-optimization/43784
10669 * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
10670 if the destination is used by the call.
10671
edc74207
RG
106722010-07-26 Richard Guenther <rguenther@suse.de>
10673
10674 PR middle-end/45073
10675 * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
10676 SSA updating on being in SSA form.
10677
bd422c4a
RG
106782010-07-26 Richard Guenther <rguenther@suse.de>
10679
10680 PR middle-end/45056
a691bb08 10681 * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
bd422c4a 10682
e093ffe3
RG
106832010-07-26 Richard Guenther <rguenther@suse.de>
10684
10685 PR tree-optimization/45071
a691bb08 10686 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
e093ffe3
RG
10687 adjust op->opcode.
10688
223a9d64
N
106892010-07-26 Naveen.H.S <naveen.S@kpitcummins.com>
10690
10691 * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
10692 save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
10693 save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
10694 save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
10695 save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
10696 save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
10697 save_r31, return_r31, save_interrupt, return_interrupt,
10698 save_all_interrupt, return_all_interrupt, L_save_r2_r31,
10699 L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
a691bb08 10700 L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
223a9d64 10701 new ABI requirements.
a691bb08 10702 (save_r6_r9, L_callt_save_r6_r9): Remove.
223a9d64
N
10703 * config/v850/predicates.md (even_reg_operand, disp23_operand,
10704 const_float_1_operand const_float_0_operand): New Predicates.
10705 (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
10706 pattern_is_ok_for_epilogue): Update as per the ABI requirements.
10707 * config/v850/t-v850: Update multilibs for new target variants.
10708 (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
10709 * config/v850/t-v850e: Likewise.
10710 * config/v850/v850.c (v850_issue_rate): New.
10711 (v850_strict_argument_naming): New.
10712 (function_arg): Modify to generate a different ABI.
10713 (print_operand): Update case 'z' to support float modes.
10714 (output_move_single): Modify to generate appropriate and better
10715 assembly.
10716 (v850_float_z_comparison_operator, v850_select_cc_mode,
10717 v850_float_nz_comparison_operator, v850_gen_float_compare,
a691bb08 10718 v850_gen_compare): New functions to support comparison of float values.
223a9d64
N
10719 (ep_memory_offset): Add support for V850E2 targets.
10720 (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
10721 (INTERRUPT_REGPARM_NUM): Remove.
a691bb08 10722 (compute_register_save_size): Add extra case to save/restore long call.
223a9d64
N
10723 (use_prolog_function): New function to support prologue.
10724 (expand_prologue): Add support for V850E2 targets and modified
10725 as per the current ABI requirements.
10726 (expand_epilogue): Likewise.
10727 (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
10728 (construct_save_jarl): Likewise.
10729 (construct_dispose_instruction): Update as per the current ABI
10730 requirements.
10731 (construct_prepare_instruction): Likewise.
a691bb08 10732 * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
223a9d64
N
10733 (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
10734 (CPP_SPEC): Updated to support v850e2 targets.
10735 (STRICT_ALIGNMENT): Modified.
10736 (FIRST_PSEUDO_REGISTER): Updated to add even registers.
10737 (FIXED_REGISTERS): Likewise.
10738 (CALL_USED_REGISTERS): Likewise.
10739 (CONDITIONAL_REGISTER_USAGE): Updated.
10740 (HARD_REGNO_MODE_OK): Updated.
10741 (reg_class): Updated to add even registers.
10742 (REG_CLASS_NAMES): Likewise.
10743 (REG_CLASS_CONTENTS): Likewise.
10744 (REGNO_REG_CLASS): Updated for CC registers.
10745 (REG_CLASS_FROM_LETTER): Added support for even registers.
10746 (REGNO_OK_FOR_BASE_P): Updated for CC registers.
10747 (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
10748 ARG_POINTER_REGNUM): Updated.
10749 (FUNCTION_ARG_ADVANCE): Define.
10750 (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
10751 (OUTGOING_REG_PARM_STACK_SPACE): Remove.
10752 (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
10753 (GO_IF_LEGITIMATE_ADDRESS): Updated.
10754 (SELECT_CC_MODE): Define.
10755 (REGISTER_NAMES): Updated to add psw and fcc registers.
10756 (ADDITIONAL_REGISTER_NAMES): Updated.
10757 (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
10758 (JUMP_TABLES_IN_TEXT_SECTION): Updated.
10759 * config/v850/v850.md (define_constants): Define new constants.
10760 (type): Update store,bit1,macc,div,fpu and single attributes.
10761 (cpu): New attribute.
10762 (cc): Add set_z attribute.
10763 (unsign23byte_load, sign23byte_load, unsign23hword_load,
10764 sign23hword_load, 23word_load, 23byte_store, 23hword_store,
a691bb08 10765 23word_store): New instructions for 23-bit displacement load and store.
223a9d64
N
10766 (movqi_internal, movhi_internal): Update the attributes.
10767 (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
10768 (movsi_internal_v850e, movsi_internal, movsf_internal): Update
10769 the attributes.
10770 (v850_tst1): Modified using CC_REGNUM.
10771 (tstsi): Remove.
10772 (cmpsi): Modified as define_expand from define_insn.
10773 (cmpsi_insn, cmpsf, cmpdf): New instructions.
10774 (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
10775 udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
10776 v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
10777 one_cmplsi2): Clobber the CC_REGNUM register.
10778 (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
10779 v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
a691bb08 10780 v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
223a9d64
N
10781 (setf_insn, set_z_insn, set_nz_insn): New instructions for
10782 v850e2v3 target.
10783 (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
10784 (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
10785 targets.
10786 (sasf_1, sasf_2): Remove.
10787 (sasf): New instruction.
10788 (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
10789 targets. CC_REGNUM register is clobbered and attributes are
10790 updated.
10791 (branch_z_normal, branch_z_invert, branch_nz_normal,
10792 branch_nz_invert): New branch related instructions.
10793 (jump): Updated the attributes.
10794 (switch): Update to support new targets. CC_REGNUM register is
10795 clobbered and attributes are updated.
10796 (call_internal_short, call_internal_long, call_value_internal_short,
10797 call_value_internal_long): Updated the attributes.
10798 (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
10799 clobbered and attributes are updated.
10800 (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
10801 Update to support new targets. CC_REGNUM register is clobbered.
10802 (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
10803 instructions.
10804 (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
10805 are updated.
10806 (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
10807 divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
10808 negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
10809 floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
10810 rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
10811 cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
10812 cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
10813 cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
10814 movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
10815 movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
10816 point instructions defined for V850e2v3 target.
10817 (callt_save_interrupt, callt_return_interrupt, return_interrupt):
10818 Add support for V850E2 targets and CC_REGNUM register is clobbered.
10819 (callt_save_all_interrupt, callt_restore_all_interrupt): Add
10820 support for new targets.
10821 * config/v850/v850-modes.def: New file.
10822 * config/v850/v850.opt(mstrict-align): Remove.
10823 (mno-strict-align, mjump-tables-in-data-section, mv850e2,
10824 mv850e2v3): New command line options for V850.
10825 * config.gcc: Update the newly added files.
10826 * doc/invoke.texi: Update the newly added command line options for
10827 V850 target.
10828
4e89a3fa
RG
108292010-07-26 Richard Guenther <rguenther@suse.de>
10830
10831 PR tree-optimization/45052
10832 * ipa-pure-const.c (check_stmt): Check volatileness.
10833
58e6223e
EB
108342010-07-25 Eric Botcazou <ebotcazou@adacore.com>
10835
10836 PR target/44707
10837 * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
10838 * config/sparc/sparc.c: Include reload.h.
10839 (legitimize_tls_address): Rename into...
10840 (sparc_legitimize_tls_address): ...this.
10841 (legitimize_pic_address): Rename into...
10842 (sparc_legitimize_pic_address): ...this.
10843 (sparc_expand_move): Adjust to above renaming.
10844 (sparc_tls_referenced_p): Likewise.
10845 (sparc_legitimize_tls_address): Likewise.
10846 (sparc_legitimize_pic_address): Likewise.
10847 (sparc_legitimize_address): Likewise.
10848 (sparc_output_mi_thunk): Likewise.
10849 (sparc_legitimize_reload_address): New global function. Recognize
10850 (lo_sum (high ...) ...) patterns generated by earlier passes.
10851 * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
10852
bfb7cccf
EB
108532010-07-25 Eric Botcazou <ebotcazou@adacore.com>
10854
10855 PR target/44484
10856 * config/sparc/predicates.md (memory_reg_operand): Delete.
10857 * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
10858 (*sync_compare_and_swap): Encode the address form in the pattern.
10859 (*sync_compare_and_swapdi_v8plus): Likewise.
10860
aac91b74
GP
108612010-07-24 Gerald Pfeifer <gerald@pfeifer.com>
10862
a691bb08
UB
10863 * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
10864 Streamline paragraph on compatibility with the system compiler.
aac91b74 10865
a522de15
SB
108662010-07-24 Steven Bosscher <steven@gcc.gnu.org>
10867
10868 PR middle-end/45035
10869 * alias.c (true_dependence_1): Fix thinko in merge of old
10870 true_dependence and canon_true_dependence.
10871
5d7f4d9c
JH
108722010-07-23 Jan Hubicka <jh@suse.cz>
10873
10874 * lto-streamer-out.c (write_symbol): Fix visibilities of external
10875 references.
10876
3d07b7cd
LCW
108772010-07-23 Le-Chun Wu <lcwu@google.com>
10878
10879 * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
10880 * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
10881 and an unnecessary assignment.
10882 * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
10883 self-assign warning.
10884 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
10885 unnecessary self-init.
10886
aff08b12
RG
108872010-07-23 Richard Guenther <rguenther@suse.de>
10888
10889 PR lto/43071
10890 * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
10891 for -flto and -fwhopr.
10892
9b91e436
KT
108932010-07-23 Kai Tietz <kai.tietz@onevision.com>
10894
10895 PR target/41943
a691bb08 10896 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
9b91e436
KT
10897 (stmp-int-hdrs): Prefix/postfix headers by include_next.
10898 * config.gcc (user_headers_inc_next_pre): New.
10899 (user_headers_inc_next_post): Likewise.
10900 (*-w64-mingw*): Use for float.h post-fixing, and for
10901 stddef.h/stdarg.h pre-fixing by include_next.
10902 * configure.ac (user_headers_inc_next_post): New.
10903 (user_headers_inc_next_pre): New.
10904 * configure: Regenerated.
10905
16c9d3b1
RO
109062010-07-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10907
10908 * configure.ac: Don't disable TLS on Solaris 8/9 by default
10909 Set tga_func for Solaris 2/x86 resp. SPARC.
10910 Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
10911 (LIB_THREAD_LDFLAGS_SPEC): Define.
a691bb08 10912 (LIB_TLS_SPEC): Define. Check for required Sun ld version.
16c9d3b1
RO
10913 * configure: Regenerate.
10914 * config.in: Regenerate.
10915 * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
10916 -pthread, -threads, LIB_TLS_SPEC with -pthread.
10917 * doc/install.texi (Specific, *-*-solaris2*): Document use of
10918 alternate thread libraries on Solaris 8.
10919 Document TLS patch requirements.
10920 * doc/sourcebuild.texi (Add Options): Sort alphabetically.
10921 Document tls.
10922
10923 PR target/18788
10924 * config/sol2.h (LIB_SPEC): Link with thread libraries even with
10925 -shared.
10926
cd3f04c8
JJ
109272010-07-23 Jakub Jelinek <jakub@redhat.com>
10928
10929 * tree.h (struct tree_base): Add nameless_flag bitfield.
10930 (TYPE_NAMELESS, DECL_NAMELESS): Define.
10931 * omp-low.c (create_omp_child_function, scan_omp_parallel,
10932 scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
10933 DECL_ARTIFICIAL where needed.
10934 * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
10935 (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
10936 has DECL_NAMELESS set.
10937
556ede65
MJ
109382010-07-23 Martin Jambor <mjambor@suse.cz>
10939
10940 PR tree-optimization/44915
10941 * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
10942 * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
10943 (analyze_function): Likewise.
10944
8cbeddcc
MJ
109452010-07-23 Martin Jambor <mjambor@suse.cz>
10946
10947 PR tree-optimization/44914
10948 * tree-sra.c (sra_modify_function_body): Return true if CFG was
10949 changed, add purging dead eh edges.
10950 (ipa_sra_modify_function_body): Return true if CFG was changed,
10951 simplify purging dead eh edges.
10952 (modify_function): Return true if CFG was changed.
10953 (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
10954 was changed.
10955 (ipa_early_sra): Likewise.
10956
61044492
JZ
109572010-07-23 Jie Zhang <jie@codesourcery.com>
10958
10959 PR target/44290
10960 * attribs.c (decl_attributes): Insert "noinline" and "noclone"
10961 if "naked".
10962 * tree-sra.c (ipa_sra_preliminary_function_checks): Return
10963 false if ! tree_versionable_function_p.
10964
c59a0a1d
NF
109652010-07-23 Nathan Froyd <froydnj@codesourcery.com>
10966
10967 * builtins.def (BUILT_IN_ARGS_INFO): Remove.
10968 * ipa-pure-const.c (special_builtlin_state): Remove
10969 BUILT_IN_ARGS_INFO case.
10970 * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10971 * builtins.c (expand_builtin): Likewise.
10972 (expand_builtin_args_info): Remove.
10973 * doc/tm.texi (__builtin_args_info): Remove.
10974 (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
10975 * doc/tm.text.in: Likewise.
10976
c4fcd06a
RG
109772010-07-23 Richard Guenther <rguenther@suse.de>
10978
a691bb08 10979 * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
c4fcd06a
RG
10980 (lto_symtab_merge_decls_2): Likewise.
10981 * tree-ssa.c (useless_type_conversion_p): Likewise.
10982 * lto-streamer-in.c (input_gimple_stmt): Likewise.
10983 * gimple.c (gtc_visited2, gtc_ob2): Remove.
10984 (struct type_pair_d): Make same_p an array indexed by mode.
10985 Update comment.
10986 (lookup_type_pair): Update initialization.
10987 (struct sccs): Adjust same_p type.
10988 (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
10989 Adjust.
10990 (print_gimple_types_stats): Likewise.
10991 * gimple.h (enum gtc_mode): New.
10992 (gimple_types_compatible_p): Adjust prototype.
10993
6afb52d3
DJ
109942010-07-23 Daniel Jacobowitz <dan@codesourcery.com>
10995
10996 * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
10997 again after processing insn.
10998
a23c4464
JZ
109992010-07-23 Jie Zhang <jie@codesourcery.com>
11000
11001 * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
11002 proper words when !tree_versionable_function_p.
11003
97a73876
RG
110042010-07-23 Richard Guenther <rguenther@suse.de>
11005
11006 PR tree-optimization/45037
11007 * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
11008
ed3100b2
JZ
110092010-07-23 Jie Zhang <jie@codesourcery.com>
11010
a691bb08
UB
11011 * doc/extend.texi: Remove IP2K from the description of naked attribute.
11012 Add MCORE instead.
ed3100b2 11013
a691bb08 110142010-07-10 Andi Kleen <ak@linux.intel.com>
73ce4d1e
AK
11015
11016 PR lto/44992
a691bb08 11017 * lto-opts.c (lto_write_options): Add NULL file_data argument to
73ce4d1e
AK
11018 lto_get_section_name.
11019 * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
11020 * lto-streamer-out.c (produce_asm): Likewise.
11021 (copy_function): Likewise.
11022 (produce_symtab): Likewise.
11023 (produce_asm_for_decls): Likewise.
11024 * lto-streamer.c (lto_get_section_name): Add file_data argument.
11025 Rewrite to add random postfix to LTO sections.
11026 * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
11027 (lto_get_section_name): Add file_data argument to prototype.
11028
a691bb08 110292010-07-10 Andi Kleen <ak@linux.intel.com>
2994ee14
AK
11030
11031 * lto-section-in.c (lto_section_name): Synchronize names
11032 with lto_get_section_name.
11033
a691bb08 110342010-07-10 Andi Kleen <ak@linux.intel.com>
090fc3f4
AK
11035
11036 * lto-opts.c (lto_read_file_options): Check for missing section.
11037
8cfd82bf
BS
110382010-07-22 Bernd Schmidt <bernds@codesourcery.com>
11039
11040 * ira.c (check_allocation): Correctly handle the case where an allocno
11041 with two objects was allocated to a single reg.
11042
1a39adae
RS
110432010-07-22 Richard Sandiford <rdsandiford@googlemail.com>
11044
11045 * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
11046 (is_widening_mult_p): Likewise.
11047 (convert_to_widen): Use them.
11048 (convert_plusminus_to_widen): Likewise. Handle fixed-point types as
11049 well as integer ones.
11050
9362286d
SB
110512010-07-22 Steven Bosscher <steven@gcc.gnu.org>
11052
11053 * alias.c (true_dependence_1): New function, merged version of
11054 true_dependence and canon_true_dependence.
11055 (true_dependence): Simplify.
11056 (canon_true_dependence): Simplify.
11057
b78cb618
RH
110582010-07-22 Richard Henderson <rth@redhat.com>
11059
11060 PR target/45027
11061 * config/i386/i386.c (setup_incoming_varargs_64): Force the use
11062 of V4SFmode for the SSE saves; increase stack alignment if needed.
11063 (ix86_gimplify_va_arg): Don't increase stack alignment here.
11064
828f2c8b
JJ
110652010-07-22 Jakub Jelinek <jakub@redhat.com>
11066
11067 PR bootstrap/45028
11068 * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
11069 call cprop_find_used_regs again via note_uses.
11070
7be7d292
EB
110712010-07-22 Eric Botcazou <ebotcazou@adacore.com>
11072
11073 * alias.c (get_alias_set): Fix formatting issues.
11074
426d6333
SE
110752010-07-22 Steve Ellcey <sje@cup.hp.com>
11076
11077 PR middle-end/44878
11078 * stmt.c (expand_value_return): Call promote_function_mode with
11079 a for_return argument of 2 when returning by reference.
11080
35ea1c5a
DS
110812010-07-22 Dodji Seketeli <dodji@redhat.com>
11082
11083 PR debug/45024
11084 * dwarf2out.c (scope_die_for): Don't fall back to the compilation
11085 unit DIE if we can find the scope DIE.
11086
ac0ab4f7
BS
110872010-07-22 Bernd Schmidt <bernds@codesourcery.com>
11088
bd3a5d17
UB
11089 * ira-build.c (ira_create_object): New arg SUBWORD; all callers
11090 changed. Initialize OBJECT_SUBWORD.
ac0ab4f7
BS
11091 (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
11092 (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
11093 all callers changed.
11094 (merge_hard_reg_conflicts): Iterate over allocno subobjects.
11095 (finish_allocno): Likewise.
11096 (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
11097 (remove_low_level_allocnos): Likewise.
11098 (update_bad_spill_attribute): Likewise.
11099 (setup_min_max_allocno_live_range_point): Likewise.
11100 (sort_conflict_id_map): Likewise.
11101 (ira_flattening): Likewise. Use ior_hard_reg_conflicts.
11102 (ior_hard_reg_conflicts): New function.
11103 (ior_allocate_object_conflicts): Renamed first argument to OBJ.
11104 (compress_conflict_vecs): Iterate over objects, not allocnos.
11105 (ira_add_live_range_to_object): New function.
11106 (object_range_compare_func): Renamed from allocno_range_compare_func.
11107 All callers changed.
11108 (setup_min_max_conflict_allocno_ids): For allocnos with multiple
11109 subobjects, widen the min/max range of the lowest-order object to
11110 potentially include all other such low-order objects.
11111 * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
11112 (check_allocation): Likewise. Use more fine-grained tests for register
11113 conflicts.
11114 * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
11115 allocno subobjects.
11116 (assign_hard_reg): Keep multiple sets of conflicts. Make finer-grained
11117 choices about which bits to set in each set. Don't use
11118 ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
11119 using the multiple sets we computed.
11120 (push_allocno_to_stack): Iterate over allocno subobjects.
11121 (all_conflicting_hard_regs_coalesced): New static function.
11122 (setup_allocno_available_regs_num): Use it.
11123 (setup_allocno_left_conflicts_size): Likewise. Iterate over allocno
11124 subobjects.
11125 (coalesced_allocno_conflict): Test subobject 0 in each allocno.
11126 (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
11127 by ALLOCNO_NUM_OBJECTS.
11128 (calculate_spill_cost): Likewise.
11129 (color_pass): Express if statement in a more normal way.
11130 (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
11131 (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
11132 (setup_slot_coalesced_allocno_live_ranges): Likewise.
11133 (allocno_reload_assign): Likewise.
11134 (ira_reassign_pseudos): Likewise.
11135 (fast_allocation): Likewise.
11136 * ira-conflicts.c (build_conflict_bit_table): Likewise.
11137 (print_allocno_conflicts): Likewise.
11138 (ira_build_conflicts): Likewise.
11139 (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p. All
11140 callers changed. Test subword 0 of each allocno for conflicts.
11141 (build_object_conflicts): Renamed from build_allocno_conflicts. All
11142 callers changed. Iterate over allocno subobjects.
11143 * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
bd3a5d17
UB
11144 * ira-int.h (struct ira_allocno): New member: num_objects.
11145 Rename object to objects and change it into an array.
ac0ab4f7
BS
11146 (ALLOCNO_OBJECT): Add new argument N.
11147 (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
11148 (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
11149 (ior_hard_reg_conflicts): Declare.
11150 (ira_add_live_range_to_object): Declare.
11151 (ira_allocno_object_iterator): New.
11152 (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
11153 (FOR_EACH_ALLOCNO_OBJECT): New macro.
bd3a5d17
UB
11154 * ira-lives.c (objects_live): Renamed from allocnos_live; all
11155 uses changed.
ac0ab4f7 11156 (allocnos_processed): New sparseset.
bd3a5d17
UB
11157 (make_object_born): Renamed from make_allocno_born; take an
11158 ira_object_t argument. All callers changed.
11159 (make_object_dead): Renamed from make_allocno_dead; take an
11160 ira_object_t argument. All callers changed.
ac0ab4f7
BS
11161 (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
11162 All callers changed.
11163 (mark_pseudo_regno_live): Iterate over allocno subobjects.
11164 (mark_pseudo_regno_dead): Likewise.
11165 (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
11166 functions.
11167 (mark_ref_live): Detect subword accesses and call
11168 mark_pseudo_regno_subword_live as appropriate.
11169 (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
11170 (process_bb_nodes_live): Deal with object-related updates first; set
11171 and test bits in allocnos_processed to avoid computing allocno
11172 statistics more than once.
11173 (create_start_finish_chains): Iterate over objects, not allocnos.
11174 (print_object_live_ranges): New function.
11175 (print_allocno_live_ranges): Use it.
11176 (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
11177 and objects_live.
11178
d4398a43
RG
111792010-07-22 Richard Guenther <rguenther@suse.de>
11180
11181 PR lto/42451
11182 * gimple.c (gtc_next_dfs_num): New global.
11183 (struct sccs): Make value a union, add integer same_p member.
11184 (gtc_visit): New function.
11185 (gimple_types_compatible_p_1): New function, split out from ...
11186 (gimple_types_compatible_p): ... here. Start a DFS walk here.
11187 (iterative_hash_gimple_type): Adjust for sccs change.
11188
56a42add
MJ
111892010-07-22 Martin Jambor <mjambor@suse.cz>
11190
11191 PR tree-optimization/44891
11192 * tree-sra.c: Include gimple-pretty-print.h.
11193 (replace_uses_with_default_def_ssa_name): Renamed to
11194 get_repl_default_def_ssa_name, return the new SSA name instead of
11195 replacing the old one.
11196 (sra_modify_assign): Dump a message when removing a load, if the LHS
11197 is an SSA_NAME, do not do any propagation, just set the RHS to a
11198 default definition SSA NAME, type convert if necessary.
11199 * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
11200
5ccbfc1f
RG
112012010-07-22 Richard Guenther <rguenther@suse.de>
11202
11203 PR tree-optimization/45017
11204 * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
11205 TYPE_PRECISION of integral types in addition to size.
11206
14ee5f0a
MK
112072010-07-22 Maxim Kuvyrkov <maxim@codesourcery.com>
11208
11209 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
11210 when no C library is specified.
11211
93c594a3
MJ
112122010-07-22 Martin Jambor <mjambor@suse.cz>
11213
11214 * ipa-prop.h (struct ipa_node_params): Updated comment.
11215 (struct ipa_edge_args): Likewise.
11216 * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
11217
02ec6988
MJ
112182010-07-22 Martin Jambor <mjambor@suse.cz>
11219
11220 * cgraphunit.c (verify_edge_count_and_frequency): New function.
11221 (verify_cgraph_node): Verify frequencies of indirect edges.
11222 * tree-inline.c (tree_function_versioning): Update frequencies of
11223 indirect edges.
11224
f67325e8
RR
112252010-07-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11226
a557f9cc 11227 PR target/43698
a691bb08
UB
11228 * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
11229 Set *arm_rev to be predicable.
f67325e8 11230
50eb566f
IS
112312010-07-22 Iain Sandoe <iains@gcc.gnu.org>
11232
11233 * config/darwin.h (LINK_COMMAND_SPEC): Split into...
11234 (LINK_COMMAND_SPEC_A): New.
11235 (DSYMUTIL): New.
11236 (DSYMUTIL_SPEC): New.
11237 * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
11238 (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
11239
3b2ee170
IS
112402010-07-22 Iain Sandoe <iains@gcc.gnu.org>
11241
11242 * calls.c (load_register_parameters): Move check for zero
bd3a5d17 11243 sized items so that only the call to
3b2ee170
IS
11244 mem_overlaps_already_clobbered_arg_p () is protected.
11245
37512c66
JH
112462010-07-22 Jan Hubicka <jh@suse.cz>
11247
11248 * ipa-pure-const.c (varying_state): Break out from ...
11249 (get_function_state): ... here; always return varying_state
11250 when state would be NULL otherwise.
11251 (remove_node_data): Do not free varying state.
11252
08bd6876
BS
112532010-07-22 Bernd Schmidt <bernds@codesourcery.com>
11254
11255 PR bootstrap/44970
11256 PR middle-end/45009
11257 * postreload.c: Include "target.h".
11258 (reload_combine_closest_single_use): Don't take DEBUG_INSNs
11259 into account.
11260 (fixup_debug_insns): Don't copy the rtx.
a691bb08
UB
11261 (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
11262 Don't copy when replacing. Call fixup_debug_insns in the case where
11263 we merged one add with another.
11264 (reload_combine_recognize_pattern): Fail if there aren't any uses.
11265 Try harder to determine whether we're picking a valid index register.
11266 Don't set store_ruid for an insn we're going to scan in the
11267 next iteration.
08bd6876
BS
11268 (reload_combine): Remove unused code.
11269 (reload_combine_note_use): When updating use information for
11270 an old insn, ignore a use that occurs after store_ruid.
11271 * Makefile.in (postreload.o): Update dependencies.
11272
dbb94435
BS
11273 * function.c (record_hard_reg_sets): Restrict the previous change
11274 to cases where the incoming nominal mode is the same as the
11275 incoming promoted mode and everything happens in MODE_INT.
11276
fcc71c6c
JJ
112772010-07-21 Jakub Jelinek <jakub@redhat.com>
11278
11279 PR debug/45015
11280 * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
11281 ASM_OPERANDS_OUTPUT_IDX.
11282 (adjust_insn): For inline asm with multiple sets ensure first
11283 ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
11284 the insn.
11285
650b5329
RH
112862010-07-21 Richard Henderson <rth@redhat.com>
11287
11288 * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
11289 comparison for avoiding xmm register saves. Emit the xmm register
11290 saves explicitly.
11291 * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
11292 (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
11293 (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
11294 Remove patterns and the associated splitters.
11295
7c6dafac
CF
112962010-07-21 Changpeng Fang <changpeng.fang@amd.com>
11297
11298 * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
11299 and imagine parts of a complex, so that they can have the same
11300 base and fall into the same group.
11301
60f6be5a
RG
113022010-07-21 Richard Guenther <rguenther@suse.de>
11303
11304 PR lto/45018
11305 * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
11306 of TYPE_DECLs. Do not follow TYPE_NEXT_VARIANT,
11307 TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
11308
75a75e91
MJ
113092010-07-21 Martin Jambor <mjambor@suse.cz>
11310
11311 PR tree-optimization/44900
11312 * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
11313 (sra_modify_assign): Move gsi to the next statmenent unconditionally.
11314
426797b2
BS
113152010-07-21 Bernd Schmidt <bernds@codesourcery.com>
11316
11317 PR middle-end/44738
11318 * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
11319
35e3a6e9
RG
113202010-07-21 Richard Guenther <rguenther@suse.de>
11321
11322 PR middle-end/45013
11323 * tree-ssa.c (useless_type_conversion_p): Dispatch to
11324 gimple_types_compatible_p only when in lto.
11325 * gimple.c (gimple_types_compatible_p): Use canonical types
11326 to speed up comparison.
11327
3f2930d8
RG
113282010-07-21 Richard Guenther <rguenther@suse.de>
11329
11330 * tree-flow.h (referenced_var): Move define ...
11331 * tree-flow-inline.h (referenced_var): ... here as an inline
11332 function. Assert here ...
11333 * tree-dfa.c (referenced_var_lookup): ... instead of here.
11334 * tree-ssa.c (maybe_optimize_var): Check if the variable
11335 is in referenced vars.
11336 (execute_update_addresses_taken): Remove old broken check.
11337 * gimple-pretty-print.c (pp_points_to_solution): Use
11338 referenced_var_lookup.
11339 * tree-into-ssa.c (dump_decl_set): Likewise.
11340
370ae599
JJ
113412010-07-21 Jakub Jelinek <jakub@redhat.com>
11342
11343 PR debug/45003
a691bb08 11344 * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
370ae599
JJ
11345 * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
11346 ZERO_EXTEND here.
11347
7703295f
RH
113482010-07-20 Richard Henderson <rth@redhat.com>
11349
11350 * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
11351
16737e76
BS
113522010-07-20 Bernd Schmidt <bernds@codesourcery.com>
11353
11354 * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
11355 computing the sum of the stack pointer and a large constant.
11356 * config/arm/constraints.md (M): Remove superfluous parentheses.
11357 (Pc): New constraint.
11358
1b47fe3f
JJ
113592010-07-20 Jakub Jelinek <jakub@redhat.com>
11360
11361 PR debug/45006
11362 * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
11363 operand's type if exp is tcc_unary class tree.
11364
97c56ee3
NF
113652010-07-20 Nathan Froyd <froydnj@codesourcery.com>
11366
11367 * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
11368 Reverse sense of if_then_else condition.
11369
d95016e0
NF
113702010-07-20 Nathan Froyd <froydnj@codesourcery.com>
11371
11372 * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
11373 * config/rs6000/rs6000.c (rs6000_override_options): Set
11374 rs6000_block_move_inline_limit appropriately.
11375 (expand_block_move): Use rs6000_block_move_inline_limit.
11376 * doc/invoke.texi (mblock-move-inline-limit): Document.
11377
caa4a250
BS
113782010-07-20 Bernd Schmidt <bernds@codesourcery.com>
11379
11380 * postreload.c (fixup_debug_insns): Remove arg REGNO. New args
11381 FROM and TO. All callers changed. Don't look for tracked uses,
11382 just scan the RTL for DEBUG_INSNs and substitute.
11383 (reload_combine_recognize_pattern): Call fixup_debug_insns.
11384 (reload_combine): Ignore DEBUG_INSNs.
11385
68eaf35c
JJ
113862010-07-20 Jakub Jelinek <jakub@redhat.com>
11387
d2d57152
JJ
11388 * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
11389 depth to 8 from 5.
11390
68eaf35c
JJ
11391 PR debug/45003
11392 * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
11393 or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
11394 instead of the result's type.
11395
720151ca
RG
113962010-07-20 Richard Guenther <rguenther@suse.de>
11397
11398 PR tree-optimization/44977
11399 * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
11400 SSA form.
11401
f5d6836a
RG
114022010-07-20 Richard Guenther <rguenther@suse.de>
11403
11404 * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
11405 (lto_symtab_merge_decls_2): Likewise.
11406 * gimple.h (gimple_types_compatible_p): Declare.
11407 * gimple.c (gimple_queue_type_fixup): Remove.
11408 (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
bd3a5d17 11409 (gimple_compatible_complete_and_incomplete_type_p): New function.
f5d6836a
RG
11410 (gimple_types_compatible_p): Adjust.
11411 (gimple_register_type): Remove type fixup code.
11412 (print_gimple_types_stats): Adjust.
11413 (free_gimple_type_tables): Likewise.
11414 * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
11415 * tree-ssa.c (useless_type_conversion_p): Likewise.
11416
ad650c92
RG
114172010-07-20 Richard Guenther <rguenther@suse.de>
11418
11419 PR middle-end/44971
11420 PR middle-end/44988
11421 * tree-ssa.c (maybe_optimize_var): New function split out from ...
11422 (execute_update_addresses_taken): ... here.
11423 (non_rewritable_mem_ref_base): Likewise.
11424 (execute_update_addresses_taken): Do not iterate over all referenced
11425 vars but just all local decls and parms.
11426 Properly check call and asm arguments and rewrite call arguments.
11427
2c8f43e6
MK
114282010-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
11429
11430 * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
11431 to top level.
11432 * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
11433 definitions ...
11434 * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
11435 New macro.
11436 * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
11437
b08e0339
RS
114382010-07-19 Richard Sandiford <rdsandiford@googlemail.com>
11439
11440 * gengtype.c (start_root_entry): New function, split out from
11441 write_root. Check whether V is null and raise an error if so.
11442 (write_field_root): Check for V being null. Don't raise an error here;
11443 set V to null instead.
11444 (write_root): Update comment above function. Use start_root_entry.
11445
e74780a3
XDL
114462010-07-19 Xinliang David Li <davidxl@google.com>
11447
11448 PR testsuite/44932
bd3a5d17
UB
11449 * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
11450 def edges.
e74780a3
XDL
11451 (find_uninit_use): Add dump.
11452 (is_use_properly_guarded): Ditto.
11453 (warn_uninitialized_phi): Ditto.
11454 (execute_late_warn_uninitialized): Ditto.
11455
8b4c365c
RG
114562010-07-19 Richard Guenther <rguenther@suse.de>
11457
11458 PR middle-end/44941
11459 * expr.c (emit_block_move_hints): Move zero size check first.
11460 Move asserts to more useful places.
11461 * calls.c (load_register_parameters): Check for zero size.
11462
157be8f6
RH
114632010-07-19 Richard Henderson <rth@redhat.com>
11464
11465 * tree-optimize.c (execute_all_early_local_passes): New. Change
11466 cgraph_state here ...
11467 (execute_early_local_optimizations): ... not here. Remove.
11468 (pass_early_local_passes, pass_all_early_optimizations): Update.
11469
b1d5eee8
BS
114702010-07-19 Bernd Schmidt <bernds@codesourcery.com>
11471
11472 * postreload.c (reload_combine_closest_single_use): Ignore the
11473 number of uses for DEBUG_INSNs.
11474 (fixup_debug_insns): New static function.
11475 (reload_combine_recognize_const_pattern): Use it. Don't let the
11476 main loop be affected by DEBUG_INSNs.
11477 Really disallow moving adds past a jump insn.
11478 (reload_combine_recognize_pattern): Don't update use_ruid here.
11479 (reload_combine_note_use): Do it here.
11480 (reload_combine): Use control_flow_insn_p rather than JUMP_P.
11481
0be955e7 114822010-07-19 Bingfeng Mei <bmei@broadcom.com>
157be8f6 11483
0be955e7 11484 * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
bd3a5d17
UB
11485 of a loop.
11486 * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
0be955e7 11487
9005471b
IS
114882010-07-19 Iain Sandoe <iains@gcc.gnu.org>
11489
11490 * config/i386/darwin.h: Define darwin_emit_branch_islands.
11491 (TARGET_MACHO_BRANCH_ISLANDS): New.
11492 (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
11493 * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
11494 default value.
11495 * config/i386/i386.c (output_pic_addr_const): Do not emit
11496 branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
11497 (x86_output_mi_thunk): Adjust symbol creation.
11498 * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
11499 Remove out of date comment.
11500 * config/rs6000/rs6000.c (print_operand): Adjust symbol.
bd3a5d17
UB
11501 (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
11502 (DARWIN_GENERATE_ISLANDS): Ditto.
9005471b
IS
11503 (output_call): Do not emit branch islands unless
11504 darwin_emit_branch_islands is set.
11505 * config/darwin.c: Declare darwin_emit_branch_islands.
11506 (machopic_indirect_data_reference): Do not emit unless
11507 darwin_emit_branch_islands is set.
11508 (darwin_override_options): Set darwin_emit_branch_islands
11509 where it is needed.
bd3a5d17 11510 * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
9005471b 11511
39354b3b
RO
115122010-07-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11513
11514 * doc/sourcebuild.texi (Effective-Target Keywords): Document
11515 sse_runtime, sse2_runtime.
11516
93f63c68
RS
115172010-07-18 Richard Sandiford <rdsandiford@googlemail.com>
11518
11519 * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
11520 low half of a single-register SCmode return value before ORing
11521 it with the high half.
11522 * config/mips/mips16.S (MERGE_GPRf): Likewise.
11523
84aa7cea
JDA
115242010-07-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11525
11526 PR target/44805
11527 * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
11528 on all targets.
11529
dc0d5a57
BS
115302010-07-17 Bernd Schmidt <bernds@codesourcery.com>
11531
11532 PR target/42235
11533 * postreload.c (reload_cse_move2add): Return bool, true if anything.
11534 changed. All callers changed.
11535 (move2add_use_add2_insn): Likewise.
11536 (move2add_use_add3_insn): Likewise.
11537 (reload_cse_regs): If reload_cse_move2add changed anything, rerun
11538 reload_combine.
11539 (RELOAD_COMBINE_MAX_USES): Bump to 16.
11540 (last_jump_ruid): New static variable.
11541 (struct reg_use): New members CONTAINING_MEM and RUID.
11542 (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
11543 (reload_combine_split_one_ruid, reload_combine_split_ruids,
11544 reload_combine_purge_insn_uses, reload_combine_closest_single_use
11545 reload_combine_purge_reg_uses_after_ruid,
11546 reload_combine_recognize_const_pattern): New static functions.
11547 (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
11548 is true for our reg and that we have available index regs.
11549 (reload_combine_note_use): New args RUID and CONTAINING_MEM. All
11550 callers changed. Use them to initialize fields in struct reg_use.
11551 (reload_combine): Initialize last_jump_ruid. Be careful when to
11552 take PREV_INSN of the scanned insn. Update REAL_STORE_RUID fields.
11553 Call reload_combine_recognize_const_pattern.
11554 (reload_combine_note_store): Update REAL_STORE_RUID field.
11555
d4404fee
JM
115562010-07-16 Jason Merrill <jason@redhat.com>
11557
11558 * Makefile.in (opts-common.o): Depend on options.h.
11559
6a4825bd
NF
115602010-07-16 Nathan Froyd <froydnj@codesourcery.com>
11561
11562 * tree.c (build_common_builtin_nodes): Use build_function_type_list
11563 instead of build_function_type.
11564 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
11565 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
11566
c5af628d
NF
115672010-07-16 Nathan Froyd <froydnj@codesourcery.com>
11568
11569 * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
11570 do all the work.
11571 (rs6000_emit_int_cmove): Use function pointers for insn generation.
11572 Don't force values into registers unnecessarily.
11573 (output_isel): Assert that we're not given conditions we can't handle.
11574 Delete corresponding code.
11575 * config/rs6000/rs6000.md (isel_signed_<mode>): Use
11576 scc_comparison_operator constraint. Permit 0 for the consequent
11577 operand. Permit any GPR for the alternative operand.
11578 (isel_unsigned_<mode>): Likewise.
11579
88ad03c2
JJ
115802010-07-16 Jakub Jelinek <jakub@redhat.com>
11581
11582 PR target/44942
11583 * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
11584 argument to const_tree.
11585 * config/i386/i386.c (function_arg_advance): If padding needs to be
11586 inserted before argument, increment cum->words by number of padding
11587 words as well.
11588 (contains_aligned_value_p): Change argument to const_tree.
11589 (ix86_function_arg_boundary): Change second argument to const_tree.
11590
71008de4
BS
115912010-07-16 Bernd Schmidt <bernds@codesourcery.com>
11592
11593 PR target/42235
11594 * function.c (record_hard_reg_sets): New static function.
11595 (assign_parm_setup_reg): If an optab for extending exists and the
11596 generated code clobbbers no hard regs, emit the insn directly and
11597 create a REG_EQUIV note.
11598
f7587ed0
NF
115992010-07-15 Nathan Froyd <froydnj@codesourcery.com>
11600
11601 * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
11602 TREE_CHAIN.
11603 * c-typeck.c (push_init_level): Likewise.
11604 (process_init_element): Likewise.
11605
9a9d280e
AS
116062010-07-15 Anatoly Sokolov <aesok@post.ru>
11607
11608 * tree.h (enum tree_index): Add TI_INTEGER_THREE.
11609 (integer_three_node): Add.
11610 * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
11611 NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
11612 * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
11613 of call build_int_cst.
11614 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
11615 * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
11616 (find_interesting_uses_address): Ditto.
11617 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
11618 * tree-eh.c (lower_eh_constructs_2): Ditto.
11619 * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
11620 * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
11621 * expmed.c (expand_divmod): Ditto.
11622 * tree-mudflap.c (mx_register_decls): Ditto.
11623 * varasm.c (array_size_for_constructor): Ditto.
11624 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
11625 * c-parser.c (c_parser_postfix_expression): Ditto.
11626
67bb0206
BS
116272010-07-15 Bernd Schmidt <bernds@codesourcery.com>
11628
11629 * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
11630 New static variables.
11631 (reload_combine_recognize_pattern): New static function, broken out
11632 of reload_combine.
11633 (reload_combine): Use it. Only initialize first_index_reg and
11634 last_index_reg once.
11635
c5f77dcb
RH
116362010-07-15 Richard Henderson <rth@redhat.com>
11637
11638 * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
11639 when done.
11640
ef8fc6c2
JH
116412010-07-15 Jan Hubicka <jh@suse.cz>
11642
bd3a5d17
UB
11643 * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
11644 comdats for broken gold.
11645 (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
ef8fc6c2 11646
3d894a8e
NF
116472010-07-15 Nathan Froyd <froydnj@codesourcery.com>
11648
11649 * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
11650
910ad8de
NF
116512010-07-15 Nathan Froyd <froydnj@codesourcery.com>
11652
11653 * tree.h (DECL_CHAIN): Define.
11654 * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
11655 * c-decl.c: Likewise.
11656 * c-parser.c: Likewise.
11657 * c-typeck.c: Likewise.
11658 * cfgexpand.c: Likewise.
11659 * cgraph.c: Likewise.
11660 * cgraphunit.c: Likewise.
11661 * combine.c: Likewise.
11662 * config/alpha/alpha.c: Likewise.
11663 * config/arm/arm.c: Likewise.
11664 * config/frv/frv.c: Likewise.
11665 * config/i386/i386.c: Likewise.
11666 * config/i386/winnt-cxx.c: Likewise.
11667 * config/ia64/ia64.c: Likewise.
11668 * config/iq2000/iq2000.c: Likewise.
11669 * config/mep/mep.c: Likewise.
11670 * config/mips/mips.c: Likewise.
11671 * config/pa/som.h: Likewise.
11672 * config/rs6000/rs6000.c: Likewise.
11673 * config/s390/s390.c: Likewise.
11674 * config/sh/sh.c: Likewise.
11675 * config/sh/symbian-cxx.c: Likewise.
11676 * config/sparc/sparc.c: Likewise.
11677 * config/spu/spu.c: Likewise.
11678 * config/stormy16/stormy16.c: Likewise.
11679 * config/vxworks.c: Likewise.
11680 * config/xtensa/xtensa.c: Likewise.
11681 * coverage.c: Likewise.
11682 * dbxout.c: Likewise.
11683 * dwarf2out.c: Likewise.
11684 * emit-rtl.c: Likewise.
11685 * expr.c: Likewise.
11686 * function.c: Likewise.
11687 * gimple-low.c: Likewise.
11688 * gimple-pretty-print.c: Likewise.
11689 * gimplify.c: Likewise.
11690 * integrate.c: Likewise.
11691 * ipa-inline.c: Likewise.
11692 * ipa-prop.c: Likewise.
11693 * ipa-split.c: Likewise.
11694 * ipa-struct-reorg.c: Likewise.
11695 * ipa-type-escape.c: Likewise.
11696 * langhooks.c: Likewise.
11697 * lto-cgraph.c: Likewise.
11698 * omp-low.c: Likewise.
11699 * stor-layout.c: Likewise.
11700 * tree-cfg.c: Likewise.
11701 * tree-complex.c: Likewise.
11702 * tree-dfa.c: Likewise.
11703 * tree-dump.c: Likewise.
11704 * tree-inline.c: Likewise.
11705 * tree-mudflap.c: Likewise.
11706 * tree-nested.c: Likewise.
11707 * tree-object-size.c: Likewise.
11708 * tree-pretty-print.c: Likewise.
11709 * tree-sra.c: Likewise.
11710 * tree-ssa-live.c: Likewise.
11711 * tree-ssa-loop-niter.c: Likewise.
11712 * tree-ssa-math-opts.c: Likewise.
11713 * tree-ssa-reassoc.c: Likewise.
11714 * tree-ssa-sccvn.c: Likewise.
11715 * tree-ssa-structalias.c: Likewise.
11716 * tree-tailcall.c: Likewise.
11717 * tree-vrp.c: Likewise.
11718 * tree.c: Likewise.
11719 * var-tracking.c: Likewise.
11720 * varasm.c: Likewise.
11721
643afedb
UW
117222010-07-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11723
11724 PR target/44877
11725 * config/spu/spu.c (spu_expand_builtin_1): Allow references
11726 (as well as pointers) as argument to mask_for_load builtins.
11727
0ba0772b
RB
117282010-07-15 Richard Guenther <rguenther@suse.de>
11729
11730 PR tree-optimization/44946
11731 * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
11732 with accessing only padding properly.
11733
02ee7bea
JH
117342010-07-15 Jan Hubicka <jh@suse.cz>
11735
0ba0772b
RB
11736 * ipa.c (function_and_variable_visibility): Variables marked as used
11737 should not be localized.
02ee7bea 11738
99fecd47
JH
117392010-07-15 Jan Hubicka <jh@suse.cz>
11740
11741 * cgraph.c: Include lto-streamer.h
11742 (change_decl_assembler_name): Work when assembler name hash is at place.
bd3a5d17
UB
11743 (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
11744 be sure to rename it to avoid name clash.
99fecd47
JH
11745 * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
11746 Localize hidden symbols only when locally defined.
11747
53f00dde
UB
117482010-07-15 Uros Bizjak <ubizjak@gmail.com>
11749
11750 * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
11751
8ffadef9
MG
117522010-07-15 Magnus Granberg <zorry@gentoo.org>
11753 Kevin F. Quinn <kevquinn@gentoo.org>
11754
53f00dde
UB
11755 * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
11756 * common.opt: Add -Wtrampolines.
11757 * doc/invoke.texi: Add -Wtrampolines.
8ffadef9 11758
5cb55204
JZ
117592010-07-15 Jie Zhang <jie@codesourcery.com>
11760
11761 * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
11762 cortex_a8_issue_ls.
11763
4c4837a3
DK
117642010-07-15 Dave Korn <dave.korn.cygwin@gmail.com>
11765
11766 * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
11767 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
11768
588c71da
UW
117692010-07-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11770
11771 * config/spu/spu.c (reg_names): Remove prototype.
11772 (call_used_regs): Likewise.
11773
a9c5db80
DK
117742010-07-14 Dave Korn <dave.korn.cygwin@gmail.com>
11775
11776 * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
11777 "unused" with attribute "used".
11778 (__JCR_END__): Likewise.
11779 * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
11780 "used" attribute.
11781 (__JCR_LIST__): Replace attribute "unused" with attribute "used".
11782
61593e5e
RG
117832010-07-14 Richard Guenther <rguenther@suse.de>
11784
11785 * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
11786 (maybe_fixup_decls): Likewise.
11787 (input_gimple_stmt): Do not fixup anything.
11788 * lto-streamer-out.c (output_gimple_stmt): Make sure all
11789 non-automatic variable uses are wrapped inside a MEM_REF.
11790
fc7fcda1
RH
117912010-07-14 Richard Henderson <rth@redhat.com>
11792
11793 * passes.c (rest_of_decl_compilation): Do not call assemble_variable
11794 for functions.
11795 * varasm.c (assemble_variable): Remove early exit for functions;
11796 assert that we're given a variable.
11797
eab3f92e
JZ
117982010-07-14 Jie Zhang <jie@codesourcery.com>
11799
11800 * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
11801 cortex_a8_default when neon_type is not none.
11802
402464a0
BS
118032010-07-14 Bernd Schmidt <bernds@codesourcery.com>
11804
11805 * lower-subreg.c (subreg_context): New static bitmap.
11806 (decompose_multiword_subregs): Allocate and free it.
11807 (find_decomposable_subregs): Set a bit in it for a register that
11808 occurs in a subreg that changes mode but not size.
11809 (can_decompose_p): Test it instead of non_decomposable_context.
11810
bf9899d4
RG
118112010-07-14 Richard Guenther <rguenther@suse.de>
11812
11813 PR tree-optimization/44824
11814 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
11815 is_gimple_mem_ref_addr.
11816 (tree_ssa_forward_propagate_single_use_vars): Do not propagate
11817 non-decl_address_invariant_p addresses.
11818
b1c8622e
BS
118192010-07-14 Bernd Schmidt <bernds@codesourcery.com>
11820
11821 * reload.c (find_reloads): Revert code to penalize small register
11822 classes that was brought in with the IRA merge.
11823
2bd6311d
RG
118242010-07-14 Richard Guenther <rguenther@suse.de>
11825
11826 * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
11827 as base of ARRAY_REFs.
11828
f051cb5d
RG
118292010-07-14 Richard Guenther <rguenther@suse.de>
11830
11831 PR middle-end/44930
11832 * tree-pretty-print.c (do_niy): Do not print a newline.
11833
a49ae217
BS
118342010-07-14 Bernd Schmidt <bernds@codesourcery.com>
11835
11836 * ira-int.h (struct ira_object): New.
53f00dde 11837 (ira_object_t): New typedef. Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
a49ae217
BS
11838 (struct ira_allocno): Remove members min, max,
11839 conflict_allocno_array, conflict_id, conflict_allocno_array_size,
11840 conflict_allocnos_num and conflict_vec_p. Add new member object.
11841 (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
11842 OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
11843 OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
11844 OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
11845 ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
11846 ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
11847 ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
11848 ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
11849 an ira_object_t rather than ira_allocno_t. All uses changed.
11850 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
11851 contains a vector of ira_object_t; all uses changed.
11852 (ira_objects_num): Declare variable.
11853 (ira_create_allocno_object): Declare function.
11854 (ira_conflict_vector_profitable_p): Adjust prototype.
11855 (ira_allocate_conflict_vec): Renamed from
11856 ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
11857 (ira_allocate_object_conflicts): Renamed from
11858 ira_allocate_allocno_conflicts; first arg now ira_object_t.
11859 (struct ira_object_iterator): New.
11860 (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
11861 (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
11862 to conflict_vec_p. All uses changed.
11863 (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
11864 Changed to take into account that conflicts are now tracked for
11865 objects.
53f00dde
UB
11866 * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
11867 Args changed to accept ira_object_t. All uses changed.
a49ae217
BS
11868 (allocnos_conflict_p): New static function.
11869 (collected_conflict_objects): Renamed from collected_allocno_objects;
11870 now a vector of ira_object_t. All uses changed.
11871 (build_conflict_bit_table): Changed to take into account that
11872 conflicts are now tracked for objects.
11873 (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
11874 (print_allocno_conflicts, ira_build_conflicts): Likewise.
11875 * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
11876 setup_allocno_left_conflicts_size, allocno_reload_assign,
11877 fast_allocation): Likewise.
11878 * ira-lives.c (make_hard_regno_born, make_allocno_born)
11879 process_single_reg_class_operands, process_bb_node_lives): Likewise.
11880 * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
11881 Likewise.
11882 * ira-build.c (ira_objects_num): New variable.
11883 (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
11884 contains a vector of ira_object_t; all uses changed.
11885 (ira_object_id_map_vec): Corresponding change.
11886 (object_pool): New static variable.
11887 (initiate_allocnos): Initialize it.
11888 (finish_allocnos): Free it.
11889 (ira_create_object, ira_create_allocno_object, create_allocno_objects):
11890 New functions.
11891 (ira_create_allocno): Don't set members that were removed.
11892 (ira_set_allocno_cover_class): Don't change conflict hard regs.
11893 (merge_hard_reg_conflicts): Changed to take into account that
11894 conflicts are now tracked for objects.
11895 (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
11896 allocate_conflict_bit_vec, ira_allocate_object_conflicts,
11897 compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
11898 setup_min_max_allocno_live_range_point, allocno_range_compare_func,
11899 setup_min_max_conflict_allocno_ids, ): Likewise.
53f00dde 11900 (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
a49ae217
BS
11901 to ira_object_t; all callers changed.
11902 (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
11903 to ira_object_t, all callers changed.
11904 (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
11905 to ira_object_t, all callers changed.
11906 (conflict_check, curr_conflict_check_tick): Renamed from
11907 allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
11908 changed.
11909 (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
11910 arg changed to ira_object_t, all callers changed.
11911 (create_cap_allocno): Call ira_create_allocno_object.
11912 (finish_allocno): Free the corresponding object.
11913 (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
11914 callers changed. Adjusted for dealing with objects.
11915 (ira_build): Call create_allocno_objects after ira_costs. Adjusted for
11916 dealing with objects.
11917 * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
11918
53f00dde
UB
11919 * ira-int.h (struct live_range): Rename allocno member to object
11920 and change type to ira_object_t.
9140d27b
BS
11921 (struct ira_object): New member live_ranges.
11922 (struct ira_allocno): Remove member live_ranges.
11923 (ALLOCNO_LIVE_RANGES): Remove.
11924 (OBJECT_LIVE_RANGES): New macro.
11925 (ira_create_live_range, ira_copy_live_range_list,
11926 ira_merge_live_range_list, ira_live_ranges_intersect_p,
11927 ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
11928 * ira-build.c (ira_create_object): Initialize live ranges here.
11929 (ira_create_allocno): Not here.
11930 (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
11931 changed to ira_object_t, all callers changed.
11932 (copy_live_range): Rename from copy_allocno_live_range, all callers
11933 changed.
53f00dde
UB
11934 (ira_copy_live_range_list): Rename from
11935 ira_copy_allocno_live_range_list, all callers changed.
9140d27b
BS
11936 (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
11937 all callers changed.
11938 (ira_live_ranges_intersect_p): Rename from
11939 ira_allocno_live_ranges_intersect_p, all callers changed.
11940 (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
11941 callers changed.
11942 (ira_finish_live_range_list): Rename from
11943 ira_finish_allocno_live_range_list, all callers changed.
11944 (change_object_in_range_list): Rename from change_allocno_in_range_list,
11945 last arg changed to ira_object_t, all callers changed.
11946 (finish_allocno): Changed to expect live ranges in the allocno's object.
11947 (move_allocno_live_ranges, copy_allocno_live_ranges,
11948 update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
11949 ira_flattening, ira_build): Likewise.
11950 * ira-color.c (allocnos_have_intersected_live_ranges_p,
11951 slot_coalesced_allocno_live_ranges_intersect,
11952 setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
11953 * ira-conflicts.c (build_conflict_bit_table): Likewise.
11954 * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
11955 * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
11956 make_allocno_dead, create_start_finish_chains,
11957 remove_some_program_points_and_update_live_ranges,
11958 ira_debug_live_range_list): Likewise.
11959
fa86d337
BS
11960 * ira-int.h (ira_object_conflict_iterator): Rename from
11961 ira_allocno_conflict_iterator.
11962 (ira_object_conflict_iter_init): Rename from
11963 ira_allocno_conflict_iter_init, second arg changed to
11964 * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
11965 FOR_EACH_ALLOCNO_CONFLICT.
11966 * ira-color.c (assign_hard_reg, push_allocno_to_stack)
11967 setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
11968 ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
11969 * ira-conflicts.c (print_allocno_conflicts): Likewise.
11970
c31c32f9
JR
119712010-07-13 Joern Rennecke <joern.rennecke@embecosm.com>
11972
11973 PR other/44874
11974 * tree-dump.c (dump_options): Add enumerate_locals entry.
11975 Add TDF_NOID exclusion to all entry.
11976 * tree-dump.h (dump_enumerated_decls): Declare.
11977 * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
11978 Don't display type uid.
11979 (print_declaration): Don't crash on TREE_TYPE (t) == 0.
11980 * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
11981 * tree-ssa-live.c: Include gimple.h.
11982 (numbered_tree_d): New struct.
11983 (numbered_tree): New typedef.
11984 (DEF_VEC_O (numbered_tree): New.
11985 (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
11986 (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
11987 (dump_enumerated_decls): Likewise.
11988 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
11989 debug info and flag_dump_final_insns, call dump_enumerated_decls.
11990 * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
11991 * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
11992
d1465187
RS
119932010-07-13 Richard Sandiford <rdsandiford@googlemail.com>
11994
11995 * expmed.h (MAX_BITS_PER_WORD): Move to...
11996 * defaults.h (MAX_BITS_PER_WORD): ...here.
11997
0685e770
DD
119982010-07-13 DJ Delorie <dj@redhat.com>
11999
12000 * config/h8300/h8300.c (h8300_init_once): Default to
12001 -fstrict_volatile_bitfields.
12002
12003 * config/sh/sh.c (sh_override_options): Default to
12004 -fstrict_volatile_bitfields.
12005
12006 * config/rx/rx.c (rx_option_override): New.
12007
12008 * config/m32c/m32c.c (m32c_override_options): Default to
12009 -fstrict_volatile_bitfields.
12010
3bb06db4
NF
120112010-07-13 Nathan Froyd <froydnj@codesourcery.com>
12012
12013 * tree.h (build_function_call_expr): Delete.
12014 (build_call_expr_loc_array): New function.
12015 (build_call_expr_loc_vec): New function.
12016 * tree-flow.h (struct omp_region): Change type of ws_args field
12017 to a VEC.
12018 * builtins.c (build_function_call_expr): Delete.
12019 (build_call_expr_loc_array): New function.
12020 (build_call_expr_loc): Call it. Use XALLOCAVEC.
12021 (build_call_expr): Likewise.
12022 (build_call_expr_loc_vec): New function.
12023 * cgraphunit.c (build_cdtor): Call build_call_expr instead of
12024 build_function_call_expr.
12025 * expr.c (emutls_var_address): Likewise.
12026 * varasm.c (emutls_common_1): Likewise.
12027 * omp-low.c (expand_omp_atomic_mutex): Likewise.
12028 (expand_omp_taskreg): Adjust for new type of region->ws_args.
12029 (get_ws_args_for): Return a VEC instead of a tree.
12030 (expand_parallel_call): Call build_call_expr_loc_vec instead of
12031 build_function_call_expr.
12032 * stor-layout.c (self_referential_size): Likewise.
12033
c55c061a
JJ
120342010-07-13 Jakub Jelinek <jakub@redhat.com>
12035
12036 PR testsuite/44701
12037 * recog.c (constrain_operands): Allow side-effects in memory
12038 operands if either < or > constraint is used, rather than if
12039 both < and > is used.
12040
2eb0b984
RG
120412010-07-13 Richard Guenther <rguenther@suse.de>
12042
12043 PR middle-end/44911
12044 * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
12045 MEM_REF pointer type dumping. Avoid recursing for TYPE_DECLs
12046 without name.
12047
535b951f
KK
120482010-07-13 Kaz Kojima <kkojima@gcc.gnu.org>
12049
12050 PR target/44761
12051 * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
12052 to variable emited.
12053 * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
12054 * config/sh/sh.md (symGOT_load): Likewise.
12055 (symDTPOFF2reg): Likewise.
12056 (symTPOFF2reg): Likewise.
12057
6d06590d
RR
120582010-07-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12059
12060 * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
12061 * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
12062
ea2d8f12
RO
120632010-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12064
12065 * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
12066 explanation.
12067 Find ucontext_t * on Solaris 11.
12068 (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
12069 Handle new Solaris 11 __sighndlr patterns.
12070
2fed2012
JJ
120712010-07-13 Jakub Jelinek <jakub@redhat.com>
12072
12073 PR debug/44901
12074 * vec.h (VEC_block_remove): Fix comment.
12075 * tree-ssa-live.c (remove_unused_locals): Don't use
12076 VEC_unordered_remove on local_decls, instead replace a single
12077 vector element in each iteration if at least one element had
12078 to be removed and VEC_truncate at the end.
12079 * omp-low.c (expand_omp_taskreg): Likewise.
12080
cc343f65
MLI
120812010-07-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
12082
12083 * c-decl.c (finish_function): Fix typo in comment.
a691bb08 12084
5676e87d
L
120852010-07-12 H.J. Lu <hongjiu.lu@intel.com>
12086
12087 PR bootstrap/44921
12088 * postreload.c (move2add_use_add3_insn): Silence gcc warning
12089 on min_regno.
12090
8556f58f
JJ
120912010-07-12 Jakub Jelinek <jakub@redhat.com>
12092
12093 * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
12094 (simplify_stmt_using_ranges): Use it.
12095
8dc9f5bd
UW
120962010-07-12 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12097
12098 * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
12099 member. Do not mark as GTY(()).
12100 * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
12101 (spu_builtin_decls): New static variable.
12102 (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
12103 (spu_init_builtins): Likewise.
12104 (spu_builtin_mul_widen_even): Likewise.
12105 (spu_builtin_mul_widen_odd): Likewise.
12106 (spu_builtin_mask_for_load): Likewise.
12107 (spu_builtin_vec_perm): Likewise.
12108 * config/spu/spu-c.c: Include "target.h".
12109 (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
12110 of using spu_builtins[].fndecl.
12111
ac9b0eea
RS
121122010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12113
12114 * config/mips/mips.c (mips_override_options): Make -mflip-mips16
12115 imply -minterlink-mips16.
12116
5aa62249
RS
121172010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12118
12119 * config/mips/mips.h (mips16_globals): Declare.
12120 (SWITCHABLE_TARGET): Define.
12121 * config/mips/mips.c: Include target-globals.h.
12122 (mips16_globals): New variable.
12123 (mips_set_mips16_mode): Use save_target_globals and
12124 restore_target_globals instead of target_reinit.
12125
77f55879
RS
121262010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12127
12128 * reginfo.c (init_reg_sets): Don't zero globals here. Update comment
12129 to say that the function can be called more than once.
12130 * target-globals.c (save_target_globals): Call init_reg_sets.
12131
76ee381a
RS
121322010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12133
12134 * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
12135 * bb-reorder.h: New file.
12136 * bb-reorder.c (default_target_bb_reorder): New variable.
12137 (this_target_bb_reorder): New conditional variable.
12138 (uncond_jump_length): Redefine as a macro.
12139 * target-globals.h (this_target_bb_reorder): Declare.
12140 (target_globals): Add a bb_reorder field.
12141 (restore_target_globals): Copy the bb_reorder field to
12142 this_target_bb-reorder.
12143 * target-globals.c: Include bb-reorder.h.
12144 (default_target_globals): Initialize the bb_reorder field.
12145 (save_target_globals): Likewise.
12146
7c6811fe
RS
121472010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12148
12149 * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
12150 * gcse.h: New file.
12151 * gcse.c: Include gcse.h.
12152 (default_target_gcse): New variable.
12153 (this_target_gcse): New conditional variable.
12154 (can_copy): Redefine as a macro.
12155 (can_copy_init_p): New macro.
12156 (can_copy_p): Remove can_copy_init_p.
12157 * target-globals.h (this_target_gcse): Declare.
12158 (target_globals): Add a gcse field.
53f00dde 12159 (restore_target_globals): Copy the gcse field to this_target_gcse.
7c6811fe
RS
12160 * target-globals.c: Include gcse.h.
12161 (default_target_globals): Initialize the gcse field.
12162 (save_target_globals): Likewise.
12163
15e7b94f
RS
121642010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12165
12166 * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
12167 and x_ira_prohibited_mode_move_regs_initialized_p.
12168 (ira_prohibited_mode_move_regs): Redefine as a macro.
12169 * ira.c (ira_prohibited_mode_move_regs): Delete.
12170 (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
12171
cc14227f
RS
121722010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12173
12174 * reload.h (target_reload): Add x_cached_reg_save_code and
12175 x_cached_reg_restore_code.
12176 * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
12177 Redefine as macros.
12178
fa19795e
RS
121792010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12180
12181 * Makefile.in (target-globals.o): Depend on builtins.h.
12182 * builtins.h: New file.
12183 * builtins.c: Include builtins.h.
12184 (default_target_builtins): New variable.
12185 (this_target_builtins): New conditional variable.
12186 (apply_args_mode, apply_result_mode): Redefine as macros.
12187 * target-globals.h (this_target_builtins): Declare.
12188 (target_globals): Add a builtins field.
12189 (restore_target_globals): Copy the builtins field to
12190 this_target_builtins.
12191 * target-globals.c: Include builtins.h.
12192 (default_target_globals): Initialize the builtins field.
12193 (save_target_globals): Likewise.
12194
c371bb73
RS
121952010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12196
12197 * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
12198 (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
12199 from expmed.c.
12200 (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
12201 (alg_hash, alg_hash_used_p): New macros.
12202 * expmed.c (init_expmed): Clear alg_hash if reinitializing.
12203 (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
12204 (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
12205
aa1c5d72
RS
122062010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12207
12208 * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
12209 x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
12210 * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
12211 (this_op_costs, costs_classes): Redefine as macros.
12212 (record_reg_classes): Don't take op_costs as a parameter.
12213 (record_operand_costs): Likewise. Update calls to record_reg_classes.
12214 (scan_one_insn): Update call to record_operand_costs.
12215
afcc66c4
RS
122162010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12217
12218 * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
12219 * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
12220 (target_ira_int): New structure.
12221 (default_target_ira_int): Declare.
12222 (this_target_ira_int): Declare as a variable or define as a macro.
12223 (ira_reg_mode_hard_regset, ira_register_move_cost)
12224 (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
12225 (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
12226 (prohibited_class_mode_regs, ira_important_classes_num)
12227 (ira_important_classes, ira_reg_class_intersect)
12228 (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
12229 (ira_reg_class_union): Redefine as macros.
12230 * ira.h (target_ira): New structure.
12231 (default_target_ira): Declare.
12232 (this_target_ira): Declare as a variable or define as a macro.
12233 (ira_available_class_regs, ira_hard_regno_cover_class)
12234 (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
12235 (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
12236 (ira_class_hard_regs_num): Redefine as macros.
12237 * ira.c (default_target_ira, default_target_ira_int): New variables.
12238 (this_target_ira, this_target_ira_int): New conditional variables.
12239 (ira_reg_mode_hard_regset, ira_memory_move_cost)
12240 (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
12241 (ira_class_subset_p): Delete.
12242 (no_unit_alloc_regs): Redefine as a macro.
12243 (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
12244 (ira_class_hard_regs_num, ira_class_hard_reg_index)
12245 (ira_available_class_regs): Delete.
12246 (alloc_reg_class_subclasses): Redefine as a macro.
12247 (ira_reg_class_cover_size, ira_reg_class_cover)
12248 (ira_important_classes_num, ira_important_classes)
12249 (ira_important_class_nums, ira_class_translate): Delete.
12250 (cover_class_order): Document the variable's lifetime.
12251 (reorder_important_classes): Don't set ira_important_class_nums.
12252 (ira_reg_class_intersect, ira_reg_classes_intersect_p)
12253 (ira_reg_class_super_classes, ira_reg_class_union)
12254 (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
12255 Delete.
12256 (setup_reg_class_nregs): Don't set ira_max_regs.
12257 (prohibited_class_mode_regs): Delete.
12258 * target-globals.h (this_target_ira, this_target_ira_int): Declare.
12259 (target_globals): Add ira and ira_int fields.
12260 (restore_target_globals): Copy the ira field to this_target_ira
12261 and the ira_int field to this_target_ira_int.
12262 * target-globals.c: Include ira-int.h.
12263 (default_target_globals): Initialize the ira and ira_int fields.
12264 (save_target_globals): Likewise.
12265
4391924a
RS
122662010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12267
12268 * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
12269 * cfgloop.h (target_cfgloop): New structure.
12270 (default_target_cfgloop): Declare.
12271 (this_target_cfgloop): Declare as a variable or define as a macro.
12272 (target_avail_regs, target_clobbered_regs, target_res_regs)
12273 (target_reg_cost, target_spill_cost): Redefine as macros.
12274 * cfgloopanal.c (default_target_cfgloop): New variable.
12275 (this_target_cfgloop): New conditional variable.
12276 (target_avail_regs, target_clobbered_regs, target_res_regs)
12277 (target_reg_cost, target_spill_cost): Delete.
12278 * target-globals.h (this_target_cfgloop): Declare.
12279 (target_globals): Add a cfgloop field.
12280 (restore_target_globals): Copy the cfgloop field to
12281 this_target_cfgloop.
12282 * target-globals.c: Include cfgloop.h.
12283 (default_target_globals): Initialize the cfgloop field.
12284 (save_target_globals): Likewise.
12285
9d86796b
RS
122862010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12287
12288 * regs.h (target_regs): Add x_direct_load, x_direct_store and
12289 x_float_extend_from_mem.
12290 (direct_load, direct_store, float_extend_from_mem): New macros.
12291 * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
12292
3e9c326a
RS
122932010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12294
12295 * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
12296 (target-globals.o): Depend on $(LIBFUNCS_H).
12297 * libfuncs.h: Include hashtab.h.
12298 (libfunc_entry): Moved from optabs.c.
12299 (target_libfuncs): New structure.
12300 (default_target_libfuncs): Declare.
12301 (this_target_libfuncs): Declare as a variable or define as a macro.
12302 (libfunc_table): Redefine as a macro.
12303 * optabs.c (default_target_libfuncs): New variable.
12304 (this_target_libfuncs): New conditional variable.
12305 (libfunc_table): Delete.
12306 (libfunc_entry): Moved to optabs.h.
12307 (libfunc_hash): Redefine as a macro.
12308 (hash_libfunc, eq_libfunc): Fix comments.
12309 (init_optabs): Use libfunc_hash to detect cases where the function
12310 has already been called. Clear the hash table instead of
12311 recreating it.
12312 * target-globals.h (this_target_libfuncs): Declare.
12313 (target_globals): Add a libfuncs field.
12314 (restore_target_globals): Copy the libfuncs field to
12315 this_target_libfuncs.
12316 * target-globals.c: Include libfuncs.h.
12317 (default_target_globals): Initialize the libfuncs field.
12318 (save_target_globals): Likewise.
12319
9f7f1892
RS
123202010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12321
12322 * Makefile.in (LIBFUNCS_H): New variable. Use instead of libfuncs.h
12323 in all dependency lists.
12324
4bcbfa03
RS
123252010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12326
12327 * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
12328 * optabs.h (target_optabs): New structure.
12329 (default_target_optabs): Declare.
12330 (this_target_optabs): Declare as a variable or define as a macro.
12331 (optab_table, convert_optab_table, direct_optab_table): Redefine
12332 as macros.
12333 * optabs.c (default_target_optabs): New variable.
12334 (this_target_optabs): New conditional variable.
12335 (optab_table, convert_optab_table, direct_optab_table): Delete.
12336 * target-globals.h (this_target_optabs): Declare.
12337 (target_globals): Add a optabs field.
12338 (restore_target_globals): Copy the optabs field to
12339 this_target_optabs.
12340 * target-globals.c: Include expr.h and optabs.h.
12341 (default_target_globals): Initialize the optabs field.
12342 (save_target_globals): Likewise.
12343
b6609375
RS
123442010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12345
12346 * flags.h (target_flagstate): Add x_flag_excess_precision.
12347 (flag_excess_precision): Redefine as a macro.
12348 * toplev.c (flag_excess_precision): Delete.
12349
bcbaaba1
RS
123502010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12351
12352 * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
12353 * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
12354 * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
12355 (no_caller_save_reg_set): Redefine as a macro.
12356 * reload.h (target_reload): Add x_caller_save_initialized_p and
12357 x_regno_save_mode.
12358 (caller_save_initialized_p): Redefine as a macro.
12359 * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
12360 (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
12361 (regno_save_mode): Redefine as a macro.
12362
462f85ce
RS
123632010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12364
12365 * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
12366 * expmed.h: New file.
12367 * expmed.c (default_target_costs): New variable.
12368 (this_target_costs): New conditional variable.
12369 (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
12370 (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
12371 (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
12372 * target-globals.h (this_target_expmed): Declare.
12373 (target_globals): Add a expmed field.
12374 (restore_target_globals): Copy the expmed field to
12375 this_target_expmed.
12376 * target-globals.c: Include expmed.h.
12377 (default_target_globals): Initialize the expmed field.
12378 (save_target_globals): Likewise.
12379
d474db84
RS
123802010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12381
12382 * Makefile.in (target-globals.o): Depend on reload.h.
12383 * reload.h (target_reload): New structure.
12384 (default_target_reload): Declare.
12385 (this_target_reload): Declare as a variable or define as a macro.
12386 (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
12387 * reload1.c (default_target_reload): New variable
12388 (this_target_reload): New conditional variable.
12389 (indirect_symref_ok, double_reg_address_ok): Delete.
12390 (spill_indirect_levels): Redefine as a macro.
12391 * target-globals.h (this_target_reload): Declare.
12392 (target_globals): Add a reload field.
12393 (restore_target_globals): Copy the reload field to
12394 this_target_reload.
12395 * target-globals.c: Include hard-reg-set.h.
12396 (default_target_globals): Initialize the reload field.
12397 (save_target_globals): Likewise.
12398
7bf84454
RS
123992010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12400
12401 * rtl.h (target_rtl): Add x_static_reg_base_value.
12402 * alias.c (static_reg_base_value): Redefine as a macro.
12403
360d045b
RS
124042010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12405
12406 * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
12407 (GTFILES): Remove reginfo.c.
12408 * rtl.h (target_rtl): Add x_top_of_stack.
12409 (top_of_stack): New macro.
12410 * reginfo.c: Don't include ggc.h or gt-reginfo.h.
12411 (top_of_stack): Delete.
12412
55e78c8c
RS
124132010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12414
53f00dde
UB
12415 * regs.h (target_regs): Add x_hard_regs_of_mode,
12416 x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
12417 x_may_move_out_cost and x_last_mode_for_init_move_cost.
55e78c8c
RS
12418 (have_regs_of_mode, contains_reg_of_mode, move_cost)
12419 (may_move_in_cost, may_move_out_cost): Redefine as macros.
12420 * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
12421 (may_move_in_cost, may_move_out_cost): Delete.
12422 (last_mode_for_init_move_cost): Redefine as a macro.
12423
6642445b
RS
124242010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12425
12426 * hard-reg-set.h (target_hard_regs): New structure.
12427 (default_target_hard_regs): Declare.
12428 (this_target_hard_regs): Declare as a variable or define as a macro.
12429 (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
12430 (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
12431 (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
12432 (reg_class_size, reg_class_subclasses, reg_class_subunion)
12433 (reg_class_superunion, reg_names): Redefine as macros.
12434 * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
12435 (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
12436 (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
12437 (reg_class_contents, reg_class_size, reg_class_subclasses)
12438 (reg_class_subunion, reg_class_superunion, reg_names): Delete.
12439 (default_target_hard_regs): New variable
12440 (this_target_hard_regs, initial_call_really_used_regs)
12441 (initial_reg_alloc_order): New conditional variables.
12442 (initial_reg_names): New variable.
12443 (init_reg_sets): Assert that initial_call_really_used_regs,
12444 initial_reg_alloc_order and initial_reg_names
12445 are all the same size as their variable counterparts. Use them to
12446 initialize those counterparts.
12447 * target-globals.h (this_target_hard_regs): Declare.
12448 (target_globals): Add a hard_regs field.
12449 (restore_target_globals): Copy the hard_regs field to
12450 this_target_hard_regs.
12451 * target-globals.c: Include hard-reg-set.h.
12452 (default_target_globals): Initialize the hard_regs field.
12453 (save_target_globals): Likewise.
12454
5fb0e246
RS
124552010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12456
12457 * Makefile.in (target-globals.o): Depend on $(RTL_H).
bd3a5d17 12458 * rtl.h (target_rtl): New structure.
5fb0e246
RS
12459 (default_target_rtl): Declare.
12460 (this_target_rtl): Declare as a variable or define as a macro.
12461 (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
12462 Redefine as macros.
12463 * emit-rtl.c (default_target_rtl): New variable.
12464 (this_target_rtl): New conditional variable.
12465 (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
12466 (return_address_pointer_rtx): Delete.
12467 (initial_regno_reg_rtx): New macro.
12468 (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
12469 (init_emit_regs): Likewise.
12470 * target-globals.h (this_target_rtl): Declare.
12471 (target_globals): Add a rtl field.
12472 (restore_target_globals): Copy the rtl field to this_target_rtl.
12473 * target-globals.c: Include rtl.h.
12474 (default_target_globals): Initialize the rtl field.
12475 (save_target_globals): Likewise.
12476
939dcd0d
RS
124772010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12478
12479 * Makefile.in (target-globals.o): Depend on $(REGS_H).
12480 * regs.h (target_reg_modes): New structure.
12481 (default_target_reg_modes): Declare.
12482 (this_target_reg_modes): Declare as a variable or define as a macro.
12483 (hard_regno_nregs, reg_raw_mode): Redefine as macros.
12484 * reginfo.c (default_target_reg_modes): New variable.
12485 (this_target_reg_modes): New conditional variable.
12486 (hard_regno_nregs, reg_raw_mode): Delete.
12487 * target-globals.h (this_target_regs): Declare.
12488 (target_globals): Add a regs field.
12489 (restore_target_globals): Copy the regs field to this_target_regs.
12490 * target-globals.c: Include regs.h.
12491 (default_target_globals): Initialize the regs field.
12492 (save_target_globals): Likewise.
12493
3bd36029
RS
124942010-07-12 Richard Sandiford <rdsandiford@googlemail.com>
12495
12496 * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
12497 * doc/tm.texi: Regenerate.
12498 * Makefile.in (OBJS-common): Add target-globals.o.
12499 (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
12500 and target-globals.h.
12501 (target-globals.o): New rule.
12502 (GTFILES): Include $(srcdir)/target-globals.h.
12503 * defaults.h (SWITCHABLE_TARGET): Define.
12504 * gengtype.c (open_base_files): Add target-globals.h to the
12505 list of includes.
12506 * target-globals.h: New file.
12507 * target-globals.c: Likewise.
12508
12509 * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
12510 * flags.h (target_flag_state): New structure.
12511 (default_target_flag_state): Declare.
12512 (this_target_flag_state): Declare as a variable or define as a macro.
12513 (align_loops_log): Redefine as a macro.
12514 (align_loops_max_skip, align_jumps_log): Likewise.
12515 (align_jumps_max_skip, align_labels_log): Likewise.
12516 (align_labels_max_skip, align_functions_log): Likewise.
12517 * toplev.c (default_target_flag_state): New variable.
12518 (this_target_flag_state): New conditional variable.
12519 (align_loops_log): Delete.
12520 (align_loops_max_skip, align_jumps_log): Likewise.
12521 (align_jumps_max_skip, align_labels_log): Likewise.
12522 (align_labels_max_skip, align_functions_log): Likewise.
12523 * target-globals.h (this_target_flag_state): Declare.
12524 (target_globals): Add a flag_state field.
12525 (restore_target_globals): Copy the flag_state field to
12526 this_target_flag_state.
12527 * target-globals.c: Include flags.h.
12528 (default_target_globals): Initialize the flag_state field.
12529 (save_target_globals): Likewise.
12530
7beb0596
JZ
125312010-07-12 Jie Zhang <jie@codesourcery.com>
12532
12533 * postreload.c (reg_symbol_ref[]): New.
12534 (move2add_use_add2_insn): New.
12535 (move2add_use_add3_insn): New.
12536 (reload_cse_move2add): Handle SYMBOL + OFFSET case.
12537 (move2add_note_store): Likewise.
12538
ea19b1ec
JR
125392010-07-12 Joern Rennecke <joern.rennecke@embecosm.com>
12540
12541 PR rtl-optimization/44752
12542 * genautomata.c (main): Don't emit an empty file even if there
12543 is no automaton.
12544
e2b4f103
RO
125452010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12546
12547 * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
12548 ix86_solaris_return_in_memory.
12549 * config/i386-protos.h: Reflect this.
12550 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
12551 * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
12552 Move ...
12553 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
12554
fb2f8cf8
JZ
125552010-07-12 Jie Zhang <jie@codesourcery.com>
12556
12557 * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
12558 align the stack when it's going to be saved.
12559
8f89ba7c
RO
125602010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12561
12562 PR pch/14940
12563 * config/host-solaris.c (mmap_fixed): New function.
12564 (sol_gt_pch_get_address): Use it.
12565 (sol_gt_pch_use_address): Likewise.
12566
ae6a0535
RO
125672010-07-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12568
12569 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
12570 pentiumpro on Solaris 8 and 9/x86.
12571 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
12572 Document SSE/SSE2 support.
12573 * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
12574
e56d9a76
AK
125752010-07-12 Andi Kleen <ak@linux.intel.com>
12576
12577 * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
12578 instead of gcc_assert to print better error message for multiple
12579 prevailing defs.
12580
9db335b9
UB
125812010-07-12 Uros Bizjak <ubizjak@gmail.com>
12582
12583 * config/i386/i386.c (ix86_asm_output_function_label): Change format
12584 string placeholder from 0x%x to %#x.
12585 (ix86_code_end): Use putc to output '\n'.
12586 (ix86_print_operand) <case ';'>: Use putc to output ';'.
12587
23b488ad
KT
125882010-07-11 Kai Tietz <kai.tietz@onevision.com>
12589
12590 * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
12591 in directive -export.
12592
a56b31ca
AS
125932010-07-10 Anatoly Sokolov <aesok@post.ru>
12594
12595 * reginfo.h (reg_classes_intersect_p): Change arguments type to
12596 reg_class_t.
12597 * rtl.h (reg_classes_intersect_p): Adjust prototype.
12598
12599 * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
12600 Remove macros.
12601 * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
12602 rs6000_memory_move_cost): Remove
12603 * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
12604 TARGET_MEMORY_MOVE_COST): Define.
12605 (rs6000_register_move_cost): Make static. Change arguments type from
12606 enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
12607 (rs6000_memory_move_cost): Make static. Change arguments type from
12608 'enum reg_class' to reg_class_t.
12609
bec922f0
SL
126102010-07-10 Sandra Loosemore <sandra@codesourcery.com>
12611
12612 PR middle-end/42505
12613 * tree-inline.c (estimate_num_insns): Refactor builtin complexity
12614 lookup code into....
12615 * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
12616 new functions.
12617 * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
12618 * cfgloopanal.c (target_clobbered_regs): Define.
12619 (init_set_costs): Initialize target_clobbered_regs.
12620 (estimate_reg_pressure_cost): Add call_p argument. When true,
12621 adjust the number of available registers to exclude the
12622 call-clobbered registers.
12623 * cfgloop.h (target_clobbered_regs): Declare.
12624 (estimate_reg_pressure_cost): Adjust declaration.
12625 * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
12626 (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
12627 (determine_set_costs): Dump target_clobbered_regs.
12628 (loop_body_includes_call): New function.
12629 (tree_ssa_iv_optimize_loop): Use it to initialize new field.
12630 * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
12631 call_p flag through.
12632 (best_gain_for_invariant): Likewise.
12633 (find_invariants_to_move): Likewise.
12634 (move_single_loop_invariants): Likewise, using already-computed
12635 has_call field.
12636
ccf134c7
RG
126372010-07-10 Richard Guenther <rguenther@suse.de>
12638 Joern Rennecke <joern.rennecke@embecosm.com>
12639
12640 PR debug/44832
9db335b9 12641 * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
ccf134c7
RG
12642 (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
12643 unless they have DECL_IGNORED_P set.
12644
bcee752e
RG
126452010-07-10 Richard Guenther <rguenther@suse.de>
12646
12647 PR lto/44889
12648 * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
12649 helper function.
12650 (gimple_types_compatible_p): Similar to pointed-to
12651 types allow and merge a mix of complete and incomplete aggregate.
12652 Use gimple_fixup_complete_and_incomplete_subtype_p for that.
12653 (iterative_hash_gimple_type): Adjust for that.
12654
7e9b9697
RS
126552010-07-10 Richard Sandiford <r.sandiford@uk.ibm.com>
12656
12657 * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
12658
058bfe53
IS
126592010-07-10 Iain Sandoe <iains@gcc.gnu.org>
12660
12661 PR objc/44140
12662 * config/darwin.c (output_objc_section_asm_op): Save and restore
12663 section when outputting ObjC section list.
12664
b772114c
JH
126652010-07-09 Jan Hubicka <jh@suse.cz>
12666
9db335b9
UB
12667 * lto-streamer-out.c (produce_symtab): Do not write alias
12668 cgraph/varpool nodes.
b772114c 12669
7e97ee1a
JH
126702010-07-09 Jan Hubicka <jh@suse.cz>
12671
12672 * tree-inline.c (declare_return_variable): Fix ICE while
12673 inlining DECL_BY_VALUE function not in SSA form
12674
0bbe50f6
CF
126752010-07-09 Changpeng Fang <changpeng.fang@amd.com>
12676
12677 PR tree-optimization/44576
12678 * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
12679 New. Pull out from is_loop_prefetching_profitable to implement
12680 the trip count to ahead ratio heuristic.
12681 (mem_ref_count_reasonable_p): New. Pull out from
12682 is_loop_prefetching_profitable to implement the instruction to
12683 memory reference ratio heuristic. Also consider not reasonable if
12684 the memory reference count is above a threshold (to avoid
12685 explosive compilation time.
12686 (insn_to_prefetch_ratio_too_small_p): New. Pull out from
12687 is_loop_prefetching_profitable to implement the instruction to
12688 prefetch ratio heuristic.
12689 (is_loop_prefetching_profitable): Removed.
12690 (loop_prefetch_arrays): Distribute the cost analysis across the
12691 function to allow early exit of the prefetch analysis.
12692 is_loop_prefetching_profitable is splitted into three functions,
12693 with each one called as early as possible.
12694 (PREFETCH_MAX_MEM_REFS_PER_LOOP): New. Threshold above which the
12695 number of memory references in a loop is considered too many.
12696
c033690d
BS
126972010-07-09 Bernd Schmidt <bernds@codesourcery.com>
12698
9db335b9
UB
12699 * reload.c (find_reloads): Don't clear badop if we have a winreg
12700 alternative, but not win, and the class only has fixed regs.
c033690d
BS
12701 * hard-reg-set.h (class_only_fixed_regs): Declare.
12702 * reginfo.c (class_only_fixed_regs): New array.
12703 (init_reg_sets_1): Initialize it.
12704 * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
12705 discourage alternatives using the stack pointer.
12706
0879e7b3
BS
12707 * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
12708
1744c800
BS
12709 * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
12710
95da5cf9
BS
12711 * config/arm/arm.md (cbranchqi4): Fix array size.
12712 (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
12713 calculating length.
12714
e8edaf95
RG
127152010-07-09 Richard Guenther <rguenther@suse.de>
12716
12717 * gimple.c (struct type_fixup_s): New struct and VEC type.
12718 (gimple_register_type_fixups): New static global.
12719 (gimple_queue_type_fixup): New function.
12720 (gimple_types_compatible_p): Queue type fixups instead of
12721 applying them here.
12722 (gimple_register_type): Apply queued fixups for the
12723 canonical type. Empty the type fixup queue.
12724
7085bfb6
UB
127252010-07-09 Uros Bizjak <ubizjak@gmail.com>
12726
12727 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
12728 * configure: Regenerate.
abcb0bd9 12729 * config.in: Ditto.
7085bfb6 12730
85e693aa
JJ
127312010-07-09 Jakub Jelinek <jakub@redhat.com>
12732 Denys Vlasenko <dvlasenk@redhat.com>
12733 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12734
12735 PR tree-optimization/28632
12736 * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
12737 (extract_range_from_binary_expr): Further optimize
12738 BIT_AND_EXPR and BIT_IOR_EXPR.
12739
59ee2304
SP
127402010-07-09 Sebastian Pop <sebastian.pop@amd.com>
12741
12742 * tree-if-conv.c (fold_or_predicates): New.
12743 (add_to_predicate_list): Call it.
12744
38a178dd
RG
127452010-07-09 Richard Guenther <rguenther@suse.de>
12746
12747 PR middle-end/44890
12748 * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
12749 if base is a pointer.
12750 * tree-cfg.c (verify_expr): Update MEM_REF checking.
12751
c8aa02cc
MM
127522010-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
12753
12754 PR target/44877
12755 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
12756 POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
12757 builtin mask for load/store builtins.
12758
4bade865
UB
127592010-07-09 Uros Bizjak <ubizjak@gmail.com>
12760
12761 * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
12762 for "lock addl".
12763 * configure: Regenerate.
12764 * config/i386/i386.c (ix86_print_operand) <case ';'>:
12765 Remove TARGET_MACHO.
12766
2c9ccc21
PB
127672010-07-09 Peter Bergner <bergner@vnet.ibm.com>
12768
12769 * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
12770 default ISA flags.
12771 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
12772
5c9fae0d
TV
127732010-07-09 Tom de Vries <tjvries@xs4all.nl>
12774
12775 * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
12776
7085bfb6 127772010-07-09 Hariharan Sandanagobalane <hariharan@picochip.com>
099379da
HS
12778
12779 * config/picochip/picochip.md (commsTestPort): Emit more
12780 efficient sequence for tstport instruction.
12781
f55a7cbc
UB
127822010-07-09 Uros Bizjak <ubizjak@gmail.com>
12783
12784 * config/i386/i386.c (ix86_veclib_handler): Make static.
12785
dbfcc059
RG
127862010-07-09 Richard Guenther <rguenther@suse.de>
12787
12788 PR tree-optimization/44852
12789 * tree-ssa-alias.c: Include toplev.h for exact_log2.
12790 (indirect_ref_may_alias_decl_p): Properly handle negative offsets
12791 in MEM_REF.
12792 (indirect_refs_may_alias_p): Likewise.
12793 * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
12794
ca1316d2
RG
127952010-07-09 Richard Guenther <rguenther@suse.de>
12796
12797 PR tree-optimization/44882
12798 * tree-vect-stmts.c (vectorizable_store): Do not assert alias
12799 sets do conflict.
12800 (vectorizable_load): Likewise.
12801
e784c52c
BS
128022010-07-09 Bernd Schmidt <bernds@codesourcery.com>
12803
12804 PR target/40657
12805 * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
12806 All callers changed.
12807 Handle the case when we're called for the epilogue.
12808 (thumb_unexpanded_epilogue): Use it.
12809 (thumb1_expand_epilogue): Likewise.
12810
ac285648
JJ
128112010-07-09 Jakub Jelinek <jakub@redhat.com>
12812
12813 * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
12814 both ranges are range_int_cst_p with non-negative minimum,
12815 try harder to derive smaller range.
12816
79a3f089
MLI
128172010-07-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
12818
12819 * genrecog.c: Include diagnostic-core.h before toplev.h.
12820 * genoutput.c: Likewise.
12821 * genextract.c: Likewise.
12822 * genautomata.c: Likewise.
12823 * genemit.c: Likewise.
12824 * genpeep.c: Likewise.
12825 * genattrtab.c: Likewise.
12826 * genconditions.c: Likewise.
12827 * genpreds.c: Likewise.
12828
f55a7cbc 128292010-07-08 Andi Kleen <ak@linux.intel.com>
1df15c3d
AK
12830
12831 * lto-section-in.c (lto_section_name): Add missing comma.
12832
930572b9
AS
128332010-07-08 Anatoly Sokolov <aesok@post.ru>
12834
12835 * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
12836 * config/ia64/ia64-protos.h (ia64_override_options): Remove.
12837 * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
12838 (ia64_override_options): Rename to...
12839 (ia64_option_override): ... this one. Make static.
12840
5951297a
EB
128412010-07-08 Eric Botcazou <ebotcazou@adacore.com>
12842
12843 PR middle-end/44843
12844 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
12845 pointed-to type of the offset in a MEM_REF to compute the alignment.
12846
135a687e
KT
128472010-07-08 Kai Tietz <kai.tietz@onevision.com>
12848
2784ed9c
KT
12849 * final.c (final_scan_insn): Replace
12850 TARGET_UNWIND_INFO macro check by unwind_emit
12851 hook NULL check.
12852 * targhooks.c (default_unwind_emit): Removed.
12853 * targhooks.h (default_unwind_emit): Likewise.
12854 * target.def (unwind_emit): Set default value to NULL.
12855
135a687e
KT
12856 * config/i386/i386-protos.h (ix86_asm_output_function_label):
12857 New prototype.
12858 * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
12859 for NULL fntype argument and allow 64-bit targets.
12860 (ix86_asm_output_function_label): New function.
12861 (ix86_expand_prologue): Handle 64-bit ms hook prologue.
12862 (ix86_handle_fndecl_attribute): Likewise.
12863 * doc/extend.texi (ms_hook_prologue): Adjust documentation.
12864 * doc/doc/tm.texi: Regenerated.
12865 * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
12866 (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
12867 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
12868 * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
12869 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
12870 * config/elfos.h: Likewise.
12871 * config/i386/cygming.h: Likewise.
12872 * config/netbsd-aout.h: Likewise.
12873 * config/openbsd.h: Likewise.
12874 * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
12875 by ix86_asm_output_function_label function call.
12876 * varasm.c (assemble_start_function): Use
12877 ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
12878
09411461
JH
128792010-07-08 Jan Hubicka <jh@suse.cz>
12880
12881 * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
12882 New function.
12883 * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
12884 Declare.
12885 * ipa-cp.c (ipcp_estimate_growth): Use it.
12886 * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
12887 Likewise.
12888
72109b25
JH
128892010-07-08 Jan Hubicka <jh@suse.cz>
12890
12891 * tree-inline.c (declare_return_variable): Allocate annotation for new
12892 temporary.
12893
d89e5e20
SP
128942010-07-08 Sebastian Pop <sebastian.pop@amd.com>
12895
12896 PR tree-optimization/44710
12897 * tree-if-conv.c (parse_predicate): New.
12898 (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
12899 Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
12900
384a5197
SP
129012010-07-08 Sebastian Pop <sebastian.pop@amd.com>
12902
12903 * common.opt (ftree-loop-if-convert): New flag.
12904 * doc/invoke.texi (ftree-loop-if-convert): Documented.
12905 * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
12906 when flag_tree_loop_if_convert is set.
12907
f8e1995a
UB
129082010-07-08 Uros Bizjak <ubizjak@gmail.com>
12909
12910 * config/i386/i386.c: Use short syntax for function calls
12911 through function pointers.
12912 * config/i386/i386.md: Ditto.
12913
a80903ff
EB
129142010-07-08 Eric Botcazou <ebotcazou@adacore.com>
12915
12916 * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
12917
d0c422cb
RG
129182010-07-08 Richard Guenther <rguenther@suse.de>
12919
12920 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
12921 stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
12922
b298f924
JJ
129232010-07-08 Jakub Jelinek <jakub@redhat.com>
12924
12925 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
12926 instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
12927 (loc_list_from_tree): Likewise.
12928 (output_loc_operands): Handle outputting DW_OP_const[48]u
12929 with loc->dtprel set.
12930 (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
12931
5dde3b01
JH
129322010-07-08 Jan Hubicka <jh@suse.cz>
12933
12934 * ipa.c: Include pointer-set.h
12935 (cgraph_externally_visible_p): New attribute ALIASED;
12936 when in LTO, hidden symbols are local unless they are aliased.
12937 (function_and_variable_visibility): Compute aliased nodes;
12938 handle LTO and hidden symbol on functions and vars.
12939 * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
12940 for COMDAT symbols; handle COMDAT_GROUPS also at vars.
12941
2de710b9
EB
129422010-07-08 Eric Botcazou <ebotcazou@adacore.com>
12943
12944 * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
12945 * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12946 * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12947 * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12948 * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12949 * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
12950 (ix86_gen_probe_stack_range): Likewise.
12951 (override_options): Set them.
12952 (ix86_target_stack_probe): New function.
12953 (ix86_compute_frame_layout): Force use of push instructions to
12954 save registers if stack checking with probes is enabled.
12955 (get_scratch_register_on_entry): New function.
12956 (release_scratch_register_on_entry): Likewise.
12957 (ix86_adjust_stack_and_probe): Likewise.
12958 (output_adjust_stack_and_probe): Likewise.
12959 (ix86_emit_probe_stack_range): Likewise.
12960 (output_probe_stack_range): Likewise.
12961 (ix86_expand_prologue): Emit stack checking code if static built-in
12962 stack checking is enabled.
12963 Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
12964 * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
12965 (output_adjust_stack_and_probe): Likewise.
12966 (output_probe_stack_range): Likewise.
12967 * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
12968 (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
12969 TARGET_STACK_PROBE.
12970 (allocate_stack_worker_64): Likewise.
12971 (allocate_stack): Likewise.
12972 (adjust_stack_and_probe): New insn.
12973 (probe_stack_range): Likewise.
12974
f076deba
RG
129752010-07-08 Richard Guenther <rguenther@suse.de>
12976
12977 PR tree-optimization/44831
12978 * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
12979 a MEM_REF preserving TBAA info of the original dereference.
4bade865 12980 Dereference the original pointer if the address is not invariant.
f076deba
RG
12981 (propagate_with_phi): Fixup type checks wrt MEM_REFs. Require
12982 at least one invariant address that we are going to dereference.
12983
20ede5c6
RG
129842010-07-08 Richard Guenther <rguenther@suse.de>
12985
12986 PR tree-optimization/44861
12987 * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
12988 information when building MEM_REFs.
12989 (vectorizable_load): Likewise.
12990 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
12991
80edb36c
EB
129922010-07-08 Eric Botcazou <ebotcazou@adacore.com>
12993
12994 * config/sol2-c.c: Do not include diagnostic-core.h.
12995
2e1ec94f
RR
129962010-07-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12997
1df15c3d 12998 PR bootstrap/44768
2e1ec94f
RR
12999 * cfgexpand.c (estimated_stack_frame_size): Make self-contained
13000 with respect to current_function_decl. Pass decl of the function.
13001 * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
13002 * ipa-inline.c (compute_inline_parameters): Pass decl to
13003 estimated_stack_frame_size.
13004
a03a9774
RG
130052010-07-08 Richard Guenther <rguenther@suse.de>
13006
13007 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
13008 New function.
13009 (valueize_refs): Call it.
13010
e73cfe5d
RG
130112010-07-08 Richard Guenther <rguenther@suse.de>
13012
13013 PR rtl-optimization/44838
13014 * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
13015 SSA form do not use pointer equivalence.
13016
51d49bc2
EB
130172010-07-08 Eric Botcazou <ebotcazou@adacore.com>
13018
13019 * dwarf2out.c (AT_linkage_name): Delete.
13020 (add_linkage_attr): New function.
13021 (add_linkage_name): Call it to emit the linkage attribute.
13022 (dwarf2out_finish): Likewise.
13023 (move_linkage_attr): Explicitly accept both attribute variants.
13024
718f9c0f
MLI
130252010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
13026
13027 * toplev.h: Do not include diagnostic-core.h.
13028 Include diagnostic-core.h in every file that includes toplev.h.
13029 * c-tree.h: Do not include toplev.h.
13030 * pretty-print.h: Update comment.
13031 * Makefile.in: Update dependencies.
13032 * alias.c: Include diagnostic-core.h in every file that includes
13033 toplev.h.
13034 * attribs.c: Likewise.
13035 * auto-inc-dec.c: Likewise.
13036 * bb-reorder.c: Likewise.
13037 * bt-load.c: Likewise.
13038 * caller-save.c: Likewise.
13039 * calls.c: Likewise.
13040 * cfg.c: Likewise.
13041 * cfganal.c: Likewise.
13042 * cfgbuild.c: Likewise.
13043 * cfgcleanup.c: Likewise.
13044 * cfghooks.c: Likewise.
13045 * cfgloop.c: Likewise.
13046 * combine.c: Likewise.
13047 * config/alpha/alpha.c: Likewise.
13048 * config/arc/arc.c: Likewise.
13049 * config/arm/arm.c: Likewise.
13050 * config/arm/pe.c: Likewise.
13051 * config/avr/avr.c: Likewise.
13052 * config/bfin/bfin.c: Likewise.
13053 * config/cris/cris.c: Likewise.
13054 * config/crx/crx.c: Likewise.
13055 * config/darwin-c.c: Likewise.
13056 * config/darwin.c: Likewise.
13057 * config/fr30/fr30.c: Likewise.
13058 * config/frv/frv.c: Likewise.
13059 * config/h8300/h8300.c: Likewise.
13060 * config/host-darwin.c: Likewise.
13061 * config/i386/i386.c: Likewise.
13062 * config/i386/netware.c: Likewise.
13063 * config/i386/nwld.c: Likewise.
13064 * config/i386/winnt-cxx.c: Likewise.
13065 * config/i386/winnt-stubs.c: Likewise.
13066 * config/i386/winnt.c: Likewise.
13067 * config/ia64/ia64-c.c: Likewise.
13068 * config/ia64/ia64.c: Likewise.
13069 * config/iq2000/iq2000.c: Likewise.
13070 * config/lm32/lm32.c: Likewise.
13071 * config/m32c/m32c-pragma.c: Likewise.
13072 * config/m32c/m32c.c: Likewise.
13073 * config/m32r/m32r.c: Likewise.
13074 * config/m68hc11/m68hc11.c: Likewise.
13075 * config/m68k/m68k.c: Likewise.
13076 * config/mcore/mcore.c: Likewise.
13077 * config/mep/mep-pragma.c: Likewise.
13078 * config/mep/mep.c: Likewise.
13079 * config/mmix/mmix.c: Likewise.
13080 * config/mn10300/mn10300.c: Likewise.
13081 * config/moxie/moxie.c: Likewise.
13082 * config/pa/pa.c: Likewise.
13083 * config/pdp11/pdp11.c: Likewise.
13084 * config/picochip/picochip.c: Likewise.
13085 * config/rs6000/rs6000-c.c: Likewise.
13086 * config/rs6000/rs6000.c: Likewise.
13087 * config/rx/rx.c: Likewise.
13088 * config/s390/s390.c: Likewise.
13089 * config/score/score.c: Likewise.
13090 * config/score/score3.c: Likewise.
13091 * config/score/score7.c: Likewise.
13092 * config/sh/sh.c: Likewise.
13093 * config/sh/symbian-base.c: Likewise.
13094 * config/sh/symbian-c.c: Likewise.
13095 * config/sh/symbian-cxx.c: Likewise.
13096 * config/sol2-c.c: Likewise.
13097 * config/sol2.c: Likewise.
13098 * config/sparc/sparc.c: Likewise.
13099 * config/spu/spu.c: Likewise.
13100 * config/stormy16/stormy16.c: Likewise.
13101 * config/v850/v850-c.c: Likewise.
13102 * config/v850/v850.c: Likewise.
13103 * config/vax/vax.c: Likewise.
13104 * config/vxworks.c: Likewise.
13105 * config/xtensa/xtensa.c: Likewise.
13106 * convert.c: Likewise.
13107 * cse.c: Likewise.
13108 * cselib.c: Likewise.
13109 * dbgcnt.c: Likewise.
13110 * dbxout.c: Likewise.
13111 * ddg.c: Likewise.
13112 * dominance.c: Likewise.
13113 * emit-rtl.c: Likewise.
13114 * explow.c: Likewise.
13115 * expmed.c: Likewise.
13116 * fixed-value.c: Likewise.
13117 * fold-const.c: Likewise.
13118 * fwprop.c: Likewise.
13119 * gcse.c: Likewise.
13120 * ggc-common.c: Likewise.
13121 * ggc-page.c: Likewise.
13122 * ggc-zone.c: Likewise.
13123 * gimple-low.c: Likewise.
13124 * gimplify.c: Likewise.
13125 * graph.c: Likewise.
13126 * haifa-sched.c: Likewise.
13127 * ifcvt.c: Likewise.
13128 * implicit-zee.c: Likewise.
13129 * integrate.c: Likewise.
13130 * ira-build.c: Likewise.
13131 * ira-color.c: Likewise.
13132 * ira-conflicts.c: Likewise.
13133 * ira-costs.c: Likewise.
13134 * ira-lives.c: Likewise.
13135 * ira.c: Likewise.
13136 * lists.c: Likewise.
13137 * loop-doloop.c: Likewise.
13138 * loop-iv.c: Likewise.
13139 * lto-opts.c: Likewise.
13140 * lto-symtab.c: Likewise.
13141 * main.c: Likewise.
13142 * modulo-sched.c: Likewise.
13143 * optabs.c: Likewise.
13144 * params.c: Likewise.
13145 * plugin.c: Likewise.
13146 * postreload-gcse.c: Likewise.
13147 * postreload.c: Likewise.
13148 * predict.c: Likewise.
13149 * profile.c: Likewise.
13150 * real.c: Likewise.
13151 * regcprop.c: Likewise.
13152 * reginfo.c: Likewise.
13153 * regmove.c: Likewise.
13154 * reorg.c: Likewise.
13155 * resource.c: Likewise.
13156 * rtl.c: Likewise.
13157 * rtlanal.c: Likewise.
13158 * sched-deps.c: Likewise.
13159 * sched-ebb.c: Likewise.
13160 * sched-rgn.c: Likewise.
13161 * sdbout.c: Likewise.
13162 * sel-sched-dump.c: Likewise.
13163 * sel-sched-ir.c: Likewise.
13164 * simplify-rtx.c: Likewise.
13165 * stmt.c: Likewise.
13166 * stor-layout.c: Likewise.
13167 * store-motion.c: Likewise.
13168 * targhooks.c: Likewise.
13169 * tree-cfg.c: Likewise.
13170 * tree-cfgcleanup.c: Likewise.
13171 * tree-dump.c: Likewise.
13172 * tree-eh.c: Likewise.
13173 * tree-inline.c: Likewise.
13174 * tree-nomudflap.c: Likewise.
13175 * tree-object-size.c: Likewise.
13176 * tree-optimize.c: Likewise.
13177 * tree-outof-ssa.c: Likewise.
13178 * tree-phinodes.c: Likewise.
13179 * tree-profile.c: Likewise.
13180 * tree-ssa-ccp.c: Likewise.
13181 * tree-ssa-coalesce.c: Likewise.
13182 * tree-ssa-live.c: Likewise.
13183 * tree-ssa-loop-niter.c: Likewise.
13184 * tree-ssa-loop-prefetch.c: Likewise.
13185 * tree-ssa-loop.c: Likewise.
13186 * tree-ssa-structalias.c: Likewise.
13187 * tree-ssa-uninit.c: Likewise.
13188 * tree-ssa.c: Likewise.
13189 * tree-vect-data-refs.c: Likewise.
13190 * tree-vect-loop-manip.c: Likewise.
13191 * tree-vect-loop.c: Likewise.
13192 * tree-vect-patterns.c: Likewise.
13193 * tree-vect-stmts.c: Likewise.
13194 * tree-vrp.c: Likewise.
13195 * varasm.c: Likewise.
13196 * vec.c: Likewise.
13197 * web.c: Likewise.
13198 * xcoffout.c: Likewise.
13199
647565f6
RS
132002010-07-07 Richard Sandiford <rdsandiford@googlemail.com>
13201
13202 * gengtype.c (write_field_root): New function.
13203 (write_root): Use it.
13204
88c1612f
WG
132052010-07-07 Wei Guozhi <carrot@google.com>
13206
13207 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
13208 of lowest bits to lshift/compare): Add a missing line.
13209
ece53c91
WG
132102010-07-07 Wei Guozhi <carrot@google.com>
13211
13212 * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
13213 of lowest bits to lshift/compare): New.
13214
9730bc27
TT
132152010-07-07 Tom Tromey <tromey@redhat.com>
13216
13217 * doc/tm.texi: Update.
13218 * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
13219 Add @hook.
13220 * target.def (want_debug_pub_sections): New hook.
13221 * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
13222 * dwarf2out.c (add_pubname_string): Check
13223 targetm.want_debug_pub_sections.
13224 (add_pubname): Likewise.
13225 (add_pubtype): Likewise.
13226
f5d5226b
JZ
132272010-07-07 Jie Zhang <jie@codesourcery.com>
13228
13229 * genautomata.c (output_automata_list_min_issue_delay_code):
13230 Correctly decompress min_issue_delay.
13231
71df5a7e
BS
132322010-07-07 Bernd Schmidt <bernds@codesourcery.com>
13233
13234 PR rtl-optimization/44404
13235 * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
13236 possible, use reg_overlap_mentioned_p instead.
13237
f625098e
DS
132382010-07-07 Duncan Sands <baldrick@free.fr>
13239
13240 PR middle-end/41355
13241 * tree.c (build_function_type_skip_args): Copy the original type using
1df15c3d 13242 build_distinct_type_copy rather than copy_node.
f625098e 13243
ab33bd5c
L
132442010-07-07 H.J. Lu <hongjiu.lu@intel.com>
13245
13246 PR target/44850
13247 * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
13248 revision 161876.
13249 (ix86_expand_prologue): Likewise.
13250 (ix86_handle_fndecl_attribute): Likewise.
13251 (ix86_asm_declare_function_name): Likewise.
13252 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13253 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13254 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
4bade865 13255 * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
ab33bd5c
L
13256 * doc/extend.texi: Likewise.
13257
5e86e540
L
132582010-07-07 H.J. Lu <hongjiu.lu@intel.com>
13259
13260 PR target/44844
13261 * config/i386/i386.md (rdrand<mode>): Changed to expand to
13262 retry if the carry flag isn't valid.
13263 (rdrand<mode>_1): New.
13264
0ee95c43
RG
132652010-07-07 Richard Guenther <rguenther@suse.de>
13266
13267 PR middle-end/44790
13268 * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
13269 for expanding the constant offset for MEM_REFs.
13270
523968bf
RG
132712010-07-07 Richard Guenther <rguenther@suse.de>
13272
13273 * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
13274 * tree-ssa-propagate.c (valid_gimple_call_p): Make static. Fix.
13275 * gimple.h (is_gimple_operand): Remove.
13276 * gimple.c (is_gimple_operand): Likewise.
13277 (walk_gimple_op): Fix wi->val_only setting for calls.
13278 * tree-cfg.c (verify_gimple_call): Fix argument validation.
13279 * tree-profile.c (tree_gen_ic_func_profiler): Do not create
13280 invalid gimple calls.
13281
86353474
JH
132822010-07-06 Jan Hubicka <jh@suse.cz>
13283
13284 * lto-cgraph.c (output_cgraph): Add missing declaration.
13285
b0d9e663
JH
132862010-07-06 Jan Hubicka <jh@suse.cz>
13287
13288 * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
13289 partition.
13290
38be945b
AO
132912010-07-06 Alexandre Oliva <aoliva@redhat.com>
13292
13293 * doc/gimple.texi (GIMPLE_DEBUG): Document.
13294 * doc/rtl.texi (Debug Information): New node.
13295 (NOTE_INSN_VAR_LOCATION): Document.
13296 (debug_insn): Likewise.
13297 * doc/generic.texi (DEBUG_EXPR_DECL): Document.
13298
6938f93f
JH
132992010-07-07 Jan Hubicka <jh@suse.cz>
13300
4bade865 13301 With parts by Richard Guenther.
6938f93f
JH
13302
13303 PR middle-end/44813
13304 * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
13305 for functions passed by reference.
13306 * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
13307 in memory when passed by reference.
13308 * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
13309 beggining.
13310 * ipa-split.c (split_function): Cleanup way return value is passed;
13311 handle SSA DECL_BY_REFERENCE retvals.
13312 * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
13313 DECL_BY_REFERENCE is set.
13314 * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
13315 find_what_p_points_to): Handle RESULT_DECL.
13316 * tree-inline.c (declare_return_variable): Get new entry_block argument;
13317 when passing by reference ensure that RESULT_DECL is gimple_val.
13318 (remap_gimple_op_r): Remap RESULT_DECL ssa name.
13319 (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
13320
325d7997
BS
133212010-07-07 Bernd Schmidt <bernds@codesourcery.com>
13322
13323 PR rtl-optimization/44787
13324 * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
13325 * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
13326
e10aaec0
JH
133272010-07-06 Jan Hubicka <jh@suse.cz>
13328
13329 * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
13330 (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
13331 with body can prevail.
13332 (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
13333 (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
13334 * cgraph.c (cgraph_get_node_or_alias): New function.
13335 * cgraph.h (cgraph_get_node_or_alias): Declare.
13336
4bbf141c
KT
133372010-07-06 Kai Tietz <kai.tietz@onevision.com>
13338
13339 * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
13340 support.
13341 (ix86_expand_prologue): Likewise.
13342 (ix86_handle_fndecl_attribute): Likewise.
13343 (ix86_asm_declare_function_name): New function for
13344 ASM_DECLARE_FUNCTION_NAME.
13345 * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
13346 * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
13347 (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
13348 * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
13349 * doc/extend.texi: Adjust documentation about ms_hook_prologue
13350 attribute.
13351
9aa5922d
UB
133522010-07-06 Uros Bizjak <ubizjak@gmail.com>
13353
13354 * config/i386/i386.md (immediate_operand): New mode attribute.
f8e1995a 13355
9aa5922d
UB
13356 (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
13357 pro_epilogue_adjust_stack and pro_epilogue_adjust_stack_rex64
13358 using P mode iterator.
13359 (pro_epilogue_adjust_stack_di_2): Rename from
13360 pro_epilogue_adjust_stack_rex64_2.
13361
13362 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
13363
133642010-07-06 Uros Bizjak <ubizjak@gmail.com>
13365
13366 * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
13367 through gen_mov_insv_1 function pointer.
13368 (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
13369 gen_truncxf<mode>2 through gen_truncxf function pointer.
13370 (remainder<mode>3): Ditto.
13371 (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
13372 (allocate_stack): Call gen_allocate_stack_worker_64 or
13373 gen_allocate_stack_worker_32 through gen_allocate_stack_worker
13374 function pointer.
13375 (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
13376 function pointer.
13377
133782010-07-06 Uros Bizjak <ubizjak@gmail.com>
13379
13380 * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
13381 operand constraint instead of <r><i>m.
13382
dfb88126
RG
133832010-07-06 Richard Guenther <rguenther@suse.de>
13384
13385 PR middle-end/44828
13386 * convert.c (convert_to_integer): Watch out for overflowing
13387 MULT_EXPR as well.
13388
c5d1f058
JH
133892010-07-05 Jan Hubicka <jh@suse.cz>
13390
13391 * lto-streamer.c (write_symbol_vec): Rename to ...
13392 (write_symbol) ... this one; write only symbol given and when
13393 present in cache. Sanity check that what is defined is present
13394 in cgraph/varpool with body/finalized decl.
13395 (write_symbols_of_kind): Remove.
13396 (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
13397 pairs to produce symtab.
13398 (produce_asm_for_decls): Update call of produce_symtab; don't do so
13399 when doing WPA streaming.
13400
6e4da084
JH
134012010-07-05 Jan Hubicka <jh@suse.cz>
13402
13403 * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
13404 function is still available to fold into.
13405
c021f10b
NF
134062010-07-05 Nathan Froyd <froydnj@codesourcery.com>
13407
13408 * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
13409 * function.h (struct_function): Change type of local_decls field
13410 to a VEC.
13411 (add_local_decl): New function.
13412 (FOR_EACH_LOCAL_DECL): New macro.
13413 * cfgexpand.c (init_vars_expansion): Adjust for new type of
13414 cfun->local_decls.
13415 (estimated_stack_frame_size): Likewise.
13416 (expand_used_vars): Likewise.
13417 * cgraphbuild.c (build_cgraph_edges): Likewise.
13418 * function.c (instantiate_decls_1): Likewise.
13419 * ipa-struct-reorg.c (build_data_structure): Likewise.
13420 * ipa-type-escape.c (analyze_function): Likewise.
13421 * lto-streamer-in.c (input_function): Likewise.
13422 * lto-streamer-out.c (output_function): Likewise.
13423 * tree-ssa-live.c (remove_unused_locals): Likewise.
13424 * tree.c (free_lang_data_in_decl): Likewise.
13425 (find_decls_types_in_node): Likewise.
13426 * omp-low.c (remove_exit_barrier): Likewise.
13427 (expand_omp_taskreg): Likewise.
13428 (list2chain): Rename to...
13429 (vec2chain): ...this. Adjust.
13430 * cgraphunit.c (assemble_thunk): Call add_local_decl.
13431 * tree-cfg.c (replace_by_duplicate_decl): Likewise.
13432 * gimple-low.c (record_vars_into): Likewise.
13433 * tree-inline.c (remap_decls): Likewise.
13434 (declare_return_variable): Likewise.
13435 (declare_inline_vars): Likewise.
13436 (copy_forbidden): Adjust for new type of cfun->local_decls.
13437 (add_local_variables): New function.
13438 (expand_call_inline): Call it.
13439 (tree_function_versioning): Likewise.
13440
4ee89d5f
L
134412010-07-05 H.J. Lu <hongjiu.lu@intel.com>
13442
13443 AVX Programming Reference (June, 2010)
13444 * config/i386/cpuid.h (bit_F16C): New.
13445 (bit_RDRND): Likewise.
13446 (bit_FSGSBASE): Likewise.
13447
13448 * config/i386/i386-builtin-types.def: Add
13449 "DEF_FUNCTION_TYPE (UINT16)", function types for
13450 float16 <-> float conversions and
13451 "DEF_FUNCTION_TYPE (VOID, UINT64)".
13452
13453 * config/i386/i386-c.c (ix86_target_macros_internal): Support
13454 OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
13455 OPTION_MASK_ISA_F16C.
13456
13457 * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
13458 (OPTION_MASK_ISA_RDRND_SET): Likewise.
13459 (OPTION_MASK_ISA_F16C_SET): Likewise.
13460 (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
13461 (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
13462 (OPTION_MASK_ISA_F16C_UNSET): Likewise.
13463 (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
9aa5922d 13464 (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
4ee89d5f
L
13465 (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
13466 (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
13467 (override_options): Handle them.
9aa5922d 13468 (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
4ee89d5f
L
13469 (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
13470 IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
13471 IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
13472 IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
13473 IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
13474 IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
13475 IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
13476 IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
13477 (bdesc_args): Likewise.
13478 (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
13479 V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
13480 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
13481 VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
13482 Handle non-memory store.
13483
13484 * config/i386/i386.h (TARGET_FSGSBASE): New.
13485 (TARGET_RDRND): Likewise.
13486 (TARGET_F12C): Likewise.
13487
13488 * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
13489 (UNSPEC_VCVTPS2PH): Likewise.
13490 (UNSPECV_RDFSBASE): Likewise.
13491 (UNSPECV_RDGSBASE): Likewise.
13492 (UNSPECV_WRFSBASE): Likewise.
13493 (UNSPECV_WRGSBASE): Likewise.
13494 (UNSPECV_RDRAND): Likewise.
13495 (rdfsbase<mode>): Likewise.
13496 (rdgsbase<mode>): Likewise.
13497 (wrfsbase<mode>): Likewise.
13498 (wrgsbase<mode>): Likewise.
13499 (rdrand<mode>): Likewise.
13500
13501 * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
13502
13503 * config/i386/immintrin.h (_rdrand_u16): New.
13504 (_rdrand_u32): Likewise.
13505 (_readfsbase_u32): Likewise.
13506 (_readfsbase_u64): Likewise.
13507 (_readgsbase_u32): Likewise.
13508 (_readgsbase_u64): Likewise.
13509 (_writefsbase_u32): Likewise.
13510 (_writefsbase_u64): Likewise.
13511 (_writegsbase_u32): Likewise.
13512 (_writegsbase_u64): Likewise.
13513 (_rdrand_u64): Likewise.
13514 (_cvtsh_ss): Likewise.
13515 (_mm_cvtph_ps): Likewise.
13516 (_mm256_cvtph_ps): Likewise.
13517 (_cvtss_sh): Likewise.
13518 (_mm_cvtps_ph): Likewise.
13519 (_mm256_cvtps_ph): Likewise.
13520
13521 * config/i386/sse.md (vcvtph2ps): New.
13522 (*vcvtph2ps_load): Likewise.
13523 (vcvtph2ps256): Likewise.
13524 (vcvtps2ph): Likewise.
13525 (*vcvtps2ph): Likewise.
13526 (*vcvtps2ph_store): Likewise.
13527 (vcvtps2ph256): Likewise.
13528
13529 * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
13530
13531 * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
13532
3341aeda
JR
135332010-07-05 Joern Rennecke <joern.rennecke@embecosm.com>
13534
13535 PR bootstrap/44512
13536 * genenums.c (main): Output include of insn-constants.h
13537 * Makefile.in (insn-enums.o): Depend on insn-constants.h.
13538
71b2fd74
UB
135392010-07-05 Uros Bizjak <ubizjak@gmail.com>
13540
13541 * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
13542 (override_options): Initialize it.
13543 (ix86_expand_prologue): Use it.
13544
938650d8
JJ
135452010-07-05 Jakub Jelinek <jakub@redhat.com>
13546
13547 * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
13548
88e06841
AS
135492010-07-05 Anatoly Sokolov <aesok@post.ru>
13550
13551 * double-int.h (fit_double_type): Remove declaration.
13552 * double-int.c (fit_double_type): Remove function.
13553 * tree.h (int_fits_type_p): Adjust prototype.
13554 * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
13555 instead of fit_double_type.
13556 (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
13557 instead of fit_double_type and build_int_cst_wide.
13558 * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
13559 instead of fit_double_type and build_int_cst_wide.
13560 (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
13561 of fit_double_type.
13562
92eb4438
JH
135632010-07-05 Jan Hubicka <jh@suse.cz>
13564
13565 * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
13566 in_other_partition.
13567 * lto-cgraph.c (referenced_from_other_partition_p,
13568 reachable_from_other_partition_p): Use in_other_partition flags.
13569 (output_node, output_varpool_node): COMDAT nodes always have private
13570 copies and thus are never used from other partition.
13571
69e18c09
AS
135722010-07-05 Anatoly Sokolov <aesok@post.ru>
13573
13574 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
13575 * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
13576 * config/ia64/ia64.c Include reload.h.
13577 (ia64_memory_move_cost): New function.
13578 (TARGET_MEMORY_MOVE_COST): Define.
13579 (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
13580 memory_move_cost.
13581
16ad8025
SL
135822010-07-05 Sandra Loosemore <sandra@codesourcery.com>
13583
13584 PR middle-end/42505
16ad8025
SL
13585 * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
13586 comments about cost model.
13587 (try_add_cand_for): Add second strategy for choosing initial set
13588 based on original IVs, controlled by ORIGINALP argument.
13589 (get_initial_solution): Add ORIGINALP argument.
13590 (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
13591 (find_optimal_iv_set): Try two different strategies for choosing
13592 the IV set, and return the one with lower cost.
13593
bdf0f819
RG
135942010-07-05 Richard Guenther <rguenther@suse.de>
13595
9aa5922d 13596 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
bdf0f819 13597
a41e5e86
RG
135982010-07-05 Richard Guenther <rguenther@suse.de>
13599
13600 * tree.c (reference_alias_ptr_type): New function.
13601 * tree.h (reference_alias_ptr_type): Declare.
13602 * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
13603 allow non-TARGET_MEM_REF new refs.
94dbbc81 13604 (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
a41e5e86
RG
13605 * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
13606 Build a MEM_REF instead of a TARGET_MEM_REF if possible.
13607 (create_mem_ref): Get alias pointer type. Adjust calls to
13608 create_mem_ref_raw.
13609 (maybe_fold_tmr): Likewise.
13610 * tree-flow.h (create_mem_ref): Adjust prototype.
13611
f2896bc9
JJ
136122010-07-05 Jakub Jelinek <jakub@redhat.com>
13613
13614 PR c++/44808
13615 * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
13616 *from_p is VAR_DECL.
13617
cfe6dea2
NF
136182010-07-05 Nathan Froyd <froydnj@codesourcery.com>
13619
13620 * tree.h (build_call_list): Remove.
13621 * tree.c (build_call_list): Remove.
13622
e22f7f31
RB
136232010-07-05 Richard Guenther <rguenther@suse.de>
13624
13625 * double-int.h (double_int_sub): Declare.
13626 * double-int.c (double_int_sub): New function.
13627 * dwarf2out.c (field_byte_offset): Use it.
13628 * fixed-value.c (do_fixed_add): Likewise.
13629 (do_fixed_multiply): Likewise.
13630 (do_fixed_divide): Likewise.
13631 * tree-predcom.c (add_ref_to_chain): Likewise.
13632 (determine_roots_comp): Likewise.
13633 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
13634
989ea525
NF
136352010-07-05 Nathan Froyd <froydnj@codesourcery.com>
13636
13637 * vec.h (VEC_splice, VEC_safe_splice): New macros. Add function
13638 implementations.
13639
7ec6356e
BS
136402010-07-05 Bernd Schmidt <bernds@codesourcery.com>
13641
13642 * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
13643 * arm-modes.def (CC_NOTB): Don't define.
13644 * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
13645 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
13646 (LTUGEU): New code_iterator.
13647 (cnb, optab): New corresponding code_attrs.
13648 (addsi3_carryin_<optab>): Renamed from addsi3_carryin. Change pattern
13649 to canonical form. Operands 1 and 2 are commutative. Parametrize
13650 using LTUGEU.
13651 (addsi3_carryin_shift_<optab>): Likewise.
13652 (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
13653 Operands 1 and 2 are commutative. Parametrize using LTUGEU.
13654 (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
94dbbc81
UB
13655 (subsi3_compare): Renamed from subsi3_compare0_c.
13656 Change CC_NOTB to CC.
7ec6356e
BS
13657 (arm_subsi3_insn): Allow constants for operand 0.
13658 (compare_scc peephole for eq case): New.
13659 (compare_scc splitters): Change CC_NOTB to CC.
13660
75421dcd
RG
136612010-07-05 Richard Guenther <rguenther@suse.de>
13662
13663 * tree-ssa-loop-im.c (for_each_index): Do not handle
13664 ALIGN_INDIRECT_REF.
13665 (gen_lsm_tmp_name): Likewise.
13666 * tree-dump.c (dequeue_and_dump): Likewise.
13667 * tree-pretty-print.c (dump_generic_node): Likewise.
13668 (op_code_prio): Likewise.
13669 (op_symbol_code): Likewise.
13670 * tree.c (staticp): Likewise.
13671 (build1_stat): Likewise.
13672 * tree.h (INDIRECT_REF_P): Likewise.
13673 * fold-const.c (maybe_lvalue_p): Likewise.
13674 (operand_equal_p): Likewise.
13675 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13676 (ao_ref_init_from_vn_reference): Likewise.
13677 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
13678 (find_interesting_uses_address): Likewise.
13679 * dwarf2out.c (loc_list_from_tree): Likewise.
13680 * gimplify.c (gimplify_expr): Likewise.
13681 * tree-eh.c (tree_could_trap_p): Likewise.
13682 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
13683 * cfgexpand.c (expand_debug_expr): Likewise.
13684 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
13685 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
13686 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
13687 * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
13688 * tree-ssa-operands.c (get_expr_operands): Likewise.
13689 * expr.c (safe_from_p): Likewise.
13690 (expand_expr_real_1): Likewise. TER BIT_AND_EXPRs into MEM_REFs.
13691 * tree-vect-data-refs.c (vect_setup_realignment): Build
13692 BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
13693 * tree-vect-stmts.c (vectorizable_load): Likewise.
13694 * tree.def (ALIGN_INDIRECT_REF): Remove.
13695
5d657263
RG
136962010-07-05 Richard Guenther <rguenther@suse.de>
13697
13698 PR tree-optimization/44784
13699 * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
13700 for inserted stmts.
13701 (find_or_generate_expression): Fix SCCVN insertion check.
13702
3cd0d4fa
NS
137032010-07-05 Nathan Sidwell <nathan@codesourcery.com>
13704
13705 * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
13706 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
13707 * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
13708 directives.
13709
9940b13c
IR
137102010-07-05 Ira Rosen <irar@il.ibm.com>
13711
13712 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
13713 statements that are not vectorized.
13714 * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
94dbbc81 13715 in INSIDE_COST.
9940b13c 13716
e4dde839
MP
137172010-07-05 Mikael Pettersson <mikpe@it.uu.se>
13718
13719 PR bootstrap/44820
13720 * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
13721
e3061843
RB
137222010-07-05 Richard Guenther <rguenther@suse.de>
13723
13724 * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
13725 RESULT_DECLs properly.
13726
c2a78352
L
137272010-07-04 H.J. Lu <hongjiu.lu@intel.com>
13728
13729 PR rtl-optimization/44695
13730 * config/i386/i386.md (extract_code): Removed.
13731 (<u>divmodqi4): Likewise.
13732 (divmodqi4): New.
13733 (udivmodqi4): Likewise.
94dbbc81 13734 (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
c2a78352
L
13735 (udivmodhiqi3): Likewise.
13736
4aa1c0d5
JH
137372010-07-04 Jan Hubicka <jh@suse.cz>
13738
13739 * lto-cgraph.c (input_edge): Do not care about resolution decisions.
13740
a05541a9
JH
137412010-07-04 Jan Hubicka <jh@suse.cz>
13742
94dbbc81
UB
13743 * cgraphunit.c (init_cgraph): Only initialize dump file if it
13744 is not already initialized.
a05541a9 13745
f9621cc4
RS
137462010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
13747
13748 * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
13749 (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
13750 (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
13751 (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
13752 (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
13753 (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
13754 (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
13755 (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
13756 (sync_new_nand_optab): Redefine as macros.
13757 (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
13758 Delete.
13759 (direct_optab_index): New enum.
13760 (direct_optab_d): New structure.
13761 (direct_optab): New typedef.
13762 (direct_optab_table): Declare.
13763 (direct_optab_handler, set_direct_optab_handler): New functions.
13764 (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
13765 (sync_lock_release_optab): New macros.
13766 * optabs.c (direct_optab_table): New variable.
13767 (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
13768 (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
13769 cmpstr_optab and cmpstrn_optab.
13770 (emit_conditional_move): Likewise for movcc_optab.
13771 (can_conditionally_move_p): Likewise for movcc_gen_code.
13772 (init_insn_codes): Clear direct_optab_table.
13773 (init_optabs): Don't initialize the new "direct optabs" here.
13774 (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
13775 vcond_gen_code.
13776 (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
13777 (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
13778 (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
13779 (expand_sync_operation): Likewise other sync_*_optabs.
13780 (expand_sync_fetch_operation): Likewise. Rename sync_compare_and_swap
13781 to sync_compare_and_swap_optab.
13782 (expand_sync_lock_test_and_set): Use direct_optab_handler for
13783 sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
13784 to the names of both.
13785 * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
13786 cmpstr_optab and cmpstrn_optab.
13787 (expand_builtin_lock_release): Likewise sync_lock_release.
13788 * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
13789 (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
13790 (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
13791 (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
13792 (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
13793 (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
13794 (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
13795 (sync_lock_test_and_set, sync_lock_release): Delete.
13796 (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
13797 (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
13798 * genopinit.c (optabs): Use set_direct_optab_handler for the new
13799 macro optabs.
13800 * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
13801 the "optab" local variable. Use direct_optab_handler for optab and
13802 sync_compare_and_swap_optab.
13803 * reload1.c (reload_in_optab, reload_out_optab): Delete.
13804 * targhooks.c (default_secondary_reload): Use direct_optab_handler for
13805 reload_in_optab and reload_out_optab.
13806 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
13807 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
13808 * config/pa/pa.c (pa_secondary_reload): Likewise.
13809 * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
13810 for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
13811 (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
13812 (VMSupportsCS8_builtin): Likewise.
13813
596455ce
RS
138142010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
13815
13816 * optabs.h (optab_handlers): Change type of insn_code to int.
13817 (optab_handler, set_optab_handler, convert_optab_handler)
13818 (set_convert_optab_handler): Treat the insn_code field as "insn_code -
13819 CODE_FOR_nothing".
13820 * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
13821 (init_insn_codes): Zero both the above arrays.
13822 (init_optabs): Never call init_insn_codes first time around.
13823
947131ba
RS
138242010-07-04 Richard Sandiford <rdsandiford@googlemail.com>
13825
13826 * optabs.h (optab_handler, convert_optab_handler): Turn into
13827 inline functions that return an insn code.
13828 (set_optab_handler, set_convert_optab_handler): New functions.
13829 * builtins.c: Replace optab_handler(X)->insn_code with
13830 optab_handler or set_optab_handler thoughout. Likewise
13831 convert_optab_handler(X)->insn_code with convert_optab_handler
13832 and set_convert_optab_handler.
13833 * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
13834 reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
13835 tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
13836 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
13837 tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
13838 config/spu/spu.c: Likewise.
13839
47e5ff44
KK
138402010-07-04 Kaz Kojima <kkojima@gcc.gnu.org>
13841
13842 PR target/44531
13843 * config.gcc (sh*-*-*): Use regular expressions instead of
13844 the 'i' modifier for sed substitutions.
13845
abbd64b9
JS
138462010-07-04 Jeremie Salvucci <jeremie.salvucci@free.fr>
13847
13848 * gimple.c (gimple_body): Comments added.
13849
7f5ad6d7
RG
138502010-07-04 Richard Guenther <rguenther@suse.de>
13851
13852 PR middle-end/44809
13853 * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
13854 of an INDIRECT_REF.
13855
17fc049f
RG
138562010-07-04 Richard Guenther <rguenther@suse.de>
13857
13858 PR tree-optimization/44479
13859 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
13860 extra SSA name copy statements which preserves points-to
13861 information.
13862 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
13863 Copy points-to information for all pointers. Properly handle
13864 MEM_REFs.
13865 (vect_create_data_ref_ptr): Likewise. Avoid extra SSA name
13866 copy statements.
13867 * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
13868 dependency.
13869
72aa3dca
RG
138702010-07-04 Richard Guenther <rguenther@suse.de>
13871
13872 PR middle-end/44785
13873 * tree-inline.c (initialize_inlined_parameters): Do not
13874 re-use pointer-map slot over remap_type call.
13875
ef2a9157
RG
138762010-07-04 Richard Guenther <rguenther@suse.de>
13877
13878 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
13879
4fa4929e
RG
138802010-07-04 Richard Guenther <rguenther@suse.de>
13881
13882 PR tree-optimization/44656
13883 * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
13884 again after value-replacing in the defintions lhs.
13885
720f5239
IR
138862010-07-04 Ira Rosen <irar@il.ibm.com>
13887 Revital Eres <eres@il.ibm.com>
13888
94dbbc81 13889 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
720f5239
IR
13890 Document new arguments.
13891 * doc/tm.texi: Regenerate.
13892 * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
13893 Handle unaligned store.
13894 * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
13895 * target.def (builtin_vectorization_cost): Add new arguments.
13896 * target.h (enum vect_cost_for_stmt): Add unaligned_store.
13897 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
13898 of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
13899 (vect_vfa_segment_size): Fix indentation.
13900 * tree-vectorizer.h (struct _vect_peel_info): New.
13901 (struct _vect_peel_extended_info): New.
13902 (struct _loop_vec_info): Add new field for peeling hash table and a
13903 macro for its access.
13904 (VECT_MAX_COST): Define.
13905 (vect_get_load_cost): Declare.
94dbbc81 13906 (vect_get_store_cost, vect_get_known_peeling_cost,
720f5239
IR
13907 vect_get_single_scalar_iteraion_cost): Likewise.
13908 (vect_supportable_dr_alignment): Add new argument.
13909 * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
13910 field.
13911 (destroy_loop_vec_info): Free peeling hash table.
13912 (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
13913 (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
13914 vect_analyze_slp. Fix indentation.
13915 (vect_get_single_scalar_iteraion_cost): New function.
13916 (vect_get_known_peeling_cost): Likewise.
94dbbc81
UB
13917 (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
13918 Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
720f5239
IR
13919 statement. Move outside cost calculation inside unknown peeling case.
13920 Call vect_get_known_peeling_cost for known amount of peeling.
13921 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
13922 reference to the print message of forced alignment.
94dbbc81 13923 (vect_verify_datarefs_alignment): Update call to
720f5239
IR
13924 vect_supportable_dr_alignment.
13925 (vect_get_data_access_cost): New function.
13926 (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
13927 vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
13928 vect_peeling_hash_choose_best_peeling): Likewise.
13929 (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
13930 to store all the accesses in the loop and find best possible access to
13931 align using peeling for known alignment case. For unknown alignment
13932 check if stores are preferred or if peeling is worthy.
13933 (vect_find_same_alignment_drs): Analyze pairs of loads too.
13934 (vect_supportable_dr_alignment): Add new argument and check aligned
94dbbc81 13935 accesses according to it.
720f5239 13936 * tree-vect-stmts.c (vect_get_stmt_cost): New function.
94dbbc81 13937 (cost_for_stmt): Call vect_get_stmt_cost.
720f5239 13938 (vect_model_simple_cost): Likewise.
94dbbc81 13939 (vect_model_store_cost): Call vect_get_stmt_cost. Call
720f5239
IR
13940 vect_get_store_cost to calculate the cost of the statement.
13941 (vect_get_store_cost): New function.
94dbbc81 13942 (vect_model_load_cost): Call vect_get_stmt_cost. Call
720f5239
IR
13943 vect_get_load_cost to calculate the cost of the statement.
13944 (vect_get_load_cost): New function.
13945 (vectorizable_store): Update call to vect_supportable_dr_alignment.
13946 (vectorizable_load): Likewise.
94dbbc81 13947 * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
720f5239
IR
13948 * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
13949 arguments. Handle unaligned store.
13950 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
13951 (rs6000_builtin_support_vector_misalignment): Return true for word and
13952 double word alignments for VSX.
94dbbc81 13953 * tree-vect-slp.c (vect_build_slp_tree): Update calls to
720f5239
IR
13954 vect_supportable_dr_alignment and builtin_vectorization_cost.
13955
d3ca3d6b
JDA
139562010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13957
13958 PR target/44597
13959 * config/pa/predicates.md (prefetch_cc_operand): Remove.
13960 (prefetch_nocc_operand): Likewise.
13961 * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
13962 (prefetch_20): New insn.
13963 (prefetch_cc): Remove.
13964 (prefetch_nocc): Likewise.
13965
4d451982
MLI
139662010-07-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
13967
13968 * expr.c (vector_mode_valid_p): Move to c-common.c.
13969 * expr.h (vector_mode_valid_p): Do not declare here.
13970 * system.h: Poison GCC_EXPR_H in front-ends.
13971 * Makefile.in: Update dependencies.
13972
3a0c7e3a
JDA
139732010-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13974
13975 PR target/44705
13976 * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
13977
f029db69
JH
139782010-07-03 Jan Hubicka <jh@suse.cz>
13979
13980 * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
13981 TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
13982 * cfgexpand.c (gimple_expand_cfg): Use new timevars.
13983 * var-tracking.c (vt_find_locations, variable_tracking_main_1):
13984 Likewise.
13985
13986 * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
13987 Update timevars.V
13988 * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
13989 (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
13990 TV_IPA_LTO_DECL_OUT): New.
13991 * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
13992
9b8051b4
JH
139932010-07-03 Jan Hubicka <jh@suse.cz>
13994
13995 * ipa-inline.c (update_edge_key): Break out from ...
13996 update_callers_keys): ... here;
13997 (update_callee_keys): Update only the edges from caller to callee.
13998 (update_all_calle_keys): Do what update_calle_keys did.
13999 (decide_inlining_of_small_functions): Avoid recomputing of all
14000 callees when badness increase.
14001
7c4f0041
JZ
140022010-07-03 Jie Zhang <jie@codesourcery.com>
14003
14004 * config/arm/arm.c (arm_attr_length_move_neon): New.
14005 * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
14006 * config/arm/neon.md (define_mode_attr V_slen): Remove.
14007 (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
14008 to compute length attribute.
14009
4e6f5666
JZ
140102010-07-03 Jie Zhang <jie@codesourcery.com>
14011
14012 * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
14013 as predicate for operand 1 and remove its constraint.
14014 * config/arm/predicates.md (vfp_register_operand): New.
94dbbc81 14015 * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
4e6f5666
JZ
14016 (*push_fp_multi): Likewise.
14017
6687b740
EB
140182010-07-03 Eric Botcazou <ebotcazou@adacore.com>
14019
14020 * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
14021
140222010-07-03 Jan Hubicka <jh@suse.cz>
bd7f30a1
JH
14023
14024 * config/i386/i386.c (override_options): Revert accidental commit.
14025
3f59fa1c
LCW
140262010-07-02 Le-Chun Wu <lcwu@google.com>
14027
e2cb8da2 14028 PR c++/44128
3f59fa1c
LCW
14029 * doc/invoke.texi: Update documentation of -Wshadow.
14030
73160ba9
DJ
140312010-07-02 Daniel Jacobowitz <dan@codesourcery.com>
14032 Julian Brown <julian@codesourcery.com>
74164603 14033 Sandra Loosemore <sandra@codesourcery.com>
73160ba9
DJ
14034
14035 * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
14036 comparisons. Adjust to take both operands.
14037 (arm_select_cc_mode): Handle DImode comparisons.
14038 (arm_gen_compare_reg): Generate a scratch register for DImode
14039 comparisons which require one. Use xor for Thumb equality checks.
14040 (arm_const_double_by_immediates): New.
14041 (arm_print_operand): Allow 'Q' and 'R' for constants.
14042 (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
14043 * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
14044 arm_canonicalize_comparison.
14045 * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
14046 * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
14047 prototype.
14048 (arm_const_double_by_immediates): Declare.
14049 * config/arm/constraints.md (Di): New constraint.
14050 * config/arm/predicates.md (arm_immediate_di_operand)
14051 (arm_di_operand, cmpdi_operand): New.
14052 * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
14053 (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
14054 (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
14055 (cstoredi4): Handle non-Cirrus also.
14056
400cfcf5 140572010-07-02 Julian Brown <julian@codesourcery.com>
74164603 14058 Sandra Loosemore <sandra@codesourcery.com>
400cfcf5
JB
14059
14060 PR target/43703
400cfcf5
JB
14061 * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
14062 (smax<mode>3): Disable for NEON float modes when
14063 flag_unsafe_math_optimizations is false.
14064 * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
14065 (*mul<mode>3_neon)
14066 (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
14067 (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
14068 for NEON float modes when flag_unsafe_math_optimizations is false.
94dbbc81
UB
14069 (quad_halves_<code>v4sf): Only enable if
14070 flag_unsafe_math_optimizations is true.
400cfcf5
JB
14071 * doc/invoke.texi (ARM Options): Add note about floating point
14072 vectorization requiring -funsafe-math-optimizations.
14073
bab53516
SL
140742010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14075 Julian Brown <julian@codesourcery.com>
14076
14077 * config/arm/neon.md (UNSPEC_VABA): Delete.
14078 (UNSPEC_VABAL): Delete.
14079 (UNSPEC_VABS): Delete.
14080 (UNSPEC_VMUL_N): Delete.
14081 (adddi3_neon): New.
14082 (subdi3_neon): New.
14083 (mul<mode>3add<mode>_neon): Make the pattern named.
14084 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
14085 (neon_vadd<mode>): Replace with define_expand, and move the remaining
14086 unspec parts...
14087 (neon_vadd<mode>_unspec): ...to this.
14088 (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
14089 (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
14090 (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
14091 (neon_vaba<mode>): Rewrite in terms of vabd.
14092 (neon_vabal<mode>): Rewrite in terms of vabdl.
14093 (neon_vabs<mode>): Rewrite without unspec.
14094 * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
14095 (*arm_subdi3): Likewise.
14096 * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
14097 No_op attribute to disable assembly output checks.
14098 * config/arm/arm_neon.h: Regenerated.
14099 * doc/arm-neon-intrinsics.texi: Regenerated.
14100
556e9ba0
JH
141012010-07-02 Jan Hubicka <jh@suse.cz>
14102
e2cb8da2
EB
14103 * ipa-split.c (split_function): For aggregate values, set the return
14104 slot optimization bit. When passing DECL_BY_REFERENCE, produce
a557f9cc 14105 *<retval> = fncall.part ().
556e9ba0
JH
14106 (execute_split_functions): Do not care about DECL_BY_REFERENCE.
14107
b3b7bbce
SL
141082010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14109
14110 * config/arm/neon.md (UNSPEC_VAND): Delete.
14111 (UNSPEC_VBIC): Delete.
14112 (UNSPEC_VCLZ): Delete.
14113 (UNSPEC_VCNT): Delete.
14114 (UNSPEC_VEOR): Delete.
14115 (UNSPEC_VORN): Delete.
14116 (UNSPEC_VORR): Delete.
14117 (iordi3_neon): Rewrite RTL without unspec. Add alternatives to handle
14118 core registers too.
14119 (anddi3_neon): Likewise.
14120 (orndi3_neon): Likewise.
14121 (bicdi3_neon): Likewise.
14122 (xordi3_neon): Likewise.
14123 (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
14124 rid of unspec and handle unused operand.
14125 (neon_vcnt<mode>): Similarly, with popcount<mode>2.
14126 * config/arm/predicates.md (imm_for_neon_logic_operand):
14127 Require TARGET_NEON.
14128 (imm_for_neon_inv_logic_operand): Likewise.
94dbbc81 14129 * config/arm/arm.md (define_split for logical_binary_operator):
b3b7bbce
SL
14130 Disable for NEON registers.
14131 (anddi3): Add new define_expand, and rename the insn. Disable
14132 this insn for NEON, where anddi3_neon now applies.
14133 (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
14134 (iordi3): As for anddi3.
14135 (xordi3): Likewise.
14136 * config/arm/neon.ml (Vand): Split DImode variants and mark them
14137 as No_op to disable testing for exact instruction match.
14138 (Vorr): Likewise.
14139 (Veor): Likewise.
14140 (Vbic): Likewise.
14141 (Vorn): Likewise.
14142 * config/arm/arm_neon.h: Regenerated.
14143 * doc/arm-neon-intrinsics.texi: Regenerated.
14144
260c8ba3
EB
141452010-07-02 Eric Botcazou <ebotcazou@adacore.com>
14146
14147 * expr.h (emit_stack_probe): Declare.
14148 * explow.c (emit_stack_probe): Make global.
14149 (anti_adjust_stack_and_probe): Fix comments.
14150 * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
14151 * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14152 * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
14153 * config/sparc/sparc.c: Include except.h.
14154 (sparc_emit_probe_stack_range): New function.
14155 (output_probe_stack_range): Likewise.
14156 (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
14157 built-in stack checking is enabled.
14158 * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
14159 * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
14160 (probe_stack_range): New insn.
14161
e4f1aef1
RG
141622010-07-02 Richard Guenther <rguenther@suse.de>
14163
14164 PR target/43958
14165 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
14166 for argument alignment.
14167
2094f1fc
JH
141682010-07-02 Jan Hubicka <jh@suse.cz>
14169
e2cb8da2
EB
14170 * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
14171 walk backwards from entry_bb to check only those basic block of header
2094f1fc
JH
14172 that might lead to execution of split part.
14173 (consider_split) ... here.
14174 (find_return_bb): Allow assignment in return BB.
14175 (find_retval): New.
260c8ba3
EB
14176 (split_function): Fix name of cloned function; take care of updating
14177 return value in return_bb containing move.
2094f1fc 14178
2dc8bd76
AS
141792010-07-02 Andreas Schwab <schwab@linux-m68k.org>
14180
14181 PR target/44771
14182 * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
14183 used variable insn.
14184
0acba2b4
EB
141852010-07-02 Eric Botcazou <ebotcazou@adacore.com>
14186
14187 * implicit-zee.c (combine_reaching_defs): Fix long lines.
14188 (is_set_with_extension_DI): Delete.
14189 (struct zero_extend_info): New structure.
f4a4b582 14190 (add_removable_zero_extend): New function.
0acba2b4
EB
14191 (find_removable_zero_extends): Use note_stores to find SETs.
14192 (find_and_remove_ze): Fix long line, remove superfluous parentheses.
14193
14e444c3
CF
141942010-07-02 Changpeng Fang <changpeng.fang@amd.com>
14195
14196 * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
14197 is_miss_rate_acceptable. Pull total_positions computation
14198 out of the loops. Early return if miss_positions exceeds
14199 the acceptable threshold.
14200 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
14201 is_miss_rate_acceptable after renaming of compute_miss_rate.
14202
a245c04b
CF
142032010-07-02 Changpeng Fang <changpeng.fang@amd.com>
14204
14205 PR middle-end/44576
14206 * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
14207 of 1000) for miss rate if the address diference is greater than or
14208 equal to the cache line size (the two reference will never hit the
14209 same cache line).
14210
18e8200f
BS
142112010-07-02 Bernd Schmidt <bernds@codesourcery.com>
14212
14213 PR target/42835
14214 * config/arm/arm-modes.def (CC_NOTB): New mode.
14215 * config/arm/arm.c (get_arm_condition_code): Handle it.
14216 * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
14217 * config/arm/arm.md (subsi3_compare0_c): New pattern.
14218 (compare_scc): Now a define_and_split. Add a number of extra
14219 splitters before it.
14220
e4c6a07a
BS
14221 PR target/42172
14222 * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
14223 and ZERO_EXTEND.
14224 (arm_rtx_costs_1): Likewise.
14225 (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
14226 * config/arm/arm.md (is_arch6): New attribute.
14227 (zero_extendhisi2, zero_extendqisi2, extendhisi2,
14228 extendqisi2): Tighten the code somewhat, avoiding invalid
14229 RTL to occur in the expander patterns.
14230 (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
14231 (thumb1_zero_extendhisi2_v6): Delete.
14232 (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
14233 (thumb1_extendhisi2_v6): Delete.
14234 (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
14235 (thumb1_extendqisi2_v6): Delete.
14236 (zero_extendhisi2 for register input splitter): New.
14237 (zero_extendqisi2 for register input splitter): New.
14238 (thumb1_extendhisi2 for register input splitter): New.
14239 (extendhisi2 for register input splitter): New.
14240 (extendqisi2 for register input splitter): New.
14241 (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
14242 (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
14243 and add support for a register alternative requiring a split.
14244 (thumb1_zero_extendqisi2): Likewise.
14245 (arm_zero_extendqisi2): Likewise.
14246 (arm_extendhisi2): Likewise.
14247 (arm_extendqisi2): Likewise.
14248
a277dd9b
SL
142492010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14250
14251 * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
14252 instead of an unspec.
14253 (neon_expand_vector_init): Likewise.
14254 * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
14255 (UNSPEC_VDUP_LANE): Delete.
14256 (UNSPEC VDUP_N): Delete.
14257 (UNSPEC_VGET_HIGH): Delete.
14258 (UNSPEC_VGET_LANE): Delete.
14259 (UNSPEC_VGET_LOW): Delete.
14260 (UNSPEC_VMVN): Delete.
14261 (UNSPEC_VSET_LANE): Delete.
14262 (V_double_vector_mode): New.
14263 (vec_set<mode>_internal): Make code emitted match that for the
14264 corresponding intrinsics.
14265 (vec_setv2di_internal): Likewise.
14266 (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
14267 (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
14268 (neon_vset_lane<mode>): Combine double and quad patterns and
14269 expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
14270 (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
14271 (neon_vdup_n<mode>): Rewrite RTL without unspec.
14272 (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
14273 (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
14274 with neon_vdup_lanev2di, adjusting the pattern from the latter
14275 to be predicable for consistency.
14276 (neon_vdup_lane<mode>_internal): New.
14277 (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
14278 to avoid using an unspec.
14279 (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
14280 (neon_vdup_lanev2di): Turn into a define_expand.
14281 (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
14282 (neon_vget_high<mode>): Replace with....
14283 (neon_vget_highv16qi): New pattern using canonical RTL.
14284 (neon_vget_highv8hi): Likewise.
14285 (neon_vget_highv4si): Likewise.
14286 (neon_vget_highv4sf): Likewise.
14287 (neon_vget_highv2di): Likewise.
14288 (neon_vget_low<mode>): Replace with....
14289 (neon_vget_lowv16qi): New pattern using canonical RTL.
14290 (neon_vget_lowv8hi): Likewise.
14291 (neon_vget_lowv4si): Likewise.
14292 (neon_vget_lowv4sf): Likewise.
14293 (neon_vget_lowv2di): Likewise.
14294
14295 * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
14296 test for this emitting vmov.
14297 (Vset_lane): Likewise.
14298 (Vdup_n): Likewise.
14299 (Vmov_n): Likewise.
14300
14301 * doc/arm-neon-intrinsics.texi: Regenerated.
14302
8c98c2a6
SL
143032010-07-02 Sandra Loosemore <sandra@codesourcery.com>
14304
14305 * config/arm/neon.md (vec_extractv2di): Correct error in register
14306 numbering to reconcile with neon_vget_lanev2di.
14307
90fa9e17
RG
143082010-07-02 Richard Guenther <rguenther@suse.de>
14309
14310 * tree-ssa-structalias.c (pt_solution_set_var): New function.
14311 * tree-ssa-alias.h (pt_solution_set_var): Declare.
14312 * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
14313 points-to information.
14314
c3ac3ddf
CB
143152010-07-02 Christian Borntraeger <borntraeger@de.ibm.com>
14316
14317 * config/s390/s390.c (override_options): Adopt prefetching
14318 at -O3 to handle flag_prefetch_loop_arrays as a tristate.
14319
b144ba9d
JH
143202010-07-02 Jan Hubicka <jh@suse.cz>
14321
14322 * df-problems.c (df_kill_notes): Do not collect dead notes.
14323 (df_set_note): Just call add_reg_note.
14324 (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
14325 df_create_unused_note): Do not deal with lists of old notes.
14326 (df_note_bb_compute): Likewise.
14327
fca821b5
RG
143282010-07-02 Richard Guenther <rguenther@suse.de>
14329
14330 * tree-ssa-structalias.c (find_func_aliases): Handle
14331 pointer alignment via BIT_AND_EXPR.
14332 * tree-vrp.c (extract_range_from_binary_expr): Likewise.
14333
19368333
RG
143342010-07-02 Richard Guenther <rguenther@suse.de>
14335
14336 * tree-data-ref.c (initialize_data_dependence_relation): Handle
14337 mismatching number of dimensions properly.
14338
1a4fc49d
UW
143392010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
14340
14341 PR target/44707
14342 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
14343 (lo_sum (high ...) ...) patterns generated by earlier passes.
14344
c18dc5cc
RO
143452010-07-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14346
14347 * doc/install.texi (Prerequisites): Document Perl requirement on
14348 Solaris 2.
14349 (Specific, *-*-solaris2*): Document GNU c++filt requirement.
14350
7dd536f1
RG
143512010-07-02 Richard Guenther <rguenther@suse.de>
14352
14353 PR middle-end/44777
14354 * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
14355
450997ef
JH
143562010-07-02 Jan Hubicka <jh@suse.cz>
14357
14358 PR middle-end/44706
14359 * predict.c (predict_paths_for_bb): Handle case when control dependence
14360 BB has only abnormal edges.
14361
3fa39831
RG
143622010-07-02 Richard Guenther <rguenther@suse.de>
14363
14364 PR tree-optimization/44748
14365 * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
14366 the embedded conversion in MEM_REFs.
14367
5a5bd694
MLI
143682010-07-01 López-Ibáñez <manu@gcc.gnu.org>
14369
14370 * reload.c: Include toplev.h.
14371 * recog.c: Likewise.
14372 * Makefile.in: Adjust dependencies.
14373
3aa05bb6
JJ
143742010-07-01 Jakub Jelinek <jakub@redhat.com>
14375
14376 PR debug/44694
14377 * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
14378 or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
14379
e3ccfc8b
RG
143802010-07-01 Richard Guenther <rguenther@suse.de>
14381
14382 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
14383 types for offsets.
14384
c689f757
JR
143852010-07-01 Joern Rennecke <joern.rennecke@embecosm.com>
14386
14387 PR target/44732
14388 * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
94dbbc81 14389 Fix argument types.
c21fc181 14390
cc9568ba
BS
143912010-07-01 Bernd Schmidt <bernds@codesourcery.com>
14392
14393 PR target/44727
14394 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
14395 Make sure operand 0 dies.
14396
70f34814
RG
143972010-07-01 Richard Guenther <rguenther@suse.de>
14398
14399 PR middle-end/42834
14400 PR middle-end/44468
14401 * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
14402 * doc/generic.texi (References to storage): Document MEM_REF.
14403 * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
14404 (print_call_name): Likewise.
14405 * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
14406 (build_simple_mem_ref_loc): New function.
14407 (mem_ref_offset): Likewise.
14408 * tree.h (build_simple_mem_ref_loc): Declare.
14409 (build_simple_mem_ref): Define.
14410 (mem_ref_offset): Declare.
14411 * fold-const.c: Include tree-flow.h.
14412 (operand_equal_p): Handle MEM_REF.
14413 (build_fold_addr_expr_with_type_loc): Likewise.
14414 (fold_comparison): Likewise.
14415 (fold_unary_loc): Fold
14416 VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
14417 (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
14418 fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
14419 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
14420 (ptr_deref_may_alias_ref_p_1): Likewise.
14421 (ao_ref_base_alias_set): Properly differentiate base object for
14422 offset and TBAA.
14423 (ao_ref_init_from_ptr_and_size): Use MEM_REF.
14424 (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
14425 (indirect_refs_may_alias_p): Likewise.
14426 (refs_may_alias_p_1): Likewise. Remove pointer SSA name def
14427 chasing code.
14428 (ref_maybe_used_by_call_p_1): Handle MEM_REF.
14429 (call_may_clobber_ref_p_1): Likewise.
14430 * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
14431 * expr.c (expand_assignment): Handle MEM_REF.
14432 (store_expr): Handle MEM_REFs from STRING_CSTs.
14433 (store_field): If expanding a MEM_REF of a non-addressable
14434 decl use bitfield operations.
14435 (get_inner_reference): Handle MEM_REF.
14436 (expand_expr_addr_expr_1): Likewise.
14437 (expand_expr_real_1): Likewise.
14438 * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
14439 * alias.c (ao_ref_from_mem): Handle MEM_REF.
14440 (get_alias_set): Likewise. Properly handle VIEW_CONVERT_EXPRs.
14441 * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
14442 (dr_analyze_indices): Likewise.
14443 (dr_analyze_alias): Likewise.
14444 (object_address_invariant_in_loop_p): Likewise.
14445 * gimplify.c (mark_addressable): Handle MEM_REF.
14446 (gimplify_cond_expr): Build MEM_REFs.
14447 (gimplify_modify_expr_to_memcpy): Likewise.
14448 (gimplify_init_ctor_preeval_1): Handle MEM_REF.
14449 (gimple_fold_indirect_ref): Adjust.
14450 (gimplify_expr): Handle MEM_REF. Gimplify INDIRECT_REF to MEM_REF.
14451 * tree.def (MEM_REF): New tree code.
14452 * tree-dfa.c: Include toplev.h.
14453 (get_ref_base_and_extent): Handle MEM_REF.
14454 (get_addr_base_and_unit_offset): New function.
14455 * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
14456 * gimple-fold.c (may_propagate_address_into_dereference): Handle
14457 MEM_REF.
14458 (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
14459 accesses if the array has just one dimension. Remove always true
14460 parameter. Do not require type compatibility here.
14461 (maybe_fold_offset_to_component_ref): Remove.
14462 (maybe_fold_stmt_indirect): Remove.
14463 (maybe_fold_reference): Remove INDIRECT_REF handling.
14464 Fold back to non-MEM_REF.
14465 (maybe_fold_offset_to_address): Simplify. Deal with type
14466 mismatches here.
14467 (maybe_fold_reference): Likewise.
14468 (maybe_fold_stmt_addition): Likewise. Also handle
14469 &ARRAY + I in addition to &ARRAY[0] + I.
14470 (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
14471 (gimple_get_relevant_ref_binfo): Handle MEM_REF.
14472 * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
14473 * tree-ssa.c (useless_type_conversion_p): Make most pointer
14474 conversions useless.
14475 (warn_uninitialized_var): Handle MEM_REF.
14476 (maybe_rewrite_mem_ref_base): New function.
14477 (execute_update_addresses_taken): Implement re-writing of MEM_REFs
14478 to SSA form.
14479 * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
14480 INDIRECT_REF handling.
14481 (copy_tree_body_r): Handle MEM_REF.
14482 * gimple.c (is_gimple_addressable): Adjust.
14483 (is_gimple_address): Likewise.
14484 (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
14485 invariant base are invariant.
14486 (is_gimple_min_lval): Adjust.
14487 (is_gimple_mem_ref_addr): New function.
14488 (get_base_address): Handle MEM_REF.
14489 (count_ptr_derefs): Likewise.
14490 (get_base_loadstore): Likewise.
14491 * gimple.h (is_gimple_mem_ref_addr): Declare.
14492 (gimple_call_fndecl): Handle invariant MEM_REF addresses.
14493 * tree-cfg.c (verify_address): New function, split out from ...
14494 (verify_expr): ... here. Use for verifying ADDR_EXPRs and
14495 the address operand of MEM_REFs. Verify MEM_REFs. Reject
14496 INDIRECT_REFs.
14497 (verify_types_in_gimple_min_lval): Handle MEM_REF. Disallow
14498 INDIRECT_REF. Allow conversions.
14499 (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
14500 a register does not change its size.
14501 (verify_types_in_gimple_reference): Verify MEM_REF.
14502 (verify_gimple_assign_single): Disallow INDIRECT_REF.
14503 Handle MEM_REF.
14504 * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
14505 New.
14506 (mark_address_taken): Handle MEM_REF.
14507 (get_indirect_ref_operands): Pass through opf_not_non_addressable.
14508 (get_asm_expr_operands): Pass opf_not_non_addressable.
14509 (get_expr_operands): Handle opf_[not_]non_addressable.
14510 Handle MEM_REF. Remove INDIRECT_REF handling.
bd3a5d17 14511 * tree-vrp.c (check_array_ref): Handle MEM_REF.
70f34814
RG
14512 (search_for_addr_array): Likewise.
14513 (check_array_bounds): Likewise.
14514 (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
14515 * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
14516 (ref_always_accessed_p): Likewise.
14517 (gen_lsm_tmp_name): Likewise. Handle ADDR_EXPR.
14518 * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
14519 Handle MEM_REF.
14520 * cgraphbuild.c (mark_load): Properly check for NULL result
14521 from get_base_address.
14522 (mark_store): Likewise.
14523 * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
14524 * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
14525 handling for MEM_REF.
14526 * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
14527 &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
14528 * builtins.c (stabilize_va_list_loc): Use the function ABI
14529 valist type if we couldn't canonicalize the argument type.
14530 Always dereference with the canonical va-list type.
14531 (maybe_emit_free_warning): Handle MEM_REF.
14532 (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
14533 memmove to memcpy.
14534 * builtins.c (fold_builtin_memory_op): Use ref-all types
14535 for all memcpy foldings.
14536 * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
14537 (build_outer_var_ref): Likewise.
14538 (scan_omp_1_op): Likewise.
14539 (lower_rec_input_clauses): Likewise.
14540 (lower_lastprivate_clauses): Likewise.
14541 (lower_reduction_clauses): Likewise.
14542 (lower_copyprivate_clauses): Likewise.
14543 (expand_omp_atomic_pipeline): Likewise.
14544 (expand_omp_atomic_mutex): Likewise.
14545 (create_task_copyfn): Likewise.
14546 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
14547 Remove old union trick. Initialize constant offsets.
14548 (ao_ref_init_from_vn_reference): Likewise. Do not handle
14549 INDIRECT_REF. Init base_alias_set properly.
94dbbc81 14550 (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
70f34814
RG
14551 (vn_reference_fold_indirect): Adjust for MEM_REFs.
14552 (valueize_refs): Fold MEM_REFs. Re-evaluate constant offset
14553 for ARRAY_REFs.
14554 (may_insert): Remove.
14555 (visit_reference_op_load): Do not test may_insert.
14556 (run_scc_vn): Remove parameter, do not fiddle with may_insert.
14557 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
14558 a field to store the constant offset this op applies.
14559 (run_scc_vn): Adjust prototype.
14560 * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
14561 * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
14562 MEM_REF. Propagate &foo + CST as &MEM[&foo, CST]. Do not
14563 bother about volatile qualifiers on pointers.
14564 (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
14565 * tree-ssa-loop-ivopts.c
94dbbc81 14566 * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
70f34814
RG
14567 (strip_offset_1): Likewise.
14568 (find_interesting_uses_address): Replace INDIRECT_REF handling with
14569 MEM_REF handling.
14570 (get_computation_cost_at): Likewise.
14571 * ipa-pure-const.c (check_op): Handle MEM_REF.
14572 * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
14573 * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
14574 and constants.
14575 * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
14576 * tree-parloops.c (take_address_of): Adjust for MEM_REF.
14577 (eliminate_local_variables_1): Likewise.
14578 (create_call_for_reduction_1): Likewise.
14579 (create_loads_for_reductions): Likewise.
14580 (create_loads_and_stores_for_name): Likewise.
14581 * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
14582 (ssa_accessed_in_tree): Handle MEM_REF.
14583 (ssa_accessed_in_assign_rhs): Likewise.
14584 (update_type_size): Likewise.
14585 (analyze_accesses_for_call_stmt): Likewise.
14586 (analyze_accesses_for_assign_stmt): Likewise.
14587 (transform_access_sites): Likewise.
14588 (transform_allocation_sites): Likewise.
14589 * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
14590 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
14591 not handle INDIRECT_REF.
14592 * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
14593 (cond_store_replacement): Likewise.
14594 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
14595 MEM_REF, no not handle INDIRECT_REFs.
14596 (insert_into_preds_of_block): Properly initialize avail.
14597 (phi_translate_1): Fold MEM_REFs. Re-evaluate constant offset
14598 for ARRAY_REFs. Properly handle reference lookups that
14599 require a bit re-interpretation.
14600 (can_PRE_operation): Do not handle INDIRECT_REF. Handle MEM_REF.
70f34814
RG
14601 * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
14602 (build_ref_for_offset_1): Remove.
14603 (build_ref_for_offset): Build MEM_REFs.
14604 (gate_intra_sra): Disable for now.
14605 (sra_ipa_modify_expr): Handle MEM_REF.
14606 (ipa_early_sra_gate): Disable for now.
14607 * tree-sra.c (create_access): Swap INDIRECT_REF handling for
14608 MEM_REF handling.
14609 (disqualify_base_of_expr): Likewise.
14610 (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
14611 MEM_REF handling.
14612 (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
14613 Use mem_ref_offset. Remove bogus folding.
94dbbc81 14614 (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
70f34814
RG
14615 (make_fancy_name_1): Add support for MEM_REF.
14616 * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
14617 * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
14618 * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
14619 (compute_complex_ancestor_jump_func): Likewise.
14620 (ipa_analyze_virtual_call_uses): Likewise.
14621 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
14622 INDIRECT_REF folding with more generalized MEM_REF folding.
14623 (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
14624 (forward_propagate_addr_into_variable_array_index): Also handle
14625 &ARRAY + I in addition to &ARRAY[0] + I.
14626 * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
14627 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
14628 creates assignments with overlap.
14629 * tree-nested.c (get_static_chain): Adjust for MEM_REF.
14630 (get_frame_field): Likewise.
14631 (get_nonlocal_debug_decl): Likewise.
14632 (convert_nonlocal_reference_op): Likewise.
14633 (struct nesting_info): Add mem_refs pointer-set.
14634 (create_nesting_tree): Allocate it.
14635 (convert_local_reference_op): Insert to be folded mem-refs.
14636 (fold_mem_refs): New function.
94dbbc81 14637 (finalize_nesting_tree_1): Perform defered folding of mem-refs
70f34814
RG
14638 (free_nesting_tree): Free the pointer-set.
14639 * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
14640 (vectorizable_load): Likewise.
14641 * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
14642 (propagate_with_phi): Likewise.
14643 * tree-object-size.c (addr_object_size): Handle MEM_REFs
14644 instead of INDIRECT_REFs.
14645 (compute_object_offset): Handle MEM_REF.
14646 (plus_stmt_object_size): Handle MEM_REF.
14647 (collect_object_sizes_for): Dispatch to plus_stmt_object_size
14648 for &MEM_REF.
14649 * tree-flow.h (get_addr_base_and_unit_offset): Declare.
14650 (symbol_marked_for_renaming): Likewise.
14651 * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
14652 (fold-const.o): Add $(TREE_FLOW_H).
14653 * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
14654 (find_func_clobbers): Likewise.
14655 * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
14656 (decompose_access): Likewise.
14657 (replace_field_acc): Likewise.
14658 (replace_field_access_stmt): Likewise.
14659 (insert_new_var_in_stmt): Likewise.
14660 (get_stmt_accesses): Likewise.
14661 (reorg_structs_drive): Disable.
14662 * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
14663 (ix86_canonical_va_list_type): Likewise.
14664
a87cf97e
JR
146652010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
14666
14667 PR other/44566
14668 * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
14669 * target.def (struct gcc_target): Replace enum reg_class with
14670 reg_class_t in hook argument / return types.
14671 * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
14672 (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
14673 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
14674 * targhooks.h (default_branch_target_register_class): Likewise.
14675 (default_ira_cover_classes, default_secondary_reload): Likewise.
14676 (default_memory_move_cost, default_register_move_cost): Likewise.
14677 * targhooks.c (default_branch_target_register_class): Likewise.
14678 (default_ira_cover_classes, default_secondary_reload): Likewise.
14679 (default_memory_move_cost, default_register_move_cost): Likewise.
14680 * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
14681 * bt-load.c (branch_target_load_optimize): Likewise.
14682 * ira.c (setup_cover_and_important_classes): Likewise.
14683 * ira-costs.c (copy_cost): Likewise.
14684 * reload1.c (emit_input_reload_insns): Likewise.
14685 * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
14686 * config/frv/frv.c (frv_secondary_reload): Likewise.
14687 * config/s390/s390.c (s390_secondary_reload): Likewise.
14688 * config/i386/i386.c (i386_ira_cover_classes): Likewise.
14689 (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
14690 (ix86_register_move_cost): Likewise.
14691 * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
14692 * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
14693 * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
14694 * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
14695 * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
14696 (rs6000_ira_cover_classes): Likewise.
14697 * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
14698 * config/picochip/picochip-protos.h (picochip_secondary_reload):
14699 Likewise.
14700 * config/pa/pa.c (pa_secondary_reload): Likewise.
14701 * config/mips/mips.c (mips_ira_cover_classes): Likewise.
14702 * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
14703 * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
14704 * doc/tm.texi: Regenerate.
14705
6e44d26e
SP
147062010-06-30 Sebastian Pop <sebastian.pop@amd.com>
14707
14708 PR bootstrrap/44726
14709 * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
14710 use.
14711 (build_alias_set_optimal_p): Likewise.
14712 (build_base_obj_set_for_drs): Likewise.
14713
f6170701
JR
147142010-06-30 Joern Rennecke <joern.rennecke@embecosm.com>
14715
14716 * target.def: Remove comment about licensing problems of function
14717 declarations.
14718
ad78130c
JR
14719 * target.def (declare_constant_name): Change exp to expr. Use DEFHOOK.
14720 * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
14721 * doc/tm.texi: Regenerate.
14722
89356d17
JR
14723 * target.def (builtin_reciprocal): Change tm_fn to md_fn. Use DEFHOOK.
14724 * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
14725
07a5b2bc
JR
14726 * target.def (enum_va_list_p): Use DEFHOOK.
14727 * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
14728 Rename ptype to ptree.
14729 * doc/tm.texi: Regenerate.
14730
08914aaa
JR
14731 * target.def (fold_builtin): Rename nargs to n_args. Use DEFHOOK.
14732 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
14733 * doc/tm.texi: Regenerate.
14734
911852ff
JR
14735 * target.def (memory_move_cost): Use DEFHOOK.
14736 * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
14737 Rename regclass AKA class to rclass.
14738 * doc/tm.texi: Regenerate.
14739
56cb42ea
JR
14740 * target.def (pragma_parse): Use DEFHOOK.
14741 * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
14742 s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
14743 * doc/tm.texi: Regenerate.
14744
ec9f85e5
JR
14745 * target.def (pass_by_reference): Use DEFHOOK.
14746 * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
14747 * doc/tm.texi: Regenerate.
14748
d66f5459
JR
14749 * target.def (resolve_overloaded_builtin): Rename params to arglist.
14750 Use DEFHOOK.
14751 * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
14752 * doc/tm.texi: Regenerate.
14753
893d13d5
JR
14754 * target.def (return_pops_args): Use DEFHOOK.
14755 * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
14756 Rename stack-size to size.
14757 * doc/tm.texi: Regenerate.
14758
c06bbdf7
JR
14759 * target.def (dfa_new_cycle): Use DEFHOOK. Rename dump_file to dump,
14760 last-sched_cycle to last_clock, cur_cycle to clock.
14761 * doc/tm.texi.in: Use @hook.
14762 * doc/tm.texi: Regenerate.
14763
4d00d5dd
JR
14764 * target.def (print_operand, print_operand_address): Update comment.
14765 (print_operand_punct_valid_p): Likewise.
14766
0cbd9993
MLI
147672010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
14768
14769 * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
14770 to rtl.h.
14771 (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
94dbbc81 14772 * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
0cbd9993
MLI
14773 * rtl-error.h: New.
14774 * regrename.c: Do not include toplev.h. Include rtl-error.h.
14775 * rtl-error.c: Likewise.
14776 * reload.c: Likewise.
14777 * recog.c: Likewise.
14778 * sel-sched.c: Likewise.
14779 * function.c: Likewise.
14780 * reg-stack.c: Likewise.
14781 * cfgrtl.c: Likewise.
14782 * reload1.c: Likewise.
14783 * final.c: Include rtl-error.
14784 * Makefile.in: Adjust dependencies.
14785
8a9c1ae6
JH
147862010-06-30 Jan Hubicka <jh@suse.cz>
14787
14788 PR middle-end/PR44706
14789 * ipa-split (split_function): Refine conditions when to use DECL_RESULT
14790 to return the value.
14791
8a1561bc
MM
147922010-06-30 Michael Matz <matz@suse.de>
14793
14794 PR bootstrap/44699
14795 * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
14796 * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
14797 a gimple reg, attach the original VDEF to the last store in the
14798 sequence.
14799
8a1dabd5
IS
148002010-06-30 Iain Sandoe <iains@gcc.gnu.org>
14801
14802 PR other/44034
14803 * config/darwin.c (darwin_override_options): Use renamed
14804 targetm.asm_out.emit_unwind_label.
14805
dcad005d
BS
148062010-06-30 Bernd Schmidt <bernds@codesourcery.com>
14807
14808 PR tree-optimization/39799
14809 * tree-inline.c (remap_ssa_name): Initialize variable only if
14810 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
14811
1d468b06
NF
148122010-06-30 Nathan Froyd <froydnj@codesourcery.com>
14813
14814 * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
14815
501d1a70
RG
148162010-06-30 Richard Guenther <rguenther@suse.de>
14817
14818 PR target/44722
14819 * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
14820 against oscillation with reverse peephole2.
14821
ed1db000
L
148222010-06-30 H.J. Lu <hongjiu.lu@intel.com>
14823
14824 PR target/44721
14825 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
14826 Fix last commit.
14827
aea8fc97
NC
148282010-06-30 Nick Clifton <nickc@redhat.com>
14829
14830 * config/rx/rx-modes.def: New file.
14831 * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
14832 (CC_REGNUM): Define.
14833 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
14834 register.
14835 (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
14836 (SELECT_CC_MODE): Define.
14837 * config/rx/rx.md (CC_REG): Define. Update all patterns to use
14838 (reg:CC CC_REG) instead of (cc0).
14839 (attr "cc"): Delete.
14840 (cbranchsi4): Do not split compare and branch here. Instead move
14841 it to...
14842 (cbranchsi4_<code>): ... here. New patterns.
14843 (cmpsi): Call rx-compare_redundant to find out if it is necessary
14844 to emit the compare instruction.
14845 * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
14846 cc_status flags.
14847 (rx_get_stack_layout): Iterate up to before CC_REGNUM not
14848 FIRST_PSEUDO_REGNUM.
14849 (rx_expand_prologue, rx_expand_epilogue): Likewise.
14850 (rx_notice_update_cc): Delete.
14851 (rx_cc_modes_compatible): New function.
14852 (flags_needed_for_conditional): New function.
14853 (flags_from_mode): New function.
14854 (rx_compare_redundant): New function - scans backwards through
94dbbc81 14855 insn list to find out if condition flags are already set correctly.
aea8fc97
NC
14856 (TARGET_CC_MODES_COMPATIBLE): Define.
14857 * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
14858
14859 * config/rx/rx.h (BRANCH_COST): Define.
14860 (REGISTER_MOVE_COST): Define.
94dbbc81 14861 * config/rx/predicates (rx_source_operand): Allow all constant types.
aea8fc97
NC
14862 * config/rx/rx.md (addsi3): Add alternative for swapped operands.
14863 (tstsi4): New pattern.
14864 * config/rx/rx.c (rx_memory_move_cost): Define.
14865 (TARGET_MEMORY_MOVE_COST): Define.
14866
6662d794
MLI
148672010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
14868
14869 * tree.h (block_may_fallthru): Declare here.
14870 * tree-flow.h (block_may_fallthru): Do not declare here.
14871 * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
14872 bitmap.h
14873 * Makefile.in (c-typeck.o): Update dependencies.
14874
9de9cbaf
JJ
148752010-06-30 Jakub Jelinek <jakub@redhat.com>
14876
14877 PR debug/44694
14878 * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
14879 * cselib.c (cfa_base_preserved_regno): New static variable.
14880 (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
14881 of REGNO (cfa_base_preserved_val->locs->loc).
14882 (cselib_preserve_cfa_base_value): Add regno argument, set
14883 cfa_base_preserved_regno to it.
14884 (cselib_invalidate_regno): Allow removal of registers other than
14885 cfa_base_preserved_regno from cfa_base_preserved_val.
14886 (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
14887 * var-tracking.c (adjust_mems): Replace sp or hfp even outside
14888 of MEM addresses, if not on LHS.
14889 (reverse_op): Don't add reverse ops for cfa_base_rtx.
14890 (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
14891
ee932b8f
BS
148922010-06-30 Bernd Schmidt <bernds@codesourcery.com>
14893
14894 * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
14895 static variables.
14896 (peep2_buf_position): New static function.
14897 (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
14898 peephole2_optimize): Use it.
14899 (peep2_attempt, peep2_update_life): New static functions, broken out
14900 of peephole2_optimize.
14901 (peep2_fill_buffer): New static function.
14902 (peephole2_optimize): Change the main loop to try to fill the buffer
14903 with the maximum number of insns before matching them against
14904 peepholes. Use a forward scan. Remove special case for targets with
14905 conditional execution.
14906 * genrecog.c (change_state): Delete dead code.
14907 * config/i386/i386.md (peephole2 for arithmetic ops with memory):
14908 Rewrite so as not to expect the second insn to have had a peephole
14909 applied yet.
14910
4d64faec
NF
149112010-06-29 Nathan Froyd <froydnj@codesourcery.com>
14912
14913 * genhooks.c (emit_findices): Cast field precision to int.
14914 (emit_documentation): Likewise.
14915
0287000a
JJ
149162010-06-29 Jakub Jelinek <jakub@redhat.com>
14917
087fa34b
JJ
14918 PR tree-optimization/43801
14919 * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
14920 if old_decl was DECL_ONE_ONLY.
14921
0287000a
JJ
14922 PR debug/44668
14923 * dwarf2out.c (add_accessibility_attribute): New function.
14924 (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
14925 instead of adding DW_AT_accessibility manually.
14926 (gen_enumeration_type_die, gen_struct_or_union_type_die,
14927 gen_typedef_die): Use it.
14928
6a07b007
DR
149292010-06-29 Douglas B Rupp <rupp@gnat.com>
14930
14931 * vmsdbgout.c (full_name): Just output the file name if not native.
14932
6ca45368
DR
149332010-06-29 Douglas B Rupp <rupp@gnat.com>
14934
14935 * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
14936 (funcnam_table): New static table.
14937 (funcnum_table): New static table.
14938 (write_rtnbeg): Write value saved in funcnum_table.
14939 (write_rtnend): Write value saved in funcnum_table.
14940 (vmsdbgout_begin_function): Save current function info in
14941 (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
14942 (vmsdbgout_finish): Iterate over funcnum_table.
14943
528b7aa4
DR
149442010-06-29 Douglas B Rupp <rupp@gnat.com>
14945
14946 * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
14947 (vmsdbgout_type_decl): Declare
14948 (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
14949 (FUNC_EPILOGUE_LABEL): New macro
14950 (vmsdbgout_begin_epilogue): New function.
14951 (vmsdbgout_type_decl): New function.
14952
cb488ce1
DR
149532010-06-29 Douglas B Rupp <rupp@gnat.com>
14954
14955 * vmsdbg.h: Update copyright.
14956
b313b165
DR
149572010-06-29 Douglas B Rupp <rupp@gnat.com>
14958
14959 * vmsdbg.h (DST_K_TBG): New DST constant.
14960 * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
14961 (write_modbeg): Cast module_language to avoid warning.
14962 (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
14963
38f8b050
JR
149642010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
14965
14966 PR other/44034
14967 * target.def, doc/tm.texi.in, genhooks.c: New files.
14968 * target.h: Instead of defining individual hook members,
14969 define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
14970 include target.def.
14971 * target-def.h: Instead of defining individual hook initializers,
14972 include target-hooks-def.h.
14973 * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
14974 targetm.live_on_entry -> targetm.extra_live_on_entry
14975 targetm.sched.md_finish ->targetm.sched.finish
14976 targetm.sched.md_init -> targetm.sched.init
14977 targetm.sched.md_init_global -> targetm.sched.init_global
14978 targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
14979 targetm.asm_out.except_table_label ->
14980 targetm.asm_out.emit_except_table_label
14981 targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
14982 targetm.target_help -> targetm.help
14983 targetm.vectorize.builtin_support_vector_misalignment ->
14984 targetm.vectorize.support_vector_misalignment
14985 targetm.file_start_app_off -> targetm.asm_file_start_app_off
14986 targetm.file_start_file_directive ->
14987 targetm.asm_file_start_file_directive
14988 * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
14989 * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
eed023cc 14990 * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
38f8b050
JR
14991 TARGET_VECTOR_ALIGNMENT_REACHABLE ->
14992 TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
14993 TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
14994 TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
14995 TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
14996 * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
14997 * Makefile.in (TARGET_H): Depend on target.def.
14998 (TARGET_DEF_H): Depend on target-hooks-def.h.
14999 (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
15000 (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
15001 * doc/tm.texi: Regenerate.
15002
e82a40fc
JR
15003 * Makefile.in (s-tm-texi): Remove stray tab / rule.
15004
7ecb00a6
JR
15005 * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
15006 (targetm.sched.init): Likewise.
15007
3fc7cd18
NF
150082010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15009
15010 PR bootstrap/44713
15011 * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
15012 (function_arg_advance_32): Const-ify TYPE parameter.
15013 (function_arg_advance_64): Likewise. Change type of NAMED to bool.
15014 (ix86_function_arg_advance): Change type of NAMED to bool.
15015 (function_arg_32): Const-ify CUM and TYPE parameters.
15016 (function_arg_64): Likewise. Change type of NAMED to bool.
15017 (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
15018 to bool.
15019 (ix86_function_arg): Change type of NAMED to bool.
15020 (ix86_setup_incoming_varargs): Call ix86_function_arg_advance. Pass
15021 last argument as a bool.
15022
74f7912a
JR
150232010-06-29 Joern Rennecke <joern.rennecke@embecosm.com>
15024
15025 * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
15026 (OVERRIDE_OPTIONS): Add note of obsolescence.
15027 Replace references with references to TARGET_OPTION_OVERRIDE.
15028 (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
15029 the macro).
15030 * targhooks.c (default_target_option_override): New function.
15031 * targhooks.h (default_target_option_override): Declare.
15032 * target.h (struct gcc_target): Add override member to
9afcc09d 15033 target_option member.
74f7912a
JR
15034 * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
15035 targetm.target_option.override call.
15036 * target-def.h (TARGET_OPTION_OVERRIDE): Define.
15037 (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
15038
20a6bb58
JH
150392010-06-29 Jan Hubicka <jh@suse.cz>
15040
15041 * tree-inline.c: Replace incomming by incomin and clonning by cloning.
15042
b35366ce
JH
150432010-06-29 Jan Hubicka <jh@suse.cz>
15044
15045 * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
15046 unreachable.
15047 (rebuild_frequencies): New function.
15048 * predict.h (rebuild_frequencies): Declare.
15049 * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
15050 entry block and edge reaching new_entry.
94dbbc81
UB
15051 (tree_function_versioning): When doing partial cloning, rebuild
15052 frequencies when done.
b35366ce
JH
15053 * passes.c (execute_function_todo): Use rebild_frequencies.
15054
50b56694
RG
150552010-06-29 Richard Guenther <rguenther@suse.de>
15056
15057 * tree-dfa.c (dump_variable): Remove noalias_state dumping.
15058 * tree-flow.h (enum noalias_state): Remove.
15059 (struct var_ann_d): Remove noalias_state member.
15060
810c4bf4
BS
150612010-06-29 Bernd Schmidt <bernds@codesourcery.com>
15062
15063 PR target/43902
15064 * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
15065 (maddhisi4): Renamed from mulhisi3addsi. Operands renumbered.
15066 (maddhidi4): Likewise.
15067
3df41baf
BS
15068 Revert parts of the change for PR25130.
15069 * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
15070 MEM_ALIAS_SET.
15071
3c07301f
NF
150722010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15073
15074 * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
15075 targetm.calls.function_incoming_arg, and
15076 targetm.calls.function_arg_advance instead of FUNCTION_ARG,
15077 FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
15078 * target.h (struct gcc_target): Add function_arg_advance,
15079 function_arg, and function_incoming_arg fields.
15080 * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
15081 (TARGET_FUNCTION_INCOMING_ARG): Define.
15082 (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
15083 and TARGET_FUNCTION_INCOMING_ARG.
15084 * targhooks.h (default_function_arg_advance): Declare.
15085 (default_function_arg, default_function_incoming_arg): Declare.
15086 * targhooks.c (default_function_arg_advance): New function.
15087 (default_function_arg, default_function_incoming_arg): New function.
15088 * config/i386/i386.c (function_arg_advance): Rename to...
15089 (ix86_function_arg_advance): ...this. Make static.
15090 (function_arg): Rename to...
15091 (ix86_function_arg): ...this. Make static.
15092 (TARGET_FUNCTION_ARG_ADVANCE): Define.
15093 (TARGET_FUNCTION_ARG): Define.
15094 * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
15095 (FUNCTION_ARG): Delete.
15096 * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
15097 (function_arg): Delete prototype.
15098
079e7538
NF
150992010-06-29 Nathan Froyd <froydnj@codesourcery.com>
15100
15101 * reginfo.c (init_reg_sets_1): Adjust comments.
15102 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
15103 * calls.c (prepare_call_address): Likewise.
15104 (emit_call_1): Use targetm.calls.return_pops_args.
15105 (expand_call): Likewise.
15106 * function.c (assign_parms): Likewise.
15107 * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
15108 * target.h (struct gcc_target) [struct calls]: Add
15109 return_pops_args field.
15110 * targhooks.h (default_return_pops_args): Declare.
15111 * targhooks.c (default_return_pops_args): Define.
15112 * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
15113 (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
15114 * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
15115 (TARGET_RETURN_POPS_ARGS): ...this. Use deftypefn. Adjust
15116 documentation.
15117 * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
15118 * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
15119 * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
15120 * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
15121 * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
15122 * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
15123 * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
15124 * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
15125 * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
15126 * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
15127 * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
15128 * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
15129 * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
15130 * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
15131 * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
15132 * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
15133 * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
15134 * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
15135 * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
15136 * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
15137 * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
15138 * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
15139 * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
15140 * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
15141 * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
15142 * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
15143 * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
15144 * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
15145 * config/score/score.h (RETURN_POPS_ARGS): Likewise.
15146 * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
15147 * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
15148 * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
15149 * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
15150 * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
15151 * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
15152 * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
15153 * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
15154 * config/i386/i386.c (ix86_return_pops_args): Make static.
15155 Constify arguments.
15156 (TARGET_RETURN_POPS_ARGS): Define.
15157 * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
15158 * config/m68k/m68k.c (m68k_return_pops_args): ...here. New function.
15159 (TARGET_RETURN_POPS_ARGS): Define.
15160 * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
15161 * config/vax/vax.c (vax_return_pops_args): ...here. New function.
15162 (TARGET_RETURN_POPS_ARGS): Define.
15163
ea184343
RG
151642010-06-29 Richard Guenther <rguenther@suse.de>
15165
15166 PR middle-end/44667
15167 * tree-inline.c (initialize_inlined_parameters): Make sure
15168 to remap the inlined parameter variable substitutions types.
15169
5dfebe0a
EB
151702010-06-29 Eric Botcazou <ebotcazou@adacore.com>
15171
15172 PR rtl-optimization/44659
15173 * combine.c (make_compound_operation) <SUBREG>: Do not return the
15174 result of force_to_mode if it partially re-expanded the compound.
15175
6b5c2d6c
JH
151762010-06-28 Jan Hubicka <jh@suse.cz>
15177
15178 PR middle-end/44671
5dfebe0a
EB
15179 * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
15180 RESULT_DECL.
6b5c2d6c 15181
9589f23e
AS
151822010-06-28 Anatoly Sokolov <aesok@post.ru>
15183
15184 * double-int.h (force_fit_type_double): Remove declaration.
15185 * double-int.c (force_fit_type_double): Move to tree.c.
15186 * tree.h (force_fit_type_double): Declare.
15187 * tree.h (force_fit_type_double): Moved from double-int.c. Use
15188 double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
15189 double_int_to_tree instead of fit_double_type and build_int_cst_wide.
15190 * convert.c (convert_to_pointer): Adjust call to
15191 force_fit_type_double.
15192 * tree-vrp.c (extract_range_from_assert,
15193 extract_range_from_unary_expr): Adjust call to force_fit_type_double.
15194 * fold-const.c: Update comment.
15195 (int_const_binop, fold_convert_const_int_from_int,
15196 fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
15197 extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
15198 fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
15199 round_up_loc): Adjust call to force_fit_type_double.
15200
5dfebe0a 152012010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
dfecaf59
PT
15202
15203 * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
15204
bb8e5dca
MJ
152052010-06-28 Martin Jambor <mjambor@suse.cz>
15206
15207 * tree-sra.c (convert_callers): New parameter, change fndecls of
15208 recursive calls.
15209 (modify_function): Pass the old decl to convert_callers.
15210
f5d3b855
MJ
152112010-06-28 Martin Jambor <mjambor@suse.cz>
15212
15213 * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
15214 ipa_check_create_node_params and ipa_initialize_node_params with
15215 checking asserts they are not necessary.
15216
4021f4a1
JH
152172010-06-28 Jan Hubicka <jh@suse.cz>
15218
15219 PR tree-optimization/44687
15220 * ipa-split.c (split_function): Use DECL_RESULT to store return value.
15221
621f4189
MJ
152222010-06-28 Martin Jambor <mjambor@suse.cz>
15223
15224 PR c++/44535
15225 * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
15226 (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
15227 instead of BINFO_BASE_BINFO.
15228
fe2ef088
MM
152292010-06-28 Michael Matz <matz@suse.de>
15230
15231 PR middle-end/44592
15232 * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
15233 proper VDEF chain for intermediate stores in the sequence.
15234
f0cc75e0
JH
152352010-06-28 Jan Hubicka <jh@suse.cz>
15236
15237 PR tree-optimization/44357
94dbbc81
UB
15238 * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
15239 uninlinable functions.
f0cc75e0 15240
5dfebe0a 152412010-06-28 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
3c005e6c
PT
15242
15243 * config.gcc (powerpc*-*-*): Handle titan.
15244 * config/rs6000/rs6000.c (titan_cost): New costs.
15245 (rs6000_override_options): Add "titan" to processor_target_table.
15246 Add Titan to branch alignment logic.
15247 Correctly set rs6000_cost for titan.
15248 * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md".
15249 * config/rs6000/titan.md: New file.
15250 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
94dbbc81 15251
40523581
NF
152522010-06-28 Nathan Froyd <froydnj@codesourcery.com>
15253
15254 * tree-browser.c (TB_history_stack): Convert to a VEC.
15255 (TB_SET_HEAD): Adjust for new type of TB_history_stack.
15256 (TB_history_prev): Likewise.
15257
04924d6a
NF
152582010-06-28 Nathan Froyd <froydnj@codesourcery.com>
15259
15260 * vec.h (vec_heap_free): Add parentheses around free.
15261
3b06d379
SB
152622010-06-28 Steven Bosscher <steven@gcc.gnu.org>
15263
15264 * system.h: Poison GCC_EXCEPT_H for front-end files.
15265
15266 * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
15267 langhook.
15268 * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
15269 Define to NULL by default.
15270 * except.h: Define GCC_EXCEPT_H.
15271 (doing_eh): Remove prototype.
15272 (init_eh, init_eh_for_function): Move prototypes to toplev.h.
15273 (lang_protect_cleanup_actions): Remove.
15274 * except.c (lang_protect_cleanup_actions): Remove.
15275 (doing_eh): Remove.
15276 (gen_eh_region): Don't check doing_eh here.
15277 * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
15278 * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
15279 instead of lang_protect_cleanup_actions.
15280 * omp-low.c (maybe_catch_exception): Likewise.
15281 * Makefile.in: Update dependencies.
15282
5dfebe0a 152832010-06-28 Bingfeng Mei <bmei@broadcom.com>
6d41cd02 15284
94dbbc81
UB
15285 * cgraph.h (struct varpool_node): new used_from_object_file flag.
15286 (struct cgraph_local_info): new used_from_object_file flag.
15287 * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
15288 (cgraph_clone_node): initialize used_from_object_file.
15289 (cgraph_create_virtual_clone): initialize used_from_object_file.
15290 * lto-symbtab.c (lto_symtab_merge_decls_1): Set
15291 used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
15292 when compiling with -fwhole-program.
15293 (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
6d41cd02 15294 internal resolver.
94dbbc81
UB
15295 * ipa.c (function_and_variable_visibility): Set externally_visible
15296 flag of varpool_node if used_from_object_file flag is set.
15297 (cgraph_externally_visible_p): check used_from_object_file flag.
15298 * doc/invoke.texi (-fwhole-program option): Change description of
15299 externally_visible attribute accordingly.
15300 * doc/extend.texi (externally_visible): Ditto.
6d41cd02 15301
7802ca7c
JH
153022010-06-27 Jan Hubicka <jh@suse.cz>
15303
15304 * params.def (max-inline-insns-auto): Default to 40.
15305 * doc/invoke.texi (max-inline-insns-auto): Document the change.
15306
d402c33d
JH
153072010-06-27 Jan Hubicka <jh@suse.cz>
15308
15309 PR middle-end/44671
15310 PR middle-end/44686
5dfebe0a
EB
15311 * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
15312 signature change.
d402c33d
JH
15313 * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
15314 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
15315
de8f4b07
AS
153162010-06-27 Anatoly Sokolov <aesok@post.ru>
15317
15318 * target.h (struct gcc_target): Add register_move_cost field.
15319 * target-def.h (TARGET_REGISTER_MOVE_COST): New.
15320 (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
15321 * targhooks.c (default_register_move_cost): New function.
15322 * targhooks.h (default_register_move_cost): Declare function.
15323 * defaults.h (REGISTER_MOVE_COST): Delete.
15324 * ira-int.h (ira_register_move_cost): Update comment.
bd3a5d17 15325 * ira.c (ira_register_move_cost): Update comment.
de8f4b07
AS
15326 * reload.h (register_move_cost): Declare.
15327 * reginfo.c (register_move_cost): New function.
15328 (move_cost): Update comment.
15329 (init_move_cost, memory_move_secondary_cost): Replace
15330 REGISTER_MOVE_COST with register_move_cost.
15331 * postreload.c (reload_cse_simplify_set): (Ditto.).
15332 * reload.c (find_valid_class, find_reloads): (Ditto.).
15333 * reload1.c (choose_reload_regs): (Ditto.).
15334 * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
15335 (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
15336 * doc/md.texi (can_create_pseudo_p): Update documentation.
15337
15338 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
15339 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
15340 * config/i386/i386.h (ix86_memory_move_cost): Make static.
15341 (TARGET_MEMORY_MOVE_COST): Define.
15342
15343 * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
15344 * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
15345 * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
15346 (TARGET_MEMORY_MOVE_COST): Define.
15347
533e50f6
RG
153482010-06-27 Richard Guenther <rguenther@suse.de>
15349
15350 PR tree-optimization/44683
15351 * tree-ssa-dom.c (record_edge_info): Record equivalences for the
15352 false edge from the inverted condition.
15353
11af16ef
RG
153542010-06-27 Richard Guenther <rguenther@suse.de>
15355
15356 PR middle-end/44684
15357 * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
15358 (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
15359 for register LHS. Or non-store assignments.
15360
d9816849
EB
153612010-06-26 Eric Botcazou <ebotcazou@adacore.com>
15362
15363 * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
15364 (sparc_emit_set_const64): Likewise. Remove disabled code.
15365 * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
15366 (sparc_emit_set_const64): Likewise.
15367
2639084e
CM
153682010-06-26 Catherine Moore <clm@codesourcery.com>
15369
15370 * config/mips/mips.md (alu_type): New attribute.
15371 (type): Infer type from alu_type.
15372 (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
15373 *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
15374 *subsi3_extended, negsi2, negdi2, *low<mode>,
15375 *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
15376 xor<mode>3, *nor<mode>3,
15377 *zero_extend<GPR:mode>_trunc<SHORT:mode>,
15378 *zero_extendhi_truncqi): Set alu_type instead of type.
15379
df453731
DR
153802010-06-26 Douglas B Rupp <rupp@gnat.com>
15381
15382 * config/alpha/alpha.c (alpha_need_linkage): Adjust
6a02864a 15383 splay_tree_new_ggc call.
df453731
DR
15384 (alpha_use_linkage): Likewise.
15385
d5d8b111
JM
153862010-06-26 Joseph Myers <joseph@codesourcery.com>
15387
15388 * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
15389 * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
15390 * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
15391 (static_specs): Remove switches_need_spaces.
15392 (process_command, do_self_spec): Hardcode handling "-o" instead of
15393 checking switches_need_spaces.
15394 * system.h (SWITCHES_NEED_SPACES): Poison.
15395
2706a615
RG
153962010-06-26 Richard Guenther <rguenther@suse.de>
15397
15398 PR tree-optimization/44393
15399 * tree-loop-distribution.c (generate_loops_for_partition): Fix
15400 stmt removal and VOP renaming.
15401 (generate_memset_zero): Remove redundant stmt updating.
15402 * tree-flow.h (mark_virtual_ops_in_bb): Remove.
15403 * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
15404
8b3057b3
JH
154052010-06-26 Jan Hubicka <jh@suse.cz>
15406
15407 * ipa-split.c (consider_split): PHI in entry block is OK as long as all
15408 edges comming from header are equivalent.
15409 (visit_bb): Handle PHIs correctly.
15410 * tree-inline.c (copy_phis_for_bb): Be able to copy
15411 PHI from entry edge.
94dbbc81 15412 (copy_cfg_body): Produce edge from entry BB before copying PHIs.
8b3057b3 15413
6bfd4302
RB
154142010-06-26 Richard Guenther <rguenther@suse.de>
15415
15416 PR middle-end/44674
15417 * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
15418 decls. Handle LABEL_DECLs like FUNCTION_DECLs.
15419
922e1882
JM
154202010-06-26 Joseph Myers <joseph@codesourcery.com>
15421
15422 * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
15423 add_infile, alloc_switch): New.
15424 (process_command): Remove variable lang_n_infiles. Process
15425 options in a single pass. Use new functions for allocating
15426 infiles and switches arrays. Properly skip operands of
15427 -Xpreprocessor and -Xassembler.
15428
8cf9feca
JH
154292010-06-26 Jan Hubicka <jh@suse.cz>
15430
15431 PR middle-end/44671
6bfd4302
RB
15432 * cgraphunit.c (cgraph_function_versioning): Remove wrong
15433 cgraph_make_decl_local call; fix typo copying RTL data.
8cf9feca 15434
f6052f86
DD
154352010-06-25 DJ Delorie <dj@redhat.com>
15436
15437 * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
15438 (m32c_output_aligned_common): Likewise.
15439 * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
15440 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
15441 * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
15442 (m32c_register_pragmas): Register it.
15443 * config/m32c/m32c.c (m32c_get_pragma_address): New.
15444 (m32c_insert_attributes): Set #pragma address decls volatile.
15445 (pragma_entry_eq): New.
15446 (pragma_entry_hash): New.
15447 (m32c_note_pragma_address): New.
15448 (m32c_get_pragma_address): New.
15449 (m32c_output_aligned_common): New.
15450 * doc/extend.texi: Document the new pragma.
15451
15452 * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
15453 also.
15454 * config/m32c/predicates.md (m32c_any_operand): Check the code
15455 instead of memory_operand so as to allow matching volatile MEMs.
15456 (m32c_nonimmediate_operand): Likewise.
15457 (mra_operand): Allow volatiles.
15458
e0a80069
AO
154592010-06-25 Alexandre Oliva <aoliva@redhat.com>
15460
15461 PR debug/44610
15462 * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
15463 address if the offset is unknown.
15464
8e7745dc
DR
154652010-06-25 Douglas B Rupp <rupp@gnat.com>
15466
15467 * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
15468 * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
15469 * config/ia64/ia64-protos.h (ia64_start_function): Declare.
15470 * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
15471 to ia64_start_function. Invoke it.
15472 * config/ia64/ia64.c (ia64_start_function): Call new function
15473 dwarf2out_vms_debug_main_pointer.
15474
5c8b27d7
SP
154752010-06-25 Sebastian Pop <sebastian.pop@amd.com>
15476
15477 * tree-if-conv.c (insert_gimplified_predicates): Do not insert
15478 statements computing the true predicate.
15479
29caa68a
SP
154802010-06-25 Sebastian Pop <sebastian.pop@amd.com>
15481
15482 * tree-if-conv.c (init_bb_predicate): Initialize the predicate
15483 to boolean_true_node.
15484 (reset_bb_predicate): New.
15485 (predicate_bbs): Call reset_bb_predicate.
15486
0f741287
SP
154872010-06-25 Sebastian Pop <sebastian.pop@amd.com>
15488
15489 * tree-if-conv.c (combine_blocks): Remove FIXME comment.
15490 (tree_if_conversion): Returns true when something has been changed.
15491 (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
15492 changed something.
15493
53aa40a8
SP
154942010-06-25 Sebastian Pop <sebastian.pop@amd.com>
15495
15496 * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
15497 * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
15498 * tree-if-conv.c: Include dbgcnt.h.
15499 (tree_if_conversion): Use if_conversion_tree to count the number of
15500 if-convertible loops.
15501
1fbb509a
CF
155022010-06-25 Changpeng Fang <changpeng.fang@amd.com>
15503
15504 * common.opt (fprefetch-loop-arrays): Re-define
15505 -fprefetch-loop-arrays as a tri-state option with the initial
15506 value of -1.
15507 * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
15508 pass only when flag_prefetch_loop_arrays > 0.
15509 * toplev.c (process_options): Note that, with tri-states,
15510 flag_prefetch_loop_arrays>0 means prefetching is enabled.
15511 * config/i386/i386.c (override_options): Enable prefetching at -O3
15512 for a set of CPUs that sw prefetching is helpful.
15513 (software_prefetching_beneficial_p): New. Return TRUE if software
15514 prefetching is beneficial for the given CPU.
15515
97f43086
L
155162010-06-25 H.J. Lu <hongjiu.lu@intel.com>
15517
15518 PR rtl-optimization/44326
15519 * implicit-zee.c (find_removable_zero_extends): Replace
15520 INSN_P with NONDEBUG_INSN_P.
15521
062c604f
MJ
155222010-06-25 Martin Jambor <mjambor@suse.cz>
15523
15524 * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
15525 (struct ipa_node_params): Removed the modification_analysis_done flag.
15526 (ipa_is_param_modified): Removed.
15527 (ipa_analyze_node): Declare.
15528 (ipa_compute_jump_functions): Remove declaration.
15529 (ipa_count_arguments): Likewise.
15530 (ipa_detect_param_modifications): Likewise.
15531 (ipa_analyze_params_uses): Likewise.
15532 * ipa-prop.c (struct param_analysis_info): New type.
15533 (visit_store_addr_for_mod_analysis): Removed.
15534 (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
15535 moved down in the file.
15536 (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
15537 (ipa_count_arguments): Made static.
15538 (mark_modified): New function.
15539 (is_parm_modified_before_call): New function.
15540 (compute_pass_through_member_ptrs): New parameter parms_info, call
15541 is_parm_modified_before_call instead of ipa_is_param_modified.
15542 (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
15543 it to compute_pass_through_member_ptrs.
15544 (ipa_compute_jump_functions): New parameter parms_info, pass it to
15545 ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params
15546 on the callee if it is analyzed. Made static.
15547 (ipa_analyze_indirect_call_uses): New parameter parms_info, call
15548 is_parm_modified_before_call instead of ipa_is_param_modified.
15549 (ipa_analyze_call_uses): New parameter parms_info, pass it to
15550 ipa_analyze_indirect_call_uses.
15551 (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
15552 ipa_analyze_call_uses.
15553 (ipa_analyze_params_uses): New parameter parms_info, pass it to
15554 ipa_analyze_stmt_uses. Also perform the used analysis. Made static.
15555 (ipa_analyze_node): New function.
15556 (ipa_print_node_params): Do not dump the modified flag.
15557 (ipa_write_node_info): Assert uses_analysis_done rather than streaming
15558 it. Do not stream the modified parameter flag.
15559 (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
15560 it. Do not stream the modified parameter flag.
15561 * ipa-cp.c (ipcp_analyze_node): Removed.
15562 (ipcp_init_stage): Iterate only once over the nodes, analyze each one
15563 with only a call to ipa_analyze_node.
15564 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
15565 node with only a call to ipa_analyze_node.
53aa40a8 15566
212580ff
MLI
155672010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
15568
15569 * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
53aa40a8 15570
3e485f62
JH
155712010-06-25 Jan Hubicka <jh@suse.cz>
15572
15573 * tree-pass.h (pass_split_functions): Declare.
15574 * opts.c (decode_options): Enable function splitting at -O2
15575 * timevar.def (TV_IPA_FNSPLIT): New macro.
15576 * ipa-split.c: New file.
15577 * common.opt (-fpartial-inlining): New flag.
15578 * Makefile.in (ipa-split.o): New object file.
15579 * passes.c (init_optimization_passes): Add ipa-split.
15580 * params.def (partial-inlining-entry-probability): New parameters.
15581 * doc/invoke.texi (-fpartial-inlining): New.
15582
12947319
MLI
155832010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
15584
15585 PR 44665
15586 * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
15587 * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
15588 (gimplify_expr): Likewise.
53aa40a8 15589
8aa29647
MJ
155902010-06-25 Martin Jambor <mjambor@suse.cz>
15591
15592 * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
15593 statements instead of bailing out on them.
15594 (ipa_analyze_indirect_call_uses): Do not require that loads from the
15595 parameter are in the same BB as the condition. Update comments.
15596
8ba0479e
JJ
155972010-06-25 Jakub Jelinek <jakub@redhat.com>
15598
7a2eceff
JJ
15599 PR middle-end/43866
15600 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
15601 true or always false, return NULL_TREE.
15602 (tree_unswitch_single_loop): Optimize conditions even when reaching
15603 max-unswitch-level parameter. If num > 0, optimize first all conditions
15604 using entry checks, then do still reachable block discovery and consider
15605 only conditions in still reachable basic blocks in the loop.
15606
8ba0479e
JJ
15607 PR tree-optimization/44539
15608 * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
15609 the call doesn't have LHS, but has VDEF.
15610
d6841109
JM
156112010-06-25 Joseph Myers <joseph@codesourcery.com>
15612
15613 * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
15614 * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
94dbbc81 15615 * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
d6841109
JM
15616 (process_command): Remove code conditional on MODIFY_TARGET_NAME.
15617 * system.h (MODIFY_TARGET_NAME): Poison.
15618
4c9d416e
AM
156192010-06-25 Alan Modra <amodra@gmail.com>
15620
15621 * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
15622 * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
15623 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
15624 CMODEL_LARGE as default.
15625 * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
15626 (offsettable_ok_by_alignment): Delete.
15627 (rs6000_emit_move): Remove mcmodel=medium optimization.
15628
0354c0c7
BS
156292010-06-25 Bernd Schmidt <bernds@codesourcery.com>
15630
15631 With large parts from Jim Wilson:
15632 PR target/43902
15633 * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
15634 WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
15635 * optabs.c (optab_for_tree_code): Likewise.
15636 (expand_widen_pattern_expr): Likewise.
15637 * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
15638 out of execute_optimize_widening_mul.
15639 (convert_plusminus_to_widen): New function.
15640 (execute_optimize_widening_mul): Use the two new functions.
15641 * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
15642 Remove code to generate widening multiply-accumulate. Add support
15643 for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
15644 * gimple-pretty-print.c (dump_ternary_rhs): New function.
15645 (dump_gimple_assign): Call it when appropriate.
15646 * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
15647 * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
15648 (expand_gimple_stmt_1): Likewise.
15649 (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
15650 WIDEN_MULT_MINUS_EXPR.
15651 * tree-ssa-operands.c (get_expr_operands): Likewise.
15652 * tree-inline.c (estimate_operator_cost): Likewise.
15653 * gimple.c (extract_ops_from_tree_1): Renamed from
15654 extract_ops_from_tree. Add new arg for a third operand; fill it.
15655 (gimple_build_assign_stat): Support operations with three operands.
15656 (gimple_build_assign_with_ops_stat): Likewise.
15657 (gimple_assign_set_rhs_from_tree): Likewise.
15658 (gimple_assign_set_rhs_with_ops_1): Renamed from
15659 gimple_assign_set_rhs_with_ops. Add new arg for a third operand.
15660 (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
15661 (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
15662 WIDEN_MULT_MINUS_EXPR.
15663 * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
15664 (extract_ops_from_tree_1): Adjust declaration.
15665 (gimple_assign_set_rhs_with_ops_1): Likewise.
15666 (gimple_build_assign_with_ops): Pass NULL for last operand.
15667 (gimple_build_assign_with_ops3): New macro.
15668 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
15669 gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
15670 functions.
15671 * tree-cfg.c (verify_gimple_assign_ternary): New static function.
15672 (verify_gimple_assign): Call it.
15673 * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
15674 (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
15675 functions for dealing with three-operand statements.
15676 * tree.c (commutative_ternary_tree_code): New function.
15677 * tree.h (commutative_ternary_tree_code): Declare it.
5dfebe0a
EB
15678 * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
15679 ternary statements.
0354c0c7
BS
15680 (gimple_assign_nonzero_warnv_p): Likewise.
15681 * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
15682 * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
15683 (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS.
15684 * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
15685 (struct hashtable_expr): New member ternary in the union.
15686 (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
15687 (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY.
15688 (iterative_hash_hashable_expr): Likewise.
15689 (print_expr_hash_elt): Handle EXPR_TERNARY.
15690 * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
15691 * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
15692 statements. Handle GIMPLE_TERNARY_RHS.
15693
38f78b0c
JH
156942010-06-25 Jan Hubicka <jh@suse.cz>
15695
15696 * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
15697
09a1e889
SZ
156982010-06-25 Shujing Zhao <pearly.zhao@oracle.com>
15699
15700 PR c/44517
15701 * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
15702 parameters are not good.
15703 (c_parser_parameter_declaration): Error unknown type name if the type
15704 name can't start declaration specifiers.
15705
418f840c
JM
157062010-06-25 Joseph Myers <joseph@codesourcery.com>
15707
15708 * gcc.c (translate_options): Don't mention +e in comment.
15709 (process_command): Don't handle +e specially.
15710
dd2e0807
BS
157112010-06-25 Bernd Schmidt <bernds@codesourcery.com>
15712
15713 * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
15714
3c55880a
BS
15715 * ira-build.c (merge_hard_reg_conflicts): New function.
15716 (create_cap_allocno, copy_info_to_removed_store_destinations,
15717 propagate_some_info_from_allocno, propagate_allocno_info): Use it.
15718 (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
15719 (remove_unnecessary_allocnos, remove_low_level_allocnos)
15720 copy_nifo_to_removed_store_destination): Use them.
15721 * ira-lives.c (make_hard_regno_born): New function, split out of
15722 make_regno_born.
15723 (make_allocno_born): Likewise.
15724 (make_hard_regno_dead): New function, split out of make_regno_dead.
15725 (make_allocno_dead): Likewise.
15726 (inc_register_pressure): New function, split out of set_allocno_live.
15727 (dec_register_pressure): New function, split out of clear_allocno_live.
15728 (mark_pseudo_regno_live): New function, split out of mark_reg_live.
15729 (mark_hard_reg_live): Likewise. Use inc_register_pressure.
15730 (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
15731 (mark_hard_reg_dead): Likewise. Use dec_register_pressure.
15732 (make_pseudo_conflict): Use mark_pseudo_regno_dead and
15733 mark_pseudo_regno_live.
15734 (process_bb_node_lives): Use mark_pseudo_regno_live,
15735 make_hard_regno_born and make_allocno_dead.
15736 (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
15737 set_allocno_live, clear_allocno_live): Delete functions.
15738
029da7d4
BS
15739 * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
15740 * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
15741 functions.
15742 (ira_flattening): Use ira_parent_allocno.
15743 * ira-conflicts.c (process_regs_for_copy, propagate_copies)
15744 build_allocno_conflicts): Use ira_parent_or_cap_allocno.
15745
6300cb73
BS
15746 * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
15747 statement.
15748
42ce1cc4
BS
15749 * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
15750 TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
15751 minmax_set_iter_cond, minmax_set_iter_next,
15752 FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
15753 CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
15754 ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
15755 ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All
15756 uses changed.
15757
b14151b5
BS
15758 * ira-int.h (struct live_range, live_range_t): Renamed from struct
15759 ira_allocno_live_range and allocno_live_range_t; all uses changed.
15760 * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
15761 All uses changed.
15762
8850383b
RE
157632010-06-24 Richard Earnshaw <rearnsha@arm.com>
15764
15765 * thumb2.md (thumb2_tlobits_cbranch): Delete.
15766 (peephole2 to convert zero_extract/compare of single bit to
15767 lshift/compare): New.
15768
43a5d30b
AS
157692010-06-24 Anatoly Sokolov <aesok@post.ru>
15770
15771 * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
15772 recursive call and call to 'int_const_binop'.
15773 (build_range_check, fold_cond_expr_with_comparison, unextend,
15774 fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
15775 multiple_of_p): Adjust call to const_binop.
15776
b1c6d018
UB
157772010-06-24 Uros Bizjak <ubizjak@gmail.com>
15778
15779 * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
15780 determine size of XFmode operand.
15781 (XFmode extended DFmode push splitter): Ditto.
15782 (XFmode extended SFmode push splitter): Ditto.
15783
da0ae970
L
157842010-06-24 H.J. Lu <hongjiu.lu@intel.com>
15785
15786 PR target/44588
15787 * config/i386/i386.md (extract_code): New.
15788 (<u>divmodqi4): Likewise.
15789 (divmodhiqi3): Likewise.
15790 (udivmodhiqi3): Likewise.
15791 (<u>divqi3): Remvoved.
15792
54f044eb
JJ
157932010-06-24 Jakub Jelinek <jakub@redhat.com>
15794
15795 PR middle-end/44492
15796 * recog.h (struct recog_data): Add is_asm field.
15797 * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
15798 present in constraints of inline-asm operand and memory operand
15799 contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
15800 (extract_insn): Initialize recog_data.is_asm.
15801 * doc/md.texi (Constraints): Document operand side-effect rules.
15802
d166d4c3
AK
158032010-06-24 Andi Kleen <ak@linux.intel.com>
15804
b1c6d018
UB
15805 * c-parser.c (c_parser_conditional_expression): Call
15806 warn_for_omitted_condop.
15807 * doc/invoke.texi: Document omitted condop warning.
d166d4c3 15808
b27c1cde
NC
158092010-06-24 Nick Clifton<nickc@redhat.com>
15810
15811 * loop-unswitch.c (compare_and_jump_seq): Assert that the last
15812 insn in the sequence is a jump insn before setting its label.
15813
2dcef31e
AM
158142010-06-24 Alan Modra <amodra@gmail.com>
15815
15816 * collect2.c (main): Match exactly --version and --help.
15817
5f4a67a5
DD
158182010-06-24 DJ Delorie <dj@redhat.com>
15819
15820 * config/m32c/m32c-pragma.c: Don't include rtl.h.
15821
bc051083
UB
158222010-06-23 Uros Bizjak <ubizjak@gmail.com>
15823
b1c6d018 15824 * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
bc051083
UB
15825 using X87MODEF mode iterator.
15826 (pushsf splitter): Macroize splitter using P mode iterator.
15827 (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
15828 mode iterator.
15829
15830 (*movxf_internal): Rename from *movxf_integer.
15831 (*movxf_internal_nointeger): Rename from *movxf_nointeger.
15832 (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
15833 (*movdf_internal): Rename from *movdf_integer.
15834 (*movdf_internal_nointeger): Rename from *movdf_nointeger.
15835 (*movsf_internal): Rename from *movdf_1.
15836
cde8534c
BS
158372010-06-23 Basile Starynkevitch <basile@starynkevitch.net>
15838
bd3a5d17 15839 * coretypes.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
15840 (const_gimple_seq_node): Removed typedefs.
15841
bd3a5d17 15842 * gimple.h (gimple_seq_node_d, gimple_seq_node)
cde8534c
BS
15843 (const_gimple_seq_node): Added typedefs moved from coretypes.h.
15844
9b2133cd
L
158452010-06-23 H.J. Lu <hongjiu.lu@intel.com>
15846
15847 * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
15848 CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
15849 CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
15850 and CODE_FOR_vec_extract_lo_v4df.
15851
15852 * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
15853 Changed to define_insn_and_split.
15854 (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
15855 (vec_extract_lo_v16hi): Likewise.
15856 (vec_extract_lo_v32qi): Likewise.
15857 (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
15858 (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
15859
82c0295a
JR
158602010-06-23 Joern Rennecke <joern.rennecke@embecosm.com>
15861
f52d94aa 15862 PR target/44640
82c0295a
JR
15863 * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
15864 * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
15865 (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
15866 (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
15867 (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
15868
f52d94aa 15869 PR target/44640
bec02c18
JR
15870 * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
15871
f12c802a
JR
15872 PR other/44644
15873 * df-core.c (struct df): Rename to df_d.
15874 * df.h (struct df): Likewise.
15875 * dse.h (struct df): Remove forward declaration.
15876 * recog.h (struct insn_data): Rename to:
15877 (struct_insn_data_d). Adjusted all users.
15878
1004318e
AC
158792010-06-23 Arnaud Charlet <charlet@adacore.com
15880
422f3939 15881 PR ada/22220
1004318e
AC
15882 * doc/install.texi: Update requirements to build GNAT.
15883
f878882b
AS
158842010-06-22 Andreas Schwab <schwab@linux-m68k.org>
15885
15886 * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
15887 enum type.
15888 (m68k_sched_attr_opx_type): Remove unreachable return.
15889 (m68k_sched_attr_opy_type): Likewise.
15890 (m68k_sched_attr_size): Likewise.
15891 (sched_get_opxy_mem_type): Likewise.
15892 (m68k_sched_attr_op_mem): Likewise.
15893
8d2adc24
EB
158942010-06-22 Eric Botcazou <ebotcazou@adacore.com>
15895
15896 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
15897 new statement and adjust VDEF only if necessary. Remove superfluous
15898 call to maybe_clean_or_replace_eh_stmt.
15899 * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
15900 copy the flags.
15901 * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
15902 * tree-inline.c (copy_bb): ...and not there.
15903
ca3e07b4
CC
159042010-06-22 Cary Coutant <ccoutant@google.com>
15905
15906 * dwarf2out.c (is_nested_in_subprogram): New function.
15907 (should_move_die_to_comdat): Use it.
15908 (copy_ancestor_tree): Don't mark DIEs here.
15909 (copy_decls_walk): Start walk from root of newly-added tree;
15910 mark DIEs here instead.
15911
153b6955
L
159122010-06-22 H.J. Lu <hongjiu.lu@intel.com>
15913
15914 * config/i386/i386.md (unit): Also check sseishft1.
15915
b074e783
JH
159162010-06-22 Jan Hubicka <jh@suse.cz>
15917
8d2adc24
EB
15918 * gimple.h (gimple_expr_code): Do checking on when gimple checking is
15919 enabled.
b074e783 15920
1a0f3fa1
JH
159212010-06-22 Jan Hubicka <jh@suse.cz>
15922
8d2adc24
EB
15923 * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
15924 df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
15925 Return true if something changed.
1a0f3fa1 15926 * df.h (df_confluence_function_n): Return bool.
8d2adc24
EB
15927 * df-core.c (df_worklist_propagate_forward,
15928 df_worklist_propagate_backward): Track changes and ages.
1a0f3fa1
JH
15929 (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
15930 track ages.
15931 * dse.c (dse_confluence_n): Return always true.
15932
159332010-06-22 Jan Hubicka <jh@suse.cz>
07309d58
UB
15934
15935 * bitmap.c (bitmap_clear_bit): Micro optimize.
15936
a8ecfc9f
UB
159372010-06-22 Uros Bizjak <ubizjak@gmail.com>
15938
15939 * config/i386/i386.md (SWI1248x): New mode iterator.
15940 (SWI48x): Ditto.
15941 (SWI12): Ditto.
15942 (SWI24): Ditto.
bc051083 15943
a8ecfc9f
UB
15944 (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
15945 SWI1248x mode iterator.
15946 (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
15947 using SWI124 mode iterator.
15948 (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
15949 mode iterator.
15950 (*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
15951 *pushdi2_prologue_rex64 using P mode iterator.
15952 (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
15953 using SWI48 mode iterator.
15954 (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
15955 (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
15956 using SWI1248x mode iterator.
15957 (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
15958 (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
15959 SWI48 mode iterator.
15960 (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
15961 iterator.
15962 (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
15963 (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
15964 SWI12 mode iterator.
15965 (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
15966 SWI12 mode iterator.
15967 (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
15968 (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
15969 SWI24 mode iterator.
15970 (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
15971 SWI48 mode iterator.
15972 (mov<mode>_insn_1): New expander.
15973 (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
15974 using SWI48x mode iterator.
15975
15976 (*movoi_internal_avx): Rename from *movoi_internal.
15977 (*movti_internal_rex64): Rename from *movti_rex64.
15978 (*movti_internal_sse): Rename from *movti_sse.
15979 (*movdi_internal_rex64): Rename from *movdi_1_rex64.
15980 (*movdi_internal): Rename from *movdi_2.
15981 (*movsi_internal): Rename from *movsi_1.
15982 (*movhi_internal): Rename from *movhi_1.
15983 (*movqi_internal): Rename from *movqi_1.
15984
15985 (insv): Update the call to gen_movsi_insv_1 for rename.
15986 * config/i386/i386.c (promote_duplicated_reg): Ditto.
15987
0d6a035d
JH
159882010-06-22 Jan Hubicka <jh@suse.cz>
15989
15990 * passes.c (execute_function_todo): Move call of statistics_fini_pass
15991 to ...
15992 (execute_todo) ... this one.
15993
8d2547f2
AM
159942010-06-22 Alan Modra <amodra@gmail.com>
15995
15996 PR target/44364
15997 * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15998 * caller-save.c (insert_restore, insert_save): Use non-validate
15999 form of adjust_address.
16000
e92abd50
JDA
160012010-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16002
16003 PR target/39690
a181e869 16004 * config/pa/pa.c (override_options): Disable
e92abd50
JDA
16005 -freorder-blocks-and-partition.
16006
c1b157a6
L
160072010-06-21 H.J. Lu <hongjiu.lu@intel.com>
16008
16009 PR target/44615
16010 * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
16011
16012 * config/i386/i386.md (type): Add sseishft1
16013
16014 * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
16015 (ppro_insn_load): Likewise.
16016 (ppro_insn_store): Likewise.
16017 (ppro_insn_both): Likewise.
16018
16019 * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
16020 (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
16021 for type.
16022 (*vec_extractv2di_1_avx): Likewise.
16023 (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
16024 type. Remove atom_unit.
16025 (*vec_extractv2di_1_sse2): Likewise.
16026
cd7fe53b
DD
160272010-06-21 DJ Delorie <dj@redhat.com>
16028
16029 * diagnostic.h (diagnostic_classification_change_t): New.
16030 (diagnostic_context): Add history and push/pop list.
16031 (diagnostic_push_diagnostics): Declare.
16032 (diagnostic_pop_diagnostics): Declare.
16033 * diagnostic.c (diagnostic_classify_diagnostic): Store changes
16034 from pragmas in a history chain instead of the global table.
16035 (diagnostic_push_diagnostics): New.
16036 (diagnostic_pop_diagnostics): New.
16037 (diagnostic_report_diagnostic): Scan history chain to find state
16038 of diagnostics as of the diagnostic location.
16039 * opts.c (set_option): Pass UNKNOWN_LOCATION to
16040 diagnostic_classify_diagnostic.
16041 (enable_warning_as_error): Likewise.
16042 * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
16043 use in the history chain.
cd7fe53b
DD
16044 * doc/extend.texi: Document pragma GCC diagnostic changes.
16045
d34b4f64
JJ
160462010-06-21 Jakub Jelinek <jakub@redhat.com>
16047
5ec96609
JJ
16048 * dwarf2out.c (add_linkage_name): New function. Don't add
16049 anything to DW_TAG_member DIEs.
16050 (add_name_and_src_coords_attributes): Use it.
16051 (gen_variable_die): Call it for C++ static data members if
16052 specification is DW_TAG_member.
16053
f0057424
JJ
16054 * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
16055 C++ char16_t and char32_t.
16056
2e1e8c5d
JJ
16057 * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
16058 * genattrtab.c: Include vecprim.h.
16059 (cached_attrs, cached_attr_count, attrs_seen_once,
16060 attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
16061 attrs_cached_after): New variables.
16062 (find_attrs_to_cache): New function.
16063 (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
16064 (write_test_expr): Add attrs_cached argument, return it too,
16065 attempt to cache non-const attributes used more than once in
16066 a single case handling.
16067 (write_attr_get): Use find_attrs_to_cache, for caching candidates
16068 emit cached_* variables. Adjust write_attr_set callers.
16069 (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
16070 to find attributes that should be cached in this block. Adjust
16071 write_test_expr callers.
16072 (write_attr_case): Clear attrs_to_cache. Adjust write_attr_set
16073 callers.
16074 (make_automaton_attrs): Adjust write_test_expr caller.
16075
2b21299c
JJ
16076 * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
16077 * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
16078 (make_automaton_attrs): If find_tune_attr returns non-NULL,
16079 write separate internal_dfa_insn_code_* and insn_default_latency_*
16080 functions for each attribute's value and emit init_sched_attrs
16081 function and function pointers.
16082 * genattr.c (const_attrs, reservations): New variables.
16083 (gen_attr): Add const attributes to const_attrs vector.
16084 (check_tune_attr, find_tune_attr): New functions.
16085 (main): Add reservations to reservations vector. If find_tune_attr
16086 returns true, add prototype for init_sched_attrs and make
16087 internal_dfa_insn_code and insn_default_latency function pointers,
16088 otherwise define init_sched_attrs as dummy macro.
16089 * cfgexpand.c: Include insn-attr.h.
16090 (gimple_expand_cfg): Call init_sched_attrs.
16091
5e88be0d 16092 * stmt.c (resolve_asm_operand_names): Fix handling of %%.
d34b4f64 16093
529e5fc9
JJ
16094 PR target/44575
16095 * config/i386/i386.c (ix86_gimplify_va_arg): When copying
16096 va_arg from a set of register save slots into a temporary,
16097 if the container is bigger than type size, do the copying
16098 using smaller mode or using memcpy.
16099
67477881
JJ
16100 PR bootstrap/44426
16101 * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
16102 prototype.
16103 (sel_print_to_dot): Remove macro.
16104 (sel_print): Likewise. New prototype.
16105 * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
16106 (sel_print): New function.
16107
babc4728
RO
161082010-06-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16109
16110 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
16111 __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
16112
31e727b0
NC
161132010-06-21 Nick Clifton <nickc@redhat.com>
16114
16115 * config/rx/rx.h (PTRDIFF_TYPE): Define.
16116 (SMALL_REGISTER_CLASS): Define (to zero).
16117 (PRINT_OPERAND): Delete.
16118 (PRINT_OPERAND_ADDRESS): Delete.
16119 * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
16120 (rx_print_operand_address): Delete prototype.
16121 * config/rx/rx.c (rx_print_operand): Make static.
16122 Allow %H and %L to handle CONST_DOUBLEs.
16123 (rx_print_operand_address): Make static.
16124 (rx_gen_move_template): Rename local variable 'template' to
16125 out_template.
5e88be0d 16126 (rx_function_arg): Do not pass unknown sized objects in registers.
31e727b0
NC
16127 (TARGET_PRINT_OPERAND): Define.
16128 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16129
b361b153
JK
161302010-06-21 Jan Kratochvil <jan.kratochvil@redhat.com>
16131
16132 * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
16133
7916a546
KT
161342010-06-21 Kai Tietz <kai.tietz@onevision.com>
16135
16136 * config/i386/i386.c (ix86_compute_frame_layout): Avoid
16137 stack-alignment for simple leaf-functions.
16138
339325b3
AO
161392010-06-20 Alexandre Oliva <aoliva@redhat.com>
16140
16141 * doc/install.texi: Document bootstrap-lto.
16142
7254364e
AO
161432010-06-20 Alexandre Oliva <aoliva@redhat.com>
16144
16145 PR debug/44248
16146 * lto-streamer-in.c (input_bb): Leave debug stmts alone.
16147 (input_function): Drop them here, if VTA is disabled.
16148
dedd9d05
UB
161492010-06-20 Uros Bizjak <ubizjak@gmail.com>
16150
16151 PR target/44546
16152 * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
16153 New predicate.
5e88be0d 16154 * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
dedd9d05
UB
16155 ix86_swapped_fp_comparsion_operator instead of
16156 ix86_fp_comparison_operator.
16157
16158 (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
16159 (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
16160 (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
16161 (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
16162 (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
16163 (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
16164
6e2f1956
JM
161652010-06-20 Joseph Myers <joseph@codesourcery.com>
16166
16167 PR other/32998
16168 * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
16169 OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
16170 * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
16171 (decode_cmdline_option): Update for this return value. Set
16172 orig_option_with_args_text field. Set arg field for unknown
16173 options. Make static.
16174 (decode_cmdline_options_to_array): New.
16175 (prune_options): Update handling of find_opt return value.
16176 * opts.c (read_cmdline_option): Take decoded option. Return void.
16177 (read_cmdline_options): Take decoded options.
16178 (decode_options): Add parameters for decoded options. Use
16179 decode_cmdline_options_to_array. Use decoded options for -O
16180 scan. Use integral_argument for -O parameters. Update call to
16181 read_cmdline_options.
dedd9d05 16182 (enable_warning_as_error): Update handling of find_opt return value.
6e2f1956
JM
16183 * opts.h: Update comment on unknown options.
16184 (struct cl_decoded_option): Update comments on opt_index and arg.
16185 Add orig_option_with_args_text.
16186 (decode_cmdline_option): Remove.
16187 (decode_cmdline_options_to_array): Declare.
16188 (decode_options): Update prototype.
16189 * toplev.c (save_argv): Remove.
16190 (save_decoded_options, save_decoded_options_count): New.
16191 (read_integral_parameter): Remove.
16192 (print_switch_values): Use decoded options.
dedd9d05 16193 (toplev_main): Don't set save_argv. Update call to decode_options.
6e2f1956 16194 * toplev.h (read_integral_parameter): Remove.
dedd9d05 16195 * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
6e2f1956 16196
e6bfe8a2
RE
161972010-06-19 Richard Earnshaw <rearnsha@arm.com>
16198
16199 PR target/44072
16200 * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
16201 immediate.
16202 * constraints.md (Pw, Px): New constraints.
16203 * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
16204
1c154a23
L
162052010-06-19 H.J. Lu <hongjiu.lu@intel.com>
16206
16207 * config/i386/sse.md (fma4modesuffixf4): Removed.
16208 (ssemodesuffixf2s): Likewise.
16209 (ssemodesuffixf4): Likewise.
16210 (ssemodesuffixf2c): Likewise.
16211 (ssescalarmodesuffix2s): Likewise.
16212 (avxmodesuffixf2c): Likewise.
16213 (ssemodesuffix): New.
16214 (ssescalarmodesuffix): Likewise.
16215 Update patterns with ssemodesuffix and ssescalarmodesuffix.
16216
5a2983ce
PH
162172010-06-19 Philip Herron <herron.philip@googlemail.com>
16218
a8ecfc9f 16219 * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
5a2983ce 16220
fae76410
L
162212010-06-18 H.J. Lu <hongjiu.lu@intel.com>
16222
16223 * stor-layout.c (debug_rli): Remove unused local variables.
16224
d36d83e9
EB
162252010-06-18 Eric Botcazou <ebotcazou@adacore.com>
16226
16227 PR rtl-optimization/40900
16228 * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line. Save the
16229 original expression for later reuse.
16230 <expand_decl_rtl>: Use promote_function_mode to compute the signedness
16231 of the promoted RTL for a SSA_NAME on the LHS of a call statement.
16232
fd7de64c
AS
162332010-06-18 Anatoly Sokolov <aesok@post.ru>
16234
16235 * double-int.h (double_int_to_shwi, double_int_to_uhwi,
16236 double_int_fits_in_uhwi_p): Implement as static inline.
16237 (double_int_xor): New inline function.
16238 (double_int_lrotate, double_int_rrotate, double_int_max,
16239 double_int_umax, double_int_smax, double_int_min, double_int_umin,
16240 double_int_smin): Declare.
16241 (lrotate_double, rrotate_double): Remove declaration.
16242 * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
16243 double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
16244 (double_int_lrotate, double_int_rrotate, double_int_max,
16245 double_int_umax, double_int_smax, double_int_min, double_int_umin,
16246 double_int_smin): New function.
16247 * fold-const.c (int_const_binop): Clean up, use double_int_*
16248 functions.
16249 * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
16250 double_int_* and immed_double_int_const functions.
16251
bc87224e
NF
162522010-06-18 Nathan Froyd <froydnj@codesourcery.com>
16253
16254 * function.h (types_used_by_cur_var_decl): Change type to a VEC.
16255 * function.c (types_used_by_cur_var_decl): Likewise.
a8ecfc9f 16256 (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
bc87224e 16257
76d971cc
NF
162582010-06-18 Nathan Froyd <froydnj@codesourcery.com>
16259
16260 * tree.h (record_layout_info): Change type of pending_statics field
16261 to a VEC.
16262 * stor-layout.c (start_record_layout): Store NULL into
16263 pending_statics.
16264 (debug_rli): Call debug_vec_tree instead of debug_tree.
16265 (place_field): Likewise.
16266 (finish_record_layout): Likewise.
16267
9628d8f6
AM
162682010-06-18 Alan Modra <amodra@gmail.com>
16269
16270 * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
16271
8ccfe1ab
JDA
162722010-06-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16273
16274 PR target/43740
dedd9d05
UB
16275 * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
16276 for SET source operand from SET destination operand.
8ccfe1ab 16277
60de8907
BS
162782010-06-17 Bernd Schmidt <bernds@codesourcery.com>
16279
16280 PR rtl-optimization/39871
16281 * reload1.c (init_eliminable_invariants): For flag_pic, disable
16282 equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
16283 (function_invariant_p): Rule out a plus of frame or arg pointer with
16284 a SYMBOL_REF.
16285 * ira.c (find_reg_equiv_invariant_const): Likewise.
16286
d398d903
GN
162872010-06-17 Gunther Nikl <gnikl@users.sourceforge.net>
16288
16289 * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
16290 print_operand_address and puts to output the operand for CONST.
16291
654bbfea
JJ
162922010-06-17 Jakub Jelinek <jakub@redhat.com>
16293
16294 PR debug/44572
16295 * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
16296 hook.
16297
11d259f0
NF
162982010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16299
16300 * v850-protos.h (print_operand): Delete.
16301 (print_operand_address): Delete.
16302 * v850.h (PRINT_OPERAND): Delete.
16303 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16304 (PRINT_OPERAND_ADDRESS): Delete.
16305 * v850.c (print_operand_address): Rename to...
16306 (v850_print_operand_address): ...this. Make static. Call
16307 v850_print_operand.
16308 (print_operand): Rename to...
16309 (v850_print_operand): ...this. Make static. Call
16310 v850_print_operand_address.
16311 (v850_print_operand_punct_valid_p): New function.
16312 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16313 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16314
9e94b957
NF
163152010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16316
16317 * config/sh/sh-protos.h (print_operand): Delete.
16318 (print_operand_address): Delete.
16319 * config/sh/sh.h (PRINT_OPERAND): Delete.
16320 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16321 (PRINT_OPERAND_ADDRESS): Delete.
16322 * config/sh/sh.c (sh_print_operand_address): Make static.
16323 (sh_print_operand): Make static. Call sh_print_operand_address
16324 and sh_print_operand.
16325 (sh_print_operand_punct_valid_p): New function.
16326 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16327 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16328
349f851e
NF
163292010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16330
16331 * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
16332 (mcore_print_operand_address): Delete.
16333 * config/mcore/mcore.h (PRINT_OPERAND): Delete.
16334 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16335 (PRINT_OPERAND_ADDRESS): Delete.
16336 * config/mcore/mcore.c (mcore_print_operand_address): Make static.
16337 (mcore_print_operand): Make static.
16338 (mcore_print_operand_punct_valid_p): New function.
16339 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
16340 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
16341
efe554e4
NF
163422010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16343
16344 * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
16345 (print_operand_address): Delete.
16346 * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
16347 (PRINT_OPERAND_ADDRESS): Delete.
16348 * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
16349 static.
16350 (m68hc11_print_operand): Make static.
16351 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
16352
c73035c7
NF
163532010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16354
16355 * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
16356 (m32r_print_operand_address): Delete.
16357 * config/m32r/m32r.h (m32r_punct_chars): Delete.
16358 (PRINT_OPERAND): Delete.
16359 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16360 (PRINT_OPERAND_ADDRESS): Delete.
16361 * config/m32r/m32r.c (m32r_punct_chars): Make static.
16362 (m32r_print_operand_address): Make static.
16363 (m32r_print_operand): Make static.
16364 (m32r_print_operand_punct_valid_p): New function.
16365 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
16366 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16367
bf7c1408
NF
163682010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16369
16370 * config/iq2000/iq2000-protos.h (print_operand): Delete.
16371 (print_operand_address): Delete.
16372 * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
16373 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16374 (PRINT_OPERAND_ADDRESS): Delete.
16375 (iq2000_print_operand_punct): Delete.
16376 * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
16377 (iq2000_print_operand_address): Make static.
16378 (iq2000_print_operand): Make static.
16379 (iq2000_print_operand_punct_valid_p): New function.
16380 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
16381 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16382
0fb30cb7
NF
163832010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16384
16385 * config/frv/frv-protos.h (frv_print_operand): Delete.
16386 (frv_print_operand_address): Delete.
16387 * config/frv/frv.h (PRINT_OPERAND): Delete.
16388 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16389 (PRINT_OPERAND_ADDRESS): Delete.
16390 * config/frv/frv.c (frv_print_operand_address): Make static.
16391 (frv_print_operand): Make static.
16392 (frv_print_operand_punct_valid_p): New function.
16393 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
16394 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16395
bfdb7b70
NF
163962010-06-17 Nathan Froyd <froydnj@codesourcery.com>
16397
16398 * tree.h (vec_member): Declare.
16399 * tree.c (vec_member): Define.
16400
3a620661
RG
164012010-06-17 Richard Guenther <rguenther@suse.de>
16402
16403 * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
16404 * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
16405
498c378f
RG
164062010-06-17 Richard Guenther <rguenther@suse.de>
16407
16408 * tree-inline.c (declare_return_variable): Remove bogus code.
16409
bd2e63a1
RG
164102010-06-17 Richard Guenther <rguenther@suse.de>
16411
16412 * gimplify.c (gimplify_bind_expr): Always promote complex
16413 and vector variables to registers if possible.
16414
7fa5296e
RG
164152010-06-17 Richard Guenther <rguenther@suse.de>
16416
16417 * expr.c (get_inner_reference): Use double_int for bit_offset
16418 calculation.
16419
6a78b724
DD
164202010-06-16 DJ Delorie <dj@redhat.com>
16421
16422 * common.opt (-fstrict-volatile-bitfields): new.
16423 * doc/invoke.texi: Document it.
16424 * fold-const.c (optimize_bit_field_compare): For volatile
16425 bitfields, use the field's type to determine the mode, not the
16426 field's size.
16427 * expr.c (expand_assignment): Likewise.
16428 (get_inner_reference): Likewise.
16429 (expand_expr_real_1): Likewise.
16430 * expmed.c (store_fixed_bit_field): Likewise.
16431 (extract_bit_field_1): Likewise.
16432 (extract_fixed_bit_field): Likewise.
16433
f1071b12
RG
164342010-06-16 Richard Guenther <rguenther@suse.de>
16435
dedd9d05 16436 * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
f1071b12 16437
67ad2ae7
DR
164382010-06-16 Douglas B Rupp <rupp@gnat.com>
16439
16440 * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
16441 (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
16442 * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
16443 * debug.c: Likewise.
16444 * sdbout.c: Likewise.
16445 * vmsdbgout.c: Likewise.
16446 * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
16447 * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
16448 * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
16449 (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
16450 * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
16451 * dwarf2out.c (dw_fde_struct): New fields
16452 dw_fde_vms_{end,begin}_prologue.
16453 (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
16454 (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
16455 (dwarf2out_vms_end_prologue): New function.
16456 (dwarf2out_vms_begin_epilogue): New function.
16457 (dw_val_struct): New value dw_val_class_vms_delta.
16458 (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
16459 begin_epilogue for VMS.
16460 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
16461 new static functions.
16462 (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
dedd9d05 16463 (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
67ad2ae7
DR
16464 static functions.
16465 (print_die): New case dw_val_class_vms_delta.
16466 (attr_checksum): Likewise.
16467 (same_dw_val_p: Likewise.
16468 (size_of_die): Likewise.
16469 (value_format): Likewise.
16470 (output_die): Likewise.
16471 (gen_subprogram_die): Call add_AT_vms_delta on VMS.
16472 (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
16473 * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
16474 dwarf2out_cfi_begin_epilogue
16475 * final.c (final_scan_insn): Likewise. Call begin_epilogue.
16476
ed5c4a10
NF
164772010-06-16 Nathan Froyd <froydnj@codesourcery.com>
16478
16479 * config/cris/cris-protos.h (cris_print_operand): Delete.
16480 (cris_print_operand_address): Delete.
16481 * config/cris/cris.h (PRINT_OPERAND): Delete.
16482 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16483 (PRINT_OPERAND_ADDRESS): Delete.
16484 * config/cris/cris.c (cris_print_operand_address): Make static.
16485 (cris_print_operand): Make static.
16486 (cris_print_operand_punct_valid_p): New function.
16487 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
16488 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16489
616c557d
NF
164902010-06-16 Nathan Froyd <froydnj@codesourcery.com>
16491
16492 * config/arm/arm-protos.h (arm_print_operand): Delete.
16493 (arm_print_operand_address): Delete.
16494 * config/arm/arm.h (PRINT_OPERAND): Delete.
16495 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
16496 (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
16497 (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
a8ecfc9f 16498 * config/arm/arm.c (arm_print_operand_address): ...here. New function.
616c557d
NF
16499 (arm_print_operand): Make static.
16500 (arm_print_operand_punct_valid_p): New function.
16501 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
16502 (TARGET_PRINT_OPERAND_ADDRESS): Define.
16503
c249a7bc
NC
165042010-06-16 Nick Clifton <nickc@redhat.com>
16505
16506 * config/rx/constraints.md (NEGint4): New constraint.
16507 * config/rx/rx.md (attr cc): Add set_zsc.
16508 (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
16509 initialised.
16510 (cmpsf): Likewise.
16511 (call_internal): Clobber the cc0 register.
16512 (call_value_internal): Likewise.
16513 (cstoresi4): Likewise.
16514 (movsieq): Likewise.
16515 (movsine): Likewise.
16516 (addsi3): Add alternative to handle small negative constants.
16517 (sunsi3): Likewise.
16518 (addsi3): Do not set the O bit in the cc0 register.
16519 (adddi3): Likewise.
16520 (subsi3): Likewise.
16521 (subdi3): Likewise.
16522 (andsi3): Reorder alternatives to prefer shorter forms.
16523 (mulsi3): Likewise.
16524 (iorsi3): Likewise.
16525 (negsi2): Note that the cc0 flags are set.
16526 (rotlsi3): Note that only the Z and S bits are set in cc0.
16527 (lshrsi3): Likewise.
16528 (ashlsi3): Likewise.
16529 (subsf3): Use %Q for the MEM operand.
16530 (fix_truncsfsi2): Likewise.
16531 (floatsisf2): Likewise.
16532 (bitset): Remove early clobber from destination.
16533 (bitset_in_memory): Likewise.
16534 (lrintsf2): Clobber the cc0 register.
dedd9d05 16535 * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
c249a7bc
NC
16536 (rx_print_operand): Handle %N.
16537
f75aa51c
JH
165382010-06-16 Jan Hubicka <jh@suse.cz>
16539
16540 * df-core.c (df_compact_blocks): Free problem_temps vector.
16541
29be3835
MJ
165422010-06-16 Martin Jambor <mjambor@suse.cz>
16543
16544 PR tree-optimization/43905
16545 * tree-sra.c: Include tree-inline.h.
16546 (create_abstract_origin): Removed.
16547 (modify_function): Version the call graph node instead of creating
16548 abstract origins and dealing with same_body aliases.
16549 * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
16550 function is versionable.
16551 * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
16552
e7bfcf35
MK
165532010-06-16 Maxim Kuvyrkov <maxim@codesourcery.com>
16554
16555 * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
16556 (CHOOSE_DYNAMIC_LINKER): Update.
16557
f582a3aa
UB
165582010-06-15 Uros Bizjak <ubizjak@gmail.com>
16559
16560 * config/i386/i386.c (*prefetch_sse_<mode>): Macroize insn from
16561 *prefetch_sse and *prefetch_sse_rex using P mode iterator.
16562 (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
16563 *prefetch_3dnow_rex.
16564
e4f7c483
AS
165652010-06-15 Anatoly Sokolov <aesok@post.ru>
16566
16567 * target.h (struct asm_out):Add declare_constant_name field.
16568 * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
16569 (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
16570 * output.h (default_asm_declare_constant_name): Declare.
16571 (assemble_label): Update prototype.
16572 * varasm.c (assemble_constant_contents): Use
16573 targetm.asm_out.declare_constant_name target hook.
16574 (assemble_label): Add 'file' argument.
16575 (default_asm_declare_constant_name): New function.
16576 * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
16577 * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
16578 (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
16579
16580 * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
16581 * config/darwin.c (darwin_asm_declare_constant_name): New function.
16582 (machopic_output_indirection): Update assemble_label argument list.
16583 * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
16584 (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
16585
6ab4e307
SP
165862010-06-15 Sebastian Pop <sebastian.pop@amd.com>
16587
16588 PR middle-end/44391
16589 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
16590 size_one_node for pointer types. Do not call gmp_cst_to_tree.
16591
7fc1dad6
RG
165922010-06-15 Richard Guenther <rguenther@suse.de>
16593
16594 * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
16595
50416c61 165962010-06-15 Paul Brook <paul@codesourcery.com>
6ab4e307 16597
50416c61
PB
16598 * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
16599 hard-float ABI.
16600
15bbc165
AO
166012010-06-15 Alexandre Oliva <aoliva@redhat.com>
16602
16603 * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
16604 don't get a vector type for output.
16605
79943d19
JJ
166062010-06-15 Jakub Jelinek <jakub@redhat.com>
16607
16608 PR fortran/44536
16609 * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
16610 * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
16611 (LANG_HOOKS_DECLS): Add it.
16612 * gimplify.c (omp_notice_variable): Call
16613 lang_hooks.decls.omp_report_decl.
16614
eed5f58a
MJ
166152010-06-15 Martin Jambor <mjambor@suse.cz>
16616
16617 PR lto/44464
16618 * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
16619 on the newly dead SSA name.
16620
070b27da
AM
166212010-06-15 Alan Modra <amodra@gmail.com>
16622
16623 * doc/invoke.texi: Add mcmodel to powerpc options.
16624 * configure.ac: Add HAVE_LD_LARGE_TOC test.
16625 * configure: Regenerate.
16626 * config.in: Regenerate.
16627 * config/rs6000/linux64.opt (mcmodel): New.
16628 * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
9628d8f6 16629 (TARGET_CMODEL, SET_CMODEL): Define.
070b27da
AM
16630 (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
16631 select CMODEL_MEDIUM default.
16632 * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
16633 (TARGET_CMODEL): Define default.
16634 * config/rs6000/rs6000.c (cmodel): New variable.
16635 (rs6000_explicit_options): Add cmodel field.
16636 (rs6000_handle_option): Handle -mcmodel.
16637 (create_TOC_reference): Add largetoc_reg param. Generate high,
16638 lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
16639 (rs6000_delegitimize_address): Recognise new toc reference rtl
16640 and minimal-toc rtl.
16641 (rs6000_legitimize_reload_address): Handle new toc references.
16642 (print_operand_address): Handle legitimate_constant_pool_address_p
16643 match before lo_sum.
16644 (rs6000_eliminate_indexed_memrefs): Tidy.
16645 (rs6000_emit_move): Tweak threshold for inlining constants.
16646 Keep rs6000_emit_allocate_stack large stack frame offsets
16647 loaded into r0 inline.
16648 (rs6000_generate_compare <cmptf_internal2>): One more clobber.
16649 (tocrel_base, tocrel_offset): New variables.
16650 (toc_relative_expr_p): Set them here.
f582a3aa 16651 (print_operand_address): Skip over any offset on constant pool address.
070b27da
AM
16652 (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
16653 (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
16654 (offsettable_ok_by_alignment): New function.
16655 (rs6000_emit_move): Address suitably aligned local symbol_refs
16656 relative to the toc pointer for -mcmodel=medium.
16657 (legitimate_constant_pool_address_p): Make param const_rtx. Add
16658 strict param. Allow lo_sum version of addressing. Verify reg
16659 used for -mminimal-toc and -mcmodel != small. Update all callers.
16660 * config/rs6000/constraints.md: Update for above change.
16661 * config/rs6000/predicates.md: Likewise.
16662 * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
16663 code.
16664 (tls_gd): Split for -mcmodel=medium/large.
16665 (tls_gd_high, tls_gd_low): New.
16666 (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
16667 (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
16668 (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
16669 (largetoc_high, largetoc_low): New.
16670 (cmptf_internal2): Add clobber.
16671 * config/rs6000/rs6000-protos.h: Update.
16672
d5058523
CF
166732010-06-14 Changpeng Fang <changpeng.fang@amd.com>
16674
16675 * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New. Return
16676 true if no prefetch is going to be generated for a given group.
16677 (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
16678 estimate the prefetch_count.
16679 (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
16680 prefetch count by considering the unroll_factor and prefetch_mod
16681 for is_loop_prefetching_profitable.
16682
33d67485
AS
166832010-06-14 Andreas Schwab <schwab@linux-m68k.org>
16684
16685 * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
16686 anything if the argument is not a MEM.
16687
22963fee
AO
166882010-06-14 Alexandre Oliva <aoliva@redhat.com>
16689
16690 PR debug/43650
16691 PR debug/44181
16692 PR debug/44247
16693 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
16694 debug stmts.
16695 (canonicalize_loop_ivs): Likewise.
16696
c11b0b3b
AO
166972010-06-14 Alexandre Oliva <aoliva@redhat.com>
16698
16699 PR debug/43656
16700 * haifa-sched.c (setup_insn_reg_pressure_info,
16701 update_register_pressure): Reject debug insns.
16702 (ready_sort): Don't setup reg pressure for debug insns.
16703 (schedule_insn): Don't update reg pressure for debug insns.
16704
2465dcc2
RG
167052010-06-14 Richard Guenther <rguenther@suse.de>
16706
16707 * lto-streamer.c (cached_bp): Remove.
16708 (bitpack_delete): Likewise.
16709 (bitpack_create): Likewise.
16710 (bp_get_next_word): Likewise.
16711 (bp_pack_value, bp_unpack_value): Move ...
16712 * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
16713 Re-implement.
16714 (struct bitpack_d): Likewise.
16715 (bitpack_create, lto_output_bitpack, lto_input_bitpack):
16716 New inline functions.
16717 * lto-streamer-out.c (lto_output_bitpack): Remove.
f582a3aa 16718 (pack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
16719 (pack_value_fields): Adjust.
16720 (lto_write_tree): Likewise.
16721 (output_gimple_stmt): Likewise.
16722 (output_function): Likewise.
16723 * lto-streamer-in.c (input_gimple_stmt): Adjust.
16724 (input_function): Likewise.
f582a3aa 16725 (unpack_ts_base_value_fields): Adjust. Avoid conditional bitpacking.
2465dcc2
RG
16726 (lto_input_bitpack): Remove.
16727 (lto_materialize_tree): Adjust.
16728 * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
16729 * lto-cgraph.c (lto_output_edge): Adjust.
16730 (lto_output_node): Likewise.
16731 (lto_output_varpool_node): Likewise.
16732 (lto_output_ref): Likewise.
16733 (input_node): Likewise.
16734 (input_varpool_node): Likewise.
16735 (input_ref): Likewise.
16736 (input_edge): Likewise.
16737 (output_node_opt_summary): Likewise.
16738 (input_node_opt_summary): Likewise.
16739 * ipa-pure-const.c (pure_const_write_summary): Likewise.
16740 (pure_const_read_summary): Likewise.
16741 * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
16742 (ipa_read_indirect_edge_info): Likewise.
16743 (ipa_write_node_info): Likewise.
16744 (ipa_read_node_info): Likewise.
16745
808081b4
L
167462010-06-14 H.J. Lu <hongjiu.lu@intel.com>
16747
16748 PR target/44534
f582a3aa 16749 * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
808081b4
L
16750 (vec_extract_lo_v16hi): Likewise.
16751 (vec_extract_lo_v32qi): Likewise.
16752
5bca794b
JJ
167532010-06-14 Jakub Jelinek <jakub@redhat.com>
16754
aa493694
JJ
16755 PR bootstrap/44426
16756 * tree.h (build_call_expr): Don't define as vararg macro, instead
16757 add a prototype.
16758 * builtins.c (build_call_nofold): Remove.
16759 (expand_builtin_int_roundingfn, expand_builtin_pow,
16760 expand_builtin_mempcpy_args, expand_builtin_stpcpy,
16761 expand_builtin_memset_args, expand_builtin_strcmp,
16762 expand_builtin_strncmp, expand_builtin_memory_chk): Use
16763 build_call_nofold_loc instead of build_call_nofold.
16764 (build_call_expr): New function.
16765
8ab7d796 16766 PR tree-optimization/44508
f582a3aa 16767 * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
8ab7d796
JJ
16768 * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
16769 don't eliminate trivially dead stmts.
16770 * tree-vrp.c (vrp_finalize): Pass false as last argument
16771 to substitute_and_fold.
16772 * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
16773 to substitute_and_fold.
16774 * tree-ssa-ccp.c (ccp_finalize): Likewise.
16775
5bca794b
JJ
16776 PR bootstrap/44509
16777 * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
5bca794b 16778
c1e822d5
IR
167792010-06-14 Ira Rosen <irar@il.ibm.com>
16780
6ab4e307 16781 PR tree-optimization/44507
c1e822d5
IR
16782 * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
16783 to build initial vector for BIT_AND_EXPR.
16784 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
16785
ce71b410
JJ
167862010-06-14 Jakub Jelinek <jakub@redhat.com>
16787
16788 * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
16789 adjust z10prop set_attr.
16790
7a40b8b1
JH
167912010-06-13 Jan Hubicka <jh@suse.cz>
16792
16793 * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
16794 bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
16795 bitmap_ior_into, bitmap_xor, bitmap_xor_into,
223c6c5d
EB
16796 bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
16797 datastructure checks into checking asserts.
7a40b8b1
JH
16798 * rtlanal.c (find_reg_note): Use gcc_checking_assert.
16799 * tree-ssa-sccvn.c (VN_INFO): Likewise.
16800 * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
16801 df_ref_create_structure): Likewise.
16802 * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
16803 pool_free): Use gcc_checking_assert.
16804 * alias.c (get_alias_set): Likewise.
16805 * var-tracking.c (variable_htab_free, shared_hash_copy,
16806 canonicalize_values_mark, variable_merge_over_cur): Likewise.
16807 * lto-streamer.c (bp_unpack_value): Likewise.
16808
4a2ac96f
RG
168092010-06-13 Richard Guenther <rguenther@suse.de>
16810
16811 * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
16812 Do not stream but initialize TYPE_CANONICAL to NULL.
16813 (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
16814 * gimple.c (gimple_types_compatible_p): Disregard
16815 TYPE_STRUCTURAL_EQUALITY_P.
16816 (gimple_register_type): Use TYPE_CANONICAL as cache.
16817 * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
16818 before registering common types.
16819 * config/i386/i386.c (ix86_function_arg_boundary): Do not
16820 use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
16821 * tree.h (TYPE_CANONICAL): Clarify documentation.
16822
ba90d838
AS
168232010-06-13 Anatoly Sokolov <aesok@post.ru>
16824
16825 * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
16826 LIBCALL_VALUE): Remove macros.
16827 * config/ia64/ia64-protos.h (ia64_function_value): Remove.
16828 * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16829 TARGET_FUNCTION_VALUE_REGNO_P): Define.
16830 (ia64_libcall_value, ia64_function_value_regno_p): New functions.
16831 (ia64_function_value): Make static. Handle receiving the function
16832 type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
16833
9fcb01de
JH
168342010-06-12 Jan Hubicka <jh@suse.cz>
16835
16836 * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
16837 at correct place.
16838
f63a6726
BS
168392010-06-12 Bernd Schmidt <bernds@codesourcery.com>
16840
16841 * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
16842
e285df08
JH
168432010-06-12 Jan Hubicka <jh@suse.cz>
16844
16845 * df-core.c (df_clear_bb_info): New function.
16846 (df_set_blocks): bb_info is always allocated.
16847 (df_get_bb_info): Use block_info_elt_size.
16848 (df_set_bb_info): Likewise.
16849 (df_compact_blocks): Update for new block_info.
16850 (grow_bb_info): New function.
16851 * df-problems.c (df_grow_bb_info): Move to df-core.c
16852 (df_rd_set_bb_info): Remove.
16853 (df_rd_free_bb_info): Do not free block pool.
16854 (df_rd_alloc): Do not create pool, use check for
16855 obstack presence instead of NULL pointer for new blocks.
16856 (df_rd_free): DO not free alloc pool; clear block_info.
16857 (problem_RD): Add size of block info structure.
16858 (df_lr_set_bb_info): Remove.
16859 (df_lr_free_bb_info): Do not free block pool.
16860 (df_lr_alloc): Do not create pool, use check for
16861 obstack presence instead of NULL pointer for new blocks.
16862 (df_lr_free): DO not free alloc pool; clear block_info.
16863 (problem_LR): Add size of block info structure.
16864 (df_live_set_bb_info): Remove.
16865 (df_live_free_bb_info): Do not free block pool.
16866 (df_live_alloc): Do not create pool, use check for
16867 obstack presence instead of NULL pointer for new blocks.
16868 (df_live_free): DO not free alloc pool; clear block_info.
16869 (problem_LIVE): Add size of block info structure.
16870 (problem_CHAIN): Add size of block info structure.
16871 (df_byte_lr_set_bb_info): Remove.
16872 (df_byte_lr_free_bb_info): Do not free block pool.
16873 (df_byte_lr_alloc): Do not create pool, use check for
16874 obstack presence instead of NULL pointer for new blocks.
16875 (df_byte_lr_free): DO not free alloc pool; clear block_info.
16876 (problem_BYTE_LR): Add size of block info structure.
16877 (problem_NOTE): Add size of block info structure.
16878 (df_byte_MD_set_bb_info): Remove.
16879 (df_byte_MD_free_bb_info): Do not free block pool.
16880 (df_byte_MD_alloc): Do not create pool, use check for
16881 obstack presence instead of NULL pointer for new blocks.
16882 (df_byte_MD_free): DO not free alloc pool; clear block_info.
16883 (problem_BD): Add size of block info structure.
16884 * df-scan.c (df_scan_free_internal): Free block pool.
16885 (df_scan_set_bb_info): Remove.
16886 (df_scan_free_bb_info): Check for artificial_defs instead
16887 of bb_info being non-NULL.
16888 (df_scan_alloc): DO not create df_scan_block pool.
16889 (problem_SCAN): Set size of block info.
16890 (df_bb_refs_record): Do not allocate bb_info.
16891 * df.h (df_problem): Add block_info_elt_size.
16892 (struct dataflow): Change block_info to void *.
16893 (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
16894 df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
16895 in-line structures.
16896
02d635a2
JH
168972010-06-12 Jan Hubicka <jh@suse.cz>
16898
16899 PR tree-optimize/44485
223c6c5d
EB
16900 * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
16901 containing use of return value of noreturn function.
02d635a2 16902
153a3027
AS
169032010-06-12 Anatoly Sokolov <aesok@post.ru>
16904
16905 * targhooks.c (default_function_value): Don't use
16906 FUNCTION_OUTGOING_VALUE.
16907 * system.h (FUNCTION_OUTGOING_VALUE): Poison.
16908 * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
16909
48b09a92
KH
169102010-06-12 Kazu Hirata <kazu@codesourcery.com>
16911
f582a3aa
UB
16912 * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
16913 Add crtfastmath.o to extra_parts.
48b09a92
KH
16914 * config/mips/crtfastmath.c: New.
16915 * config/mips/linux.h (ENDFILE_SPEC): New.
16916
b53cd1c5
SP
169172010-06-12 Sebastian Pop <sebastian.pop@amd.com>
16918
16919 * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
16920 old_type in parameter.
16921 (gcc_type_for_value): Update call to gcc_type_for_interval.
16922 (compute_type_for_level_1): Renamed compute_type_for_level.
16923 Update call to gcc_type_for_interval.
16924
fcfbd84e
JM
169252010-06-11 Joseph Myers <joseph@codesourcery.com>
16926
16927 * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
f582a3aa 16928 flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
fcfbd84e 16929
5d4b393f
JM
169302010-06-11 Joseph Myers <joseph@codesourcery.com>
16931
16932 * opts-common.c: Include options.h.
16933 (integral_argument): Move from opts.c.
16934 (decode_cmdline_option): New. Based on read_cmdline_option.
16935 * opts.c (integral_argument): Move to opts-common.c.
16936 (read_cmdline_option): Move most contents to
16937 decode_cmdline_option. Use %qs in diagnostics.
16938 * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
16939 CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
16940 decode_cmdline_option): New.
16941
b79a08f6
UB
169422010-06-11 Uros Bizjak <ubizjak@gmail.com>
16943
16944 PR target/44481
16945 * config/i386/i386.md (UNSPEC_PARITY): New unspec.
f582a3aa 16946 (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
b79a08f6
UB
16947 (partiysi2_cmp): Ditto.
16948 (*partiyhi2_cmp): Ditto.
16949 (*parityqi2_cmp): Remove.
16950
d5568f03
JH
169512010-06-11 Jan Hubicka <jh@suse.cz>
16952
b79a08f6
UB
16953 * bitmap.h (bmp_iter_next_bit): New.
16954 (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
d5568f03 16955
5914a70f 169562010-06-11 Sandra Loosemore <sandra@codesourcery.com>
f582a3aa 16957 Eric Botcazou <ebotcazou@adacore.com>
5914a70f
SL
16958
16959 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
16960 computed cost.
16961
ed9955f9
UB
169622010-06-11 Uros Bizjak <ubizjak@gmail.com>
16963
16964 * config/i386/i386.md (unspec): New define_c_enum.
16965 (unspecv): Ditto.
16966
8e680db5
JJ
169672010-06-10 Jakub Jelinek <jakub@redhat.com>
16968
8e680db5
JJ
16969 * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
16970
7b14477e
SP
169712010-06-11 Sebastian Pop <sebastian.pop@amd.com>
16972
16973 PR middle-end/44483
16974 * tree-if-conv.c (bb_predicate_s): New struct.
16975 (bb_predicate_p): New.
16976 (bb_has_predicate): New.
16977 (bb_predicate): New.
16978 (set_bb_predicate): New.
16979 (bb_predicate_gimplified_stmts): New.
16980 (set_bb_predicate_gimplified_stmts): New.
16981 (add_bb_predicate_gimplified_stmts): New.
16982 (init_bb_predicate): New.
16983 (free_bb_predicate): New.
16984 (is_predicated): Use bb_predicate.
16985 (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
16986 (predicate_bbs): Same. Gimplify the condition of the basic blocks
16987 before processing their successors.
16988 (clean_predicate_lists): Removed.
16989 (find_phi_replacement_condition): Use bb_predicate.
16990 (process_phi_nodes): Renamed ifconvert_phi_nodes. Avoid useless
16991 computations.
16992 (insert_gimplified_predicates): New.
16993 (combine_blocks): Call insert_gimplified_predicates.
16994 (tree_if_conversion): Call free_bb_predicate instead of
16995 clean_predicate_lists.
16996
f6e47b26 169972010-10-11 Paul Brook <paul@codesourcery.com>
ed9955f9 16998
f6e47b26
PB
16999 * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
17000 * config/arm/arm.c (all_architectures): Change v7e-m default to
17001 cortexm4.
17002 * config/arm/arm-cores.def: Add cortex-m4.
17003 * config/arm/arm-tune.md: Regenerate.
17004
0a42aa4e
JH
170052010-06-11 Jan Hubicka <jh@suse.cz>
17006
17007 * ipa-pure-const.c (special_builtlin_state): New function.
17008 (check_call): Use it instead of special casign BUILT_IN_RETURN.
17009 (propagate_pure_const): Use it.
17010
d725a1a5
JH
170112010-06-11 Jan Hubicka <jh@suse.cz>
17012
17013 * df-problems.c (df_live_scratch): Convert to bitmap_head.
17014 (df_live_alloc): Initialize df_live_scratch when initializing
17015 problem_data.
17016 (df_live_transfer_function): Update uses of df_live_scratch.
17017 (df_live_free): Free problem_data; clear df_live_scratch before
17018 releasing the obstack.
17019 (df_md_free): Free problem data.
17020
7ea6b6cf
JH
170212010-06-11 Jan Hubicka <jh@suse.cz>
17022
17023 * doc/invoke.texi (Wsuggest-attribute): Document.
17024 (Wmissing-noreturn): Remove.
17025 * ipa-pure-const.c (warn_function_noreturn): New function.
17026 * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
17027 warn_missing_noreturn.
17028 * common.opt (Wsuggest-attribute=noreturn): New.
17029 * tree-flow.h (warn_function_noreturn): Declare.
17030 * tree-cfg.c (execute_warn_function_noreturn): Use
17031 warn_function_noreturn.
17032 (gate_warn_function_noreturn): New.
17033 (pass_warn_function_noreturn): Update.
17034
2ee3cb35
MLI
170352010-06-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
17036
17037 * c-typeck.c (handle_warn_cast_qual): Add loc
17038 parameter. Improve warning message.
17039 (build_c_cast): Pass location to handle_warn_cast_qual.
17040
3d25c396
UB
170412010-06-11 Uros Bizjak <ubizjak@gmail.com>
17042
17043 * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
17044 that operand 0 == operand 1. Use x86_maybe_negate_const_int to output
17045 insn mnemonic.
17046 (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
17047
b66a8c5d
DS
170482010-06-10 Dodji Seketeli <dodji@redhat.com>
17049
17050 Fix bootstap on mips
17051 * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
17052 be naming typedefs.
17053
10d291f6
KT
170542010-06-11 Kai Tietz <kai.tietz@onevision.com>
17055
17056 * system.h (helper_const_non_const_cast): New inline for
17057 gcc version <= 4.0.
17058 (CONST_CAST2): For gcc version <= 4.0 use
17059 new helper to do const/non-const casting.
17060
0fe60a1b
RS
170612010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17062
17063 * doc/md.texi: Document the "unspec" and "unspecv" enum names.
17064 * Makefile.in (OBJS-common): Include insn-enums.o.
17065 (insn-enums.o): New rule.
17066 (simple_generated_c): Add insn-enums.c.
17067 (build/genenums.o): New rule.
17068 (genprogmd): Add "enums".
17069 * genconstants.c (print_enum_type): Declare a C string array
17070 for each enum.
17071 * genenums.c: New file.
17072 * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
17073 for UNSPEC_VOLATILE. If defined, use the "unspec" enum for both
17074 UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
17075
8f4fe86c
RS
170762010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17077
17078 * doc/md.texi (define_enum_attr): Document.
17079 * rtl.def (DEFINE_ENUM_ATTR): New rtx.
17080 * read-md.h (lookup_enum_type): Declare.
17081 * read-md.c (lookup_enum_type): New function.
17082 * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
17083 * genattrtab.c (attr_desc): Add an enum_name field.
17084 (evaluate_eq_attr): Take the associated attribute as argument.
17085 Get the enum prefix from the enum_name field, if defined.
17086 Use ACONCAT rather than a fixed-length buffer. Update recursive calls.
17087 (simplify_test_exp): Pass attr to evaluate_eq_attr.
17088 (add_attr_value): New function, split out from...
17089 (gen_attr): ...here. Handle DEFINE_ENUM_ATTR.
17090 (write_test_expr): Pass attr to evaluate_eq_attr.
17091 (write_attr_get): Use the enum_name as the enum tag, if defined.
17092 (write_attr_valueq): Use the enum_name as a prefix, if defined.
17093 (find_attr): Initialize enum_name.
17094 (main): Handle DEFINE_ENUM_ATTR.
17095 * gensupport.c (process_rtx): Likewise.
17096 * config/mips/mips.h (mips_tune_attr): Delete.
17097 * config/mips/mips.md (cpu): Use define_attr_enum.
17098
24609606
RS
170992010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17100
17101 * doc/md.texi (define_c_enum, define_enum): Document.
17102 * read-md.h (md_constant): Add a parent_enum field.
17103 (enum_value, enum_type): New structures.
17104 (upcase_string, traverse_enum_types): Declare.
17105 * read-md.c (enum_types): New variable.
17106 (upcase_string, add_constant): New functions.
17107 (handle_constants): Don't create the hash table here.
17108 Use add_constant.
17109 (traverse_md_constants): Don't check for a null md_constants.
17110 (decimal_string, handle_enum, traverse_enum_types): New functions.
17111 (read_md_files): Initialize md_constants and md_enums.
17112 * genconstants.c (print_md_constant): Ignore info argument.
17113 Only print constants that belong to no enum.
17114 (print_enum_type): New function.
17115 (main): Don't pass stdout to print_md_constant. Call print_enum_type
17116 for each defined enum type.
17117 * config/mips/mips.md (processor): New define_enum.
17118 (unspec): New define_c_enum.
17119 (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
17120 (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
17121 (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
17122 (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
17123 (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
17124 (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
17125 (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
17126 (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
17127 (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
17128 (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
17129 (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
17130 (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
17131 (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
17132 (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
17133 (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
17134 (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
17135 (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
17136 (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
17137 (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
17138 (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
17139 (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
17140 (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
17141 (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
17142 (UNSPEC_RDDSP): Move to mips-dsp.md.
17143 (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
17144 (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
17145 (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
17146 (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
17147 (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
17148 (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
17149 (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
17150 (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
17151 (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
17152 (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
17153 (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
17154 (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
17155 (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
17156 Moved to mips-dspr2.md.
17157 (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
17158 (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
17159 (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
223c6c5d 17160 (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
24609606
RS
17161 (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
17162 (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
17163 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
17164 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
17165 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
17166 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
17167 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
17168 UNSPEC_LOONGSON_PSADBH)
24609606
RS
17169 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
17170 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
17171 (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
17172 (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
17173 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
17174 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
223c6c5d 17175 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
24609606
RS
17176 (cpu): Update comment.
17177 * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
17178 (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
17179 (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
17180 (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
223c6c5d
EB
17181 * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
17182 UNSPEC_LOONGSON_PCMPEQ)
17183 (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
17184 UNSPEC_LOONGSON_PINSR_0)
24609606
RS
17185 (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
17186 (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
17187 (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
17188 (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
223c6c5d
EB
17189 (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
17190 UNSPEC_LOONGSON_PSADBH)
24609606
RS
17191 (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
17192 (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
17193 (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
17194 * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
17195 (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
17196 (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
17197 (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
17198 * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
17199 (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
17200 (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
17201 (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
17202 (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
17203 (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
17204 (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
17205 (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
17206 (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
17207 (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
17208 (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
17209 (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
17210 (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
17211 (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
17212 (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
17213 (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
17214 (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
17215 (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
17216 (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
17217 (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
17218 (UNSPEC_RDDSP): Moved from mips.md.
17219 * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
17220 (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
17221 (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
17222 (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
17223 (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
17224 (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
17225 (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
17226 (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
17227 (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
17228 (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
17229 (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
17230 (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
17231 (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
17232 (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
17233 * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
17234 (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
17235 (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
17236 (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
17237 (UNSPEC_SCC): Moved from mips.md.
17238 * config/mips/mips.c (mips_arch, mips_tune): Change enum from
17239 "processor_type" to "processor".
17240 (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
17241 * config/mips/mips.h (processor_type): Delete.
17242 (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
17243 "processor_type" to "processor".
17244
c513ce77
RS
172452010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17246
17247 * configure.ac (tm_include_list): Add insn-constants.h.
17248 * configure: Regenerate.
17249 * Makefile.in (GTM_H): Move insn-constants.h here from...
17250 (TM_H): ...here.
17251 * mkconfig.sh: Remove special handling for insn-constants.h.
17252
9b68b6ea
RS
172532010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17254
17255 * Makefile.in (BUILD_RTL): Move build/read-md.o to...
17256 (BUILD_MD): ...this new variable.
17257 (simple_generated_rtl_h, simple_generated_rtl_c): New variables
17258 that include the old contents of simple_generated_h and
17259 simple_generated_c.
17260 (simple_generated_h, simple_generated_c): Include them. Add
17261 insn-constants.h.
17262 (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
17263 and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
17264 Remove these dependencies from the main rule and include
17265 insn-conditions.md in the command line only if it appears
17266 in the dependency list.
17267 (insn-constants.h, s-constants): Delete.
17268 (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
17269 or gensupport.h.
17270 (build/genmddeps.o): Likewise.
17271 (genprogrtl): New variable that contains everything from genprogmd
17272 except mddeps and constants.
17273 (genprogmd): Redefine in terms of genprogrtl. Make these programs
17274 depend on $(BUILD_MD)
17275 (genprog): New variable. Make these programs depend on
17276 $(BUILD_ERRORS).
17277 * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
17278 (main): Use read_md_files instead of init_rtx_reader_args.
17279 * genconstants.c: As for genmddeps.c.
17280 * read-md.h (read_skip_construct): Declare.
17281 * read-md.c (read_skip_construct): New function.
17282 (handle_file): Allow a null handle_directive, skipping the
17283 construct if so.
17284 (parse_include): Update the comment accordingly.
17285
600ab3fc
RS
172862010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17287
17288 * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
17289 * genmddeps.c: Include read-md.h.
17290 (main): Call init_rtx_reader_args instead of init_md_reader_args.
17291 * genattr.c (main): Likewise.
17292 * genattrtab.c (main): Likewise.
17293 * genautomata.c (main): Likewise.
17294 * gencodes.c (main): Likewise.
17295 * genconditions.c (main): Likewise.
17296 * genconfig.c (main): Likewise.
17297 * genconstants.c (main): Likewise.
17298 * genemit.c (main): Likewise.
17299 * genextract.c (main): Likewise.
17300 * genflags.c (main): Likewise.
17301 * genopinit.c (main): Likewise.
17302 * genoutput.c (main): Likewise.
17303 * genpeep.c (main): Likewise.
17304 * genrecog.c (main): Likewise.
17305 * genpreds.c (main): Likewise.
17306 * gensupport.h (in_fname): Move to read-md.h.
17307 (init_md_reader_args_cb): Rename to...
17308 (init_rtx_reader_args_cb): ...this and return a bool.
17309 (init_md_reader_args): Rename to...
17310 (init_rtx_reader_args): ...this and return a bool.
17311 (include_callback): Move to read-md.h.
17312 * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
17313 (file_name_list, first_dir_md_include): Move to read-md.c
17314 (first_bracket_include): Delete unused variable.
17315 (last_dir_md_include): Move to read-md.c.
17316 (process_include): Delete, moving code to read-md.c:handle_include.
17317 (process_rtx): Don't handle INCLUDE.
17318 (save_string): Delete.
17319 (rtx_handle_directive): New function.
17320 (init_md_reader_args_cb): Rename to...
17321 (init_rtx_reader_args_cb): ...this and return a boolean success value.
17322 Use read_md_args.
17323 (init_md_reader_args): Rename to...
17324 (init_rtx_reader_args): ...this and return a boolean success value.
17325 * rtl.def (INCLUDE): Delete.
17326 * rtl.h (read_rtx): Remove "int *" argument. Add "const char *"
17327 argument.
17328 * read-rtl.c (read_conditions): Don't gobble ')' here.
17329 (read_mapping): Likewise.
17330 (read_rtx): Remove LINENO argument. Add RTX_NAME argument.
17331 Handle top-level non-rtx constructs here rather than in read_rtx_1.
17332 Store the whole queue in *X. Remove call to init_md_reader.
17333 (read_rtx_1): Rename to...
17334 (read_rtx_code): ...this. Call read_nested_rtx to read subrtxes.
17335 Don't handle top-level non-rtx constructs here. Don't handle (nil)
17336 here.
17337 (read_nested_rtx): New function. Handle (nil) here rather than
17338 in read_rtx_code.
17339 (read_rtx_variadic): Call read_nested_rtx to read subrtxes. Don't
17340 gobble ')' here.
17341 * read-md.h (directive_handler_t): New type.
17342 (in_fname, include_callback): Moved from read-md.h.
17343 (read_constants, init_md_reader): Delete.
17344 (read_md_files): Declare.
17345 * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
17346 (last_dir_md_include_ptr, include_callback, max_include_len): Moved
17347 from gensupport.c.
17348 (read_constants): Rename to...
17349 (handle_constants): ...this. Don't gobble ')' here.
17350 (handle_include, handle_file, handle_toplevel_file)
17351 (parse_include): New functions, mostly taken from gensupport.c.
17352 (init_md_reader): Subsume into...
17353 (read_md_files): ...this new function.
17354
7f7c467f
RS
173552010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17356
17357 * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
17358 (unread_char): Decrement read_md_lineno after putting back '\n'.
17359 * read-md.c (fatal_with_file_and_line): Push back any characters
17360 that we decide not to add to the context.
17361 (read_skip_spaces): Don't increment read_md_lineno here. Avoid using
17362 fatal_expected_char in cases where '/' ends a line (for example).
17363 (read_name): Don't increment read_md_lineno here.
17364 (read_escape): Likewise.
17365 (read_quoted_string): Likewise.
17366 (read_braced_string): Likewise.
17367
9f418533
RS
173682010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17369
17370 * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
17371 (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
17372 * genconstants.c: Include read-md.h.
17373 * read-rtl.c (md_constants): Move to read-md.c.
17374 (md_name): Move to read-md.h.
17375 (initialize_iterators): Use leading_string_hash instead of def_hash
17376 and leading_string_eq_p instead of def_name_eq_p.
17377 (read_name): Move to read-md.c.
17378 (def_hash, def_name_eq_p): Delete.
17379 (read_constants, traverse_md_constants): Move to read-md.c.
17380 * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
17381 * read-md.h: Include hashtab.h.
17382 (md_name): Moved from read-rtl.c.
17383 (md_constant): Moved from read-md.h.
17384 (leading_string_hash, leading_string_eq_p, read_name)
17385 (read_constants, traverse_md_constants): Declare.
17386 * read-md.c (md_constants): Moved from read-rtl.c.
17387 (leading_string_hash, leading_string_eq_p): New functions.
17388 (read_name, read_constants, traverse_md_constants): Moved from
17389 read-rtl.c.
17390
82f8e3fd
RS
173912010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17392
17393 * read-rtl.c (md_name): New structure.
17394 (read_name): Take an md_name instead of a buffer pointer.
17395 Use the "string" field instead of strcpy when expanding constants.
17396 (read_constants): Remove the tmp_char argument. Update the calls
17397 to read_name, using two local name buffers instead of the tmp_char
17398 argument. Merge the constant-creation code.
17399 (read_conditions): Remove the tmp_char argument. Update the calls
17400 to read_name, using a local name buffer instead of the tmp_char
17401 argument.
17402 (read_mapping): Replace tmp_char variable with a local name buffer.
17403 Update the calls to read_name.
17404 (read_rtx_1): Likewise. Update the calls to read_constants and
17405 read_conditions.
17406
bb933490
RS
174072010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17408
17409 * Makefile.in (build/read-md.o): Depend on errors.h.
17410 * read-md.h (error_with_line): Declare.
17411 * read-md.c: Include errors.h.
17412 (message_with_line_1): New function, extracted from...
17413 (message_with_line): ...here.
17414 (error_with_line): New function.
17415 * genattrtab.c: If a call to message_with_line is followed by
17416 "have_error = 1;", replace both statements with a call to
17417 error_with_line.
17418 * genoutput.c: Likewise.
17419 * genpreds.c: Likewise.
17420 * genrecog.c: If a call to message_with_line is followed by
17421 "error_count++;", replace both statements with a call to
17422 error_with_line.
17423 (errorcount): Delete.
17424 (main): Don't check it.
17425 * gensupport.c: If a call to message_with_line is followed by
17426 "errors = 1;", replace both statements with a call to error_with_line.
17427 (errors): Delete.
17428 (process_define_cond_exec): Check have_error instead of errors.
17429 (init_md_reader_args_cb): Likewise. Don't set errors.
17430
c5e88b39
RS
174312010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17432
17433 * read-md.h (read_md_file): Declare.
17434 (read_char, unread_char): New functions.
17435 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
17436 (read_quoted_string, read_string): Remove FILE * argument.
17437 * read-md.c (read_md_file): New variable.
17438 (read_md_filename, read_md_lineno): Update comments and remove
17439 unnecessary initialization.
17440 (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
17441 (read_escape, read_quoted_string, read_braced_string, read_string):
17442 Remove FILE * argument. Update calls accordingly, using read_char
17443 and unread_char instead of getc and ungetc.
17444 * rtl.h (read_rtx): Remove FILE * argument.
17445 * read-rtl.c (iterator_group): Remove FILE * argument from
17446 "find_builtin".
17447 (iterator_traverse_data): Remove "infile" field.
17448 (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
17449 (add_mapping, read_name, read_constants, read_conditions)
17450 (validate_const_int, find_iterator, read_mapping, check_code_iterator)
17451 (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
17452 Remove file arguments from all calls, using read_char and unread_char
17453 instead of getc and ungetc.
17454 * gensupport.c (process_include): Preserve read_md_file around
17455 the include. Set read_md_file to the handle of the included file.
17456 Update call to read_rtx.
17457 (init_md_reader_args_cb): Set read_md_file to the handle of the file
17458 and remove local FILE *. Update calls to read_rtx.
17459
d2a3ce4e
RS
174602010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17461
17462 * read-md.h (read_rtx_lineno): Rename to...
17463 (read_md_lineno): ...this.
17464 (read_rtx_filename): Rename to...
17465 (read_md_filename): ...this.
17466 (copy_rtx_ptr_loc): Rename to...
17467 (copy_md_ptr_loc): ...this.
17468 (print_rtx_ptr_loc): Rename to...
17469 (print_md_ptr_loc): ...this.
17470 * read-md.c: Likewise. Update references after renaming.
17471 (string_obstack): Replace RTL with MD in comment.
17472 (set_rtx_ptr_loc): Rename to...
17473 (set_md_ptr_loc): ...this.
17474 (get_rtx_ptr_loc): Rename to...
17475 (get_md_ptr_loc): ...this.
17476 * genconditions.c: Update references after renaming.
17477 * genemit.c: Likewise.
17478 * genoutput.c: Likewise.
17479 * genpreds.c: Likewise.
17480 * gensupport.c: Likewise.
17481 * read-rtl.c: Likewise.
17482
10692477
RS
174832010-06-10 Richard Sandiford <rdsandiford@googlemail.com>
17484
17485 * Makefile.in (READ_MD_H): New variable.
17486 (BUILD_RTL): Add build/read-md.o.
17487 (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
17488 (build/gensupport.o, build/read-rtl.o, build/genattr.o)
17489 (build/genattrtab.o, build/genconditions.o build/genemit.o)
17490 (build/genextract.o, build/genflags.o, build/genoutput.o)
17491 (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
17492 (build/read-md.o): New rule.
17493 * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
17494 (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
17495 * coretypes.h: ...here.
17496 * lto-wrapper.c: Include coretypes.h instead of defaults.h.
17497 * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
17498 * genattr.c: Include read-md.h.
17499 * genattrtab.c: Likewise.
17500 * genconditions.c: Likewise.
17501 * genemit.c: Likewise.
17502 * genextract.c: Likewise.
17503 * genflags.c: Likewise.
17504 * genoutput.c: Likewise.
17505 * genpreds.c: Likewise.
17506 * genrecog.c: Likewise.
17507 * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
17508 (join_c_conditions, print_c_condition, read_rtx_filename)
17509 (read_rtx_lineno): Move to read-md.h.
17510 * read-rtl.c: Include read-md.h.
17511 (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
17512 (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
17513 (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
17514 (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
17515 (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
17516 (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
17517 (read_braced_string, read_string): Move to read-md.c.
17518 (read_rtx): Move some initialization to init_md_reader and call
17519 init_md_reader here.
17520 * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
17521 Move to read-md.h.
17522 * gensupport.c: Include read-md.h.
3d25c396 17523 (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
10692477
RS
17524 * read-md.h, read-md.c: New files.
17525
feab9982
AS
175262010-06-10 Anatoly Sokolov <aesok@post.ru>
17527
17528 * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17529 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
17530 * config/moxie/moxie-protos.h (moxie_function_value): Remove.
17531 * config/moxie/moxie.c (moxie_function_value): Make static.
17532 (moxie_libcall_value, moxie_function_value_regno_p): New functions.
17533 (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
17534
567a4beb
MJ
175352010-06-10 Martin Jambor <mjambor@suse.cz>
17536
17537 * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
17538 * dbgcnt.def (tree_sra): New counter.
17539 * tree-sra.c: Include dbgcnt.h.
17540 (gate_intra_sra): Check tree_sra debug counter.
17541
591d4f4a
MJ
175422010-06-10 Martin Jambor <mjambor@suse.cz>
17543
17544 PR tree-optimization/44258
17545 * tree-sra.c (build_access_subtree): Return false iff there is a
17546 partial overlap.
17547 (build_access_trees): Likewise.
17548 (analyze_all_variable_accesses): Disqualify candidates if
17549 build_access_trees returns true for them.
17550
b933b33a
AO
175512010-06-10 Alexandre Oliva <aoliva@redhat.com>
17552
17553 PR debug/41371
17554 * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
17555 tail-recurse into canonical node. Fast-forward over
17556 non-canonical VALUEs.
17557
ff534e89
L
175582010-06-10 H.J. Lu <hongjiu.lu@intel.com>
17559
17560 PR boostrap/44470
17561 * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
17562 (*addsi_1_zext) <TYPE_LEA>: Likewise.
17563 (add lea splitter): Likewise.
17564 (add_zext lea splitter): Likewise.
17565
1cb42611
JM
175662010-06-10 Joseph Myers <joseph@codesourcery.com>
17567
17568 * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
17569
29aba2bb
JH
175702010-06-10 Jan Hubicka <jh@suse.cz>
17571
17572 * df-problems.c (df_live_problem_data): Add live_bitmaps.
17573 (df_live_alloc): Initialize problem data and live_osbtacks.
17574 (df_live_finalize): Remove obstack, problem data; do not
17575 clear all bitmaps.
17576 (df_live_top_dump, df_live_bottom_dump): Do not dump old
17577 data when not allocated.
17578 (df_live_verify_solution_start): Do not allocate problem data.
17579 (df_live_verify_solution_end): Check if out is allocated.
17580 (struct df_md_problem_data): New structure.
17581 (df_md_alloc): Allocate problem data.
17582 (df_md_free): Free problem data; do not clear bitmaps.
17583
bfa912a8
JB
175842010-06-10 Jan Beulich <jbeulich@novell.com>
17585
2aa9a961 17586 PR bootstrap/37304
bfa912a8
JB
17587 * configure.ac: Replace $() with ${} when intending to expand
17588 variables rather than invoking commands.
17589 * configure: Re-generate.
17590
21d9971a
JH
175912010-06-10 Jan Hubicka <jh@suse.cz>
17592
fea87e28 17593 PR rtl-optimization/44460
3d25c396
UB
17594 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17595 TYPE_NEEDS_CONSTRUCTING sanity check.
21d9971a 17596
07a67d6a
GP
175972010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
17598
17599 * doc/include/fdl.texi: Move to GFDL version 1.3.
17600
17601 * doc/cpp.texi: Move to GFDL version 1.3.
17602 * doc/gcc.texi: Move to GFDL version 1.3. Fix copyright years.
17603 * doc/gccint.texi: Move to GFDL version 1.3.
17604 * doc/gcov.texi: Move to GFDL version 1.3. Update copyright years.
17605 * doc/install.texi: Move to GFDL version 1.3. Fix copyright years.
17606 * doc/invoke.texi: Move to GFDL version 1.3.
17607
15e80fc3
JH
176082010-06-09 Jan Hubicka <jh@suse.cz>
17609
17610 * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
17611 Break out from ...
17612 (propagate) ... here; swap the order.
17613
377002a9
JH
176142010-06-09 Jan Hubicka <jh@suse.cz>
17615
17616 * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
17617 bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
17618 bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
17619 bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
17620
50814135
CF
176212010-06-09 Changpeng Fang <changpeng.fang@amd.com>
17622
17623 * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
17624 Do not the gather memory reference in the outer loop if the step
17625 is not a constant.
17626
f7963a7c
CF
176272010-06-09 Changpeng Fang <changpeng.fang@amd.com>
17628
3d25c396
UB
17629 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
17630 Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
17631 8 to 4. Minor change of the related comments.
f7963a7c 17632
7472eb13
SP
176332010-06-09 Sebastian Pop <sebastian.pop@amd.com>
17634
17635 * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
17636 the scev analysis when the variable is not used outside the loop
17637 in a close phi node: call compute_overall_effect_of_inner_loop.
17638
c12e2a5f
SP
176392010-06-09 Sebastian Pop <sebastian.pop@amd.com>
17640
17641 * graphite-sese-to-poly.c (single_pred_cond): Renamed
17642 single_pred_cond_non_loop_exit. Return NULL for loop exit edges.
17643 (build_sese_conditions_before): Renamed call to single_pred_cond.
17644 (build_sese_conditions_after): Same.
17645
072edf07
SP
176462010-06-09 Sebastian Pop <sebastian.pop@amd.com>
17647
17648 * graphite-poly.h: Fix comments and indentation.
17649 * graphite-sese-to-poly.c: Same.
17650 (build_sese_conditions_before): Compute stmt and gbb only when needed.
17651 * tree-chrec.c: Fix comments and indentation.
17652 (tree-ssa-loop-niter.c): Same.
17653
642d55de
EB
176542010-06-09 Eric Botcazou <ebotcazou@adacore.com>
17655
17656 PR rtl-optimization/42461
17657 * dce.c (deletable_insn_p): Return true for const or pure calls again.
17658 * except.c (insn_could_throw_p): Return false if !flag_exceptions.
17659
a2b709cc
JH
176602010-06-09 Jan Hubicka <jh@suse.cz>
17661
17662 * bitmap.c (bitmap_and): Walk array forward.
17663 (bitmap_and_compl_into): Likewise.
17664 (bitmap_xor): Likewise.
17665 (bitmap_xor_into): Likewise.
17666 (bitmap_equal_p): Likewise.
17667 (bitmap_intersect_p): Likewise.
17668 (bitmap_intersect_compl_p): Likewise.
17669 (bitmap_ior_and_into): Likewise.
17670 (bitmap_elt_copy): Likewise.
17671 (bitmap_and_compl): Likewise.
17672 (bitmap_elt_ior): Likewise.
17673
807303cf
DK
176742010-06-09 Dave Korn <dave.korn.cygwin@gmail.com>
17675
17676 * opts-common.c (prune_options): Ensure replacement argv array
17677 is correctly terminated by a NULL entry.
17678
06795261
JH
176792010-06-09 Jan Hubicka <jh@suse.cz>
17680
17681 * cgraph.h (varpool_first_static_initializer,
17682 varpool_next_static_initializer): Make checking only when
17683 checking enabled.
17684 * tree-vectorizer.h (vinfo_for_stmt): Remove check.
17685 (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
17686 gcc_assert to gcc_checking_assert.
3d25c396
UB
17687 * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
17688 phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
06795261 17689 op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
3d25c396
UB
17690 op_iter_init_phiuse, op_iter_init_phidef,
17691 array_ref_contains_indirect_ref, ref_contains_array_ref): Use
17692 gcc_checking_assert.
06795261
JH
17693 * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
17694 * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
17695 partition_is_global, live_on_entry, live_on_exit,
17696 live_merge_and_clear): Likewise.
17697 * system.h (gcc_checking_assert): New macro.
17698 * gimple.h (set_bb_seq): Use gcc_checking_assert.
17699
8d681dbf
JM
177002010-06-09 Jason Merrill <jason@redhat.com>
17701
17702 * Makefile.in (TAGS): Collect tags info from c-family.
17703
2bc0a660
JH
177042010-06-09 Jan Hubicka <jh@suse.cz>
17705
17706 * gimple.h (gcc_gimple_checking_assert): New macro.
3d25c396
UB
17707 (gimple_set_def_ops, gimple_set_use_ops,
17708 gimple_set_vuse, gimple_set_vdef,
17709 gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
17710 gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
17711 gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
17712 gimple_asm_output_op, gimple_asm_output_op_ptr,
17713 gimple_asm_set_output_op, gimple_asm_clobber_op,
17714 gimple_asm_set_clobber_op, gimple_asm_label_op,
17715 gimple_asm_set_label_op, gimple_try_set_kind,
17716 gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
17717 gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
17718 gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
17719 gimple_omp_for_index_ptr, gimple_omp_for_set_index,
17720 gimple_omp_for_initial, gimple_omp_for_initial_ptr,
17721 gimple_omp_for_set_initial, gimple_omp_for_final,
17722 gimple_omp_for_final_ptr, gimple_omp_for_set_final,
17723 gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
17724 gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
17725 conditional with ENABLE_GIMPLE_CHECKING.
17726 (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
2bc0a660 17727
6521ac85
SL
177282010-06-09 Sandra Loosemore <sandra@codesourcery.com>
17729
17730 * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
17731 (get_computation_cost_at): Use it.
17732 (determine_use_iv_cost_condition): Likewise.
17733 (determine_iv_cost): Likewise.
17734
76c85743
RG
177352010-06-09 Richard Guenther <rguenther@suse.de>
17736
17737 * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
17738 replace constants.
17739
5d7eb7e2
KT
177402010-06-09 Kai Tietz <kai.tietz@onevision.com>
17741
17742 * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
17743
1536b6ab
MJ
177442010-06-09 Martin Jambor <mjambor@suse.cz>
17745
17746 PR tree-optimization/44423
17747 * tree-sra.c (dump_access): Dump also grp_assignment_read.
17748 (analyze_access_subtree): Pass negative allow_replacements to children
17749 if the current type is scalar.
17750
f52d94aa 177512010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
2d7f5f9b
JR
17752
17753 PR testsuite/42843
17754 * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
17755 * doc/plugins.texi (Plugin license check): Update information
17756 on type of plugin_is_GPL_compatible.
17757 * Makefile.in (PLUGINCC): Define as $(COMPILER).
17758 (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
17759
eef5973d
BS
177602010-06-09 Bernd Schmidt <bernds@codesourcery.com>
17761
17762 * config/arm/arm.c (thumb2_reorg): New function.
17763 (arm_reorg): Call it.
17764 * config/arm/thumb2.md (define_peephole2 for flag clobbering
17765 arithmetic operations): Delete.
17766
2cc0672a
EW
177672010-06-09 Edmar Wienskoski <edmar@freescale.com>
17768
17769 PR target/44067
17770 * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
17771 e500v2 target.
17772
f1c3bf86
JR
177732010-06-09 Joern Rennecke <joern.rennecke@embecosm.com>
17774
2d7f5f9b 17775 PR plugins/44459
f1c3bf86
JR
17776 * gcc-plugin.h: Encapsulate all declarations in extern "C".
17777
a7280dfb
JH
177782010-06-08 Jan Hubicka <jh@suse.cz>
17779
17780 * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
17781 ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
17782
e89065a1
SL
177832010-06-08 Sandra Loosemore <sandra@codesourcery.com>
17784
17785 PR tree-optimization/39874
17786 PR middle-end/28685
17787 * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
17788 Declare.
17789 * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
17790 same_bool_result_p): New.
17791 (and_var_with_comparison, and_var_with_comparison_1,
17792 and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
17793 (or_var_with_comparison, or_var_with_comparison_1,
17794 or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
17795 * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
17796 maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
17797 of combine_comparisons.
17798 * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
17799
c547eb0d
AS
178002010-06-08 Anatoly Sokolov <aesok@post.ru>
17801
17802 * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
17803 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
55f9fe15
AS
17804 * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
17805 pdp11_function_value_regno_p): New functions.
c547eb0d
AS
17806 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
17807 TARGET_FUNCTION_VALUE_REGNO_P): Define.
17808
29a551b3
KH
178092010-06-08 Kazu Hirata <kazu@codesourcery.com>
17810
17811 * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
17812 Thumb-2 in the MINUS case.
17813
a9429e29
LB
178142010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
17815
17816 * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
17817
17818 * doc/gty.texi (GTY Options): Document typed GC allocation and
17819 variable_size GTY option.
17820
17821 * ggc-internal.h: New.
17822
17823 * ggc.h: Update copyright year.
17824 (digit_string): Move to stringpool.c.
17825 (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
17826 (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
17827 (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
17828 (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
17829 (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
17830 (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
17831 (ggc_force_collect, ggc_get_size, ggc_statistics)
17832 (ggc_print_common_statistics): Move to ggc-internal.h.
17833 (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
17834 (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
17835 (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
17836 (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
17837 (ggc_min_heapsize_heuristic, ggc_alloc_zone)
17838 (ggc_alloc_zone_pass_stat): Remove.
17839 (ggc_internal_alloc_stat, ggc_internal_alloc)
17840 (ggc_internal_cleared_alloc_stat): New.
17841 (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
17842 (ggc_internal_vec_alloc_stat)
17843 (ggc_internal_cleared_vec_alloc_stat)
17844 (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
17845 (ggc_alloc_atomic_stat, ggc_alloc_atomic)
17846 (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
17847 (ggc_cleared_alloc_ptr_array_two_args): New.
17848 (htab_create_ggc, splay_tree_new_ggc): Redefine.
17849 (ggc_splay_alloc): Change the type of the first argument to
17850 enum gt_types_enum.
17851 (ggc_alloc_string): Make macro.
17852 (ggc_alloc_string_stat): New.
17853 (ggc_strdup): Redefine.
17854 (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
17855 (ggc_alloc_rtvec_sized): New.
17856 (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
17857 (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
17858 (ggc_internal_cleared_alloc_zone_stat)
17859 (ggc_internal_zone_alloc_stat)
17860 (ggc_internal_zone_cleared_alloc_stat)
17861 (ggc_internal_zone_vec_alloc_stat)
17862 (ggc_alloc_zone_rtx_def_stat)
17863 (ggc_alloc_zone_tree_node_stat)
17864 (ggc_alloc_zone_cleared_tree_node_stat)
17865 (ggc_alloc_cleared_gimple_statement_d_stat): New.
17866
17867 * ggc-common.c: Include ggc-internal.h.
17868 (ggc_internal_cleared_alloc_stat): Rename from
17869 ggc_alloc_cleared_stat.
17870 (ggc_realloc_stat): Use ggc_internal_alloc_stat.
17871 (ggc_calloc): Remove.
17872 (ggc_cleared_alloc_htab_ignore_args): New.
17873 (ggc_cleared_alloc_ptr_array_two_args): New.
17874 (ggc_splay_alloc): Add obj_type parameter.
17875 (init_ggc_heuristics): Formatting fixes.
17876
17877 * ggc-none.c: Update copyright year.
17878 (ggc_alloc_stat): Rename to ggc_alloc_stat.
17879 (ggc_alloc_cleared_stat): Rename to
17880 ggc_internal_cleared_alloc_stat.
17881 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
17882
17883 * ggc-page.c: Update copyright year. Include ggc-internal.h.
17884 Remove references to ggc_alloc in comments.
17885 (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
17886 (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
17887 (new_ggc_zone, destroy_ggc_zone): Remove.
17888 (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
17889
17890 * ggc-zone.c: Include ggc-internal.h. Remove references to
17891 ggc_alloc in comments.
17892 (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
17893 (ggc_internal_alloc_zone_pass_stat): New.
17894 (ggc_internal_cleared_alloc_zone_stat): New.
17895 (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
17896 (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
17897 (new_ggc_zone, destroy_ggc_zone): Remove.
17898
17899 * stringpool.c: Update copyright year. Include ggc-internal.h
17900 (digit_vector): Make static.
17901 (digit_string): Moved from ggc.h.
17902 (stringpool_ggc_alloc): Use ggc_alloc_atomic.
17903 (ggc_alloc_string): Rename to ggc_alloc_string_stat.
17904
17905 * Makefile.in (GGC_INTERNAL_H): New.
17906 (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
17907 $(GGC_INTERNAL_H) to dependencies.
17908
17909 * gentype.c: Update copyright year.
17910 (walk_type): Accept variable_size GTY option.
17911 (USED_BY_TYPED_GC_P): New macro.
17912 (write_enum_defn): Use USED_BY_TYPED_GC_P. Do not output
17913 whitespace at the end of strings.
17914 (get_type_specifier, variable_size_p): New functions.
17915 (alloc_quantity, alloc_zone): New enums.
17916 (write_typed_alloc_def): New function.
17917 (write_typed_struct_alloc_def): Likewise.
17918 (write_typed_typed_typedef_alloc_def): Likewise.
17919 (write_typed_alloc_defns): Likewise.
17920 (output_typename, write_splay_tree_allocator_def): Likewise.
17921 (write_splay_tree_allocators): Likewise.
17922 (main): Call write_typed_alloc_defns and
17923 write_splay_tree_allocators.
17924
17925 * lto-streamer.h (lto_file_decl_data_ptr): New.
17926
17927 * passes.c (order): Define using cgraph_node_ptr.
17928
17929 * strinpool.c (struct string_pool_data): Declare nested_ptr using
17930 ht_identifier_ptr.
17931
17932 * gimple.h (union gimple_statement_d): Likewise.
17933
17934 * rtl.h (struct rtx_def): Likewise.
17935 (struct rtvec_def): Likewise.
17936
17937 * tree.h (union tree_node): Likewise.
17938
17939 * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
17940
17941 * cfgloop.c (record_loop_exits): Use htab_create_ggc.
17942
17943 * tree-scalar-evolution.c (scev_initialize): Likewise.
17944
17945 * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
17946
17947 * dwarf2asm.c (dw2_force_const_mem): Likewise.
17948
17949 * omp-low.c (lower_omp_critical): Likewise.
17950
17951 * bitmap.h (struct bitmap_head_def): Update comment to not
17952 reference ggc_alloc.
17953
17954 * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
17955
17956 * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
17957
17958 * ipa-prop.c (duplicate_ggc_array): Rename to
17959 duplicate_ipa_jump_func_array. Use typed GC allocation.
17960 (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
17961
17962 * gimple.c (gimple_alloc_stat): Use
17963 ggc_alloc_cleared_gimple_statement_d_stat.
17964
17965 * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
17966
17967 * tree.c (make_node_stat): Use
17968 ggc_alloc_zone_cleared_tree_node_stat.
17969 (make_tree_vec_stat): Likewise.
17970 (build_vl_exp_stat): Likewise.
17971 (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
17972 (make_tree_binfo_stat): Likewise.
17973 (tree_cons_stat): Likewise.
17974
17975 * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
17976 (shallow_copy_rtx_stat): Likewise.
17977 (make_node_stat): Likewise.
17978
17979 * lto-symtab.c: Fix comment.
17980
17981 * tree-cfg.c (create_bb): Update comment to not reference
17982 ggc_alloc_cleared.
3d25c396 17983 * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
a9429e29
LB
17984
17985 * varpool.c (varpool_node): Use typed GC allocation.
17986 (varpool_extra_name_alias): Likewise.
17987
17988 * varasm.c (emutls_decl): Likewise.
17989 (get_unnamed_section): Likewise.
17990 (get_noswitch_section): Likewise.
17991 (get_section): Likewise.
17992 (get_block_for_section): Likewise.
17993 (build_constant_desc): Likewise.
17994 (create_constant_pool): Likewise.
17995 (force_const_mem): Likewise.
17996
17997 * tree.c (build_vl_exp_stat): Likewise.
17998 (build_real): Likewise.
17999 (build_string): Likewise.
18000 (decl_debug_expr_insert): Likewise.
18001 (decl_value_expr_insert): Likewise.
18002 (type_hash_add): Likewise.
18003 (build_omp_clause): Likewise.
18004
18005 * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
18006
18007 * tree-ssa.c (init_tree_ssa): Likewise.
18008
18009 * tree-ssa-structalias.c (heapvar_insert): Likewise.
18010
18011 * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
18012
18013 * tree-ssa-loop-niter.c (record_estimate): Likewise.
18014
18015 * tree-ssa-alias.c (get_ptr_info): Likewise.
18016
18017 * tree-scalar-evolution.c (new_scev_info_str): Likewise.
18018
18019 * tree-phinodes.c (allocate_phi_node): Likewise.
18020
18021 * tree-iterator.c (tsi_link_before): Likewise.
18022 (tsi_link_after): Likewise.
18023
18024 * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
18025
18026 * tree-dfa.c (create_var_ann): Likewise.
18027
18028 * tree-cfg.c (create_bb): Likewise.
18029
18030 * toplev.c (alloc_for_identifier_to_locale): Likewise.
18031 (general_init): Likewise.
18032
18033 * stringpool.c (stringpool_ggc_alloc): Likewise.
18034 (gt_pch_save_stringpool): Likewise.
18035
18036 * sese.c (if_region_set_false_region): Likewise.
18037
18038 * passes.c (do_per_function_toporder): Likewise.
18039
18040 * optabs.c (set_optab_libfunc): Likewise.
18041 (set_conv_libfunc): Likewise.
18042
18043 * lto-symtab.c (lto_symtab_register_decl): Likewise.
18044
18045 * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
18046 (input_eh_region): Likewise.
18047 (input_eh_lp): Likewise.
18048 (make_new_block): Likewise.
18049 (unpack_ts_real_cst_value_fields): Likewise.
18050
18051 * lto-section-in.c (lto_new_in_decl_state): Likewise.
18052
18053 * lto-cgraph.c (input_node_opt_summary): Likewise.
18054
18055 * loop-init.c (loop_optimizer_init): Likewise.
18056
18057 * lambda.h (lambda_vector_new): Likewise.
18058
18059 * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
18060
18061 * ira.c (update_equiv_regs): Likewise.
18062
18063 * ipa.c (cgraph_node_set_new): Likewise.
18064 (cgraph_node_set_add): Likewise.
18065 (varpool_node_set_new): Likewise.
18066 (varpool_node_set_add): Likewise.
18067
18068 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
18069 (duplicate_ipa_jump_func_array): Likewise.
18070 (ipa_read_node_info): Likewise.
18071
18072 * ipa-cp.c (ipcp_create_replace_map): Likewise.
18073
18074 * integrate.c (get_hard_reg_initial_val): Likewise.
18075
18076 * gimple.c (gimple_alloc_stat): Likewise.
18077 (gimple_build_omp_for): Likewise.
18078 (gimple_seq_alloc): Likewise.
18079 (gimple_copy): Likewise.
18080
18081 * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
18082 (gsi_insert_after_without_update): Likewise.
18083
18084 * function.c (add_frame_space): Likewise.
18085 (insert_temp_slot_address): Likewise.
18086 (assign_stack_temp_for_type): Likewise.
18087 (allocate_struct_function): Likewise.
18088 (types_used_by_var_decl_insert): Likewise.
18089
18090 * except.c (init_eh_for_function): Likewise.
18091 (gen_eh_region): Likewise.
18092 (gen_eh_region_catch): Likewise.
18093 (gen_eh_landing_pad): Likewise.
18094 (add_call_site): Likewise.
18095
18096 * emit-rtl.c (get_mem_attrs): Likewise.
18097 (get_reg_attrs): Likewise.
18098 (start_sequence): Likewise.
18099 (init_emit): Likewise.
18100
18101 * dwarf2out.c (new_cfi): Likewise.
18102 (queue_reg_save): Likewise.
18103 (dwarf2out_frame_init): Likewise.
18104 (new_loc_descr): Likewise.
18105 (find_AT_string): Likewise.
18106 (new_die): Likewise.
18107 (add_var_loc_to_decl): Likewise.
18108 (clone_die): Likewise.
18109 (clone_as_declaration): Likewise.
18110 (break_out_comdat_types): Likewise.
18111 (new_loc_list): Likewise.
18112 (loc_descriptor): Likewise.
18113 (add_loc_descr_to_each): Likewise.
18114 (add_const_value_attribute): Likewise.
18115 (tree_add_const_value_attribute): Likewise.
18116 (add_comp_dir_attribute): Likewise.
18117 (add_name_and_src_coords_attributes): Likewise.
18118 (lookup_filename): Likewise.
18119 (store_vcall_insn): Likewise.
18120 (dwarf2out_init): Likewise.
18121
18122 * dbxout.c (dbxout_init): Likewise.
18123
18124 * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
18125
18126 * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
18127
18128 * config/score/score7.c (score7_output_external): Likewise.
18129
18130 * config/score/score3.c (score3_output_external): Likewise.
18131
18132 * config/s390/s390.c (s390_init_machine_status): Likewise.
18133
18134 * config/rs6000/rs6000.c (builtin_function_type): Likewise.
18135 (rs6000_init_machine_status): Likewise.
18136 (output_toc): Likewise.
18137
18138 * config/pa/pa.c (pa_init_machine_status): Likewise.
18139 (get_deferred_plabel): Likewise.
18140
18141 * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
18142
18143 * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
18144
18145 * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
18146
18147 * config/mep/mep.c (mep_init_machine_status): Likewise.
18148 (mep_note_pragma_flag): Likewise.
18149
18150 * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
18151
18152 * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
18153
18154 * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
18155
18156 * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
18157 (i386_pe_maybe_record_exported_symbol): Likewise.
18158
18159 * config/i386/i386.c (get_dllimport_decl): Likewise.
18160 (ix86_init_machine_status): Likewise.
18161 (assign_386_stack_local): Likewise.
18162
18163 * config/frv/frv.c (frv_init_machine_status): Likewise.
18164
18165 * config/darwin.c (machopic_indirection_name): Likewise.
18166
18167 * config/cris/cris.c (cris_init_machine_status): Likewise.
18168
18169 * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
18170
18171 * config/avr/avr.c (avr_init_machine_status): Likewise.
18172
18173 * config/arm/arm.c (arm_init_machine_status): Likewise.
18174
18175 * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
18176 (alpha_need_linkage): Likewise.
18177 (alpha_use_linkage): Likewise.
18178
18179 * cgraph.c (cgraph_allocate_node): Likewise.
18180 (cgraph_create_edge_1): Likewise.
18181 (cgraph_create_indirect_edge): Likewise.
18182 (cgraph_add_asm_node): Likewise.
18183
18184 * cfgrtl.c (init_rtl_bb_info): Likewise.
18185
18186 * cfgloop.c (alloc_loop): Likewise.
18187 (rescan_loop_exit): Likewise.
18188
18189 * cfg.c (init_flow): Likewise.
18190 (alloc_block): Likewise.
18191 (unchecked_make_edge): Likewise.
18192
18193 * c-parser.c (c_parse_init): Likewise.
18194 (c_parse_file): Likewise.
18195
18196 * c-decl.c (bind): Likewise.
18197 (record_inline_static): Likewise.
18198 (push_scope): Likewise.
18199 (make_label): Likewise.
18200 (lookup_label_for_goto): Likewise.
18201 (finish_struct): Likewise.
18202 (finish_enum): Likewise.
18203 (c_push_function_context): Likewise.
18204
18205 * bitmap.c (bitmap_element_allocate): Likewise.
18206 (bitmap_gc_alloc_stat): Likewise.
18207
18208 * alias.c (record_alias_subset): Likewise.
18209 (init_alias_analysis): Likewise.
18210
49c8958b 182112010-06-08 Shujing Zhao <pearly.zhao@oracle.com>
3d25c396 18212
49c8958b
SZ
18213 * fold-const.c (fold_comparison): Remove redundant parenthesis.
18214 * tree-inline.c (expand_call_inline): Pass translated return value of
18215 cgraph_inline_failed_string to diagnostic function.
18216
5dfebe0a 182172010-06-08 Andrew Pinski <pinskia@gmail.com>
6a8f4e12
AP
18218 Shujing Zhao <pearly.zhao@oracle.com>
18219
18220 PR c/37724
18221 * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
18222 implicit bad conversions is initialization.
18223 (error_init): Use gmsgid instead of msgid for argument name and change
18224 the call for error.
18225 (pedwarn_init): Use gmsgid instead of msgid for argument name and
18226 change the call for pedwarn.
18227 (warning_init): Use gmsgid instead of msgid for argument name and
18228 change the call for warning.
18229
6e9e0126
NF
182302010-06-07 Nathan Froyd <froydnj@codesourcery.com>
18231
6a8f4e12 18232 * config/mips/mips-protos.h (mips_print_operand): Delete.
6e9e0126
NF
18233 (mips_print_operand_address): Delete.
18234 * config/mips/mips.h (mips_print_operand_punct): Delete.
18235 (PRINT_OPERAND): Delete.
18236 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18237 (PRINT_OPERAND_ADDRESS): Delete.
18238 * config/mips/mips.c (mips_print_operand_punct): Make static.
18239 (mips_print_operand_address): Make static.
18240 (mips_print_operand): Make static. Call
18241 mips_print_operand_punct_valid_p.
18242 (mips_print_operand_punct_valid_p): New function.
18243 (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
18244 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18245
f2eff9f8
JH
182462010-06-07 Jan Hubicka <jh@suse.cz>
18247
18248 PR middle-end/44454
18249 (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
18250 are allocated.
18251
10575b5d
KK
182522010-06-07 Kaz Kojima <kkojima@gcc.gnu.org>
18253
18254 * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
18255 name of RECORD.
18256
659b24d6
RO
182572010-06-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18258
18259 * doc/sourcebuild.texi (Effective-Target Keywords, Other
18260 attributes): Document gas.
18261
390b2b32
UB
182622010-06-07 Uros Bizjak <ubizjak@gmail.com>
18263
18264 * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
18265 <TYPE_LEA>: Split instruction.
18266 <default>: Remove alternative 2 handling.
18267 (*addsi_1_zext) <TYPE_LEA>: Split instruction.
18268 (add lea splitter): Generate SImode lea for mode sizes <= SImode.
18269 (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
18270
18271 (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
18272 (ashift_zext lea splitter): Use DImode for multiplication.
18273
18274 * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
18275 to generate addition.
18276
5498f011
JM
182772010-06-07 Joseph Myers <joseph@codesourcery.com>
18278
18279 * common.opt (fira-verbose): Use Var.
18280 (fpcc-struct-return): Use Init instead of VarExists.
18281 * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
18282 toplev.c.
18283 * flags.h (flag_signed_char, flag_short_enums,
18284 flag_pcc_struct_return, flag_ira_verbose,
3d25c396 18285 flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
5498f011 18286 * toplev.c (flag_detailed_statistics, flag_signed_char,
390b2b32 18287 flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
5498f011
JM
18288 (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
18289 * toplev.h (flag_crossjumping, flag_if_conversion,
18290 flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
18291 flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
18292 flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
18293 flag_cprop_registers, time_report, flag_ira_loop_pressure,
18294 flag_ira_coalesce, flag_ira_move_spills,
18295 flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
18296
e7f96023
JH
182972010-06-07 Jan Hubicka <jh@suse.cz>
18298
f2580bd8
L
18299 * df-core.c (df_analyze_problem): Do verification after allocation.
18300
e7f96023
JH
18301 * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
18302 (df_lr_alloc): Initialize problem data; move bitmaps to
18303 lr_bitmaps obstack.
18304 (df_lr_finalize): Free problem data; do not bother to free bitmaps.
18305 (df_lr_verify_solution_start): Do not initialize problem data;
18306 allocate bitmaps in lr_bitmaps.
18307 (df_lr_verify_solution_end): Do not free problem data.
18308
f10ea640
JH
183092010-06-07 Jan Hubicka <jh@suse.cz>
18310
18311 * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
18312 if caller is noreturn.
18313 * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
18314 * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
18315 * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
18316 * ipa-pure-const.c (check_decl): Add IPA parameter.
18317 (state_from_flags): New function.
18318 (better_state, worse_state): New functions.
18319 (check_call): When in IPA mode, do not care about callees.
18320 (check_load, check_store): Update.
18321 (check_ipa_load, check_ipa_store): New.
18322 (check_stmt): When in IPA mode, use IPA checkers.
18323 (analyze_function): Use state_from_flags.
18324 (propagate): Check indirect edges and references.
18325
5e52ffc4
KH
183262010-06-07 Kazu Hirata <kazu@codesourcery.com>
18327
18328 PR rtl-optimization/44404
18329 * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
3d25c396 18330 of count_occurrences to see if it's safe to modify mem_insn.
5e52ffc4 18331
ae0595b0
RG
183322010-06-07 Richard Guenther <rguenther@suse.de>
18333
18334 * gimplify.c (gimplify_cleanup_point_expr): For empty body
18335 and EH-only cleanup drop the cleanup instead of inserting it
18336 unconditionally.
18337
35e1a5e7
IR
183382010-06-07 Ira Rosen <irar@il.ibm.com>
18339
18340 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
18341 documentation.
18342 * targhooks.c (default_builtin_vectorization_cost): New function.
18343 * targhooks.h (default_builtin_vectorization_cost): Declare.
18344 * target.h (enum vect_cost_for_stmt): Define.
18345 (builtin_vectorization_cost): Change argument and comment.
18346 * tree-vectorizer.h: Remove cost model macros.
18347 * tree-vect-loop.c: Include target.h.
18348 (vect_get_cost): New function.
18349 (vect_estimate_min_profitable_iters): Replace cost model macros with
18350 calls to vect_get_cost.
18351 (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
18352 * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
18353 default implementation.
18354 * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
18355 calls to target hook builtin_vectorization_cost.
18356 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
18357 Likewise.
18358 * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
18359 * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
18360 implementation to return costs.
18361 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
18362 * config/spu/spu.h: Remove vectorizer cost model macros.
18363 * config/i386/i386.h: Likewise.
18364 * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
18365 a call to target hook builtin_vectorization_cost.
18366
81c566c2
ST
183672010-06-06 Sriraman Tallam <tmsriram@google.com>
18368
18369 PR target/44319
18370 * config/i386/i386.c (override_options): Turn zee pass on for level 2
18371 and above and defer till target is known.
18372 (optimization_options): Turn on zee pass if TARGET_64BIT is set and
18373 turn off otherwise.
390b2b32 18374
a7e3698d
JH
183752010-05-25 Jan Hubicka <jh@suse.cz>
18376
18377 * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
18378 (df_compact_blocks): Likewise.
18379 * df.h (struct df): Turn hardware_regs_used,
18380 regular_block_artificial_uses, eh_block_artificial_uses,
18381 insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
18382 bitmap_head.
18383 * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
18384 df_byte_lr_alloc, df_simulate_fixup_sets): Update.
18385 * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
18386 df_scan_blocks, df_insn_delete, df_insn_rescan,
18387 df_insn_rescan_debug_internal, df_insn_rescan_all,
18388 df_process_deferred_rescans, df_process_deferred_rescans,
18389 df_notes_rescan, df_get_call_refs, df_get_call_refs,
18390 regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
18391 df_record_entry_block_defs, df_record_exit_block_uses,
18392 df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
18393 df_scan_verify): Update.
18394
e62b90b4
DS
183952010-05-25 Dodji Seketeli <dodji@redhat.com>
18396
18397 PR c++/44188
18398 * c-common.c (is_typedef_decl): Move this definition ...
18399 * tree.c (is_typedef_decl): ... here.
eed023cc 18400 (typdef_variant_p): Move definition here from cp/tree.c.
e62b90b4
DS
18401 * c-common.h (is_typedef_decl): Move this declaration ...
18402 * tree.h (is_typedef_decl): ... here.
eed023cc 18403 (typedef_variant_p): Move declaration here from cp/cp-tree.h
e62b90b4
DS
18404 * dwarf2out.c (is_naming_typedef_decl): New function.
18405 (gen_tagged_type_die): Split out of ...
18406 (gen_type_die_with_usage): ... this function. When an anonymous
18407 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
18408 is emitted for the typedef.
18409 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
18410 anonymous tagged types.
18411
04087cd0
MLI
184122010-06-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
18413
18414 PR c/20000
390b2b32 18415 * c-decl.c (grokdeclarator): Delete warning.
04087cd0 18416
f7b4a383
EB
184172010-06-06 Eric Botcazou <ebotcazou@adacore.com>
18418
18419 * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
18420 newly built CALL_EXPR.
df2a52a6
EB
18421 * tree-profile.c (tree_profiling): Don't profile functions produced
18422 for built-in stuff.
f7b4a383 18423
346967d1
SB
184242010-06-06 Segher Boessenkool <segher@kernel.crashing.org>
18425
18426 PR bootstrap/44427
18427 PR bootstrap/44428
3333e146 18428 * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
346967d1
SB
18429 endianness-independent.
18430
39dabefd
SB
184312010-06-05 Steven Bosscher <steven@gcc.gnu.org>
18432
18433 * c-common.c: Move to c-family/.
18434 * c-common.def: Likewise.
18435 * c-common.h: Likewise.
18436 * c-cppbuiltin.c: Likewise.
18437 * c-dump.c: Likewise.
18438 * c-format.c: Likewise.
18439 * c-format.h : Likewise.
18440 * c-gimplify.c: Likewise.
18441 * c-lex.c: Likewise.
18442 * c-omp.c: Likewise.
18443 * c.opt: Likewise.
18444 * c-opts.c: Likewise.
18445 * c-pch.c: Likewise.
18446 * c-ppoutput.c: Likewise.
18447 * c-pragma.c: Likewise.
18448 * c-pragma.h: Likewise.
18449 * c-pretty-print.c: Likewise.
18450 * c-pretty-print.h: Likewise.
18451 * c-semantics.c: Likewise.
18452 * stub-objc.c: Likewise.
18453
18454 * gengtype.c (get_file_langdir): Special-case files in c-family/.
18455 (get_output_file_with_visibility): Fix name for c-common.h.
18456 * c-config-lang.in: Update paths in gtfiles for files in c-family/.
18457
18458 * c-tree.h: Update include path for moved files.
18459 * c-lang.c: Likewise.
18460 * c-lang.h: Likewise.
18461 * c-parser.c: Likewise.
18462 * c-convert.c: Likewise.
18463 * c-decl.c: Likewise.
18464 * c-objc-common.c: Likewise.
18465 * configure.ac: Make sure c-family/ exists in the build directory.
18466 * configure: Regenerate.
18467 * Makefile.in: Update paths for moved files. Regroup files per
18468 location and update dependencies. Move generated_files down after
18469 ALL_GTFILES_H.
18470
18471 * config/spu/spu-c.c: Update paths for moved files.
18472 * config/mep/mep-pragma.c: Likewise.
18473 * config/darwin-c.c: Likewise.
18474 * config/i386/msformat-c.c: Likewise.
18475 * config/i386/i386-c.c: Likewise.
18476 * config/avr/avr-c.c: Likewise.
18477 * config/sol2-c.c: Likewise.
18478 * config/ia64/ia64-c.c: Likewise.
18479 * config/rs6000/rs6000-c.c: Likewise.
18480 * config/arm/arm.c: Likewise.
18481 * config/arm/arm-c.c: Likewise.
18482 * config/h8300/h8300.c: Likewise.
18483 * config/v850/v850-c.c: Likewise.
18484
18485 * config/t-darwin: Fix dependencies for moved files.
18486 * config/t-sol2: Fix dependencies for moved files.
18487 * config/mep/t-mep: Fix dependencies for moved files.
18488 * config/ia64/t-ia64: Fix dependencies for moved files.
18489 * config/rs6000/t-rs6000: Fix dependencies for moved files.
18490 * config/v850/t-v850: Fix dependencies for moved files.
18491 * config/v850/t-v850e: Fix dependencies for moved files.
18492
18493 * config/m32c/m32c-pragma.c
18494
18495 * po/exgettext: Look in c-family/ also.
18496
ad06ee51
EB
184972010-06-05 Eric Botcazou <ebotcazou@adacore.com>
18498
18499 * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
18500 (mark_control_dependent_edges_necessary): Call it instead of marking
18501 the last statement manually.
18502 (propagate_necessity): Likewise.
18503
0fc555fb
JH
185042010-06-05 Jan Hubicka <jh@suse.cz>
18505
6903fcbd
L
18506 * basic-block.h (compute_dominance_frontiers): Updated.
18507 (compute_idf): Likewise.
18508
0fc555fb
JH
18509 * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
18510 for dominance frontiers.
3d25c396 18511 (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
0fc555fb
JH
18512 (insert_updated_phi_nodes_for): Likewise.
18513 (update_ssa): Likewise.
18514 * cfganal.c (compute_dominance_frontiers_1): Likewise.
18515 (compute_dominance_frontiers): Likewise.
18516 (compute_idf): Likewise.
18517 * df-problems.c (df_md_local_compute): Likewise.
18518
f5c21ef3
AS
185192010-06-05 Anatoly Sokolov <aesok@post.ru>
18520
18521 * target.h (struct gcc_target): Add memory_move_cost field.
18522 * target-def.h (TARGET_MEMORY_MOVE_COST): New.
18523 (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
18524 * targhooks.c (default_memory_move_cost): New function.
18525 * targhooks.h (default_memory_move_cost): Declare function.
18526 * reload.h (memory_move_cost): Declare.
18527 (memory_move_secondary_cost): Change type of 'in' argument to bool.
18528 * reginfo.c (memory_move_cost): New function.
18529 (memory_move_secondary_cost): Change type of 'in' argument to bool.
18530 * ira.h (ira_memory_move_cost): Update comment.
bd3a5d17 18531 * ira.c (ira_memory_move_cost): Update comment.
f5c21ef3
AS
18532 (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
18533 with memory_move_cost.
18534 * postreload.c (reload_cse_simplify_set): (Ditto.).
18535 * reload1.c (choose_reload_regs): (Ditto.).
18536 * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
18537 (MEMORY_MOVE_COST): Revise documentation.
18538
18539 * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
18540 * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
18541 * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
18542 type of 'in' argument to bool.
18543 (TARGET_MEMORY_MOVE_COST): Define.
18544
da8c7675
JH
185452010-06-05 Jan Hubicka <jh@suse.cz>
18546
ad06ee51
EB
18547 * ipa-pure-const.c (propagate): Fix typo in handling of functions
18548 that cannot return. Be more careful when merging the results with
18549 previously known ones.
da8c7675 18550
c1ce46a5
MK
185512010-06-05 Matthias Klose <doko@ubuntu.com>
18552
18553 * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
18554 function to add the -iplugindir option.
18555 (find_plugindir_spec_function): Add new declaration and function.
18556 (static_spec_func): Use it for "find-plugindir".
18557
82c3c067
JJ
185582010-06-05 Jakub Jelinek <jakub@redhat.com>
18559
18560 PR c++/44361
18561 * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
18562 * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
18563 statement expression.
18564
5c72d561
JH
185652010-06-05 Jan Hubicka <jh@suse.cz>
18566
18567 * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
18568 (df_rd_problem_data): Convert sparse_invalidated_by_call,
18569 dense_invalidated_by_call to bitmap head.
18570 (df_rd_alloc, df_rd_bb_local_compute_process_def,
18571 df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
18572 df_rd_start_dump, df_lr_verify_transfer_functions,
18573 df_live_verify_transfer_functions, df_chain_create_bb,
18574 df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
18575 df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
389caea8
EB
18576 df_simulate_one_insn_forwards, df_md_alloc,
18577 df_md_bb_local_compute_process_def,
18578 df_md_bb_local_compute_process_def, df_md_local_compute,
18579 df_md_transfer_function df_md_free): Update.
5c72d561 18580
f2c1da78
JM
185812010-06-05 Joseph Myers <joseph@codesourcery.com>
18582
18583 PR c/44322
18584 * c-typeck.c (build_unary_op): Merge qualifiers into pointer
18585 target type for ADDR_EXPR; require no changes to qualifiers except
18586 for function types.
18587 * c-tree.h (c_build_type_variant): Remove.
18588
4af89b88
SB
185892010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
18590
389caea8 18591 * genautomata.c (get_excl_set): Do work per element, not per char.
4af89b88
SB
18592 (check_presence_pattern_sets): Similar.
18593 (check_absence_pattern_sets): Similar.
18594
99d98200
SB
185952010-06-05 Segher Boessenkool <segher@kernel.crashing.org>
18596
18597 * genautomata.c (curr_state_pass_num): Delete.
18598 (min_issue_delay_pass_states): Delete.
18599 (min_issue_delay): Delete.
18600 (initiate_min_issue_delay_pass_states): Delete.
18601 (output_min_issue_delay_table): Compute min_issue_delay_vect
18602 using a breadth-first search variant.
18603 (output_tables): Don't call initiate_min_issue_delay_pass_states.
18604
c69d3a0e
L
186052010-06-04 H.J. Lu <hongjiu.lu@intel.com>
18606
18607 PR boostrap/44421
390b2b32 18608 * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
c69d3a0e
L
18609 (df_byte_lr_bb_local_compute): Likewise.
18610
0a766368
JM
186112010-06-03 Jason Merrill <jason@redhat.com>
18612
18613 Implement noexcept operator (5.3.7)
18614 * c-common.c (c_common_reswords): Add noexcept.
18615 * c-common.h (enum rid): Add RID_NOEXCEPT.
18616
bdc6b402
JM
186172010-06-04 Joseph Myers <joseph@codesourcery.com>
18618
18619 * config/darwin-driver.c (darwin_default_min_version): Use
9f7b464b 18620 GCC-specific formats in diagnostics.
bdc6b402
JM
18621 * cppspec.c (lang_specific_driver): Use GCC-specific formats in
18622 diagnostics.
18623 * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
18624 execute, process_command, end_going_arg, do_self_spec, do_spec_1,
18625 eval_spec_function, handle_braces, process_brace_body, main,
18626 perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
18627 getenv_spec_function, compare_version_strings,
18628 version_compare_spec_function): Use GCC-specific formats in
18629 diagnostics.
18630
7d1f0f8a
UB
186312010-06-04 Uros Bizjak <ubizjak@gmail.com>
18632
18633 * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
18634 that operand 0 and operand 1 are equal.
18635 (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
18636 (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
18637 and operand 1 are equal.
390b2b32 18638 <default>: Ditto. Remove ??? comment.
7d1f0f8a
UB
18639 (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
18640 and operand 1 are equal.
390b2b32
UB
18641 <default>: Ditto. Remove ??? comment.
18642 (*adddi_4) <default>: Remove assert that operand 0 and operand 1
7d1f0f8a
UB
18643 are equal.
18644 (*add<mode>_4) <default>: Ditto.
18645 (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
18646
6b3c42ae
NF
186472010-06-04 Nathan Froyd <froydnj@codesourcery.com>
18648
18649 * config/i386/i386-protos.h (ix86_print_operand): Declare.
18650 * config/i386/i386.c (ix86_print_operand): Make non-static.
18651 * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
18652 * output.h (output_operand): Declare.
18653 * final.c (output_operand): Make non-static.
18654
0fa43fb7
AO
186552010-06-04 Alexandre Oliva <aoliva@redhat.com>
18656
39e7207a
AO
18657 PR rtl-optimization/44013
18658 * sched-deps.c (add_dependence_list_and_free): Don't free lists
18659 when processing debug insns.
18660
0fa43fb7
AO
18661 PR debug/41371
18662 * var-tracking.c (find_loc_in_1pdv): Mark initial value before
18663 recursing. Check that recursion is bounded. Rename inner var
18664 to avoid hiding incoming argument.
18665
ad1f7916
UB
186662010-06-04 Uros Bizjak <ubizjak@gmail.com>
18667
7d1f0f8a
UB
18668 * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
18669 operands[2] == 255.
ad1f7916
UB
18670 (*addqi_3): Ditto.
18671 (*addqi_4): Ditto.
18672 (*addqi_5): Ditto.
18673 (*addqi_ext_1_rex64): Ditto.
18674 (*addqi_ext_1): Ditto.
18675
18676 (*addqi_4): Check for incdec_operand in QImode.
18677
18678 (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
18679 using SWI mode iterator.
18680 (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
18681 (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
18682 mode iterator.
18683 (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
18684 using SWI mode iterator.
18685
49706e39
MLI
186862010-06-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
18687
18688 PR c/25880
18689 * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
18690 * c-format.c (gcc_diag_flag_specs): Add hash.
18691 (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
18692 (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
18693 * c-pretty-print.c (pp_c_cv_qualifier): Rename as
18694 pp_c_cv_qualifiers. Handle qualifiers spelling here.
18695 (pp_c_type_qualifier_list): Call the function above.
18696 * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
18697 * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
18698 (WARN_FOR_QUALIFIERS): New macro.
18699 (convert_for_assignment): Use it.
18700
b13ea8bd
KT
187012010-06-04 Kai Tietz <kai.tietz@onevision.com>
18702
ad1f7916 18703 * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
b13ea8bd 18704
b33a91c9
JH
187052010-06-04 Jan Hubicka <jh@suse.cz>
18706
18707 * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
18708 df_byte_lr_bb_info): Embedd bitmap_head into the structure.
18709 (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
18710 DF_BYTE_LR_OUT): Update for embedded bitmaps.
18711 * fwprop.c (single_def_use_enter_block): Likewise.
18712 * ddg.c (create_ddg_dep_from_intra_loop_link,
18713 add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
18714 * loop-iv.c (latch_dominating_def): Likewise.
18715 * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
18716 df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
18717 df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
18718 df_rd_transfer_function, df_rd_top_dump,
18719 df_rd_bottom_dump): Update.
18720 (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
18721 df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
18722 df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
18723 df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
18724 df_lr_verify_solution_start, df_lr_verify_solution_end,
18725 df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
18726 df_live_free_bb_info, df_live_alloc, df_live_reset,
18727 df_live_bb_local_compute, df_live_init, df_live_transfer_function,
18728 df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
18729 df_live_verify_solution_start, df_live_verify_solution_end,
18730 df_live_verify_transfer_functions, df_chain_create_bb,
18731 df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
18732 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
18733 df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
18734 df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
18735 df_byte_lr_confluence_0, df_byte_lr_confluence_n,
18736 df_byte_lr_transfer_function, df_byte_lr_top_dump,
18737 df_byte_lr_bottom_dump, df_create_unused_note,
18738 df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
18739 df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
18740 df_md_transfer_function, df_md_init, df_md_confluence_0,
18741 df_md_confluence_n,
ad1f7916
UB
18742 df_md_top_dump, df_md_bottom_dump): Update.
18743 (struct df_lr_problem_data): Embedd bitmap headers.
b33a91c9 18744
f251709a
JH
187452010-06-04 Jan Hubicka <jh@suse.cz>
18746
ad1f7916
UB
18747 * dce.c (dce_process_block): Do not re-scan already marked
18748 instructions.
f251709a 18749
8ff49c29
BS
187502010-06-04 Bernd Schmidt <bernds@codesourcery.com>
18751
18752 PR rtl-optimization/39871
18753 PR rtl-optimization/40615
18754 PR rtl-optimization/42500
18755 PR rtl-optimization/42502
18756 * ira.c (init_reg_equiv_memory_loc: New function.
18757 (ira): Call it twice.
18758 * reload.h (calculate_elim_costs_all_insns): Declare.
18759 * ira-costs.c: Include "reload.h".
18760 (regno_equiv_gains): New static variable.
18761 (init_costs): Allocate it.
18762 (finish_costs): Free it.
18763 (ira_costs): Call calculate_elim_costs_all_insns.
18764 (find_costs_and_classes): Take estimated elimination costs
18765 into account.
18766 (ira_adjust_equiv_reg_cost): New function.
18767 * ira.h (ira_adjust_equiv_reg_cost): Declare it.
18768 * reload1.c (init_eliminable_invariants, free_reg_equiv,
ad1f7916 18769 elimination_costs_in_insn, note_reg_elim_costly): New static functions.
8ff49c29
BS
18770 (elim_bb): New static variable.
18771 (reload): Move code out of here into init_eliminable_invariants and
18772 free_reg_equiv. Call them.
18773 (calculate_elim_costs_all_insns): New function.
18774 (eliminate_regs_1): Declare. Add extra arg FOR_COSTS;
18775 all callers changed. If FOR_COSTS is true, don't call alter_reg,
18776 but call note_reg_elim_costly if we turned a valid memory address
18777 into an invalid one.
18778 * Makefile.in (ira-costs.o): Depend on reload.h.
18779
95c5655c
JB
187802010-06-04 Julian Brown <julian@codesourcery.com>
18781
18782 * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
18783 for pool ranges.
18784
d4c0c9f6
RG
187852010-06-04 Richard Guenther <rguenther@suse.de>
18786
18787 PR lto/41584
18788 * cgraph.h (struct varpool_node): Add lto_file_data field.
18789 * lto-cgraph.c (input_varpool_node): Initialize it.
18790
308e51aa
UB
187912010-06-04 Uros Bizjak <ubizjak@gmail.com>
18792
18793 * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
18794 * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
18795 predicate in "type" attribute calculation.
18796 (*addsi_1_zext): Ditto.
18797 (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
18798 (*addsi_2_zext): Ditto.
18799 (*add<mode>_3): Ditto.
18800 (*addsi_3_zext): Ditto.
18801 (*add<mode>_5): Ditto.
18802
f3cf730b
JH
188032010-06-03 Jan Hubicka <jh@suse.cz>
18804
18805 * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
18806 of bitmap_bit_p.
18807 * cfganal.c (compute_dominance_frontiers_1): Likewise.
18808
95f4cd58
JH
188092010-06-03 Jan Hubicka <jh@suse.cz>
18810
18811 * df-problems.c (df_create_unused_note, df_note_bb_compute):
18812 micro-optimize the checks when to add new note.
18813
6e2188e0
NF
188142010-06-03 Nathan Froyd <froydnj@codesourcery.com>
18815
18816 * final.c (output_asm_insn): Call
18817 targetm.asm_out.print_operand_punct_valid_p. Update comments.
18818 (output_operand): Call targetm.asm_out.print_operand. Update comments.
18819 (output_address): Call targetm.asm_out.print_operand_address.
18820 Update comments.
18821 * target.h (struct gcc_target): Add print_operand,
18822 print_operand_address, and print_operand_punct_valid_p fields.
18823 * targhooks.h (default_print_operand): Declare.
18824 (default_print_operand_address): Declare.
18825 (default_print_operand_punct_valid_p): Declare.
18826 * targhooks.c (default_print_operand): Define.
18827 (default_print_operand_address): Define.
18828 (default_print_operand_punct_valid_p): Define.
18829 * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
18830 (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
18831 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
18832 (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
18833 TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
18834 * vmsdbgout.c (addr_const_to_string): Update comment.
18835 * config/i386/i386.c (print_operand): Rename to...
18836 (ix86_print_operand): ...this. Make static.
18837 (print_operand_address): Rename to...
18838 (ix86_print_operand_address): ...this. Make static. Call
18839 ix86_print_operand instead of PRINT_OPERAND.
18840 (ix86_print_operand_punct_valid_p): New function.
18841 (TARGET_PRINT_OPERAND): Define.
18842 (TARGET_PRINT_OPERAND_ADDRESS): Define.
18843 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
18844 * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
18845 (PRINT_OPERAND_PUNCT_VALID_P): Delete.
18846 (PRINT_OPERAND): Delete.
18847 (PRINT_OPERAND_ADDRESS): Delete.
18848 * config/i386/i386-protos.h (print_operand): Delete prototype.
18849 (print_operand_address): Delete prototype.
18850
bb6c4ac8
RG
188512010-06-03 Richard Guenther <rguenther@suse.de>
18852
18853 PR tree-optimization/44403
18854 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18855 Preserve pointer qualifiers.
18856 (vect_create_data_ref_ptr): Likewise.
18857
1c314335
L
188582010-06-03 H.J. Lu <hongjiu.lu@intel.com>
18859
18860 PR c++/44294
18861 * defaults.h (MAX_FIXED_MODE_SIZE): New.
18862
18863 * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
18864
c87d6057
JJ
188652010-06-03 Jakub Jelinek <jakub@redhat.com>
18866
18867 PR debug/44375
18868 * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
18869 return false if merging the bbs would lead to goto_locus
18870 location being lost from the IL.
18871
193d4c0f
JJ
188722010-06-03 Jan Hubicka <jh@suse.cz>
18873 Jakub Jelinek <jakub@redhat.com>
18874
308e51aa 18875 * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
193d4c0f
JJ
18876 set->regs[i] is NULL or has just one entry.
18877
703e95cf
JH
188782010-06-03 Jan Hubicka <jh@suse.cz>
18879
18880 * lto-cgraph.c (lto_varpool_encoder_size): Remove.
18881 * lto-streamer.h (lto_varpool_encoder_size): New inline function.
18882
12a0a4d4
PB
188832010-06-03 Paul Brook <paul@codesourcery.com>
18884
18885 * config/arm/arm.c (FL_TUNE): Define.
18886 (arm_default_cpu, arm_cpu_select): Remove.
18887 (all_cores): Populate core field.
18888 (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
18889 (arm_find_cpu): New function.
18890 (arm_handle_option): Lookup cpu/architecture names.
18891 (arm_override_options): Cleanup mcpu/march/mtune handling.
18892 (arm_file_start): Ditto.
18893
d9d7a1bf
AM
188942010-06-03 Alan Modra <amodra@gmail.com>
18895
18896 PR target/44169
18897 * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
18898 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
18899 rtx to gen_load_toc_v4_PIC_1b. Tidy.
18900 (rs6000_emit_load_toc_table): Likewise.
18901
514f01ad
JH
189022010-06-02 Jan Hubicka <jh@suse.cz>
18903
18904 * passes.c (init_optimization_passes): Put ipa reference
18905 after ipa pure-const.
18906
22a8d1e6
JH
189072010-06-02 Jan Hubicka <jh@suse.cz>
18908
18909 * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
18910 calls_read_all and calls_write_all.
18911 (get_reference_optimization_summary): Fix formatting.
18912 (is_proper_for_analysis): Check that decl is not readonly.
18913 (propagate_bits): Check CONST/PURE/noreturn flags.
18914 (ipa_init): Move all_module_statics to optimization_summary_obstack.
18915 (analyze_function): Ignore indirect edges.
18916 (copy_global_bitmap): For all module statics, do nothing.
18917 (generate_summary): Do not print calls_read_all/calls_write_all.
18918 (read_write_all_from_decl): Take node as argument; check
18919 cgraph_node_cannot_return.
18920 (propagate): Reorganize read_all/write_all computation;
18921 check indirect edges; check ecf flags; use all_module_statics
18922 in the results; do not free all_module_statics.
18923 (stream_out_bitmap): Handle all_module_statics.
18924 (ipa_reference_write_optimization_summary): Likewise; use
18925 varpool/cgraph encoders to get boundaries.
18926 (ipa_reference_read_optimization_summary): Read in all_module_statics;
18927 use it when possible.
18928
92902797
MM
189292010-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
18930
18931 PR target/44218
18932 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
308e51aa 18933 -mswdiv option. Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
92902797
MM
18934
18935 * doc/extend.texi (powerpc builtins): Document vec_recip,
18936 vec_rsqrt, vec_rsqrte altivec/vsx builtins.
18937
308e51aa 18938 * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
92902797
MM
18939 (rs6000_emit_swrsqrt): Ditto.
18940 (rs6000_emit_swdivsf): Delete.
18941 (rs6000_emit_swdivdf): Ditto.
18942 (rs6000_emit_swrsqrtsf): Ditto.
18943
18944 * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
18945 describe the reciprocal estimate support for each type.
18946 (recip_options): Map -mrecip=<opt> into option bits.
18947 (gen_2arg_fn_t): New typedef for binary rtx gen function.
18948 (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
18949 reciprocal estimate instructions.
18950 (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
18951 debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
18952 Set up rs6000_recip_bits based on the -mrecip* options. Print the
18953 cost information if -mdebug=cost or -mdebug=reg.
18954 (rs6000_override_options): Set -mrecip-precision for power6, and
18955 power7 machines. If -mvsx or -mdfp, enable various options that
18956 came in previous instruction set ISAs, unless the option was
18957 explicitly disabled by the command line option. Parse
18958 -mrecip=<opt> options.
18959 (rs6000_builtin_vectorized_function): Add support for vectorizing
18960 the reciprocal estimate builtins and expansions.
18961 (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
18962 (bdesc_2arg): Add reciprocal estimate builtins.
18963 (bdesc_1arg): Add reciprocal square root estimate builtins.
18964 (rs6000_expand_builtin): Rewrite to use a switch statement,
308e51aa 18965 instead of multiple if/then/elses. Add reciprocal estimate builtins.
92902797
MM
18966 (rs6000_init_builtins): Create declarations for reciprocal
18967 estimate builtins.
18968 (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
18969 sized, prefer traditional floating point registers, if integer
18970 vector types, prefer altivec registers. Don't actually look at
18971 the memory address any more.
18972 (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
18973 builtins.
18974 (rs6000_load_constant_and_splat): New helper function to load up
18975 the constant for reciprocal estimate instructions.
18976 (rs6000_emit_madd): New helper function for generating
18977 multiply/add type instructions, based on the current switches.
18978 (rs6000_emit_msub): Ditto.
18979 (rs6000_emit_mnsub): Ditto.
18980 (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
18981 replace a divide with a reciprocal estimate and fixup, adding
18982 support for machines with high precision and vectors.
18983 (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
18984 low precision machines.
18985 (rs6000_emit_swdiv): New common function to be called to replace a
18986 division with reciprocal estimate and fixup.
18987 (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf. Add support
308e51aa 18988 for double and vector types. Add support for high precision machines.
92902797
MM
18989
18990 * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
18991 the reciprocal estimate instructions can be generated.
18992 (TARGET_FRE): Ditto.
18993 (TARGET_FRSQRTES): Ditto.
18994 (TARGET_FRSQRTE): Ditto.
18995 (RS6000_RECIP_*): New macros for reciprocal estimate support.
18996
18997 * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
18998 square root estimate on vectors.
18999 (re<mode>2): New insn for reciprocal division estimate on vectors.
19000
19001 * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
19002 New builtin.
19003 (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
19004 (ALTIVEC_BUITLIN_VEC_RE): Ditto.
19005 (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
19006 (VSX_BUILTIN_RSQRT_V4SF): Ditto.
19007 (VSX_BUITLIN_RSQRT_V2DF): Ditto.
19008 (RS6000_BUILTIN_RSQRT): Ditto.
19009 (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
19010 floating point builtin.
19011
19012 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
19013 macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
19014 __RECIP_PRECISION__ based on the command line switches.
19015 (altivec_overloaded_builtins): Add reciprocal estimate builtins.
19016
19017 * config/rs6000/rs6000.opt (-mrecip): Document add support for
308e51aa 19018 replacing division instructions with reciprocal estimate and fixup.
92902797
MM
19019 (-mrecip=<opt>): New option.
19020 (-mrecip-precision): Ditto.
19021
19022 * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
19023 (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
19024 (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
19025 precision scalar.
19026
19027 * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
19028 (UNSPEC_VREFP): Ditto.
19029 (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
308e51aa 19030 conterparts with regard to support of -mno-fused-madd and -ffast-math.
92902797
MM
19031 (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
19032 reciprocal estimate instructions to be generated.
19033 (altivec_vrefp): Ditto.
19034
19035 * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
19036 estimate support.
19037 (rreg): New mode attribute for reciprocal estimate support.
19038 (recip<mode>3): New insn for division using reciprocal estimate
19039 and fixup builtins.
19040 (divide define_split): New define_split to convert floating point
19041 division to use reciprocal estimate if the user used the
19042 appropriate options and the split is run when we can add new
19043 pseudo registers for the fixup.
19044 (rsqrt<mode>2): New insn for reciprocal square root support.
19045 (recipsf3): Move into recip<mode>3.
19046 (recipdf3): Ditto.
19047 (fres): Use TARGET_FRES.
19048 (rsqrtsf2): Move into rsqrt<mode>2.
19049 (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
19050 (copysignsf3): Add support for VSX.
19051 (fred): Use TARGET_FRE.
19052 (fred_fpr): Ditto.
19053 (rsqrtdf_internal1): New function for frsqrte instruciton.
19054
308e51aa 19055 * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
92902797
MM
19056 (vec_rsqrt): Ditto.
19057
eef4a603
RG
190582010-06-03 Richard Guenther <rguenther@suse.de>
19059
19060 PR middle-end/44291
19061 * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
19062 (set_user_assembler_libfunc): Likewise.
19063
77ec4307
SB
190642010-06-02 Steven Bosscher <steven@gcc.gnu.org>
19065
19066 * mkconfig.sh: Include insn-flags.h and insn-constants.h before
19067 defaults.h.
19068 * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
19069 to defaults.h
19070 * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
19071 DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
19072 FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
19073 STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
19074 STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
19075 STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
19076 STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
19077 STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
19078 * defaults.h: Updated for above mentioned changes.
19079
ef2d9e4d
KT
190802010-06-02 Kai Tietz <kai.tietz@onevision.com>
19081
19082 * c-common.c: Remove header include of tm_p.h.
19083 * Makefile.in (c-common.o): Remove TM_P_H dependency.
19084
53e030f1
JJ
190852010-06-02 Jakub Jelinek <jakub@redhat.com>
19086
19087 * tree.h (struct tree_decl_map): New type.
19088 (tree_decl_map_eq, tree_decl_map_marked_p): Define.
19089 (tree_decl_map_hash): New prototype.
19090 (debug_expr_for_decl, value_expr_for_decl): Change into
19091 tree_decl_map hashtab from tree_map.
19092 (init_ttree): Adjust initialization.
19093 (tree_decl_map_hash): New function.
19094 (decl_debug_expr_lookup, decl_debug_expr_insert,
19095 decl_value_expr_lookup, decl_value_expr_insert): Adjust.
19096
a6198222
RO
190972010-06-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19098
19099 * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
19100 linker emulations.
19101 * configure: Regenerate.
19102 * config.in: Regenerate.
19103
19104 * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
19105 (X86_64_EMULATION): Define.
19106 (TARGET_LD_EMULATION): Use them.
19107
19108 * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
19109 (SPARC64_EMULATION): Define.
19110 (LINK_ARCH_SPEC): Use them.
19111
d6abd6d8
SP
191122010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19113
19114 * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
19115 smallest_mode_for_size for computing the precision types of new
19116 graphite IVs. Do not call lang_hooks.types.type_for_size.
19117
718d3588
SP
191182010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19119
19120 * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
19121 information.
19122 (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
19123
5521cae9
SP
191242010-06-02 Sebastian Pop <sebastian.pop@amd.com>
19125
19126 PR middle-end/44363
19127 * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
19128 return false instead.
19129
437ffe7b
JH
191302010-06-02 Jan Hubicka <jh@suse.cz>
19131
19132 PR middle-end/44295
19133 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
19134 create new cgraph node to check callee.
19135
f3dcdff7
RG
191362010-06-02 Richard Guenther <rguenther@suse.de>
19137
19138 * lto-streamer-in.c (input_gimple_stmt): Fix typo.
19139
396717c9
RG
191402010-06-02 Richard Guenther <rguenther@suse.de>
19141
19142 * lto-wrapper.c (lto_wrapper_exit): Rename to ...
19143 (lto_wrapper_cleanup): ... this. Do not exit.
19144 (fatal): Adjust. Exit here.
19145 (fatal_perror): Likewise.
19146 (fatal_signal): New function.
19147 (main): Set up signal handlers to cleanup temporary files.
19148 * Makefile.in (lto-wrapper.o): Adjust dependencies.
19149
2698955a
RG
191502010-06-02 Richard Guenther <rguenther@suse.de>
19151
19152 PR tree-optimization/44377
19153 * tree-ssa-structalias.c (find_func_aliases): Fix typo.
19154
30972225
AK
191552010-06-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19156
19157 * config/s390/2097.md (z10_fhex): Remove insn reservation.
19158 * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
19159 (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
19160 *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
19161 instruction.
308e51aa 19162 * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
30972225 19163
d4fb676f
JH
191642010-06-02 Jan Hubicka <jh@suse.cz>
19165
19166 * bitmap.c (bitmap_descriptor): Add search_iter.
19167 (bitmap_find_bit): Increment it.
19168 (print_statistics): Print it.
19169
36c4a482
NF
191702010-06-02 Nathan Froyd <froydnj@codesourcery.com>
19171
19172 * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
19173 instead of gimple_build_call_vec. Delete unnecessary local variable.
19174
f66d6761
SB
191752010-06-02 Steven Bosscher <steven@gcc.gnu.org>
19176
19177 * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
19178 change from yesterday.
19179
a8cd9c51
SB
191802010-06-02 Steven Bosscher <steven@gcc.gnu.org>
19181
19182 * c-ada-spec.c: Clean up redundant includes.
19183
2eb79bbb
SB
191842010-06-01 Steven Bosscher <steven@gcc.gnu.org>
19185
19186 * gimplify.c: Do not include except.h and optabs.h.
19187 (gimplify_body): Do not initialize RTL profiling.
19188 * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
19189 langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
19190 * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
19191 output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
19192 langhooks.h.
19193
19194 * tree-pretty-print.h: Include pretty-print.h.
19195 * gimple-pretty-print.h: Include pretty-print.h.
19196
19197 * tree-pretty-print.c: Do not include diagnostic.h.
19198 * tree-vrp.c: Likewise.
19199 * tree-tailcall.c: Likewise
19200 * tree-scalar-evolution.c: Likewise
19201 * tree-ssa-dse.c: Likewise
19202 * tree-chrec.c: Likewise
19203 * tree-ssa-sccvn.c: Likewise
19204 * tree-ssa-copyrename.c: Likewise
19205 * tree-nomudflap.c: Likewise
19206 * tree-call-cdce.c: Likewise
19207 * tree-stdarg.c: Likewise
19208 * tree-ssa-math-opts.c: Likewise
19209 * tree-nrv.c: Likewise
19210 * tree-ssa-sink.c: Likewise
19211 * tree-browser.c: Likewise
19212 * tree-ssa-loop-ivcanon.c: Likewise
19213 * tree-ssa-loop.c: Likewise
19214 * tree-parloops.c: Likewise
19215 * tree-ssa-address.c: Likewise
19216 * tree-ssa-ifcombine.c: Likewise
19217 * tree-if-conv.c: Likewise
19218 * tree-data-ref.c: Likewise
19219 * tree-affine.c: Likewise
19220 * tree-ssa-phiopt.c: Likewise
19221 * tree-ssa-coalesce.c: Likewise
19222 * tree-ssa-pre.c: Likewise
19223 * tree-ssa-live.c: Likewise
19224 * tree-predcom.c: Likewise
19225 * tree-ssa-forwprop.c: Likewise
19226 * tree-ssa-dce.c: Likewise
19227 * tree-ssa-ter.c: Likewise
19228 * tree-ssa-loop-prefetch.c: Likewise
19229 * tree-optimize.c: Likewise
19230 * tree-ssa-phiprop.c: Likewise
19231 * tree-object-size.c: Likewise
19232 * tree-outof-ssa.c: Likewise
19233 * tree-ssa-structalias.c: Likewise
19234 * tree-switch-conversion.c: Likewise
19235 * tree-ssa-reassoc.c: Likewise
19236 * tree-ssa-operands.c: Likewise
19237 * tree-vectorizer.c: Likewise
19238 * tree-vect-data-refs.c: Likewise
19239 * tree-vect-generic.c: Likewise
19240 * tree-vect-stmts.c: Likewise
19241 * tree-vect-patterns.c: Likewise
19242 * tree-vect-slp.c: Likewise
19243 * tree-vect-loop.c: Likewise
19244 * tree-ssa-loop-ivopts.c: Likewise
19245 * tree-ssa-loop-im.c: Likewise
19246 * tree-ssa-loop-niter.c: Likewise
19247 * tree-ssa-loop-unswitch.c: Likewise
19248 * tree-ssa-loop-manip.c: Likewise
19249 * tree-ssa-loop-ch.c: Likewise
19250 * tree-dump.c: Likewise
19251 * tree-complex.c: Likewise
19252
19253 * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
19254 * tree-ssa-uninit.c: Likewise
19255 * tree-ssa-threadupdate.c: Likewise
19256 * tree-ssa-uncprop.c: Likewise
19257 * tree-ssa-ccp.c: Likewise
19258 * tree-ssa-dom.c: Likewise
19259 * tree-ssa-propagate.c: Likewise
19260 * tree-ssa-alias.c: Likewise
19261 * tree-dfa.c: Likewise
19262 * tree-cfgcleanup.c: Likewise
19263 * tree-sra.c: Likewise
19264 * tree-ssa-copy.c: Likewise
19265 * tree-ssa.c: Likewise
19266 * tree-profile.c: Likewise
19267 * tree-cfg.c: Likewise
19268 * tree-ssa-threadedge.c: Likewise
19269 * tree-vect-loop-manip.c: Likewise
19270
19271 * tree-inline.c: Do not include diagnostic.h and expr.h.
19272 Include rtl.h.
19273 (copy_decl_for_dup_finish): Do not use NULL_RTX.
19274
308e51aa 19275 * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2eb79bbb
SB
19276 * tree-loop-distribution.c: Likewise.
19277
73add7fe
JH
192782010-06-01 Jan Hubicka <jh@suse.cz>
19279
19280 * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
19281
566d09ef
JH
192822010-06-01 Jan Hubicka <jh@suse.cz>
19283
19284 * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
19285 remove return value.
19286 (split_bbs_on_noreturn_calls) .... here.
19287 * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
19288 * tree-flow.h (fixup_noreturn_call): New.
19289
fb9ef4c1
JH
192902010-06-01 Jan Hubicka <jh@suse.cz>
19291
19292 * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
19293
6594b49d
NF
192942010-06-01 Nathan Froyd <froydnj@codesourcery.com>
19295
19296 * tree.h (build_nt_call_list): Delete.
19297 * tree.c (build_nt_call_list): Delete.
19298
5936d944
JH
192992010-06-01 Jan Hubicka <jh@suse.cz>
19300
19301 * fwprop.c: Make emit-rtl.h include last.
19302 * rtlanal.c: Include emit-rtl.h.
19303 * genautomata.c: Output emit-rtl include into insn-automata.c
19304 * df-scan.c: Include emit-rtl.h.
19305 * haifa-sched.c: Indlude emit-rtl.h.
19306 * mode-switching.c: Indlude emit-rtl.h.
19307 * graph.c: Indlude emit-rtl.h.
19308 * sel-sched.c: Include emit-rtl.h.
19309 * sel-sched-ir.c: Include emit-rtl.h.
19310 * ira-build.c: Include emit-rtl.h.
bd3a5d17 19311 * emit-rtl.c (first_insn, last_insn): Remove defines.
5936d944
JH
19312 (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
19313 Move to emit-rtl.h.
308e51aa
UB
19314 (set_new_first_and_last_insn, get_last_insn_anywhere,
19315 get_first_nonnote_insn, get_last_nonnote_insn, try_split,
19316 make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
19317 delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
19318 emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
19319 push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
19320 Use accessor functions.
5936d944
JH
19321 * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
19322 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
19323 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa 19324 mem_expr_equal_p): Move here from rtl.h.
5936d944
JH
19325 (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
19326 Move here from emit-rtl.c; make inline.
308e51aa 19327 * cfglayout.h: Include emit-rtl.h.
5936d944
JH
19328 * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
19329 gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
19330 set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
308e51aa
UB
19331 mem_expr_equal_p, get_insns, set_first-insn,
19332 get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
19333 * reg-stack.c: Include emit-rtl.h.
5936d944
JH
19334 * dce.c: Likewise.
19335
91382288
JH
193362010-06-01 Jan Hubicka <jh@suse.cz>
19337
19338 * cgraph.h (tree_function_versioning): Update prototype.
19339 (cgraph_function_versioning): Update prototype.
19340 * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
19341 bitmap.
308e51aa 19342 (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
91382288
JH
19343 (cgraph_materialize_clone, save_inline_function_body): Update use of
19344 tree_function_versioning.
308e51aa
UB
19345 * tree-inline.c (copy_bb): Look for previous copied block to link
19346 after; fix debug output.
91382288
JH
19347 (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
19348 (copy_body): Likewise.
19349 (expand_call_inline): Update use of copy_body.
19350 (tree_function_versioning): Update use of copy body; accept
19351 blocks_to_copy and new_entry.
19352
6ac9d3a3
JH
193532010-06-01 Jan Hubicka <jh@suse.cz>
19354
19355 * gegenrtl.c: Remove unnecesary prototypes.
19356 (gendecl): Remove.
19357 (gendef): Produce static inline.
19358 (gencode): Remove.
19359 (main): Do not decode parameters; generate header only.
19360 * Makefile.in (genrtl.c): Remove.
19361
2e3b4885
JH
193622010-06-01 Jan Hubicka <jh@suse.cz>
19363
19364 * tree-switch-conversion.c (build_one_array): Make it readonly.
19365
0641fa97
RG
193662010-06-01 Richard Guenther <rguenther@suse.de>
19367
19368 * optabs.c (init_optabs): Guard all accesses to reinit.
19369 * ipa-pure-const.c (propagate): Fix another typo.
19370 * opts.c (common_handle_option): Split assignment to bool.
19371 * c-opts.c (c_common_handle_option): Likewise.
19372
9cc54940 193732010-06-01 Arnaud Charlet <charlet@adacore.com>
308e51aa 19374 Matthew Gingell <gingell@adacore.com>
9cc54940
AC
19375
19376 * doc/invoke.texi: Mention -fdump-ada-spec.
19377 * tree-dump.c (dump_files): Add ada-spec.
19378 (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
19379 * tree-pass.h (tree_dump_index): Add TDI_ada.
19380 * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
19381 (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
19382 (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
19383 * c-decl.c: Include c-ada-spec.h.
19384 (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
19385 functions.
19386 (c_write_global_declarations): Add handling of -fdump-ada-spec.
19387 * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
19388 * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
19389 * c-ada-spec.h, c-ada-spec.c: New files.
19390
97d45cef
RG
193912010-06-01 Richard Guenther <rguenther@suse.de>
19392
19393 PR lto/43853
19394 * ipa-pure-const.c (get_function_state): Hand back varying state
19395 if we do not have one.
19396 (has_function_state): New function.
19397 (duplicate_node_data): Adjust.
19398 (remove_node_data): Likewise.
19399 (pure_const_write_summary): Likewise.
19400 (propagate): Likewise. Fix typo.
19401
f7fbb475
JH
194022010-06-01 Jan Hubicka <jh@suse.cz>
19403
19404 * tree-cfg.c (verify_stmt): Do not skip could_throw test.
19405 * passes.c (execute_function_todo): Do not make implicit verify_ssa.
19406 (execute_all_ipa_transforms): Do not play with the states.
19407
d47a371c
MK
194082010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
19409
19410 * config/arm/t-linux-androideabi: New.
389caea8 19411 * config.gcc (arm*-*-linux-androideabi): Include multilib config.
d47a371c 19412
613f61fc
JH
194132010-06-01 Jan Hubicka <jh@suse.cz>
19414
19415 * tree-inline.c (estimate_num_insns): For stdarg functions look
19416 into call statement to count cost of argument passing.
19417
193d4c0f 194182010-06-01 Kai Tietz <kai.tietz@onevision.com>
42ad7bc8 19419
308e51aa
UB
19420 * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
19421 argument for fprintf.
19422 (ix86_output_addr_diff_elt): Likewise.
19423 (x86_function_profiler): Likewise.
19424 * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
19425 (LPREFIX): Likewise.
19426 (ASM_GENERATE_INTERNAL_LABEL): Likewise.
42ad7bc8 19427
c71ad61e
JJ
194282010-05-31 Jakub Jelinek <jakub@redhat.com>
19429
19430 PR target/44338
19431 * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
19432 fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
19433 fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
19434 fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
19435 fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
19436 fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
19437 fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
19438 Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
19439 TARGET_FUSED_MADD.
19440
63f1c699
JH
194412010-05-31 Jan Hubicka <jh@suse.cz>
19442
19443 * tree.h (tree_range_check_failed): Declare noreturn.
19444
4892422a
JH
194452010-05-31 Jan Hubicka <jh@suse.cz>
19446
19447 * gimple.c (gimple_call_builtin_p): New function.
19448 * gimple.h (gimple_call_builtin_p): Declare.
19449 * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
19450 to exit.
19451 (execute_warn_function_return): BUILT_IN_RETURN is return.
19452 (split_critical_edges): Return edges are not critical.
19453 (is_ctrl_altering_stmt): Builtin_in_return is altering.
19454 (gimple_verify_flow_info): Handle built_in_return.
19455 (execute_warn_function_return): Handle built_in_return.
19456 * ipa-pure-const.c (check_call): Ignore builtin_return.
19457
90a7788b
JJ
194582010-05-31 Jakub Jelinek <jakub@redhat.com>
19459
6a866023
JJ
19460 PR middle-end/44337
19461 * expr.c (expand_assignment): Don't store anything for out-of-bounds
19462 array accesses with non-MEM.
19463
90a7788b
JJ
19464 PR tree-optimization/44182
19465 * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
19466 newly needs to end a bb is followed by debug stmts, instead return
19467 true from the function at the end.
19468 (maybe_move_debug_stmts_to_successors): New function.
19469 (copy_cfg_body): Call it if copy_edges_for_bb returned true.
19470
877a19bf
KT
194712010-05-31 Kai Tietz <kai.tietz@onevision.com>
19472
19473 PR target/44161
308e51aa 19474 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
877a19bf 19475
c5d01958
EB
194762010-05-31 Eric Botcazou <ebotcazou@adacore.com>
19477
19478 * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
19479 for nested functions in non-optimized compilation.
19480
a4c9bc15
RG
194812010-05-31 Richard Guenther <rguenther@suse.de>
19482
308e51aa 19483 * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
a4c9bc15 19484
22983f55
JH
194852010-05-30 Jan Hubicka <jh@suse.cz>
19486
19487 * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
19488
66a3e339
RG
194892010-05-30 Richard Guenther <rguenther@suse.de>
19490
19491 PR lto/42975
19492 * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
19493 (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
19494 no longer needed.
19495
83bf7f5e
IS
194962010-05-30 Iain Sandoe <iains@gcc.gnu.org>
19497
19498 * config/darwin.c (output_objc_section_asm_op): Add comment.
19499 (name_needs_quotes): Add '_' to list of valid comment chars.
19500 (machopic_output_function_base_name): Remove unneeded quotes.
19501 (darwin_encode_section_info): Adjust asm whitespace.
19502 * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
19503 (ASM_OUTPUT_LOCAL): Ditto.
19504 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
19505 * config/darwin.h (GLOBAL_ASM_OP): Ditto.
19506 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
308e51aa 19507
18fc5f44
EB
195082010-05-30 Eric Botcazou <ebotcazou@adacore.com>
19509
19510 * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
19511 RS6000_OUTPUT_BASENAME unconditionally.
19512 (rs6000_output_function_epilogue): Likewise.
19513
babf1701
JH
195142010-05-30 Jan Hubicka <jh@suse.cz>
19515
19516 * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
c5d01958 19517 nodes.
babf1701 19518
fbd767b1
RG
195192010-05-30 Richard Guenther <rguenther@suse.de>
19520
19521 * tree-cfg.c (verify_gimple_assign_single): Implement
19522 verification for COND_EXPR rhs.
19523
0a5fa5a1
JH
195242010-05-30 Jan Hubicka <jh@suse.cz>
19525
19526 * cgraph.h (cgraph_dump_file): Declare.
19527 * cgraphunit.c (cgraph_dump_file): Export.
308e51aa 19528 * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
0a5fa5a1 19529
0b9c3a04
JH
195302010-05-30 Jan Hubicka <jh@suse.cz>
19531
19532 * dwarf2out.c (reference_to_unused,
18fc5f44
EB
19533 premark_types_used_by_global_vars_helper): Avoid creation of new
19534 varpool nodes.
0b9c3a04 19535
d56026c2
JH
195362010-05-30 Jan Hubicka <jh@suse.cz>
19537
19538 * cgraph.h (cgraph_node_cannot_return,
19539 cgraph_edge_cannot_lead_to_return): New functions.
19540 * cgraph.c (cgraph_node_cannot_return,
19541 cgraph_edge_cannot_lead_to_return): Use them.
19542 * ipa-pure-const.c (pure_const_names): New static var.
19543 (check_call): Handle calls not leading to return.
19544 (pure_const_read_summary): Dump info read.
308e51aa
UB
19545 (propagate): Dump info about propagation process; ignore side effects
19546 of functions not leading to exit; fix handling of pure functions.
d56026c2 19547
17f01631
JH
195482010-05-30 Jan Hubicka <jh@suse.cz>
19549
19550 * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
19551 for tail call epilogues.
19552
f59292da
JH
195532010-05-30 Jan Hubicka <jh@suse.cz>
19554
19555 * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
18fc5f44
EB
19556 ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
19557 dump files.
f59292da 19558
8a6295ba
JH
195592010-05-29 Jan Hubicka <jh@suse.cz>
19560
18fc5f44
EB
19561 * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
19562 node; remove references in node we no longer keep in cgrpah but need
19563 body of.
8a6295ba 19564
7baeea85
JH
195652010-05-29 Jan Hubicka <jh@suse.cz>
19566
19567 * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
19568
482959e5
JDA
195692010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19570
19571 PR target/44165
19572 * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
19573
24e47c76
JH
195742010-05-29 Jan Hubicka <jh@suse.cz>
19575
19576 * tree-vrp.c (debug_value_range, debug_all_value_ranges,
19577 debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
19578 * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
19579 debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
308e51aa 19580 debug_names_replaced_by, debug_update_ssa): Likewise.
24e47c76
JH
19581 * sbitmap.c (debug_sbitmap): Likewise.
19582 * genrecog.c (debug_decision, debug_decision_list): Likewise.
19583 * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
19584 debug_tree_chain): Likewise.
19585 * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
19586 * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
a691bb08 19587 * optabs.c (debug_optab_libfuncs): Likewise.
24e47c76
JH
19588 (verify_loop_closed_ssa): Likewise.
19589 * value-prof.c (verify_histograms): Likewise.
19590 * reload.c (debug_reload_to_stream, debug_reload): Likewise.
19591 * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
19592 * cfghooks.c (verify_flow_info): Likewise.
19593 * fold-const.c (debug_fold_checksum): Likewise.
19594 * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
19595 * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
19596 Likewise.
19597 * omega.c (debug_omega_problem): Likewise.
19598 * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
19599 * tree-ssa-ccp.c (debug_lattice_value): Likewise.
19600 * dominance.c (verify_dominators, debug_dominance_info,
19601 debug_dominance_tree): Likewise.
19602 * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
19603 * df_regno_debug, df_ref_debug,
19604 debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
19605 debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
19606 * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
19607 * sel-sched.c (debug_state): Likewise.
18fc5f44
EB
19608 * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
19609 Likewise.
24e47c76
JH
19610 * cfganal.c (print_edge_list, verify_edge_list): Likewise.
19611 * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
19612 * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
18fc5f44
EB
19613 * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
19614 Likewise.
24e47c76
JH
19615 * c-pretty-print.c (debug_c_tree): Likewise.
19616 * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
18fc5f44
EB
19617 debug_av_set, debug_lv_set, debug_ilist, debug_blist,
19618 debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
24e47c76
JH
19619 * ebitmap.c (debug_ebitmap): Likewise.
19620 * function.c (debug_find_var_in_block_tree): Likewise.
19621 * print-rtl.c (debug_rtx): Likewise.
19622 (debug_rtx_count): Likewise.
19623 (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
19624 * stor-layout.c (debug_rli): Likewise.
19625 * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
18fc5f44
EB
19626 * tree-data-ref.c (debug_data_references,
19627 debug_data_dependence_relations, debug_data_reference,
19628 debug_data_dependence_relation, debug_rdg_vertex,
24e47c76
JH
19629 debug_rdg_component, debug_rdg): Likewise.
19630 * tree-affine.c (debug_aff): Likewise.
18fc5f44
EB
19631 * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
19632 Likewise.
24e47c76
JH
19633 * except.c (debug_eh_tree, verify_eh_tree): Likewise.
19634 * emit-rtl.c (verify_rtl_sharing): Likewise.
19635 * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
19636 debug_value_expressions): Likewise.
19637 * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
19638 * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
19639 * print-tree.c (debug_tree, debug_vec_tree): Likewise.
19640 * cfglayout.c (verify_insn_chain): Likewise.
19641 * graphite-clast-to-gimple.c (debug_clast_name_indexes,
19642 debug_clast_stmt, debug_generated_program): Likewise.
19643 * ggc-page.c (debug_print_page_list): Likewise.
19644 * tree-ssa-ter.c (debug_ter): Likewise.
19645 * graphite-dependences.c (debug_pddr): Likewise.
19646 * sched-deps.c (debug_ds): Likewise.
19647 * tree-ssa.c (verify_ssa): Likewise.
19648 * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
19649 debug_scattering_functions, debug_iteration_domains, debug_pdr,
18fc5f44
EB
19650 debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
19651 debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
24e47c76
JH
19652 * tree-inline.c (debug_find_tree): Likewise.
19653 * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
19654 debug_ppl_powerset_matrix): Likewise.
19655 * var-tracking.c (debug_dv): Likewise.
19656 * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
19657 * cfgloop.c (verify_loop_structure): Likewise.
19658 * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
19659 * c-common.c (verify_sequence_points): Likewise.
19660 * sched-rgn.c (debug_regions, debug_region, debug_candidate,
19661 debug_candidates, debug_rgn_dependencies): Likewise.
19662 * tree-ssa-structalias.c (debug_constraint, debug_constraints,
19663 * debug_constraint_graph, debug_solution_for_var,
19664 debug_sa_points_to_info): Likewise.
19665 * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
19666 Likewie.
19667 * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
19668 debug_loops, debug_loop, debug_loop_num): Likewise.
19669 * passes.c (debug_pass): Likewise.
19670 (dump_properties): Likewise; add cfglayout property.
19671 (debug_properties): Likewise.
19672 * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
19673 * varpool.c (debug_varpool): Likewise.
19674 * regcprop.c (debug_value_data): Likewise.
19675 * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
19676 debug_immediate_uses_for): Likewise.
19677
f9897dfa
L
196782010-05-29 H.J. Lu <hongjiu.lu@intel.com>
19679
19680 PR bootstrap/44315
19681 * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
19682 Filter out insn-flags.h.
19683
9eec9488
JH
196842010-05-29 Jan Hubicka <jh@suse.cz>
19685
19686 * cgraph.h (struct varpool_node_set_def,
19687 struct cgraph_node_set_def): Remove unused AUX pointer.
19688 (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
19689 VEC_empty macro.
19690
eb598ce6
JH
196912010-05-29 Jan Hubicka <jh@suse.cz>
19692
19693 PR middle-end/44324
19694 * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
19695
1be8f484
RG
196962010-05-29 Richard Guenther <rguenther@suse.de>
19697
19698 * lto-streamer.c (cached_bp): New global variable.
19699 (bitpack_create): Return the cached bitpack, if available.
19700 (bitpack_delete): Clear and cache the bitpack, if appropriate.
19701 (bp_pack_value): Remove redundant asserts.
19702
0247298c
SP
197032010-05-29 Sebastian Pop <sebastian.pop@amd.com>
19704
19705 PR middle-end/44306
19706 * tree-if-conv.c (is_true_predicate): New.
19707 (is_predicated): Use is_true_predicate.
19708 (add_to_predicate_list): Same. Do not use unshare_expr.
19709 (add_to_dst_predicate_list): Same.
19710
32ccbfac
SP
197112010-05-29 Sebastian Pop <sebastian.pop@amd.com>
19712
19713 * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
19714 field on edges.
19715 (predicate_bbs): Same.
19716 (clean_predicate_lists): Same.
19717 (find_phi_replacement_condition): Do not AND the predicate from
19718 edge->aux.
19719
a41021ce
L
197202010-05-29 H.J. Lu <hongjiu.lu@intel.com>
19721
19722 PR bootstrap/44315
19723 * Makefile.in (build/gencondmd.o): Add a missing `\'.
19724
bbd07239
JDA
197252010-05-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19726
19727 PR target/44261
19728 config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
19729 (negdf2): Adjust expander pattern and use negdf2_slow.
19730 (negsf2): Likewise.
19731
25efe060
NF
197322010-05-29 Nathan Froyd <froydnj@codesourcery.com>
19733
18fc5f44
EB
19734 * basic-block.h (struct control_flow_graph): Move last_label_uid field
19735 up.
25efe060
NF
19736 * df.h (struct df_base_ref): Move regno field up.
19737 * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
19738 * expr.h (struct separate_ops): Move location field up.
19739 * optabs.h (struct optab_d): Move libcall_basename field down.
19740 * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
19741 * config/i386/i386.h (struct machine_function): Convert call_abi field
19742 into a bitfield. Move cfa field to the end of the structure.
19743
4cceafb8
JH
197442010-05-29 Jan Hubicka <jh@suse.cz>
19745
19746 * varpool.c (varpool_get_node): Fix lookup.
19747
65ea7e28
SB
197482010-05-29 Steven Bosscher <steven@gcc.gnu.org>
19749
19750 * config/spu/spu-protos.h: Do not include rtl.h. Protect
19751 RTL specific prototypes with #ifdef RTX_CODE.
19752 * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
19753 * config/spu/t-spu-elf: Fix dependencies.
19754
1a86e236
SB
19755 * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
19756
d03a97e1
MS
197572010-05-29 Mike Stump <mikestump@comcast.net>
19758
a41021ce 19759 PR bootstrap/44315
d03a97e1
MS
19760 * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
19761 TM_H when building to avoid dependency loops.
19762
f0c418dc
JH
197632010-05-29 Jan Hubicka <jh@suse.cz>
19764
54da01d2 19765 * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
dedd9d05 19766 refs and body; not the whole node for masters of materialized clones.
f0c418dc 19767
5c5543af
MS
197682010-05-29 Mike Stump <mikestump@comcast.net>
19769
19770 * config/rs6000/rs6000-c.c: Remove c-tree.h include.
19771
036546e5
JH
197722010-05-29 Jan Hubicka <jh@suse.cz>
19773
19774 * cgraph.c (clone_function_name): Take SUFFIX argument; export.
19775 (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
19776 use of clone_function_name.
308e51aa 19777 * cgraph.h (cgraph_create_virtual_clone,
036546e5
JH
19778 cgraph_function_versioning): update prototypes.
19779 (clone_function_name): Declare.
19780 * ipa-cp.c (ipcp_insert_stage): Update call of
19781 cgraph_create_virtual_clone.
19782 * omp-low.c (create_omp_child_function_name): Use
19783 cgraph_create_virtual_clone.
19784 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
19785 (cgraph_function_versioning): Take SUFFIX argument; produce new name
19786 and make decl local.
19787
3e097227
SB
197882010-05-29 Steven Bosscher <steven@gcc.gnu.org>
19789
19790 * vec.h: Include statistics.h
19791 * Makefile.in: Introduce VEC_H. Replace all vec.h dependencies
19792 with VEC_H.
19793
accf9ad6
SB
197942010-05-29 Steven Bosscher <steven@gcc.gnu.org>
19795
3d25c396
UB
19796 * c-lex.c: Do not include c-tree.h.
19797 * c-pretty-print.c: Likewise.
19798 * c-opts.c: Likewise.
19799 * c-gimplify.c: Likewise.
accf9ad6
SB
19800 * c-common.c: Likewise.
19801 * c-dump.c: Likewise. Include c-common.h.
19802
59cc9210
SB
198032010-05-29 Steven Bosscher <steven@gcc.gnu.org>
19804
19805 * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
19806 before including diagnostic-core.h.
19807 (c_cpp_error): New prototype moved from c-tree.h.
19808 Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
19809 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
19810 (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
19811 (c_cpp_error): Prototype moved to c-common.h.
19812 * Makefile.in: Update dependency for C_COMMON_H.
19813
bffad7f1
SB
198142010-05-29 Steven Bosscher <steven@gcc.gnu.org>
19815
19816 * c-common.h: Add FIXME for awkward split of c_register_addr_space.
19817 * c-common.c (c_register_addr_space): Remove here.
19818 * c-decl.c (c_register_addr_space): Re-add here.
19819
d685a689
MS
198202010-05-28 Mike Stump <mikestump@comcast.net>
19821
19822 * config/darwin-c.c: Remove c-tree.h include.
19823
6afbc885
JM
198242010-05-28 Joseph Myers <joseph@codesourcery.com>
19825
19826 * gcc.c: Include diagnostic.h.
19827 (error_count): Remove. All users changed to use errorcount.
19828 (programname): Remove. All users changed to use progname.
19829 (fancy_abort, internal_error, fatal_error, error, warning, inform,
19830 fnotice): Remove.
19831 (execute): Don't include "Internal error" and bug reporting
19832 information in argument of internal_error call.
19833 (process_command): Don't increment error_count after calling
19834 perror_with_name.
19835 (input_filename): Rename to gcc_input_filename. All users
19836 changed.
19837 (main): Call diagnostic_initialize. Register delete_temp_files
19838 with atexit. Use seen_error to test for errors.
19839 * gcc.h: Include diagnostic-core.h.
19840 (fatal_error, error, warning): Remove.
19841 * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
19842 (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
19843 (gcc.o): Update dependencies.
19844
bdf0eb06
JL
198452010-05-28 Jeff Law <law@redhat.com>
19846
0896cc66
JL
19847 * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
19848 functions.
19849 * ira.h (ira_bad_reload_regno): Declare
19850 * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
19851
bdf0eb06
JL
19852 * ira-color.c (update_curr_costs): Free updated hard reg costs.
19853 (ira_reassign_conflict_allocnos): Remove bogus asserts.
19854 (allocno_reload_assign): Likewise.
19855
4a73490d
NF
198562010-05-28 Nathan Froyd <froydnj@codesourcery.com>
19857
19858 * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
19859 build1_stat.
19860
86561bb6
RG
198612010-05-28 Richard Guenther <rguenther@suse.de>
19862
19863 PR lto/44312
19864 * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
19865 Stream fixed-point constants mode.
19866 (unpack_ts_type_value_fields): Fix width of TYPE_MODE
19867 and TYPE_PRECISION.
19868 * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
19869 Stream fixed-point constants mode.
19870 (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
19871 and TYPE_PRECISION.
19872
0a74c758
SP
198732010-05-28 Sebastian Pop <sebastian.pop@amd.com>
19874
19875 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
19876 only place it was called from.
19877 (number_of_latch_executions): Do not return chrec_dont_know when the
19878 may_be_zero is a runtime condition: instead, return a COND_EXPR
19879 including the may_be_zero condition.
19880 * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
19881 of nb_iterations.
19882 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
19883 COND_EXPRs.
19884
e7cb8957
SP
198852010-05-28 Sebastian Pop <sebastian.pop@amd.com>
19886
19887 * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
19888 generate COND_EXPRs for degenerate_phi_result.
19889
d10e857e
SP
198902010-05-28 Sebastian Pop <sebastian.pop@amd.com>
19891
19892 PR middle-end/44293
19893 * tree-if-conv.c (if_convertible_loop_p): Check the
19894 if-convertibility of phi nodes in non predicated BBs.
19895
6cffd02a
JM
198962010-05-28 Joseph Myers <joseph@codesourcery.com>
19897
19898 * gcc.c (error, warning, inform): Remove duplicate ": " in output.
19899
2dec80c7
JM
199002010-05-28 Joseph Myers <joseph@codesourcery.com>
19901
19902 PR driver/15303
19903 * gcc.c (inform, warning, inform): New functions.
19904 (fatal_ice): Rename to internal_error; change cmsgid parameter to
19905 gmsgid. All callers changed.
dedd9d05 19906 (notice): Rename to fnotice; add parameter fp. All callers changed.
2dec80c7
JM
19907 (fatal_error): Rename to fatal_signal. All users changed.
19908 (fatal): Rename to fatal_error; change cmsgid parameter to
19909 gmsgid. All callers changed.
19910 (process_command): Use warning instead of error for warnings.
19911 (end_going_arg): Don't use _() around argument of error.
19912 (do_spec_1): Use inform for message from %n specs. Use warning
19913 instead of error for warnings.
19914 (main): Use inform for comparison messages. Use warning for
19915 message about unused linker input.
19916 (error): Increment error_count. Print "error: ".
19917 * gcc.h (fatal): Change to fatal_error.
19918 (warning): Declare.
19919 * config/darwin-driver.c (darwin_default_min_version): Use warning
19920 instead of fprintf for warnings.
dedd9d05 19921 * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
2dec80c7 19922
dcd8b2ee
JB
199232010-05-28 Julian Brown <julian@codesourcery.com>
19924
19925 * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
19926 (*thumb2_addsi3_compare0_scratch): New.
19927 * config/arm/constraints.md (Pv): New.
19928 * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
19929 for ARM mode only.
19930 (*addsi3_compare0_scratch): Likewise.
19931
df24c2b8
JH
199322010-05-28 Jan Hubicka <jh@suse.cz>
19933
6c608111
EB
19934 * ipa-reference.c (add_static_var): Remove redundant all_module_statics
19935 check.
19936 (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
19937 only on local statics.
df24c2b8 19938
c3a9a336
IS
199392010-05-28 Iain Sandoe <iains@gcc.gnu.org>
19940
308e51aa 19941 * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
c3a9a336 19942
47089d42
MK
199432010-05-28 Maxim Kuvyrkov <maxim@codesourcery.com>
19944
19945 PR bootstrap/44314
19946 * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
19947 (OPTION_GLIBC): Define.
19948
005d613b
JJ
199492010-05-28 Jakub Jelinek <jakub@redhat.com>
19950
cced5e7f
JJ
19951 PR debug/41048
19952 * dwarf2out.c (double_int_type_size_in_bits): New function.
19953 (round_up_to_align): Change first argument and return value to
19954 double_int.
19955 (field_byte_offset): Work internally on double_ints.
19956
005d613b
JJ
19957 PR target/43636
19958 * builtins.c (expand_movstr): Use a temporary pseudo instead
19959 of target even when target is not NULL and not const0_rtx, but
19960 fails movstr predicate.
19961 * config/m32c/blkmov.md (movstr): Add predicate to first operand.
19962
7ca92787
JM
199632010-05-28 Joseph Myers <joseph@codesourcery.com>
19964
19965 * final.c (rest_of_clean_state): Use %m in errors instead of
19966 strerror (errno).
19967 * gengtype.c (read_input_list, close_output_files): Use xstrerror
19968 instead of strerror.
19969 * toplev.c (process_options): Use %m in errors instead of strerror
19970 (errno).
19971 * tree-dump.c (dump_begin): Use %m in errors instead of strerror
19972 (errno).
19973
8bf85f21
UB
199742010-05-28 Uros Bizjak <ubizjak@gmail.com>
19975
19976 * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
19977 (ix86_canonical_va_list_type): Make static. Add declaration.
19978 (ix86_enum_va_list): Make static. Reindent.
19979 * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
19980 (ix86_canonical_va_list_type): Ditto.
19981 (ix86_enum_va_list): Ditto.
19982
b5611987
RG
199832010-05-28 Richard Guenther <rguenther@suse.de>
19984
19985 * lto-wrapper.c (run_gcc): With -save-temps generate a
19986 user-visible ltrans filename. Fixup ltrans unit numbering.
19987
40dcd88b
KT
199882010-05-28 Kai Tietz <kai.tietz@onevision.com>
19989
d4048208
KT
19990 * c-common.c (c_common_nodes_and_builtins): Replace use
19991 of TARGET_ENUM_VA_LIST by target hook enum_va_list.
19992 * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
19993 to ix86_enum_va_list.
19994 * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
19995 * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
19996 (TARGET_ENUM_VA_LIST_P): Add hook description.
19997 * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
19998 * target.h (gcc_target): Add enum_va_list hook.
19999
40dcd88b
KT
20000 PR bootstrap/44299
20001 * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
20002 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
20003 * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
20004
1cb980a2
AM
200052010-05-28 Alan Modra <amodra@gmail.com>
20006
20007 PR target/44266
20008 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
20009 emit_library_call machinery to set up __tls_get_addr calls.
20010
b247e88a
AK
200112010-05-28 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20012
20013 * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
20014
ec4be2f4
DS
200152010-05-28 Dodji Seketeli <dodji@redhat.com>
20016
6c608111 20017 Revert fix for PR c++/44188
ec4be2f4
DS
20018 * c-common.c (is_typedef_decl): Revert the moving of this
20019 definition ...
20020 * tree.c (is_typedef_decl): ... here.
20021 (typdef_variant_p): Revert the moving of this definition
eed023cc 20022 here from cp/tree.c.
ec4be2f4
DS
20023 * c-common.h (is_typedef_decl): Revert the moving of this
20024 declaration ...
20025 * tree.h (is_typedef_decl): ... here.
20026 (typedef_variant_p): Revert the moving of this declaration here
eed023cc 20027 from cp/cp-tree.h
ec4be2f4
DS
20028 * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
20029 (gen_tagged_type_die): Revert the splitting out of ...
20030 (gen_type_die_with_usage): ... this function. Revert the anonymous
20031 tagged type handling.
20032 (gen_typedef_die): Revert emitting DW_TAG_typedef for
20033 typedefs naming anonymous tagged types.
20034
3fe7b63c
SB
200352010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
20036
20037 * config/rs6000/rs6000-modes.def (PSImode): Delete.
20038
f6b5d695
SB
200392010-05-28 Segher Boessenkool <segher@kernel.crashing.org>
20040
20041 * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
20042 * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
20043 throughout.
20044 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
20045 "xer" to "ca".
20046 Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
20047 XER_REGS to CA_REGS throughout.
20048 * config/rs6000/rs6000.h: Same.
20049 (ADDITIONAL_REGISTER_NAMES): Add "xer".
20050 * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO. Document
20051 that mode_iterator "P" is the size for arithmetic carries as well.
20052 * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
20053
47027bf3
JJ
200542010-05-28 Jakub Jelinek <jakub@redhat.com>
20055
20056 PR bootstrap/44255
20057 * combine.c (struct rtx_subst_pair): Define unconditionally.
20058 (propagate_for_debug_subst): Likewise. If not AUTO_INC_DEC,
20059 copy_rtx pair->to instead of cleanup_auto_inc_dec it.
20060 Call make_compound_operation on pair->to.
20061 (propagate_for_debug): Don't call make_compound_operation here.
20062 Always use simplify_replace_fn_rtx.
20063
200642010-05-27 Sterling Augustine <sterling@tensilica.com>
1b408ba1
SA
20065
20066 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
20067 * config/xtensa/xtensa.c (override_options): Check
20068 TARGET_FORCE_NO_PIC and set flag_pic.
20069 * config/xtensa/xtensa.opt: Document -mforce-no-pic
20070
200712010-05-27 Kai Tietz <kai.tietz@onevision.com>
20072
0bc25dd0
KT
20073 PR bootstrap/44299
20074 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
20075 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
20076
1da2ed5f
JM
200772010-05-27 Joseph Myers <joseph@codesourcery.com>
20078
20079 * diagnostic-core.h: New. Contents moved from diagnostic.h and
20080 toplev.h.
20081 * diagnostic.c: Don't include toplev.h.
20082 (progname): Define. Moved from toplev.c.
20083 (seen_error): New function.
20084 * diagnostic.h: Include diagnostic-core.h.
20085 (diagnostic_t, emit_diagnostic): Don't declare here.
20086 * toplev.c (progname): Move to toplev.c.
20087 (emit_debug_global_declarations, compile_file, finalize,
20088 do_compile, toplev_main): Use seen_error.
20089 * toplev.h: Include diagnostic-core.h.
20090 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
20091 internal_error, warning, warning_at, error, error_n, error_at,
20092 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
20093 verbatim, fnotice, progname): Move to diagnostic-core.h.
20094 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
20095 (expand_builtin_expect): Use seen_error.
20096 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
20097 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
20098 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
20099 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
20100 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
20101 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
20102 errorcount for errors.
20103 * c-opts.c (c_common_finish): Use seen_error.
20104 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
20105 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
20106 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
20107 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
20108 (get_coverage_counts): Use seen_error.
20109 * dwarf2out.c (dwarf2out_finish): Use seen_error.
20110 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
20111 gimplify_body): Use seen_error.
20112 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
20113 * ipa-pure-const.c (gate_pure_const): Use seen_error.
20114 * ipa-reference.c (gate_reference): Use seen_error.
20115 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
20116 * lambda-code.c: Include diagnostic-core.h instead of
20117 diagnostic.h.
20118 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
20119 * lto-compress.c: Include diagnostic-core.h instead of
20120 diagnostic.h.
20121 * lto-section-in.c: Include diagnostic-core.h instead of
20122 diagnostic.h.
20123 * lto-streamer-out.c: Include diagnostic-core.h instead of
20124 diagnostic.h.
20125 * lto-streamer.c: Include diagnostic-core.h instead of
20126 diagnostic.h.
20127 (gate_lto_out): Use seen_error.
20128 * matrix-reorg.c: Include diagnostic-core.h instead of
20129 diagnostic.h.
20130 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
20131 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
20132 (gate_expand_omp, lower_omp_1): Use seen_error.
20133 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
20134 (rest_of_decl_compilation, rest_of_type_compilation,
20135 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
20136 * tree-cfg.c (label_to_block_fn): Use seen_error.
20137 * tree-inline.c (optimize_inline_calls): Use seen_error.
20138 * tree-mudflap.c (mudflap_finish_file): Use
20139 seen_error.
20140 * tree-optimize.c (gate_all_optimizations,
20141 gate_all_early_local_passes, gate_all_early_optimizations): Use
20142 seen_error.
20143 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
20144 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
20145 (varpool_remove_unreferenced_decls,
20146 varpool_assemble_pending_decls): Use seen_error.
20147 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
20148 (TOPLEV_H, DIAGNOSTIC_H): Update.
20149 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
20150 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
20151 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
20152 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
20153 coverage.o, lambda-code.o): Update dependencies.
20154
fe08ec12
DS
201552010-05-25 Dodji Seketeli <dodji@redhat.com>
20156
20157 PR c++/44188
20158 * c-common.c (is_typedef_decl): Move this definition ...
20159 * tree.c (is_typedef_decl): ... here.
eed023cc 20160 (typdef_variant_p): Move definition here from cp/tree.c.
fe08ec12
DS
20161 * c-common.h (is_typedef_decl): Move this declaration ...
20162 * tree.h (is_typedef_decl): ... here.
eed023cc 20163 (typedef_variant_p): Move declaration here from cp/cp-tree.h
fe08ec12
DS
20164 * dwarf2out.c (is_naming_typedef_decl): New function.
20165 (gen_tagged_type_die): Split out of ...
20166 (gen_type_die_with_usage): ... this function. When an anonymous
20167 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
20168 is emitted for the typedef.
20169 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
20170 anonymous tagged types.
20171
b042534c
JM
201722010-05-27 Jason Merrill <jason@redhat.com>
20173
20174 * print-tree.c (debug_vec_tree): New fn.
20175 (print_vec_tree): New fn.
20176 * tree.h: Declare them.
20177 * gdbinit.in (pvt): New command.
20178
20179 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
20180
20181 * gdbinit.in (pdd): New command.
20182
cdc029b9
JH
201832010-05-27 Jan Hubicka <jh@suse.cz>
20184
20185 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
20186 (update_caller_keys): Return early if there are no callers;
20187 only update fibheap when decresing the key.
20188 (update_callee_keys): Avoid recursion.
20189 (decide_inlining_of_small_functions): When badness does not match;
20190 re-insert into fibheap.
20191
7a3b4887
SB
201922010-05-27 Steven Bosscher <steven@gcc.gnu.org>
20193
20194 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
20195 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
20196 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
20197 (ALL_HOST_OBJS): Now a union of the above two.
20198 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
20199 all files in ALL_HOST_FRONTEND_OBJS.
20200 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
20201
20202 * c-common.c: Pretend to be a backend file by undefining
20203 IN_GCC_FRONTEND (still need rtl.h here).
20204
753d358d
JH
202052010-05-27 Jan Hubicka <jh@suse.cz>
20206
20207 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
20208 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
20209
88302d54
JH
202102010-05-27 Jan Hubicka <jh@suse.cz>
20211
20212 * sched-ebb.c: Rename struct deps to struct deps_desc.
20213 * ddg.c: Likewise.
20214 * sel-sched-ir.c: Likewise.
20215 * sched-deps.c: Likewise.
20216 * sched-int.h: Likewise.
20217 * sched-rgn.c: Likewise.
20218
f4a4b582 202192010-05-27 Jon Beniston <jon@beniston.com>
9bb81453
JB
20220
20221 PR 43726
308e51aa 20222 * config/lm32/lm32.h: Remove definition of
9bb81453
JB
20223 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
20224
7951d88a
EB
202252010-05-27 Eric Botcazou <ebotcazou@adacore.com>
20226
20227 PR lto/44230
20228 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
20229
fde9c428
RG
202302010-05-27 Richard Guenther <rguenther@suse.de>
20231
20232 PR tree-optimization/44284
20233 * tree-vect-stmts.c (vectorizable_assignment): Handle
20234 sign-changing conversions as simple copy.
20235
3714764d
MK
202362010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
20237
20238 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
20239 Bionic C library.
20240 (__gthread_active_p): Check for pthread_create if compiling against
20241 Bionic C library.
20242
51b9db92
MK
202432010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
20244
20245 Support compilation for Android platform. Reimplement -mandroid.
20246
20247 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
20248 (*android*): Set ANDROID_DEFAULT.
20249 (arm*-*-linux*): Include linux-android.h.
20250 (arm*-*-eabi*): Don't include previous -mandroid implementation.
20251 * config/arm/eabi.h: Remove, move Android-specific parts ...
20252 * config/linux-android.h: ... here. New file.
20253 * config/arm/eabi.opt: Rename to ...
20254 * config/linux-android.opt: ... this.
20255 (mandroid): Allow -mno-android option. Initialize based on
20256 ANDROID_DEFAULT.
20257 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
20258 Move logic to corresponding LINUX_TARGET_* macros.
20259 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
20260 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
20261 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
20262 Android definitions.
20263 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
20264 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
20265 Document.
20266
74c70253
MK
202672010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
20268
20269 Add support for Bionic C library
20270
20271 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
20272 macro.
20273 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
20274 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
20275
20276 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
20277 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
20278 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
20279 to support multiple C libraries. Handle Bionic.
20280 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
20281 (BIONIC_DYNAMIC_LINKER64): Define.
20282 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
20283 Update.
20284 (TARGET_HAS_SINCOS): Enable for Bionic.
20285
20286 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
20287 the last option specified on command line take effect.
20288 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
20289 (mbionic): New.
20290 (mglibc, muclibc): Update.
20291
20292 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
20293 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
20294 DEFAULT_LIBC.
20295
20296 * doc/invoke.texi (-mglibc, -muclibc): Update.
20297 (-mbionic): Document.
20298
3ef0694c
UW
202992010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20300
20301 * c-common.h (c_register_addr_space): Add prototype.
20302 (ADDR_SPACE_KEYWORD): Remove.
20303 * c-common.c (c_register_addr_space): New function.
20304 (c_addr_space_name): Reimplement.
20305 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
20306
20307 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
20308 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
20309
20310 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
20311 Remove TARGET_ADDR_SPACE_KEYWORDS.
20312
447924ef
JM
203132010-05-27 Joseph Myers <joseph@codesourcery.com>
20314
20315 * input.c: New file.
20316 * input.h (main_input_filename): Move declaration to toplev.h.
20317 * toplev.c (input_location, line_table): Move to input.c
20318 * toplev.h (main_input_filename): Move declaration from input.h.
20319 * tree.c (expand_location): Move to input.c.
20320 * Makefile.in (OBJS-common): Add input.o.
20321 (input.o): Add dependencies.
20322
62116e60
RG
203232010-05-27 Richard Guenther <rguenther@suse.de>
20324
20325 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
20326 for non-existant files.
20327 (fork_execute): Mark args_name file as deleted.
20328
64c31785
KT
203292010-05-27 Kai Tietz <kai.tietz@onevision.com>
20330
20331 PR bootstrp/44287
20332 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
20333 (narrow_signed_type): Likewise.
20334
e466e2ce
JH
203352010-05-26 Jan Hubicka <jh@suse.cz>
20336
20337 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
20338 edge only when checking is enabled; check using former_clone_of;
20339 check inline clones too.
20340 (cgraph_materialize_clone): Record former_clone_of pointer.
20341 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
20342 combining redirections; dump args_to_skip bitmap
20343 (cgraph_materialize_all_clones): Do no redirection here.
20344 * ipa-inline.c (inline_transform): Do redirection here.
20345 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
20346 cheking only).
20347
e62d5d9f
SB
203482010-05-26 Steven Bosscher <steven@gcc.gnu.org>
20349
20350 * config/avr/avr-c.c: Do not include regs.h.
20351 Include cpplib.h for cpp_define and tree.h for c-common.h.
20352 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
20353 * config/avr/t-avr: Fix dependencies for avr-c.o.
20354
d477d1fe
SB
203552010-05-26 Steven Bosscher <steven@gcc.gnu.org>
20356
20357 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
20358 string instead of SYMBOL_REF rtx.
20359 * rtl.h (set_stack_check_libfunc): Move prototype from here...
20360 * libfuncs.h: ...to here. Adjust for explow.c change.
20361
ab9b814d
JM
203622010-05-26 Joseph Myers <joseph@codesourcery.com>
20363
20364 * pretty-print.c: Don't include ggc.h.
20365 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
20366 (identifier_to_locale): Use them for allocation.
20367 * pretty-print.h (identifier_to_locale_alloc,
20368 identifier_to_locale_free): Declare.
20369 * toplev.c (alloc_for_identifier_to_locale): New.
20370 (general_init): Set identifier_to_locale_alloc and
20371 identifier_to_locale_free.
20372 * Makefile.in (pretty-print.o): Update dependencies.
20373
c9549072
EB
203742010-05-26 Eric Botcazou <ebotcazou@adacore.com>
20375
20376 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
20377 pointer types if they have different alignment or mode.
20378
bf44d792
AS
203792010-05-26 Anatoly Sokolov <aesok@post.ru>
20380
20381 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
20382 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
20383 * config/sparc/sparc-protos.h (function_value): Remove declaration.
20384 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
20385 sparc_function_value_regno_p): New functions.
20386 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
20387 TARGET_FUNCTION_VALUE_REGNO_P): Define.
20388 (function_value): Rename to...
20389 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
20390 argument to 'outgoing'.
20391 (function_arg_record_value, function_arg_union_value,
20392 function_arg_vector_value): Update comment.
20393
4ad2e1ec
EB
203942010-05-26 Eric Botcazou <ebotcazou@adacore.com>
20395
20396 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
20397 (fde_needed_for_eh_p): New predicate.
20398 (output_call_frame_info): Use it throughout to decide whether FDEs
20399 are needed for EH purpose.
20400 (dwarf2out_begin_prologue): Reorder assignments.
20401
4204425f
SP
204022010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20403
20404 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
20405 special case loop->header.
20406 (is_predicated): New.
20407 (if_convertible_loop_p): Call it.
20408
e1449456
SP
204092010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20410
20411 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
20412 iterator in parameter. Do not generate code during the analysis.
20413 (tree_if_convert_cond_stmt): Removed.
20414 (tree_if_convert_stmt): Removed.
20415 (predicate_bbs): New.
20416 (if_convertible_loop_p): Call predicate_bbs.
20417 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
20418 now contains all the analysis part.
20419
76b84776
SP
204202010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20421
20422 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
20423 statements in the analysis part.
20424 (tree_if_convert_stmt): Update comment.
20425 (remove_conditions_and_labels): New.
20426 (combine_blocks): Call remove_conditions_and_labels.
20427 (tree_if_conversion): Update comment.
20428
bc447143
SP
204292010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20430
20431 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
20432 than 2 predecessors or more than 2 successors.
20433
6d795034
SP
204342010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20435
20436 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
20437 of loops in which the data dependence analysis fails.
20438
d7309618
SP
204392010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20440
20441 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
20442 CDI_POST_DOMINATORS.
20443 (tree_if_conversion): Same.
20444
7b371e73
SP
204452010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20446
20447 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
20448
4ab71973
SP
204492010-05-26 Sebastian Pop <sebastian.pop@amd.com>
20450
20451 * tree-if-conv.c: Update copyright years. Fix comments.
20452 Fix indentation.
20453
a6766312
KT
204542010-05-26 Kai Tietz <kai.tietz@onevision.com>
20455
20456 * builtin-types.def (BT_INT128): New primitive type.
20457 (BT_UINT128): Likewise.
20458 * c-common.c (c_common_r): Add __int128 keyword.
20459 (c_common_type_for_size): Handle __int128.
20460 (c_common_type_for_mode): Likewise.
20461 (c_common_signed_or_unsigned_type): Likewise.
20462 (c_common_nodes_and_builtins): Add builtin type
20463 if target supports 128-bit integer scalar.
20464 * c-common.h (enum rid): Add RID_INT128.
20465 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
20466 if target supports 128-bit integer scalar.
ade52657 20467 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
a6766312
KT
20468 (finish_declspecs): Likewise.
20469 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
20470 (c_token_starts_declspecs): Likewise.
20471 (c_parser_declspecs): Likewise.
20472 (c_parser_attributes): Likewise.
20473 (c_parser_objc_selector): Likewise.
20474 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
20475 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
20476 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
20477 * tree.c (make_or_reuse_type): Likewise.
20478 (make_unsigned_type): Likewise.
20479 (build_common_tree_nodes_2): Likewise.
20480 * tree.h (enum integer_type_kind): Add itk_int128 and
20481 itk_unsigned_int128.
ade52657 20482 (int128_integer_type_node): New define.
a6766312 20483 (int128_unsigned_type_node): New define.
a6766312
KT
20484 * doc/extend.texi: Add documentation about __int128 type.
20485
880ad25f
RG
204862010-05-26 Richard Guenther <rguenther@suse.de>
20487
20488 * tree-ssa-sccvn.c (copy_nary): Adjust.
20489 (copy_phis): Rename to ...
20490 (copy_phi): ... this. Adjust.
20491 (copy_references): Rename to ...
20492 (copy_reference): ... this. Adjust.
20493 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
20494 result into the valid table.
20495
52642070
SB
204962010-05-26 Steven Bosscher <steven@gcc.gnu.org>
20497
20498 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
20499 insn-config.h, insn-codes.h, recog.h, and optabs.h.
20500
58cd6303
LB
205012010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
20502
ade52657 20503 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
58cd6303 20504
c3a02647
RG
205052010-05-26 Richard Guenther <rguenther@suse.de>
20506
20507 * opts.c (common_handle_option): Handle OPT_Ofast.
20508
5f0f4a3b
JM
205092010-05-26 Joseph Myers <joseph@codesourcery.com>
20510
20511 * diagnostic.c: Don't include opts.h.
20512 (permissive_error_option): Define.
20513 (diagnostic_initialize): Take n_opts parameter. Allocate memory
20514 for classify_diagnostic. Don't use memset for
20515 classify_diagnostic. Initialize new and recently added fields.
20516 (diagnostic_classify_diagnostic): Use context->n_opts instead of
20517 N_OPTS.
20518 (diagnostic_report_diagnostic): Pass context parameter to
20519 diagnostic_report_warnings_p. Use option_enabled and option_name
20520 hooks from context.
20521 (emit_diagnostic): Use permissive_error_option.
20522 (permerror): Likewise.
20523 * diagnostic.h: Don't include options.h.
20524 (struct diagnostic_context): Add n_opts, opt_permissive,
20525 inhibit_warnings, warn_system_headers, option_enabled and
20526 option_name fields. Change classify_diagnostic to a pointer.
20527 * opts-diagnostic.h: New file.
20528 * opts.c: Include opts-diagnostic.h.
20529 (common_handle_option): Set global_dc fields for -Wfatal-errors,
20530 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
20531 (option_name): New function.
20532 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
20533 (c_common_handle_option): Set global_dc->permissive for
20534 -fpermissive.
20535 * c-common.c (c_cpp_error): Save and restore
20536 global_dc->warn_system_headers, not variable warn_system_headers.
20537 * toplev.c: Include opts-diagnostic.h.
20538 (general_init): Update call to diagnostic_initialize. Set
20539 global_dc->show_column, global_dc->option_enabled and
20540 global_dc->option_name.
20541 (process_options): Don't set global_dc fields here.
20542 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
20543 (diagnostic.o, opts.o, toplev.o): Update dependencies.
20544
f024f85d
HS
205452010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
20546
20547 * config/picochip/picochip.md (movsi): Split a movsi from a
20548 const after reload.
20549
e4dfaf72
LB
205502010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
20551
20552 * ggc-zone.c: Update copyright year.
20553 (poison_region): Mark memory for Valgrind as undefined before
20554 memset () call and inaccessible afterwards.
20555 (ggc_pch_total_size): Change type of i to int.
20556
205572010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
20558
20559 * ggc-common.c (ggc_free_overhead): Allow empty slot.
20560
205612010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
20562
20563 * ggc-common.c: Update copyright year.
20564 (ggc_rlimit_bound): Remove prototype. Compile only if
20565 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
20566 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
20567 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
20568 (ggc_min_heapsize_heuristic): Likewise.
20569
630d3fad
RG
205702010-05-26 Richard Guenther <rguenther@suse.de>
20571
20572 PR rtl-optimization/44164
20573 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
20574 no-common access-path disambiguation.
20575 (indirect_ref_may_alias_decl_p): Adjust.
20576 (indirect_refs_may_alias_p): Likewise.
20577 (refs_may_alias_p_1): Likewise.
20578
b9b6c084
SB
205792010-05-26 Steven Bosscher <steven@gcc.gnu.org>
20580
20581 * c-typeck.c: Do not include expr.h.
20582
d347d97e
SB
205832010-05-26 Steven Bosscher <steven@gcc.gnu.org>
20584
20585 * rtl.h (decl_default_tls_model): Move prototype from here...
20586 * output.h: ...to here.
20587 * c-decl.c: Do not include rtl.h.
20588 * c-pragma.c: Likewise.
20589 * c-parser.c: Likewise.
20590 * c-gimplify.c: Likewise. And also not hard-reg-set.
20591 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
20592 FIXME note for it. Add a FIXME note for expr.h.
20593 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
20594 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
20595 defined.
20596
0d65bdbb
JJ
205972010-05-26 Jakub Jelinek <jakub@redhat.com>
20598
20599 PR target/44199
20600 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
20601 or total_size is larger than red zone size for non-V4 ABI, emit a
20602 stack_tie resp. frame_tie insn before stack pointer restore.
20603 * config/rs6000/rs6000.md (frame_tie): New insn.
20604
8f4f502f
EB
206052010-05-25 Eric Botcazou <ebotcazou@adacore.com>
20606
20607 * function.h (struct function): Add can_throw_non_call_exceptions bit.
20608 * lto-streamer-in.c (input_function): Stream it in.
20609 * lto-streamer-out.c (output_function): Stream it out.
20610 * function.c (allocate_struct_function): Set it.
20611 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
20612 for flag_non_call_exceptions.
20613 * cfgbuild.c (control_flow_insn_p): Likewise.
20614 (make_edges): Likewise.
20615 * cfgexpand.c (expand_stack_alignment): Likewise.
20616 * combine.c (distribute_notes): Likewise.
20617 * cse.c (cse_extended_basic_block): Likewise.
20618 * except.c (insn_could_throw_p): Likewise.
20619 * gcse.c (simple_mem): Likewise.
20620 * ipa-pure-const.c (check_call): Likewise.
20621 (check_stmt ): Likewise.
20622 * lower-subreg.c (lower-subreg.c): Likewise.
20623 * optabs.c (emit_libcall_block): Likewise.
20624 (prepare_cmp_insn): Likewise.
20625 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
20626 * postreload.c (rest_of_handle_postreload): Likewise.
20627 * reload1.c (reload_as_needed): Likewise.
20628 (emit_input_reload_insns): Likewise.
20629 (emit_output_reload_insns): Likewise.
20630 (fixup_abnormal_edges): Likewise.
20631 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
20632 * store-motion.c (find_moveable_store): Likewise.
20633 * tree-eh.c (stmt_could_throw_p): Likewise.
20634 (tree_could_throw_p): Likewise.
20635 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
20636 * config/arm/arm.c (arm_expand_prologue): Likewise.
20637 (thumb1_expand_prologue): Likewise.
20638 * config/rx/rx.md (cbranchsf4): Likewise.
20639 (cmpsf): Likewise.
20640 * config/s390/s390.c (s390_emit_prologue): Likewise.
20641 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
20642 (inline_forbidden_into_p): New predicate.
20643 (expand_call_inline): Use it to forbid inlining.
20644 (tree_can_inline_p): Likewise.
20645
c962b78d
SB
206462010-05-25 Steven Bosscher <steven@gcc.gnu.org>
20647
20648 * config/i386/i386-c.c: Do not include rtl.h.
20649 * config/i386/t-i386: Update dependencies.
20650
afb67dc2
SB
206512010-05-25 Steven Bosscher <steven@gcc.gnu.org>
20652
20653 * attribs.c: Do not include rtl.h.
20654 * Makefile.in: Update dependencies.
20655
e233a3b2
AS
206562010-05-25 Anatoly Sokolov <aesok@post.ru>
20657
20658 * double-int.h (double_int_and): New.
20659 * combine.c (try_combine): Clean up, use double_int_* and
20660 immed_double_int_const functions.
20661
bc492e47
RO
206622010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20663
20664 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
20665 stderr to /dev/null instead of grep -q.
20666 * configure: Regenerate.
20667
245763e3
SB
206682010-05-25 Steven Bosscher <steven@gcc.gnu.org>
20669
20670 * Makefile.in (EXCEPT_H): Fix typo.
20671
f4a4b582 206722010-05-25 Vladimir Makarov <vmakarov@redhat.com>
4ac293e2
VM
20673
20674 * ira-build.c (update_conflict_hard_reg_costs): New.
20675 (ira_build): Call update_conflict_hard_reg_costs.
20676
60a5d78a
JJ
206772010-05-25 Jakub Jelinek <jakub@redhat.com>
20678
bb9862c6
JJ
20679 PR debug/41371
20680 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
20681 ENABLE_CHECKING.
20682 (intersect_loc_chains): Walk the s2var's loc_chain together
20683 with s1node chain as long as the locations are equal, don't
20684 call find_loc_in_1pdv in that case.
20685
60a5d78a
JJ
20686 PR debug/42801
20687 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
20688 (copy_bind_expr): ... instead of here.
20689 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
20690 if the block hasn't been remapped.
20691 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
20692 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
20693
c946a318
RG
206942010-05-25 Richard Guenther <rguenther@suse.de>
20695
20696 PR middle-end/44069
20697 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
20698 out-of-bounds array accesses.
20699
50ee30d5
RG
207002010-05-25 Richard Guenther <rguenther@suse.de>
20701
20702 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
20703 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
20704 (run_gcc): Re-organize to make cleanup easier.
20705
ca1930ce
AK
207062010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20707
20708 * config/s390/s390.c (optimization_options): Fix and move the
20709 flag_prefetch_loop_arrays override ...
20710 (override_options): ... here.
20711
a13812e2
JM
207122010-05-25 Joseph Myers <joseph@codesourcery.com>
20713
20714 * diagnostic.c: Don't include plugin.h.
20715 (diagnostic_report_diagnostic): Don't handle plugins specially
20716 here. Pass context to internal_error callback.
20717 * diagnostic.h (struct diagnostic_context): Add context parameter
20718 to internal_error callback.
ade52657 20719 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
a13812e2
JM
20720 * plugin.h (struct diagnostic_context): Declare.
20721 (warn_if_plugins, plugins_internal_error_function): Declare.
20722 * toplev.c (general_init): Set global_dc->internal_error.
20723 * Makefile.in (diagnostic.o): Update dependencies.
20724
a691bb08 207252010-05-25 Iain Sandoe <iains@gcc.gnu.org>
9a2d05e0
IS
20726
20727 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
20728 * config/rs6000/t-darwin64: New.
20729 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
20730 build crt2.
20731
8fde8b40
CB
207322010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
20733
20734 PR 44203
20735 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
20736 match the original (and intended) behaviour before r159557. This
20737 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
20738 in two ways.
20739
be6d3f0e
RG
207402010-05-25 Richard Guenther <rguenther@suse.de>
20741
20742 * doc/invoke.texi: Document -Ofast.
20743 * target.h (struct gcc_target): Add handle_ofast.
20744 * target-def.h (TARGET_HANDLE_OFAST): Add.
20745 (TARGET_INITIALIZER): Adjust.
ade52657 20746 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
be6d3f0e
RG
20747 * common.opt (Ofast): Add.
20748
ac5eda13
PB
207492010-05-25 Paolo Bonzini <bonzini@gnu.org>
20750
20751 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
20752 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
20753
207542010-05-25 Paolo Bonzini <bonzini@gnu.org>
6597fd0b
PB
20755
20756 PR target/43610
20757 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
20758 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
20759 false_rtx. Use false_rtx to compute the correct *ptest for reversed
20760 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
20761
9d4545b2
JJ
207622010-05-25 Jakub Jelinek <jakub@redhat.com>
20763
20764 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
20765 DW_OP_minus with negated offset instead of DW_OP_plus.
ade52657 20766 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
9d4545b2 20767
ee4e1706
WG
207682010-05-25 Wei Guozhi <carrot@google.com>
20769
20770 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
20771 tst instruction and a new alternative.
20772 * config/arm/constraints.md (Pu): New constraint.
20773
427188d5
SP
207742010-05-24 Sebastian Pop <sebastian.pop@amd.com>
20775
20776 * function.c (assign_stack_local_1): Initialize variable
20777 to avoid warning when bootstrapping at -O3.
20778
96ee6e08
SB
207792010-05-24 Steven Bosscher <steven@gcc.gnu.org>
20780
20781 * configure.ac (all_lang_makefiles): Remove everything related to it.
20782 * configure: Regenerate.
20783 * Makefile.in: Fix reference to ada Make-lang.in.
20784 Remove support for LANG_MAKEFILES.
20785
1ab55d69
MK
207862010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
20787 Sandra Loosemore <sandra@codesourcery.com>
20788
20789 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
20790 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
20791 description. Add arm_neon_fp16_ok.
20792 (Add Options): Add arm_neon and arm_neon_fp16.
20793
243fbddd
JM
207942010-05-24 Joseph Myers <joseph@codesourcery.com>
20795
20796 * diagnostic.c: Don't include flags.h.
20797 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
ade52657 20798 context parameters. Check flags in the context passed as a parameter.
243fbddd
JM
20799 (diagnostic_build_prefix): Add context parameter. Check
20800 show_column flag in context.
ade52657
UB
20801 (diagnostic_action_after_output): Check fatal_errors flag in context.
20802 (diagnostic_report_current_module): Check show_column flag in context.
243fbddd
JM
20803 (default_diagnostic_starter): Update call to
20804 diagnostic_build_prefix.
ade52657 20805 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
243fbddd
JM
20806 (emit_diagnostic): Pass context to permissive_error_kind.
20807 (permerror): Pass context to permissive_error_kind.
20808 * diagnostic.h (struct diagnostic_context): Add show_column,
20809 pedantic_errors, permissive and fatal_errors fields.
20810 (diagnostic_build_prefix): Update prototype.
20811 * langhooks.c
20812 * toplev.c (process_options): Set flags in global_dc from
20813 flag_show_column, flag_pedantic_errors, flag_permissive,
20814 flag_fatal_errors.
20815 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
20816 to diagnostic_build_prefix.
20817 * Makefile.in (diagnostic.o): Update dependencies.
20818
42f40af4
L
208192010-05-24 H.J. Lu <hongjiu.lu@intel.com>
20820
20821 * config/i386/ia32intrin.h (__crc32q): Define only if
20822 __SSE4_2__ is defined.
20823
1db0429a
IS
208242010-05-24 Iain Sandoe <iains@gcc.gnu.org>
20825
20826 PR target/44132
20827 PR middle-end/43602
20828 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
20829 DECL_VISIBILITY_SPECIFIED.
20830 (emutls_decl): Set DECL_PRESERVE_P and copy
20831 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
20832 (emutls_finalize_control_var): New callback.
20833 (emutls_finish): Finalize emutls control variables.
ade52657 20834 * toplev.c (compile_file): Move the call to emutls_finish ()
1db0429a
IS
20835 before varpool_assemble_pending_decls ().
20836
e72e2da4
DG
208372010-05-24 Daniel Gutson <dgutson@codesourcery.com>
20838
20839 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
20840 added to the preprocessor condition.
20841
b748fbd6
PB
208422010-05-24 Paul Brook <paul@codesourcery.com>
20843
20844 * gengtype-lex.l: Add HARD_REG_SET.
20845 * expr.c (expand_expr_real_1): Record writes to hard registers.
20846 * function.c (rtl_data): Add asm_clobbers.
20847 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
20848 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
20849 Use crtl->asm_clobbers.
20850
9888e9cf
RW
208512010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20852
20853 * doc/makefile.texi (Makefile): Mention stages 'profile'
20854 and 'feedback' for profiledbootstrap.
20855
cf5b989e
L
208562010-05-23 H.J. Lu <hongjiu.lu@intel.com>
20857
20858 PR target/44245
20859 * config/i386/i386.c (def_builtin): Properly check
20860 OPTION_MASK_ISA_64BIT.
20861
dc5027f4
JM
208622010-05-23 Joseph Myers <joseph@codesourcery.com>
20863
20864 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
20865 typedefs with different but compatible types. Allow duplicate
20866 typedefs with the same type except for pedantic non-C1X, but give
20867 warning for variably modified types.
20868 * c-typeck.c (tagged_types_tu_compatible_p,
20869 function_types_compatible_p, type_lists_compatible_p,
20870 comptypes_internal): Add parameter different_types_p; set
20871 *different_types_p for different but compatible types. All
20872 callers changed.
20873 (comptypes_check_different_types): New.
20874 * c-tree.h (comptypes_check_different_types): Declare.
20875
2d1a4cc1
SB
208762010-05-23 Steven Bosscher <steven@gcc.gnu.org>
20877
ade52657 20878 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
2d1a4cc1
SB
20879 * jump.c: Include basic-block.h.
20880 * profile.c: Likewise.
20881 * tree-profile.c: Likewise.
20882 * coverage.c: Likewise.
20883 * basic-block.h (optimize_function_for_size_p): Move to function.h.
20884 (optimize_function_for_speed_p): Likewise.
20885 * function.h (optimize_function_for_size_p,
20886 optimize_function_for_speed_p): Moved here from basic-block.h.
539bac37 20887 * Makefile.in: Update dependencies.
2d1a4cc1 20888
5767217f
RW
208892010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20890
20891 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
20892 before calling make; allow override through $MAKE.
20893 * doc/invoke.texi (Optimize Options): Document override.
20894
7a955d62
AS
208952010-05-23 Anatoly Sokolov <aesok@post.ru>
20896
20897 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
20898 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20899 (rs6000_mode_dependent_address_ptr): Make static.
20900 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20901 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
20902 Remove.
20903
362ff46e 209042010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
7b37a805
ML
20905
20906 PR target/43869
20907 * config/i386/i386.c: Make sure that the correct regparm is passed.
20908
9ecb1730
SB
209092010-05-23 Steven Bosscher <steven@gcc.gnu.org>
20910
20911 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
20912 * sbitmap.c: ...to here to internalize sbitmap element access.
20913 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
20914 Explain why basic-block.h is included.
20915 * function.h: Include tm.h for CUMULATIVE_ARGS.
20916 * Makefile.in: Update dependencies.
20917
7a8cba34
SB
209182010-05-22 Steven Bosscher <steven@gcc.gnu.org>
20919
20920 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
20921 New core types.
20922 * sbitmap.h (struct sbitmap_def): Do not typedef here.
20923 * sbitmap.c: Include sbitmap.h.
20924 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
20925 hard-reg-set.h. Split everything related to regsets out from here...
20926 * regset.h: ...to here. New file.
20927 * df.h: Include regset.h and sbitmap.h.
20928 * tree-flow.h: Likewise.
20929 * cfgloop.h: Likewise.
20930 * except.h: Do not include sbitmap.h. Include hashtab.h.
20931 * cgraph.h: Include vec.h and function.h.
20932 * reload.h (struct insn_chain): Change types of live_throughout
20933 and dead_or_set from regset_head to bitmap_head.
20934 (compute_use_by_pseudos): Be defined also if regset.h is not included.
20935 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
20936 spilled_regs from regset_head to bitmap_head to avoid dependency
20937 in regset.h.
20938 * sel-sched-ir.h: Include regset.h.
20939 * reload.c: Include df.h before reload.h.
20940 * caller-save.c: Likewise.
20941 * reload1.c: Likewise.
20942 * ira.c: Likewise.
20943 (mark_elimination): Update type of r to bitmap, consistent with
20944 DF_LR_IN.
20945 * dominance.c: Include bitmap.h.
20946 * modulo-sched.c: Include df.h.
20947 * cfganal.c: Include bitmap.h and sbitmap.h.
20948 * cfgbuild.c: Include sbitmap.h.
20949 * lcm.c: Include sbitmap.h.
20950 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
20951 * domwalk.c: Include sbitmap.h, exclude ggc.h.
20952 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
20953 * cselib.c: Include bitmap.h.
20954 * tree-optimize.c: Include regset.h.
20955 * stmt.c: Include bitmap.h.
20956 * Makefile.in: Update dependencies.
20957
9f90e80a
JH
209582010-05-22 Jan Hubicka <jh@suse.cz>
20959
20960 * cgraph.h (struct varpool_node): Add same_comdat_group.
20961 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
20962 pointer.
20963 (output_varpool): Update call of lto_output_varpool_node.
20964 (input_varpool): Read same_comdat_group pointer.
20965 (input_varpool_1): Fixup same_comdat_group pointer.
20966 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
20967 group is needed, all are.
20968 * varpool.c (varpool_remove_node): Remove node from same comdat group
20969 linklist too.
20970 (varpool_analyze_pending_decls): Walk same comdat groups.
20971
a2c9fe42
SB
209722010-05-22 Steven Bosscher <steven@gcc.gnu.org>
20973
20974 * rtl.h (union rtunion_def): Remove rt_bit member.
20975 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
20976 * print-rtl (print_rtx): Do not print the member.
20977 * gengtype.c (adjust_field_rtx_def): Do not handle it.
20978 * gengenrtl.c (type_from_format): Likewise.
20979 (accessor_from_format): Likewise.
20980
3b2ce251
JM
209812010-05-22 Joseph Myers <joseph@codesourcery.com>
20982
20983 * dbgcnt.c: Include toplev.h instead of errors.h.
20984 * ira-emit.c: Don't include errors.h.
20985 * ira.c: Include toplev.h instead of errors.h.
20986 * lto-compress.c: Include toplev.h instead of errors.h.
20987 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
20988 ira.o, dbgcnt.o): Update dependencies.
20989
bd9eb5da
RG
209902010-05-22 Richard Guenther <rguenther@suse.de>
20991
20992 * gimple.c (gimple_types_compatible_p): Check type qualifications
20993 before merging pointer to complete and pointer to incomplete type.
20994 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
20995 we use our own resolution algorithm. The gold linker plugin
20996 doesn't do the job we want it to do here.
20997
277e2873
AS
209982010-05-22 Anatoly Sokolov <aesok@post.ru>
20999
21000 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21001 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21002 (sparc_mode_dependent_address_p): New function.
21003
613b1547
SB
210042010-05-21 Steven Bosscher <steven@gcc.gnu.org>
21005
21006 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
21007
21008 * timevar.c: Do not include any core headers.
21009 (timevar_print): De-i18n-ize.
21010 (print_time): Likewise.
21011 * timevar.h (timevar_push, timevar_pop): Make inline functions.
21012
cf835838
JM
210132010-05-21 Joseph Myers <joseph@codesourcery.com>
21014
21015 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
21016 langhooks-def.h.
21017 (diagnostic_initialize): Initialize x_data not last_function.
21018 (diagnostic_report_current_function): Move to tree-diagnostic.c.
21019 (default_diagnostic_starter): Call
21020 diagnostic_report_current_module not
21021 diagnostic_report_current_function.
21022 (diagnostic_report_diagnostic): Initialize x_data not
21023 abstract_origin.
21024 (verbatim): Likewise.
21025 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
21026 x_data.
21027 (struct diagnostic_context): Change last_function to x_data.
21028 (diagnostic_auxiliary_data): Replace with
21029 diagnostic_context_auxiliary_data and
21030 diagnostic_info_auxiliary_data.
21031 (diagnostic_last_function_changed, diagnostic_set_last_function,
21032 diagnostic_report_current_function): Move to tree-diagnostic.h.
21033 (print_declaration, dump_generic_node, print_generic_stmt,
21034 print_generic_stmt_indented, print_generic_expr,
21035 print_generic_decl, debug_c_tree, dump_omp_clauses,
21036 print_call_name, debug_generic_expr, debug_generic_stmt,
21037 debug_tree_chain, default_tree_printer): Move to
21038 tree-pretty-print.h.
21039 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
21040 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
21041 gimple-pretty-print.h.
21042 * pretty-print.c: Don't include tree.h
21043 (pp_base_format): Don't handle %K here.
21044 (pp_base_tree_identifier): Move to tree-pretty-print.c.
21045 * pretty-print.h (text_info): Change abstract_origin to x_data.
21046 (pp_tree_identifier, pp_unsupported_tree,
21047 pp_base_tree_identifier): Move to tree-pretty-print.h.
21048 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
21049 tree-pretty-print.h: New files.
21050 * tree-pretty-print.c: Include tree-pretty-print.h.
21051 (percent_K_format): New. Moved from pretty-print.c.
21052 (pp_base_tree_identifier): Move from pretty-print.c.
21053 * c-objc-common.c: Include tree-pretty-print.h.
21054 (c_tree_printer): Handle %K here.
21055 * langhooks.c: Include tree-diagnostic.h.
21056 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
21057 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
21058 (default_tree_printer): Handle %K using percent_K_format.
21059 (general_init): Use default_tree_diagnostic_starter.
21060 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
21061 (free_lang_data): Use default_tree_diagnostic_starter.
21062 * c-pretty-print.c: Include tree-pretty-print.h.
ade52657
UB
21063 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
21064 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
21065 * dwarf2out.c: Include tree-pretty-print.h.
21066 * except.c: Include tree-pretty-print.h.
21067 * gimple-pretty-print.c: Include tree-pretty-print.h and
21068 gimple-pretty-print.h.
21069 * gimplify.c: Include tree-pretty-print.h.
21070 * graphite-poly.c: Include tree-pretty-print.h and
21071 gimple-pretty-print.h.
21072 * ipa-cp.c: Include tree-pretty-print.h.
21073 * ipa-inline.c: Include gimple-pretty-print.h.
ade52657 21074 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
21075 * ipa-pure-const.c: Include gimple-pretty-print.h.
21076 * ipa-struct-reorg.c: Include tree-pretty-print.h and
21077 gimple-pretty-print.h.
21078 * ipa-type-escape.c: Include tree-pretty-print.h.
21079 * print-rtl.c: Include tree-pretty-print.h.
21080 * print-tree.c: Include gimple-pretty-print.h.
21081 * sese.c: Include tree-pretty-print.h.
21082 * tree-affine.c: Include tree-pretty-print.h.
21083 * tree-browser.c: Include tree-pretty-print.h.
21084 * tree-call-cdce.c: Include gimple-pretty-print.h.
ade52657 21085 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
cf835838
JM
21086 * tree-chrec.c: Include tree-pretty-print.h.
21087 * tree-data-ref.c: Include tree-pretty-print.h and
21088 gimple-pretty-print.h.
21089 * tree-dfa.c: Include tree-pretty-print.h.
21090 * tree-if-conv.c: Include tree-pretty-print.h and
21091 gimple-pretty-print.h.
21092 * tree-inline.c: Include tree-pretty-print.h.
21093 * tree-into-ssa.c: Include tree-pretty-print.h and
21094 gimple-pretty-print.h.
21095 * tree-nrv.c: Include tree-pretty-print.h.
21096 * tree-object-size.c: Include tree-pretty-print.h and
21097 gimple-pretty-print.h.
21098 * tree-outof-ssa.c: Include tree-pretty-print.h and
21099 gimple-pretty-print.h.
21100 * tree-parloops.c: Include tree-pretty-print.h and
21101 gimple-pretty-print.h.
21102 * tree-predcom.c: Include tree-pretty-print.h and
21103 gimple-pretty-print.h.
21104 * tree-scalar-evolution.c: Include tree-pretty-print.h and
21105 gimple-pretty-print.h.
21106 * tree-sra.c: Include tree-pretty-print.h.
21107 * tree-ssa-address.c: Include tree-pretty-print.h.
21108 * tree-ssa-alias.c: Include tree-pretty-print.h.
21109 * tree-ssa-ccp.c: Include tree-pretty-print.h and
21110 gimple-pretty-print.h.
21111 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
21112 * tree-ssa-copy.c: Include tree-pretty-print.h and
21113 gimple-pretty-print.h.
21114 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
21115 * tree-ssa-dce.c: Include tree-pretty-print.h and
21116 gimple-pretty-print.h.
21117 * tree-ssa-dom.c: Include tree-pretty-print.h and
21118 gimple-pretty-print.h.
21119 * tree-ssa-dse.c: Include gimple-pretty-print.h.
21120 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
21121 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
21122 * tree-ssa-live.c: Include tree-pretty-print.h and
21123 gimple-pretty-print.h.
21124 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
21125 gimple-pretty-print.h.
21126 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
21127 gimple-pretty-print.h.
21128 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
21129 gimple-pretty-print.h.
21130 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
21131 gimple-pretty-print.h.
21132 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
21133 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
21134 * tree-ssa-operands.c: Include tree-pretty-print.h and
21135 gimple-pretty-print.h.
21136 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
21137 gimple-pretty-print.h.
21138 * tree-ssa-pre.c: Include tree-pretty-print.h and
21139 gimple-pretty-print.h.
21140 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
21141 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
21142 gimple-pretty-print.h.
21143 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
21144 gimple-pretty-print.h.
21145 * tree-ssa-sink.c: Include gimple-pretty-print.h.
21146 * tree-ssa-ter.c: Include tree-pretty-print.h and
21147 gimple-pretty-print.h.
21148 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
21149 * tree-ssa.c: Include tree-pretty-print.h and
21150 gimple-pretty-print.h.
21151 * tree-stdarg.c: Include gimple-pretty-print.h.
21152 * tree-switch-conversion.c: Include gimple-pretty-print.h.
21153 * tree-tailcall.c: Include tree-pretty-print.h and
21154 gimple-pretty-print.h.
21155 * tree-vect-data-refs.c: Include tree-pretty-print.h and
21156 gimple-pretty-print.h.
21157 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
21158 gimple-pretty-print.h.
21159 * tree-vect-loop.c: Include tree-pretty-print.h and
21160 gimple-pretty-print.h.
21161 * tree-vect-patterns.c: Include gimple-pretty-print.h.
21162 * tree-vect-slp.c: Include tree-pretty-print.h and
21163 gimple-pretty-print.h.
21164 * tree-vect-stmts.c: Include tree-pretty-print.h and
21165 gimple-pretty-print.h.
21166 * tree-vectorizer.c: Include tree-pretty-print.h.
21167 * tree-vrp.c: Include tree-pretty-print.h and
21168 gimple-pretty-print.h.
21169 * value-prof.c: Include tree-pretty-print.h and
21170 gimple-pretty-print.h.
21171 * var-tracking.c: Include tree-pretty-print.h.
21172 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
21173 (tree-diagnostic.o): New dependencies.
21174 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
21175 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
21176 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
21177 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
21178 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
21179 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
21180 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
21181 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
21182 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
21183 tree-ssa-address.o, tree-ssa-loop-niter.o,
21184 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
21185 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
21186 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
21187 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
21188 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
21189 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
21190 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
21191 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
21192 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
21193 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
21194 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
21195 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
21196 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
21197 tree-switch-conversion.o, var-tracking.o, value-prof.o,
21198 cfgexpand.o, pretty-print.o): Update dependencies.
21199
cf4f4175
AT
212002010-05-22 Andreas Tobler <andreast@fgznet.ch>
21201
21202 * tree-ssa-structalias.c: Remove tm_p.h from include.
21203
c6d0f11a
JL
212042010-05-21 Jeff Law <law@redhat.com>
21205
21206 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
21207
d3f28910
JM
212082010-05-21 Jason Merrill <jason@redhat.com>
21209
21210 * tree-eh.c (cleanup_is_dead_in): New.
21211 (lower_try_finally): Don't generate a dead cleanup region.
21212 (lower_cleanup): Likewise.
21213
14db98d4
JJ
212142010-05-21 Jakub Jelinek <jakub@redhat.com>
21215
21216 PR debug/44223
21217 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
21218 unchain each use from the cyclic next_regno_use chain first.
21219
d49b6e1e
SB
212202010-05-21 Steven Bosscher <steven@gcc.gnu.org>
21221
21222 * real: Do not include gmp.h, mpfr.h, and mpc.h.
21223 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
21224 (real_value_negate, real_value_abs): New prototypes.
21225 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
21226 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
21227 new include file for interface between MPFR and REAL_VALUE_TYPE.
21228 * real.c: Include realmpfr.h.
21229 (real_arithmetic2): Remove legacy function.
21230 (real_value_negate): New.
21231 (real_value_abs): New.
21232 (mfpr_from_real, real_from_mpfr): Move from here...
21233 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
21234 * builtins.c: Include realmpfr.h.
21235 * fold-const.c: Include realmpfr.h.
21236 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
21237 (fold_negate_const): Likewise.
21238 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
21239 * toplev.c: Include realmpfr.h.
21240 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
21241 and real_value_negate.
21242 * fixed-value.c (check_real_for_fixed_mode): Likewise.
21243 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
21244 (vfp3_const_double_index): Likewise.
21245 (arm_print_operand): Likewise.
21246 * Makefile.in: Update dependencies.
21247
5b4b1c9a
AK
212482010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21249
21250 * config/s390/s390.c (override_options): Increase the default
21251 of max-completely-peel-times.
21252
7c19c715
JB
212532010-05-21 Julian Brown <julian@codesourcery.com>
21254 Mark Mitchell <mark@codesourcery.com>
21255
21256 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
21257 sibling calls for Thumb-1.
21258 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
21259 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
21260 Thumb-2.
21261 (*call_insn, *call_value_insn): Don't use for Thumb-2.
21262 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
21263 for Thumb-2.
21264 (return): New expander.
21265 (*arm_return): New name for ARM return insn.
21266 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
21267
f4a4b582 212682010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
3943fe02
JS
21269
21270 * config.gcc (sparc64-*-rtems*): New target.
21271
95f6e526
NF
212722010-05-21 Nathan Froyd <froydnj@codesourcery.com>
21273
21274 * tree.c (build_function_decl_skip_args): Fix grammar.
21275 (build_function_type_list_1): Fix typos, adjust formatting.
21276
40013784
SB
212772010-05-21 Steven Bosscher <steven@gcc.gnu.org>
21278
21279 * tree.h: Include real.h and fixed-value.h as basic datatypes.
21280 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
21281 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
21282 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
21283 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
21284 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
21285 tree-pretty-print.c, tree-loop-distribution.c,
21286 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
21287 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
21288 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
21289 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
21290 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
21291 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
21292 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
21293 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
21294 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
21295 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
21296 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
21297 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
21298 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
21299 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
21300 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
21301 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
21302 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
21303 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
21304 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
21305 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
21306 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
21307 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
21308 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
21309 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
21310 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
21311 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
21312 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
21313 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
21314 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
21315 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
21316 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
21317 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
21318 config/score/score7.c, config/score/score.c, config/arm/arm.c,
21319 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
21320 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
ade52657 21321 config/bfin/bfin.c: Clean up redundant includes.
40013784
SB
21322 * Makefile.in: Update accordingly.
21323
0a7561b7
NF
213242010-05-21 Nathan Froyd <froydnj@codesourcery.com>
21325
21326 PR middle-end/44204
21327 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
21328 statement has no arguments.
21329
e1935569
KT
213302010-05-21 Kai Tietz <kai.tietz@onevision.com>
21331
21332 PR/44139
21333 * varasm.c (emutls_decl): Merge attributes to new decl.
21334
46314d3e
EB
213352010-05-21 Eric Botcazou <ebotcazou@adacore.com>
21336
21337 PR middle-end/44101
21338 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
21339 around the uniquized constructor if its type requires a conversion.
21340
f99fcb3b
JJ
213412010-05-21 Jakub Jelinek <jakub@redhat.com>
21342
21343 PR debug/44205
21344 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
21345 at -O0 goto_locus of any of the incoming edges differs from
21346 goto_locus of outgoing edge, or gimple_location of any of the
21347 labels differs.
21348
f4a4b582 213492009-09-14 Vladimir Makarov <vmakarov@redhat.com>
0583835c
VM
21350
21351 * ira.c (ira_non_ordered_class_hard_regs): Define.
ade52657 21352 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
0583835c
VM
21353 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
21354 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
21355 cost of unaligned hard regs when allocating multi-reg pseudos.
21356
9f946bc1
RS
213572010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
21358
21359 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
21360 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
21361 for TARGET_NO_FLOAT.
21362 * config/mips/mips.c (mips_file_start): Expand conditional expression
21363 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
21364 (mips_override_options): Move -mno-float override -msoft-float and
21365 -mhard-float.
21366 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
21367 Condition(TARGET_SUPPORTS_NO_FLOAT).
21368 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
21369 __mips_no_float here.
21370 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
21371 (TARGET_SUPPORTS_NO_FLOAT): Define.
21372 * config/mips/sdemtk.opt: Delete.
21373
69610617
SB
213742010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
21375
ade52657 21376 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
69610617 21377
953c29f7
UB
213782010-05-20 Uros Bizjak <ubizjak@gmail.com>
21379
21380 PR target/43733
21381 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
21382 * configure: Regenerate.
21383 * config.in: Regenerate.
21384 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
21385 instead of sahf only for 64bit targets.
21386
69b45d71
JJ
213872010-05-20 Jakub Jelinek <jakub@redhat.com>
21388
21389 PR debug/44178
21390 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
21391 setup_ref_regs for DEBUG_INSNs.
21392
a14f1878
JH
213932010-05-20 Jan Hubicka <jh@suse.cz>
21394
21395 PR middle-end/44197
21396 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
21397
5797be12
KZ
213982010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
21399
21400 PR bootstrap/43870
21401 * df-scan.c (df_ref_compare): Stabilize sort.
21402
f1ca3117
JJ
214032010-05-20 Jakub Jelinek <jakub@redhat.com>
21404
21405 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
21406 argument. Don't use DW_OP_piece if offset is non-zero,
21407 put offset into second DW_OP_bit_piece argument.
21408 (dw_sra_loc_expr): Adjust callers. For memory expressions
21409 compute offset.
21410
d8ec9c14
HPN
214112010-05-20 Hans-Peter Nilsson <hp@axis.com>
21412
21413 PR target/44202
21414 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
21415 settings for 16-bit-constant "addo" alternative.
21416
951771dc
JW
214172010-05-19 James E. Wilson <wilson@codesourcery.com>
21418
9af157ac
JW
21419 * config/mips/mips-dsp.md (add<DSPV:mode>3,
21420 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
21421
951771dc
JW
21422 PR target/43764
21423 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
21424 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
21425 Use it.
21426
676dd4d4
JM
214272010-05-19 Joseph Myers <joseph@codesourcery.com>
21428
21429 * diagnostic.c (FLOAT, FFS): Don't undefine.
21430 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
21431 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
21432 include ordering.
21433
caba7aaa
RS
214342010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
21435
21436 * combine.c (propagate_for_debug): Call make_compound_operation
21437 on the source value.
21438 (try_combine): When implementing a split chosen by find_split_point,
21439 either copy i2src or set it to null. Assert that i2src is not null
21440 before substituting into CALL_INSN_FUNCTION_USAGE.
21441
1961ffb8
AS
214422010-05-19 Anatoly Sokolov <aesok@post.ru>
21443
21444 * double-int.h (double_int_ior): New function.
21445 * tree.h (build_int_cst_wide_type): Remove.
21446 * tree.c (build_int_cst_wide_type): Remove.
21447 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
21448 of build_int_cst_wide_type.
21449 * stor-layout.c (set_sizetype): (Ditto.).
21450 * dojump.c (do_jump): Use build_int_cstu instead of
21451 build_int_cst_wide_type.
21452
616f1431
EB
214532010-05-19 Eric Botcazou <ebotcazou@adacore.com>
21454
21455 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
21456 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
21457 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
ade52657 21458 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
616f1431
EB
21459 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
21460 propagate the 'data' argument to copy_tree_r.
21461 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
21462 Propagate 'data' argument to walk_tree.
21463 (copy_if_shared): New function.
21464 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
21465 (unmark_visited): New function.
21466 (unshare_body): Call copy_if_shared instead of doing it manually.
21467 (unvisit_body): Call unmark_visited instead of doing it manually.
21468
f311c3b4
NF
214692010-05-19 Nathan Froyd <froydnj@codesourcery.com>
21470
21471 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
21472 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
21473 * hooks.c: Likewise.
21474 * target-def.h (TARGET_FOLD_BUILTIN): Define to
21475 hook_tree_tree_int_treep_bool_null.
ade52657 21476 * target.h (struct gcc_target): Update signature of fold_builtin
f311c3b4
NF
21477 field.
21478 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
21479 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
21480 instead of the call expression.
21481 (fold_builtin_call_array): Pass n and argarray directly.
21482 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
21483 consing a list.
21484 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
21485 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
21486 `i' and use it in place of `arity'.
21487 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
21488 Dereference `args' directly.
21489 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
21490
40f1bdd9
RO
214912010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21492
21493 * doc/sourcebuild.texi (Effective-Target Keywords): Document
21494 3dnow, sse3, sse2.
21495 (Directives): Document optional dg-require-effective-target
21496 selector.
21497
817c2996
RG
214982010-05-19 Richard Guenther <rguenther@suse.de>
21499
21500 PR lto/44196
21501 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
21502
c04b6b38
RG
215032010-05-19 Richard Guenther <rguenther@suse.de>
21504
21505 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
21506 * common.opt (fwhopr=): New.
21507 * opts.c (common_handle_option): Handle OPT_fwhopr.
21508 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
21509 * collect2.c (main): Match -fwhopr*.
21510 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
21511 Execute ltrans stage in parallel when jobs is bigger than 1.
21512
ed104137
RO
215132010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21514
21515 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
21516 pentiumpro on Solaris 8/x86 with Sun as.
21517 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
21518 hidden alias bug.
21519 (gcc_cv_as_ix86_quad): Check for .quad directive.
21520 * configure: Regenerate.
21521 * config.in: Regenerate.
21522 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
21523
749aa96d
MJ
215242010-05-19 Martin Jambor <mjambor@suse.cz>
21525
21526 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
21527 also for indirect edges. Actual printing moved...
21528 (ipa_print_node_jump_functions_for_edge): ...here.
21529 (ipa_compute_jump_functions): Renamed to
21530 ipa_compute_jump_functions_for_edge and made static.
21531 (ipa_compute_jump_functions): New function.
21532 (make_edge_direct_to_target): Check if the number of arguments on
21533 the newly direct edge is the same as the number of parametrs of
21534 the callee.
21535 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
21536 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
21537 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
21538 analysis functions unconditionally, call the new
21539 ipa_analyze_params_uses on the node instead of every edge.
21540
81f32326
CB
215412010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
21542
431043bd 21543 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
81f32326 21544 to tree.
431043bd 21545 (dump_mem_ref): Adopt debug code to handle a tree as step. This
81f32326
CB
21546 also checks for a constant int vs. non-constant but
21547 loop-invariant steps.
431043bd 21548 (find_or_create_group): Change the sort algorithm to only consider
81f32326 21549 steps that are constant ints.
431043bd 21550 (idx_analyze_ref): Adopt code to handle a tree instead of a
81f32326 21551 HOST_WIDE_INT for step.
431043bd 21552 (gather_memory_references_ref): Handle tree instead of int and be
81f32326 21553 prepared to see a NULL_TREE.
431043bd 21554 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
81f32326 21555 prefetches if the step cannot be calculated at compile time.
431043bd 21556 (issue_prefetch_ref): Issue prefetches for non-constant but
81f32326
CB
21557 loop-invariant steps.
21558
39b27b3a
NF
215592010-05-18 Nathan Froyd <froydnj@codesourcery.com>
21560
21561 Revert:
21562 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
21563
21564 * tree.h (build_call_list): Remove.
21565 * tree.c (build_call_list): Remove.
21566
3fcb9d1b
NF
215672010-05-18 Nathan Froyd <froydnj@codesourcery.com>
21568
21569 * tree.h (build_call_list): Remove.
21570 * tree.c (build_call_list): Remove.
21571
58efc3ac
JH
215722010-05-18 Jan Hubicka <jh@suse.cz>
21573
21574 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
21575
0495bafc
VM
215762010-05-18 Vladimir Makarov <vmakarov@redhat.com>
21577
21578 PR rtl-optimization/43332
21579 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
21580
abdbbf16
AS
215812010-05-18 Anatoly Sokolov <aesok@post.ru>
21582
21583 * tree.h (build_int_cstu): Implement as static inline.
21584 * tree.c (build_int_cstu): Remove function.
21585 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
21586 sign extended.
21587
cf96bae7
RG
215882010-05-18 Richard Guenther <rguenther@suse.de>
21589
21590 PR lto/44143
21591 * lto-wrapper.c (verbose): New variable. Initialize from -v.
21592 (debug): Initialize from -save-temps.
21593 (collect_execute): Print command-line when verbose.
21594 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
21595 for ltrans invocation. Produce -dumpbase flag again.
21596 (process_args): Remove.
21597 (main): Simplify.
21598 * collect2.c (maybe_run_lto_and_relink): Only pass object
21599 files to lto-wrapper.
21600 * gcc.c (LINK_COMMAND_SPEC): Likewise.
21601
80e2a014
JH
216022010-05-18 Jan Hubicka <jh@suse.cz>
21603
21604 * opts.c (decode_options): Do not disable whopr at ipa_cp.
21605 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
21606
174f391c
SB
216072010-05-18 Steven Bosscher <steven@gcc.gnu.org>
21608
21609 PR lto/44184
21610 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
21611 in a GIMPLE_ASM.
21612 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
21613 in a GIMPLE_ASM.
21614
13077931
JJ
216152010-05-18 Jakub Jelinek <jakub@redhat.com>
21616
21617 PR debug/41371
21618 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
21619 rtx_equal_p inline.
21620
02540df4
SB
216212010-05-18 Steven Bosscher <steven@gcc.gnu.org>
21622
21623 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
21624 lto-macho as lto_binary_reader.
21625
21626 * darwin.c (darwin_asm_named_section): Do not add assembler comment
21627 after .section directive; just print it before the directive instead.
21628
36576655
JH
216292010-05-17 Jan Hubicka <jh@suse.cz>
21630
21631 * cgraph.c (cgraph_create_virtual_clone): Only check
21632 versionable_function_p when not in wpa and checking is enabled.
21633 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
21634 there are no more functions to materialize.
21635
922f15c2
JH
216362010-05-17 Jan Hubicka <jh@suse.cz>
21637
21638 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
21639 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
21640 New functions.
21641 (output_cgraph): Call output_cgraph_opt_summary.
21642 (input_cgrpah): Call input_cgraph_opt_summary.
21643 (output_cgraph_opt_summary_p, output_node_opt_summary,
21644 input_node_opt_summary, input_cgraph_opt_section): New functions.
21645 * lto-section-in.c (lto_section_name): Add cgraphopt.
21646 * tree-inline.c (tree_function_versioning): Handle parm_num.
21647 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
21648 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
21649
d3a9b459
CF
216502010-05-17 Changpeng Fang <changpeng.fang@amd.com>
21651
21652 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
21653 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
21654 the insn to prefetch ratio heuristic to loops with known trip count.
21655
8532678c
CF
216562010-05-17 Changpeng Fang <changpeng.fang@amd.com>
21657
21658 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
21659 (schedule_prefetches): Do not generate a prefetch if the unroll factor
21660 is far from what is required by the prefetch.
21661
339f49ec
JH
216622010-05-17 Jan Hubicka <jh@suse.cz>
21663
21664 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
21665 (ipcp_estimate_growth): Likewise.
21666 (ipcp_const_param_count): Likewise.
21667 (ipcp_insert_stage): Likewise.
21668 * ipa-prop.c (visit_load_for_mod_analysis): New function.
21669 (visit_store_addr_for_mod_analysis): Set used flag.
21670 (ipa_detect_param_modifications): Set used flag for SSE params;
21671 update use of walk_stmt_load_store_addr_ops.
21672 (ipa_print_node_params): Print used flag.
21673 (ipa_write_node_info): Stream used flag.
21674 (ipa_read_node_info): Likewise.
21675 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
21676 (ipa_is_param_used): New function.
21677 (lto_ipa_fixup_call_notes): Remove unused declaration.
21678
2433310d
RO
216792010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21680
21681 PR target/44074
21682 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
21683 * configure: Regenerate.
21684 * config.in: Regenerate.
431043bd 21685 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
2433310d
RO
21686 !HAVE_AS_IX86_REP_LOCK_PREFIX.
21687 Don't emit whitespace.
21688 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
21689 (*rep_movsi): Likewise.
21690 (*rep_movsi_rex64): Likewise.
21691 (*rep_movqi): Likewise.
21692 (*rep_movqi_rex64): Likewise.
21693 (*rep_stosdi_rex64): Likewise.
21694 (*rep_stossi): Likewise.
21695 (*rep_stossi_rex64): Likewise.
21696 (*rep_stosqi): Likewise.
21697 (*rep_stosqi_rex64): Likewise.
21698 (*cmpstrnqi_nz_1): Use {%;} after repz.
21699 (*cmpstrnqi_nz_rex_1): Likewise.
21700 (*cmpstrnqi_1): Likewise.
21701 (*cmpstrnqi_rex_1): Likewise.
21702 (*strlenqi_1): Use {%;} after repnz.
21703 (*strlenqi_rex_1): Likewise.
21704 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
21705 (*sync_compare_and_swap<mode>): Likewise.
21706 (sync_double_compare_and_swap<mode>): Likewise.
21707 (*sync_double_compare_and_swapdi_pic): Likewise.
21708 (sync_old_add<mode>): Likewise.
21709 (sync_add<mode>): Likewise.
21710 (sync_sub<mode>): Likewise.
21711 (sync_<code><mode>): Likewise.
21712
b258210c
MJ
217132010-05-17 Martin Jambor <mjambor@suse.cz>
21714
21715 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
21716 otr_token and polymorphic.
21717 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
21718 (cgraph_clone_edge): Copy the above fields.
21719 * tree.c (get_binfo_at_offset): New function.
21720 * tree.h (get_binfo_at_offset): Declare.
21721 * ipa-prop.h (enum jump_func_type): Added known_type jump function
21722 type, reordered items, updated comments.
21723 (union jump_func_value): Added base_type field, reordered fields.
21724 (enum ipa_lattice_type): Moved down in the file.
21725 (struct ipa_param_descriptor): New field polymorphic.
21726 (ipa_is_param_polymorphic): New function.
21727 * ipa-prop.c: Include gimple.h and gimple-fold.h.
21728 (ipa_print_node_jump_functions): Print known type jump functions.
21729 (compute_complex_pass_through): Renamed to...
21730 (compute_complex_assign_jump_func): this.
21731 (compute_complex_ancestor_jump_func): New function.
21732 (compute_known_type_jump_func): Likewise.
21733 (compute_scalar_jump_functions): Create known type and complex ancestor
21734 jump functions.
21735 (ipa_note_param_call): New parameter polymorphic, set the corresponding
21736 flag in the call note accordingly.
21737 (ipa_analyze_call_uses): Renamed to...
21738 (ipa_analyze_indirect_call_uses): this. New parameter target, define
21739 variable var only in the block where it is used.
21740 (ipa_analyze_virtual_call_uses): New function.
21741 (ipa_analyze_call_uses): Likewise.
21742 (combine_known_type_and_ancestor_jfs): Likewise.
21743 (update_jump_functions_after_inlining): Implemented handling of a
21744 number of new jump function types combination.
21745 (print_edge_addition_message): Removed.
21746 (make_edge_direct_to_target): New function.
21747 (try_make_edge_direct_simple_call): Likewise.
21748 (try_make_edge_direct_virtual_call): Likewise.
21749 (update_call_notes_after_inlining): Renamed to...
21750 (update_indirect_edges_after_inlining): this. Moved edge creation for
21751 indirect calls to try_make_edge_direct_simple_call, also calls
21752 try_make_edge_direct_virtual_call for virtual calls.
21753 (ipa_print_node_params): Changed the header message.
21754 (ipa_write_jump_function): Stream also known type jump functions.
21755 (ipa_read_jump_function): Likewise.
21756 (ipa_write_indirect_edge_info): Stream new fields in
21757 cgraph_indirect_call_info.
21758 (ipa_read_indirect_edge_info): Likewise.
21759 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
21760 GIMPLE_FOLD_H.
21761
d5d74497
RO
217622010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21763
21764 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
21765
58a11859
NF
217662010-05-17 Nathan Froyd <froydnj@codesourcery.com>
21767
21768 * tree.h (CALL_EXPR_ARGS): Delete.
21769 (call_expr_arglist): Delete.
21770 * tree.c (call_expr_arglist): Delete.
21771 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
21772 targetm.fold_builtin.
21773 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
21774 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
21775 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
21776 arglist parameter. Use CALL_EXPR_ARG.
21777 (picochip_expand_builtin_3op): Likewise.
21778 (picochip_expand_builtin_2opvoid): Likewise.
21779 (picochip_expand_array_get): Likewise.
21780 (picochip_expand_array_put): Likewise.
21781 (picochip_expand_array_testport): Likewise.
21782 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
21783 rather than arglist.
21784 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
21785 CALL_EXPR_ARGS.
21786 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
21787 than TREE_VALUE and TREE_CHAIN.
21788 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
21789 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
21790 the arglist.
21791
f1de5107
JJ
217922010-05-17 Jakub Jelinek <jakub@redhat.com>
21793
f145213f
JJ
21794 PR bootstrap/42347
21795 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
21796 to have no fallthru edge.
21797
f1de5107
JJ
21798 PR middle-end/44102
21799 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
21800 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
21801 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
21802 add BARRIER after previous bb if needed.
21803
b64fca63 218042010-05-17 Nathan Froyd <froydnj@codesourcery.com>
431043bd 21805
b64fca63 21806 * tree.c (build_function_type_list_1): Remove bogus assert condition.
431043bd 21807
2882bfcc
AM
218082010-05-17 Alan Modra <amodra@gmail.com>
21809
21810 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
21811 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
21812 with copy_reg rtx param.
21813 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
21814 Correct cases where code for ABI_V4 did not initialise the reg
21815 used to access frame. Also leave frame_reg_rtx as sp for large
21816 frames that save no regs.
21817
5feb49f0
MJ
218182010-05-17 Martin Jambor <mjambor@suse.cz>
21819
21820 PR middle-end/44133
21821 * tree-sra.c (create_access_replacement): New parameter rename, mark
21822 the replaement for renaming only when it is true.
21823 (get_access_replacement): Pass true in the rename parameter of
21824 create_access_replacement.
21825 (get_unrenamed_access_replacement): New function.
21826 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
21827 replacement declaration from it.
21828
56731d64
BS
218292010-05-17 Bernd Schmidt <bernds@codesourcery.com>
21830
21831 * function.c (try_fit_stack_local, add_frame_space): New static
21832 functions.
21833 (assign_stack_local_1): Use them. Look for opportunities to use
21834 space previously wasted on alignment.
21835 * function.h (struct frame_space): New.
21836 (struct rtl_data): Add FRAME_SPACE_LIST member.
21837 * reload1.c (something_was_spilled): New static variable.
21838 (alter_reg): Set it.
21839 (reload): Test it in addition to testing if the frame size changed.
21840
24a235c8
CB
218412010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
21842
431043bd
UB
21843 * config/s390/s390.c: Define sane prefetch settings and activate
21844 flag_prefetch_loop_arrays on -O3.
21845 * config/s390/s390.h: Declare that read can use write prefetch.
24a235c8 21846
18252dcf
JJ
218472010-05-17 Jakub Jelinek <jakub@redhat.com>
21848
21849 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
21850 build.
21851
199f1dc4
JH
218522010-05-16 Jan Hubicka <jh@suse.cz>
21853
21854 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
21855 function body; do not check stdarg field of struct function.
21856
ccbbf8a2
JH
218572010-05-16 Jan Hubicka <jh@suse.cz>
21858
21859 * cgraph.c (dump_cgraph_node): Dump versionable flag.
21860 * cgraph.h (cgraph_local_info): Add versionable flag.
21861 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
21862 (ipcp_versionable_function_p): Use it.
21863 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
21864 versionable flag.
21865
91fbf0c7
JH
218662010-05-16 Jan Hubicka <jh@suse.cz>
21867
21868 * cgraph.c (cgraph_clone_node): Take decl argument and insert
21869 clone into hash when it is different from orig.
21870 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
21871 * cgraph.h (cgraph_clone_node): Update prototype.
21872 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
21873 (lto_cgraph_encoder_delete): Delete body map.
21874 (lto_cgraph_encoder_size): Move to header.
ccbbf8a2
JH
21875 (lto_cgraph_encoder_encode_body_p,
21876 lto_set_cgraph_encoder_encode_body): New.
91fbf0c7
JH
21877 (lto_output_node): Do not take written_decls argument; output clone_of
21878 pointer.
21879 (add_node_to): Add include_body_argument; call
21880 lto_set_cgraph_encoder_encode_body on master of the clone.
21881 (add_references): Update use of add_node_to.
21882 (compute_ltrans_boundary): Likewise.
21883 (output_cgraph): Do not create written_decls bitmap.
21884 (input_node): Take nodes argument; stream in clone_of correctly.
21885 (input_cgraph_1): Update use of input_node.
21886 * lto-streamer-out.c (lto_output): Use encoder info to decide
21887 what bodies to output.
21888 * ipa-inline.c (cgraph_clone_inlined_nodes,
21889 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
21890 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
21891 (lto_cgraph_encoder_size): Define here.
21892 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
21893 Declare.
21894
6b87d1b4
RG
218952010-05-16 Richard Guenther <rguenther@suse.de>
21896
21897 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
21898 -fipa-type-escape.
21899 * ipa-type-escape.c (gate_type_escape_vars): Run when
21900 -fipa-struct-reorg runs.
21901 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
21902 * common.opt (fipa-type-escape): Remove.
21903
203a92e3
EB
219042010-05-16 Eric Botcazou <ebotcazou@adacore.com>
21905
21906 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
21907 (decode_options): Likewise.
21908 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
21909
e419f710
JH
219102010-05-16 Jan Hubicka <jh@suse.cz>
21911
21912 * ipa.c (function_and_variable_visibility): Also bring local all
21913 aliases.
21914
2e0c984c
RG
219152010-05-16 Richard Guenther <rguenther@suse.de>
21916
21917 * alias.c (nonoverlapping_memrefs_p): Remove use of
21918 IPA type-escape information.
21919
32912286
JM
219202010-05-16 Joseph Myers <joseph@codesourcery.com>
21921
21922 * c-common.c (c_common_reswords): Add _Static_assert for C.
21923 * c-parser.c (c_token_starts_declaration,
21924 c_parser_next_token_starts_declaration,
21925 c_parser_static_assert_declaration_no_semi,
21926 c_parser_static_assert_declaration): New.
21927 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
21928 Handle static assertions if static_assert_ok.
21929 (c_parser_external_declaration, c_parser_declaration_or_fndef,
21930 c_parser_compound_statement_nostart, c_parser_label,
21931 c_parser_for_statement, c_parser_objc_methodprotolist,
21932 c_parser_omp_for_loop): All callers of
21933 c_parser_declaration_or_fndef changed.
21934 (c_parser_struct_declaration): Handle static assertions.
21935 (c_parser_compound_statement_nostart): Use
21936 c_parser_next_token_starts_declaration and
21937 c_token_starts_declaration to detect start of declarations.
21938 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
21939 Likewise.
21940
a3ca07e3
AS
219412010-05-16 Anatoly Sokolov <aesok@post.ru>
21942
21943 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21944 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21945 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21946 TARGET_FUNCTION_VALUE_REGNO_P): Define.
21947 (mmix_function_outgoing_value): Rename to...
21948 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
21949 (mmix_function_value_regno_p): Make static.
21950 (mmix_libcall_value): New function.
21951 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
21952 mmix_function_value_regno_p): Remove declaration.
21953
29d17485
EB
219542010-05-16 Eric Botcazou <ebotcazou@adacore.com>
21955
21956 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
21957 BUILT_IN_ALLOCA if stack checking is enabled.
21958
a6590c31
RG
219592010-05-16 Richard Guenther <rguenther@suse.de>
21960
21961 * var-tracking.c (vars_copy_1): Inline ...
21962 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
21963 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
21964 (variable_merge_over_cur): Adjust. Merge asserts.
21965 (variable_merge_over_src): Likewise.
21966 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
21967 (variable_post_merge_new_vals): Merge asserts.
21968 (variable_post_merge_perm_vals): Likewise.
21969 (find_mem_expr_in_1pdv): Likewise.
21970 (dataflow_set_different_value): Remove.
21971 (onepart_variable_different_p): Merge asserts.
21972 (variable_different_p): Likewise.
21973 (dataflow_set_different_1): Inline ...
21974 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
21975 (emit_notes_for_differences_1): Merge asserts.
21976
6456e26e
RG
219772010-05-16 Richard Guenther <rguenther@suse.de>
21978
21979 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
21980 * optabs.c (libfunc_decl_hash): Likewise.
21981 * varasm.c (emutls_decl): Likewise.
21982
1d4c5fe9
SB
219832010-05-16 Steven Bosscher <steven@gcc.gnu.org>
21984
21985 * c-decl.c: Don't include gimple.h.
21986 (merge_decls): Do not copy gimple_body.
21987
9feb3d6a
JM
219882010-05-15 Jason Merrill <jason@redhat.com>
21989
21990 * c.opt: Add -fnothrow-opt.
21991
9b3cf76a
JH
219922010-05-15 Jan Hubicka <jh@suse.cz>
21993
29d17485
EB
21994 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
21995 analyzed.
9b3cf76a
JH
21996 * passes.c (ipa_write_summaries): Write all analyzed nodes.
21997
f4ce02c5
SB
219982010-05-15 Steven Bosscher <steven@gcc.gnu.org>
21999
22000 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
22001 * Makefile.in: Add it.
22002 Fix all other Makefile dependencies for changes below.
22003 * tree.h: Include it instead of defining VEC primitives here.
22004 * gimple.h: Likewise.
22005 * rtl.h: Likewise.
22006 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
22007 * except.h: Include vecir.h, break dependence on tree.h.
22008
22009 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
22010 Move from here...
22011 * tree-iterator.c: ...to here.
22012 * tree-iterator.h: Fix file introduction comment. Add extern markers.
22013
22014 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
22015 tm_p.h.
22016 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
22017 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
22018 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
22019 tree-mudflap.h, and target.h.
22020 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
22021 predict.h, tree-inline.h, gimple.h, and langhooks.h.
22022 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
22023 Add FIXME for why gimple.h is still included (should be unnecessary
22024 since GCC 4.5 gimplification unit-at-a-time).
22025 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
22026 * c-pragma.c: Add FIXME for why function.h needs to be included just
22027 for cfun, at front-end level.
22028 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
22029 Do not include ggc.h, but include vecprim.h for VEC(char).
22030 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
22031 Explain why target.h is included.
22032 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
22033 Explain why gimple.h is included.
22034 * c-ppoutput.c: Do not include tm.h.
22035 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
22036 * c-parses.c: Explain why rtl.h is included, and that this (and only
22037 this) is also why tm.h must be included.
22038 Do not include except.h.
22039 * c-lang.c: Do not include ggc.h.
22040
12201e48
UB
220412010-05-15 Uros Bizjak <ubizjak@gmail.com>
22042
22043 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
22044
4bdd0a60
JM
220452010-05-15 Joseph Myers <joseph@codesourcery.com>
22046
22047 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
22048 unions by default if those structs and unions have no tags. Do
22049 not condition anonymous struct and unions handling on flag_iso.
22050 Allow anonymous structs and unions for C1X.
22051 (finish_struct): Do not diagnose lack of named fields when
22052 anonymous structs and unions present for C1X. Accept flexible
22053 array members in structure with anonymous structs or unions but no
22054 directly named fields.
22055 * doc/extend.texi (Unnamed Fields): Update.
22056
d025732d
EB
220572010-05-15 Eric Botcazou <ebotcazou@adacore.com>
22058
22059 * gimple.h (compare_field_offset): Rename into...
22060 (gimple_compare_field_offset): ...this.
22061 * gimple.c (compare_field_offset): Rename into...
22062 (gimple_compare_field_offset): ...this. Compare the full access if
22063 the offset is self-referential.
22064 (gimple_types_compatible_p): Adjust for above renaming.
22065 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
22066 DECL_NONADDRESSABLE_P flag of fields before merging them.
22067
b75bdd29
NF
220682010-05-15 Nathan Froyd <froydnj@codesourcery.com>
22069
22070 * tree.h (ctor_to_list): Delete.
22071 * tree.c (ctor_to_list): Delete.
22072
f3380641
JH
220732010-05-15 Jan Hubicka <jh@suse.cz>
22074
22075 * ipa-reference.c: Include toplev.h
22076 (is_proper_for_analysis): Only add to all_module_statics
22077 if it is allocated.
22078 (write_node_summary_p, stream_out_bitmap,
22079 ipa_reference_write_optimization_summary,
22080 ipa_reference_read_optimization_summary): New.
22081 (struct ipa_opt_pass_d pass_ipa_reference): Add
22082 optimization summary streaming.
12201e48 22083 * lto-cgraph.c (referenced_from_this_partition_p,
f3380641
JH
22084 reachable_from_this_partition_p): New functions.
22085 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
22086 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
22087 * opts.c (decode_options): Enable ipa_reference.
22088 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
22089 * lto-streamer.h (referenced_from_this_partition_p,
22090 reachable_from_this_partition_p): Declare.
22091
9d0baae1
RG
220922010-05-15 Richard Guenther <rguenther@suse.de>
22093
22094 PR tree-optimization/44038
22095 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
22096 taking the address of a V_C_E of a constant.
22097
46c30019
JH
220982010-05-14 Jan Hubicka <jh@suse.cz>
22099
22100 * tree.h (memory_identifier_string): Remove.
22101 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
22102 (ipa_reference_global_vars_info_d): Remove statics_not_read and
22103 statics_not_written.
22104 (ipa_reference_optimization_summary_d): New structure.
22105 (ipa_reference_optimization_summary_t): New type and vector.
22106 (ipa_reference_vars_info_d): Embedd structures instead of using
22107 pointers.
22108 (reference_vars_to_consider): Remove out of GGC space.
22109 (module_statics_escape): Remove.
22110 (global_info_obstack): Rename to ...
22111 (optimization_summary_obstack): ... this one.
22112 (initialization_status_t): Remove.
22113 (memory_identifier_string): Remove.
22114 (get_reference_vars_info): Fix indenting.
22115 (set_reference_vars_info): Likewise.
22116 (get_reference_optimization_summary): New.
22117 (set_reference_optimization_summary): New.
22118 (get_global_reference_vars_info): Remove.
22119 (ipa_reference_get_read_global): Remove.
22120 (ipa_reference_get_written_global): Remove.
22121 (ipa_reference_get_not_read_global): Update.
22122 (ipa_reference_get_not_written_global): Update.
22123 (is_proper_for_analysis): Outlaw addressable.
22124 (propagate_bits): Update for new datastructures.
22125 (analyze_variable): Remove.
22126 (init_function_info): Update for new datastructures.
22127 (clean_function_local_data): Remove.
22128 (clean_function): Remove.
22129 (copy_global_bitmap): Use optimizations_summary_obstack.
22130 (duplicate_node_data): Duplicate optimization summary only.
22131 (remove_node_data): Remove optimization summary only.
22132 (generate_summary): Do not analyze variables; do not compute
22133 module_statics_escape; do not prune solutions by it.
22134 (read_write_all_from_decl): Fix typos in comments.
22135 (propagate): Doscover readonly and nonaddressable first;
22136 update for new datastructures; share global bitmaps.
22137 * ipa-reference.h (ipa_reference_get_read_global,
22138 ipa_reference_get_written_global): Remove.
22139 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
22140 * Makefile.in: Remove ipa-refereference from GT files.
22141
22bf7d17
JJ
221422010-05-14 Jakub Jelinek <jakub@redhat.com>
22143
22144 PR debug/44112
22145 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
22146 for all SYMBOL_REF_DECLs.
22147
4a444e58
JH
221482010-05-14 Jan Hubicka <jh@suse.cz>
22149
22150 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
22151 (varpool_all_refs_explicit_p): New inline function.
22152 * ipa-reference.c: Update comment.
22153 (module_statics_written): Remove.
22154 (get_static_decl): Remove.
22155 (ipa_init): Do not initialize module_statics_written.
22156 (analyze_function): Likewise.
22157 (generate_summary): Likewise; do not compute module_statics_readonly
22158 and do not update variable flags.
22159 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
22160 * ipa.c: Inlucde flags.h
22161 (cgraph_local_node_p): New.
22162 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
22163 promote functions to local.
22164 (ipa_discover_readonly_nonaddressable_vars): New function.
22165 (function_and_variable_visibility): Use cgraph_local_node_p.
22166 * varpool.c (varpool_finalize_decl): Set force_output for
22167 DECL_PRESERVE_P vars.
22168
bc8ddfe6
JH
221692010-05-14 Jan Hubicka <jh@suse.cz>
22170
22171 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
22172
4d2ab9e3
RG
221732010-05-14 Richard Guenther <rguenther@suse.de>
22174
22175 PR tree-optimization/44119
22176 * tree-ssa-pre.c (eliminate): Properly mark replacement of
22177 a PHI node necessary.
22178
9e87b842
EB
221792010-05-14 Eric Botcazou <ebotcazou@adacore.com>
22180
22181 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
22182
786f715d
JM
221832010-05-14 Jason Merrill <jason@redhat.com>
22184
9bb1a81b
JM
22185 PR c++/44127
22186 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
22187 (gimple_call_set_nothrow): New.
22188 * gimple.c (gimple_build_call_from_tree): Call it.
22189 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
22190
786f715d
JM
22191 PR c++/44127
22192 * gimplify.c (gimplify_seq_add_stmt): No longer static.
22193 * gimple.h: Declare it.
22194 * gimple.c (gimple_build_eh_filter): No ops.
22195
19fb0b86
JH
221962010-05-14 Jan Hubicka <jh@suse.cz>
22197
22198 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
22199 nodes already in queue.
9e87b842
EB
22200 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
22201 re-enqueueing node.
19fb0b86 22202
88c04a5d
JJ
222032010-05-14 Jakub Jelinek <jakub@redhat.com>
22204
22205 PR debug/44136
22206 * cfgexpand.c (expand_debug_expr): If non-memory op0
22207 has BLKmode, return NULL.
22208
1133125e
HJ
222092010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
22210
22211 * config.gcc: Add support for --with-cpu option for bdver1.
22212 * config/i386/i386.h (TARGET_BDVER1): New macro.
22213 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
22214 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
22215 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
22216 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
22217 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
22218 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
22219 (processor_type): Add PROCESSOR_BDVER1.
22220 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
22221 processor_type in config/i386/i386.h.
22222 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
22223 movaps <reg, reg> instead of movapd <reg, reg> when replacing
22224 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
22225 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
22226 to emit packed xor instead of packed double/packed integer
22227 xor for SSE and AVX when moving a zero value.
9e87b842
EB
22228 * config/i386/sse.md: Add check for
22229 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
22230 movapd/movdqa for SSE and AVX.
22231 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
22232 single logical operations i.e and, or and xor instead of packed double
22233 logical operations for SSE and AVX.
12201e48
UB
22234 * config/i386/i386-c.c (ix86_target_macros_internal):
22235 Add PROCESSOR_BDVER1.
1133125e
HJ
22236 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
22237 (has_fma4, has_xop): New.
22238 * config/i386/i386.c (bdver1_cost): New variable.
22239 (m_BDVER1): New macro.
22240 (m_AMD_MULTIPLE): Add m_BDVER1.
22241 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
9e87b842
EB
22242 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
22243 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
22244 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
22245 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
22246 x86_tune_sse_partial_reg_dependency,
22247 x86_tune_sse_unaligned_load_optimal,
22248 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
22249 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
22250 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
22251 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
22252 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1133125e
HJ
22253 Enable/disable for bdver1.
22254 (processor_target_table): Add bdver1_cost.
22255 (cpu_names): Add bdver1.
22256 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
22257 processor_alias_table.
9e87b842
EB
22258 (ix86_expand_vector_move_misalign): Change.
22259 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
22260 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
22261 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
22262 of movupd/movdqu for SSE and AVX.
1133125e
HJ
22263 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
22264 (ix86_tune_adjust_cost): Add code for bdver1.
22265 (standard_sse_constant_opcode): Add check for
22266 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
22267 of packed double xor for SSE and AVX.
22268
e972cc7e
PH
222692010-05-14 Pat Haugen <pthaugen@us.ibm.com>
22270
22271 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
22272 result to unsigned.
22273
6a080096
TG
222742010-05-14 Tristan Gingold <gingold@adacore.com>
22275
22276 * toplev.c (default_debug_hooks): Remove this variable.
22277 (process_options): Remove assignments to default_debug_hooks.
22278
b5023f3c
MJ
222792010-05-14 Martin Jambor <mjambor@suse.cz>
22280
22281 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
22282 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
22283 * langhooks.h (struct lang_hooks_for_decls): Removed field
22284 fold_obj_type_ref.
22285 * tree.c (free_lang_data): Remove assignment to
22286 lang_hooks.fold_obj_type_ref.
22287 * tree.def (OBJ_TYPE_REF): Update comment.
22288
6141b7db
RG
222892010-05-14 Richard Guenther <rguenther@suse.de>
22290
22291 PR tree-optimization/44124
22292 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
22293
e15a8cbe
AM
222942010-05-14 Alan Modra <amodra@gmail.com>
22295
22296 PR target/44075
22297 * config/rs6000/rs6000.c (struct machine_function): Reorder
22298 fields for better packing. Add lr_save_state.
22299 (rs6000_ra_ever_killed): Return lr_save_state if set.
22300 (rs6000_emit_eh_reg_restore): Set lr_save_state.
22301
da405c74
JH
223022010-05-13 Jan Hubicka <jh@suse.cz>
22303
22304 * varpool.c (decide_is_variable_needed): Drop code checking
22305 TREE_SYMBOL_REFERENCED.
22306
152464d2
JH
223072010-05-13 Jan Hubicka <jh@suse.cz>
22308
22309 * final.c (output_addr_const): Do not call mark_decl_referenced.
22310 * cgraphunit.c (process_function_and_variable_attributes): Use
22311 mark_needed_node dirrectly.
22312 (assemble_thunk): Do not call mark_decl_referenced.
22313
32cbdf00
AS
223142010-05-13 Anatoly Sokolov <aesok@post.ru>
22315
22316 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
22317
e4f36d31
JL
223182010-05-13 Jeff Law <law@redhat.com>
22319
22320 * ira-conflicts.c (print_allocno_conflicts): New function broken out
22321 from...
22322 (print_conflicts): Call print_allocno_conflicts.
22323
1fcebc11
JJ
223242010-05-13 Jakub Jelinek <jakub@redhat.com>
22325
22326 PR debug/44104
22327 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
22328 if it is NULL.
22329
917ed773
KT
223302010-05-13 Kai Tietz <kai.tietz@onevision.com>
22331
22332 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
22333 t-mingw-w64 or t-mingw-w32 for multilib configuration.
22334 * config/i386/t-mingw-w32: New.
22335 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
12201e48 22336
1ae6fe9b
MJ
223372010-05-13 Martin Jambor <mjambor@suse.cz>
22338
22339 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
22340 gimple-fold.c).
22341 * gimple-fold.c (get_base_binfo_for_type): New function.
22342 (gimple_get_relevant_ref_binfo): Likewise.
22343 (gimple_fold_obj_type_ref_known_binfo): Likewise.
22344 (gimple_fold_obj_type_ref): Likewise.
22345 (fold_gimple_call): Simplify condition for folding virtual calls
22346 and call gimple_fold_obj_type_ref.
22347 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
22348 (gimple_fold_obj_type_ref_known_binfo): Likewise.
22349
78c7cabb
AS
223502010-05-13 Andreas Schwab <schwab@linux-m68k.org>
22351
22352 * config/rs6000/rs6000-protos.h
22353 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
22354 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
22355 (rs6000_debug_mode_dependent_address)
22356 (rs6000_mode_dependent_address_ptr): Likewise.
22357
823e9473
JJ
223582010-05-13 Jakub Jelinek <jakub@redhat.com>
22359
22360 PR debug/43983
22361 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
22362 by SRA.
22363 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
22364 * tree-sra.c (create_access_replacement): Call unshare_expr before
12201e48 22365 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
823e9473
JJ
22366 * dwarf2out.c: Include tree-flow.h.
22367 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
22368 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
22369 Handle DW_OP_bit_piece.
22370 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
22371 construct_piece_list, adjust_piece_list): New functions.
22372 (add_var_loc_to_decl): Handle SRA optimized variables.
22373 Adjust for var_loc_note to loc field renaming.
22374 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
22375 in VAR_LOCATION note.
22376 (new_loc_descr_op_bit_piece): New function.
22377 (dw_sra_loc_expr): New function.
22378 (dw_loc_list): Use it. Don't handle the last range after the
22379 loop, handle it inside of the loop. Adjust for var_loc_note
22380 to loc field renaming.
22381 (add_location_or_const_value_attribute): Only special case
22382 single entry loc lists if loc is NOTE_P. Adjust for
22383 var_loc_note to loc field renaming.
22384 (dwarf2out_var_location): Don't set newloc->var_loc_note
22385 and newloc->next here.
22386
bd3cdcc0
JH
223872010-05-12 Jan Hubicka <jh@suse.cz>
22388
c46a5e28
EB
22389 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
22390 flag.
bd3cdcc0
JH
22391 * cgraph.h (cgraph_only_called_directly_p,
22392 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
22393 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
22394 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
22395 (assemble
22396 * ipa.c (cgraph_remove_unreachable_nodes): Use
c46a5e28
EB
22397 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
22398 flags.
bd3cdcc0
JH
22399 * tree-inline.c (copy_bb): Check address_taken flag.
22400 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
22401 externally_visible flag.
22402
5116acc6
JM
224032010-05-12 Jason Merrill <jason@redhat.com>
22404
22405 PR bootstrap/44048
22406 PR target/44099
22407 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
22408 * sdbout.c (plain_type_1): Likewise.
22409 * dwarf2out.c (is_base_type): Likewise.
22410 (gen_type_die_with_usage): Likewise. Generate
22411 DW_TAG_unspecified_type for any LANG_TYPE.
22412
5f902d76
JH
224132010-05-12 Jan Hubicka <jh@suse.cz>
22414
22415 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
22416 indrect edges too.
22417 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
22418 (cgraph_clone_edge): Update.
22419 (cgraph_node_remove_callees): Remove indirect calls too.
22420 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
22421 (cgraph_create_indirect_edge): Update prototype.
22422 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
22423 is_proper_for_analysis.
22424 (add_new_function, visited_nodes, function_insertion_hook_holder,
22425 get_local_reference_vars_info, mark_address_taken, mark_address,
22426 mark_load, mark_store, check_asm_memory_clobber, check_call,
22427 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
22428 (ipa_init): Do not initialize visited_nodes;
22429 function_insertion_hook_holder.
22430 (analyze_variable): Rewrite.
22431 (analyze_function): Rewrite.
22432 (copy_local_bitmap): Remove.
22433 (duplicate_node_dat): Do not duplicate local info.
22434 (generate_summary): Simplify to only walk cgraph.
22435 (write_node_summary_p, ipa_reference_write_summary,
22436 ipa_reference_read_summary): Remove.
22437 (propagate): Do not remove function insertion;
22438 generate summary.
22439 (pass_ipa_reference): NULLify summary handling fields.
22440 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
22441 (input_edge): Input ecf_flags.
22442 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
22443 (update_indirect_edges_after_inlining): Ignore edges with unknown
22444 param.
22445
87a0ebfd
ST
224462010-05-12 Sriraman Tallam <tmsriram@google.com>
22447
22448 * implicit-zee.c: New file.
22449 * tree-pass.h (pass_implicit_zee): Declare.
22450 * passes.c (init_optimization_passes): Add zee pass.
22451 * common.opt (fzee): New flag.
22452 * timevar.def (TV_ZEE): Define.
22453 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
22454 and beyond.
22455 * Makefile.in (implicit-zee.o): Add new build file.
22456
01f0a9dc
KH
224572010-05-12 Kazu Hirata <kazu@codesourcery.com>
22458 Nathan Froyd <froydnj@codesourcery.com>
22459
22460 * c-common.c (sync_resolve_params): Remove write-only variable.
22461
cbda7dc6
AS
224622010-05-12 Anatoly Sokolov <aesok@post.ru>
22463
22464 * target.h (struct gcc_target): Add mode_dependent_address_p field.
22465 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
22466 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
22467 * targhooks.c (default_mode_dependent_address_p): New function.
22468 * targhooks.h (default_mode_dependent_address_p): Declare function.
22469 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
22470 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
ade52657 22471 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
cbda7dc6 22472 target hook. Change return type to bool.
ade52657 22473 * recog.h (mode_dependent_address_p): Change return type to bool.
cbda7dc6 22474
1df43907
KH
224752010-05-12 Kazu Hirata <kazu@codesourcery.com>
22476 Nathan Froyd <froydnj@codesourcery.com>
22477
22478 * tree-mudflap.c (build_function_type_0, build_function_type_1,
22479 build_function_type_2, build_function_type_3): Remove.
22480 (mudflap_init): Use build_function_type_list.
22481
f9b36bb3
KH
224822010-05-12 Kazu Hirata <kazu@codesourcery.com>
22483 Nathan Froyd <froydnj@codesourcery.com>
22484
22485 * coverage.c (build_fn_info_value): Call build_constructor instead of
22486 build_constructor_from_list.
22487 (build_ctr_info_value): Likewise.
22488 (build_gcov_info): Likewise.
22489
f88203b0
NF
224902010-05-12 Nathan Froyd <froydnj@codesourcery.com>
22491
22492 * tree.c (build_constructor): Compute TREE_CONSTANT for the
22493 resultant constructor.
22494 (build_constructor_single): Don't set TREE_CONSTANT.
22495 (build_constructor_from_list): Don't compute TREE_CONSTANT.
22496
b34fd25c
JH
224972010-05-12 Jan Hubicka <jh@suse.cz>
22498
22499 * cgraph.h (struct varpool_node): Add aux.
22500 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
22501 * varpool.c (varpool_remove_node): Do not remove initializer.
22502 (varpool_reset_queue): Export.
22503 (varpool_finalize_decl): Volatile vars are forced to be output.
22504 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
22505 replaced decl.
22506 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
22507 process_references, varpool_can_remove_if_no_refs): New functions.
22508 (cgraph_remove_unreachable_nodes): Handle variables too.
22509
49f19b1c
L
225102010-05-12 H.J. Lu <hongjiu.lu@intel.com>
22511
22512 PR target/44088
22513 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
22514
7c2db0d3
JJ
225152010-05-12 Jakub Jelinek <jakub@redhat.com>
22516
f22f4340
JJ
22517 PR middle-end/44085
22518 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
22519 change value of ORT_TASK.
22520 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
22521 (omp_notice_threadprivate_variable): New function.
22522 (omp_notice_variable): Call it for threadprivate variables.
22523 If enclosing ctx is a task, print enclosing task rather than
22524 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
22525 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
22526 if task has untied clause.
22527
7c2db0d3
JJ
22528 PR debug/42278
22529 * dwarf2out.c (base_type_die): Don't add name attribute here.
22530 (modified_type_die): Instead of sizetype use
22531 its underlying original type. If a DW_TAG_base_type doesn't
22532 have name added, add __unknown__.
22533 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
22534 always call force_type_die instead.
22535
623a6941
MK
225362010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
22537
22538 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
22539 for __stack_chk_guard.
22540
056928b2
JJ
225412010-05-11 Jakub Jelinek <jakub@redhat.com>
22542
9d000e83
JJ
22543 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
22544 don't call start_source_file debug hook here...
22545 (finish_options): ... but here, after outputting predefined and
22546 command line defines and undefs.
22547
3b5fda81
JJ
22548 PR middle-end/44071
22549 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
22550 no fallthru edge.
22551 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
22552 optimizing away empty bb with no successors, move over its
22553 footer chain to fallthru predecessor.
22554 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
22555 (rtl_split_edge): For asm goto call patch_jump_insn even if
22556 splitting fallthru edge.
22557
3895ec53
JJ
22558 PR c++/44059
22559 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
22560 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
22561 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
22562 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
22563 on DW.ref.* decls.
22564
056928b2
JJ
22565 PR c++/44062
22566 * c-parser.c (c_parser_expression): Mark LHS of a comma
22567 expression as read if it is a decl, handled component or
22568 COMPOUND_EXPR with that on the RHS.
22569 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
22570 if it is a decl or handled component.
22571
9a809897
JH
225722010-05-11 Jan Hubicka <jh@suse.cz>
22573
22574 * lto-symtab.c (lto_symtab_free): New function.
22575 * lto-streamer.h (lto_symtab_free): Declare.
22576
225772010-05-11 Jan Hubicka <jh@suse.cz>
22578
22579 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
22580 that if function is needed it is reachable.
22581 (lto_output_node): See if it the function is reachable or referenced.
22582 (output_cgraph): Update call of lto_output_node.
22583 * lto-streamer.h (reachable_from_other_partition_p): Declare.
22584
b8053194
JH
225852010-05-11 Jan Hubicka <jh@suse.cz>
22586
22587 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
22588 Mark as used.
22589
1aa14195
JH
225902010-05-11 Jan Hubicka <jh@suse.cz>
22591
22592 PR tree-optimize/44063
c46a5e28
EB
22593 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
22594 queue.
1aa14195
JH
22595 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
22596 limits.
22597 (estimate_function_body_sizes): Compute sizes even when disregarding.
22598
f088f0ae
KT
225992010-05-11 Kai Tietz <kai.tietz@onevision.com>
22600
22601 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
22602
dcda03f4
JH
226032010-05-11 Jan Hubicka <jh@suse.cz>
22604
22605 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
22606 into every boundary.
22607
ece02605
JH
226082010-05-11 Jan Hubicka <jh@suse.cz>
22609
22610 * matrix-reorg.c (matrix_reorg): Rebuild edges.
22611
cc56d170
JH
226122010-05-11 Jan Hubicka <jh@suse.cz>
22613
22614 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
22615 lto_streamer_cache_delete): Put nodes into heap.
979aeb33
JH
22616 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
22617 heap.
cc56d170 22618
99b766fc
JH
226192010-05-11 Jan Hubicka <jh@suse.cz>
22620
22621 * cgraphbuild.c (cgraph_rebuild_references): New.
a2acdf1f
JH
22622 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
22623 out extern inlines.
99b766fc
JH
22624 * cgraph.h (cgraph_rebuild_references): Declare.
22625 * tree-inline.c (tree_function_versioning): Use it.
22626 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
22627
a940b4d9
JH
226282010-05-11 Jan Hubicka <jh@suse.cz>
22629
22630 * cgraph.c: Include ipa-utils.h
22631 (cgraph_create_virtual_clone): Update references.
22632 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
22633
57762e97
CB
226342010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
22635
78c7cabb 22636 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
57762e97
CB
22637 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
22638 cache size.
22639
a8beb3a7
CB
226402010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
22641
78c7cabb 22642 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
a8beb3a7 22643
3f592b38
JJ
226442010-05-11 Jakub Jelinek <jakub@redhat.com>
22645
09b201fc
JJ
22646 * gcc.c (execute): For -### don't quote arguments that
22647 contain just alphanumerics and _/-. characters.
22648 * doc/invoke.texi: Document that change for -###.
22649
3f592b38
JJ
22650 PR debug/44023
22651 * df-problems.c (struct dead_debug): Add to_rescan field.
22652 (dead_debug_init): Clear to_rescan field.
22653 (dead_debug_finish): Rescan all debug insns in to_rescan
22654 bitmap and free the bitmap.
22655 (dead_debug_insert_before): Instead of rescanning debug insns
22656 immediately queue their rescanning until dead_debug_finish.
22657 (df_note_bb_compute): After dead_debug_add do continue instead
22658 of break.
22659
1de12eab
JJ
226602010-05-10 Jakub Jelinek <jakub@redhat.com>
22661
22662 PR debug/44028
22663 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
22664 clear also INSN_REG_USE_LIST.
22665
e472d6bf
RO
226662010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22667
22668 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
22669
6cd174f6
JH
226702010-05-10 Jan Hubicka <jh@suse.cz>
22671
c46a5e28
EB
22672 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
22673 commited change.
6cd174f6 22674
5c4f225f
JH
226752010-05-10 Jan Hubicka <jh@suse.cz>
22676
c46a5e28
EB
22677 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
22678 Allocate encoders.
5c4f225f
JH
22679 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
22680 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
22681 (lto_streamer_cache_create): Init alloc pool.
22682 (lto_streamer_cache_delete): Free alloc pool.
22683 * lto-streamer.h: Include alloc pool.
22684 (lto_streamer_cache_d): Use alloc pool.
22685 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
22686
de61f467
JH
226872010-05-10 Jan Hubicka <jh@suse.cz>
22688
22689 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
22690 * cgraphbuild.c: Include except.h
22691 (record_type_list, record_eh_tables): New function.
22692 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
22693
e4fa83d3
JH
226942010-05-10 Jan Hubicka <jh@suse.cz>
22695
22696 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
22697 __frame_dummy_init_array_entry, force_to_data): Attribute as used
22698 rather than unused.
22699
8a9ecffd
MM
227002010-05-10 Michael Matz <matz@suse.de>
22701
22702 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
22703 (can_reassociate_p): Use FLOAT_TYPE_P.
22704 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
22705 (vect_force_simple_reduction): ... this.
62e59133 22706 * tree-parloops.c (gather_scalar_reductions): Use
8a9ecffd
MM
22707 vect_force_simple_reduction.
22708 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
22709 vect_is_simple_reduction, add modify argument, if true rewrite
22710 "a-b" into "a+(-b)".
22711 (vect_is_simple_reduction, vect_force_simple_reduction): New
22712 functions.
22713 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
22714
227152010-05-10 H.J. Lu <hongjiu.lu@intel.com>
22716 Vladimir Makarov <vmakarov@redhat.com>
46044dd9
L
22717
22718 PR rtl-optimization/44012
22719 * ira-build.c (remove_unnecessary_allocnos): Nullify
22720 regno_allocno_map of the removed allocno.
22721
2e2b183b
RO
227222010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22723
22724 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
22725 to /dev/null.
22726 * configure: Regenerate.
22727
a93e1899
RO
227282010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22729
22730 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
22731 unused.
22732 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
22733 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
22734 support in Sun ld.
22735 * configure: Regenerate.
22736
571943de
RG
227372010-05-10 Richard Guenther <rguenther@suse.de>
22738
22739 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
22740 marked if the entry identifier is marked.
22741
0b7b376d
RG
227422010-05-10 Richard Guenther <rguenther@suse.de>
22743
22744 * c-common.c (struct c_common_attributes): Add fnspec attribute.
22745 (handle_fnspec_attribute): New function.
22746 * gimple.h (gimple_call_return_flags): Declare.
22747 (gimple_call_arg_flags): Likewise.
22748 * gimple.c (gimple_call_arg_flags): New function.
22749 (gimple_call_return_flags): Likewise.
22750 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
22751 New argument flags.
22752 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
22753 return value flags.
22754 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
22755 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
22756 main work to ...
22757 (make_heapvar_for): ... this new function.
22758 (handle_rhs_call): Handle fnspec attribute argument specifiers.
22759 (handle_lhs_call): Likewise.
22760 (find_func_aliases): Adjust.
22761
1755aad0
RG
227622010-05-10 Richard Guenther <rguenther@suse.de>
22763
22764 PR tree-optimization/44050
62e59133 22765 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
1755aad0 22766
333b67a9
WG
227672010-05-10 Wei Guozhi <carrot@google.com>
22768
22769 PR target/42879
22770 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
22771
0fb96aa4
JM
227722010-05-09 Joseph Myers <joseph@codesourcery.com>
22773
22774 PR c/10676
22775 * c-typeck.c (lookup_field): Take a type directly. Update
22776 recursive calls.
22777 (build_component_ref): Update call to lookup_field.
22778 (set_init_label): Use lookup_field to find initialized field.
22779 Handle returned list of fields like a sequence of designators.
22780
3d7a712a
RG
227812010-05-09 Richard Guenther <rguenther@suse.de>
22782
22783 PR middle-end/44024
22784 * fold-const.c (tree_single_nonzero_warnv_p): Properly
22785 handle &FUNCTION_DECL.
22786
492fc0ee
JM
227872010-05-09 Joseph Myers <joseph@codesourcery.com>
22788
22789 PR c/4784
22790 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
22791 structures and unions recursively.
22792 (detect_field_duplicates): Move duplicate detection with a hash to
22793 detect_field_duplicates_hash. Always use a hash if anonymous
22794 structures or unions are present.
22795 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
22796 give errors.
22797
44f276c6
L
227982010-05-09 H.J. Lu <hongjiu.lu@intel.com>
22799
22800 PR target/44046
22801 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
22802 detect Atom, Core 2 and Core i7.
22803
d6205185
RG
228042010-05-09 Richard Guenther <rguenther@suse.de>
22805
22806 * gcc.c (store_arg): Handle temporary file deletion for
22807 joined arguments.
22808
5588864d
RG
228092010-05-09 Richard Guenther <rguenther@suse.de>
22810
22811 PR middle-end/44043
22812 * ipa-inline.c (estimate_function_body_sizes): Return after
22813 disregarding inline limits.
22814
aa34f42c
RG
228152010-05-09 Richard Guenther <rguenther@suse.de>
22816
22817 * gcc.c (store_arg): Revert last change.
22818
844381e5
SL
228192010-05-08 Sandra Loosemore <sandra@codesourcery.com>
22820
22821 PR middle-end/28685
22822 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
22823 (optimize_ops_list): Call it.
22824
43896afb
RG
228252010-05-08 Richard Guenther <rguenther@suse.de>
22826
22827 PR tree-optimization/44030
22828 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
22829 NECESSARY flag if we propagate from a inserted expression.
22830
f56000ed
EB
228312010-05-08 Eric Botcazou <ebotcazou@adacore.com>
22832
22833 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
22834 domain types as equal if they are both PLACEHOLDER_EXPRs.
22835
1522167d
RG
228362010-05-08 Richard Guenther <rguenther@suse.de>
22837
22838 * lto-wrapper.c (run_gcc): Remove linker output from
22839 command line for LTRANS invocation.
22840
c082f9f3
SB
228412010-05-07 Steven Bosscher <steven@gcc.gnu.org>
22842
22843 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
22844 lto-macho as lto_binary_reader.
22845 * target.h (struct gcc_target): New hooks lto_start and lto_end.
22846 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
22847 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
22848 in lto_start and lto_end calls.
22849 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
22850 magic numbers.
22851 (scan_prog_file): Update is_elf_or_coff call.
22852 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
22853
22854 * collect2.c (main): Fix enum comparison.
22855
22856 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
22857 Add prototypes.
22858 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
22859 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
22860 and TARGET_ASM_LTO_END.
22861 * darwin.c: Include obstack.h and lto-streamer.h.
22862 (lto_section_names_offset, lto_section_names_obstack,
22863 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
22864 global variables.
22865 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
22866 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
22867 to a temporary file.
22868 (darwin_asm_lto_end): New function. Restore asm_out_file.
22869 (darwin_asm_named_section): For LTO sections, replace the name with
22870 the offset of the section name in a string table, and build this
22871 table.
22872 (darwin_file_start): Initialize global vars for LTO support.
22873 (darwin_file_end): If output to asm_out_file was redirected, append it
22874 to the proper asm_out_file here. Add the section names section.
22875
18bc5398
SB
228762010-05-07 Steven Bosscher <steven@gcc.gnu.org>
22877
22878 * c-pragma.c (pending_weak_d, pending_weak): New.
22879 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
22880 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
22881 handle_pragma_weak): Update the uses of pending_weaks.
22882
0f590a2d
RW
228832010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22884
22885 PR documentation/44016
22886 * doc/standards.texi (Standards): Link to unversioned
22887 cxx0x_status.html page.
22888
f4a4b582 228892010-05-07 Iain Sandoe <iains@gcc.gnu.org>
3bd5cdeb
IS
22890
22891 PR target/43708
22892 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
22893 in addition to TREE_USED, to avoid "set but unused" warnings.
22894
9bf4598b
CF
228952010-05-07 Changpeng Fang <changpeng.fang@amd.com>
22896
22897 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
22898 (is_loop_prefetching_profitable): Do not insert prefetches
22899 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
22900 times the prefetch ahead distance.
22901
ccacf0e1
CF
229022010-05-07 Changpeng Fang <changpeng.fang@amd.com>
22903
22904 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
22905 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
22906 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
22907 the unroll_factor.
22908
55e5a2eb
CF
229092010-05-07 Changpeng Fang <changpeng.fang@amd.com>
22910
22911 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
22912 a diagnostic info when the insn-to-mem ratio is too small.
22913
f4a4b582 229142010-05-07 Richard Guenther <rguenther@suse.de>
5cd0e96b
RG
22915
22916 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
22917 the linker plugin.
22918 (store_arg): Queue temp_filename for deletion instead of
22919 the whole argument.
22920
48cf395b
RB
229212010-05-07 Richard Guenther <rguenther@suse.de>
22922
22923 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
22924 (run_gcc): Handle LTRANS phase invocation.
62e59133 22925 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
48cf395b 22926
86b2c5b6
JJ
229272010-05-07 Jakub Jelinek <jakub@redhat.com>
22928
22929 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
22930 this is also meaningful on PARM_DECLs and RESULT_DECLs.
22931
c4e1e0b1
RO
229322010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22933
22934 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
22935
a7d4562a
RG
229362010-05-07 Richard Guenther <rguenther@suse.de>
22937
22938 PR tree-optimization/44020
22939 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
22940 code when PRE is not yet initialized.
22941
a6b02ef3
RO
229422010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22943
22944 * config/mips/dbxmdebug.h: Remove.
22945 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
22946
d42ba3b8
SZ
229472010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
22948
22949 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
22950 with null pointer and also warn about ordered comparison of zero with
22951 pointer if -Wextra.
22952
a6733c71
AS
229532010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
22954
22955 * graphite-blocking.c
22956 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
22957 * graphite-clast-to-gimple.c
22958 (clast_to_gcc_expression): Same.
22959 (precision_for_value): Same.
22960 (precision_for_interval): Same.
22961 (gcc_type_for_interval): Same.
22962 (graphite_create_new_guard): Same.
22963 (compute_bounds_for_level): Same.
22964 (graphite_create_new_loop_guard): Same.
22965 * graphite-interchange.c
22966 (build_linearized_memory_access): Same.
22967 (pdr_stride_in_loop): Same.
22968 (memory_strides_in_loop_1): Same.
22969 (memory_strides_in_loop): Same.
22970 (extend_scattering): Same.
22971 (psct_scattering_dim_for_loop_depth): Same.
22972 (pbb_number_of_iterations): Same.
22973 * graphite-poly.h
22974 (debug_iteration_domains): Same.
22975 * graphite-ppl.c
22976 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
22977 (ppl_set_inhomogeneous_gmp): Same.
22978 (ppl_strip_loop): Same.
22979 (ppl_lexico_compare_linear_expressions): Same.
22980 (ppl_read_polyhedron_matrix): Same.
22981 (ppl_max_for_le_pointset): Same.
22982 * graphite-ppl.h
22983 (ppl_read_polyhedron_matrix): Same.
22984 (tree_int_to_gmp): Same.
22985 (gmp_cst_to_tree): Same.
22986 (ppl_set_inhomogeneous): Same.
22987 (ppl_set_inhomogeneous_tree): Same.
22988 (ppl_set_coef): Same.
22989 (ppl_set_coef_tree): Same.
22990 * graphite-sese-to-poly.c
22991 (build_pbb_scattering_polyhedrons): Same.
22992 (build_scop_scattering): Same.
22993 (scan_tree_for_params_right_scev): Same.
22994 (scan_tree_for_params): Same.
22995 (find_params_in_bb): Same.
22996 (find_scop_parameters): Same.
22997 (add_upper_bounds_from_estimated_nit): Same.
22998 (build_loop_iteration_domains): Same.
22999 (add_condition_to_domain): Same.
23000 (pdr_add_memory_accesses): Same.
23001
230022010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
23003
23004 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
23005 CLooG's value_* macros to their respective mpz_* counterparts.
23006 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
23007 (graphite_create_new_loop_guard): Same.
23008 * graphite-interchange.c (build_linearized_memory_access): Same.
23009 (pdr_stride_in_loop): Same.
23010 (memory_strides_in_loop_1): Same.
23011 (1st_interchange_profitable_p): Same.
23012 * graphite-poly.c (extend_scattering): Same.
23013 (psct_scattering_dim_for_loop_depth): Same.
23014 (pbb_number_of_iterations): Same.
23015 (pbb_number_of_iterations_at_time): Same.
23016 * graphite-poly.h (new_1st_loop): Same.
23017 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
23018 (oppose_constraint): Same.
23019 (insert_constraint_into_matrix): Same.
23020 (ppl_set_inhomogeneous_gmp): Same.
23021 (ppl_set_coef_gmp): Same.
23022 (ppl_strip_loop): Same.
23023 (ppl_lexico_compare_linear_expressions): Same.
23024 (ppl_max_for_le_pointset): Same.
23025 (ppl_min_for_le_pointset): Same.
23026 (ppl_build_realtion): Same.
23027 * graphite-ppl.h (gmp_cst_to_tree): Same.
23028 (ppl_set_inhomogeneous): Same.
23029 (ppl_set_inhomogeneous_tree): Same.
23030 (ppl_set_coef): Same.
23031 (ppl_set_coef_tree): Same.
23032 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23033 (build_scop_scattering): Same.
23034 (add_value_to_dim): Same.
23035 (scan_tree_for_params_right_scev): Same.
23036 (scan_tree_for_params_int): Same.
23037 (scan_tree_for_params): Same.
23038 (find_params_in_bb): Same.
23039 (find_scop_parameters): Same.
23040 (add_upper_bounds_from_estimated_nit): Same.
23041 (build_loop_iteration_domains): Same.
23042 (create_linear_expr_from_tree): Same.
23043 (add_condition_to_domain): Same.
23044 (pdr_add_memory_accesses): Same.
23045
14c2101d
JM
230462010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
23047 Jason Merrill <jason@redhat.com>
23048
23049 * c-common.c (c_common_reswords): Add nullptr.
23050 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
23051 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
23052 (gen_type_die_with_usage): Likewise.
23053 * dbxout.c (dbxout_type): Likewise.
23054 * sdbout.c (plain_type_1): Likewise.
23055
ebad5233
JM
230562010-05-06 Jason Merrill <jason@redhat.com>
23057
941f78d1
JM
23058 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
23059 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
23060 ret appropriately.
23061 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
23062
ebad5233
JM
23063 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
23064 stripping WITH_SIZE_EXPR.
23065 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
23066 change.
23067
9aaa1ee8
RO
230682010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23069
23070 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
23071 list of obsolete configurations.
23072 Disabled check for obsolete configurations.
23073 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
23074 Removed support for previous versions.
23075 * config/mips/iris.h: Removed.
23076 * config/mips/iris5.h: Removed.
23077 * config/mips/iris6.h: Merged old iris.h contents.
23078 (TARGET_IRIX): Removed.
23079 (DRIVER_SELF_SPECS): Removed mabi=32.
23080 (IDENT_ASM_OP): Removed undef.
23081 (STARTFILE_SPEC): Removed mabi=32.
23082 (ENDFILE_SPEC): Likewise.
23083 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
23084 (MACHINE_TYPE): Update for IRIX 6.5.
23085 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
23086 TARGET_IRIX by TARGET_IRIX6.
23087 (mips_file_start): Likewise.
23088 (mips_output_external): Remove IRIX 5/6 O32 support.
23089 (mips_output_function_prologue): Likewise.
23090 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
23091 TARGET_IRIX6.
23092 (TARGET_CPU_CPP_BUILTINS): Likewise.
23093 (TARGET_IRIX): Removed.
23094 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
23095 (MULTILIB_DIRNAMES): Removed 32.
23096 (MULTILIB_OSDIRNAMES): Removed ../lib.
62e59133 23097 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
9aaa1ee8 23098 (Specific, mips-sgi-irix5): Document removal.
62e59133 23099 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
9aaa1ee8
RO
23100 Remove references to older IRIX 6 releases and the O32 ABI.
23101
5b8bd3d5
JJ
231022010-05-06 Jakub Jelinek <jakub@redhat.com>
23103
23104 PR bootstrap/43994
23105 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
23106 instead of DF_REF_REAL_REG.
23107
e97580ce
DK
231082010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
23109
23110 PR target/43888
23111 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
23112 handling to still return true for x64 targets.
23113
f24d84cc
MK
231142010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
23115
23116 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
23117
ef38b551
JH
231182010-05-06 Jan Hubicka <jh@suse.cz>
23119
23120 PR tree-optimization/43791
23121 * ipa-inline.c (update_caller_keys): Remove bogus
23122 disregard_inline_limits check.
23123
0ab555de
MM
231242010-05-06 Michael Matz <matz@suse.de>
23125
23126 PR tree-optimization/43984
23127 * tree-ssa-pre.c (inserted_phi_names): Remove.
23128 (inserted_exprs): Change to bitmap.
23129 (create_expression_by_pieces): Set bits, don't append to vector.
23130 (insert_into_preds_of_block): Don't handle inserted_phi_names.
23131 (eliminate): Don't look at inserted_phi_names, remove deleted
23132 insns from inserted_exprs.
62e59133 23133 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
0ab555de
MM
23134 (init_pre, fini_pre): Allocate and free bitmaps.
23135 (execute_pre): Insert insns on edges before elimination.
23136
315a02da
MK
231372010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
23138
23139 * tree.c (initializer_zerop): Handle STRING_CST.
23140
3734d960
MLI
231412010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
23142
23143 PR 40989
23144 * doc/invoke.texi (Wimplicit): Document as C only.
23145 * opts.c (common_handle_option): Add argument kind.
23146 (handle_option): Rename as read_cmdline_option. Factor out code to...
23147 (handle_option): ... here. New.
23148 (handle_options): Rename as read_cmdline_options.
23149 (decode_options): Update call.
23150 (set_option): Use option index instead of option pointer. Classify
23151 diagnostics correctly.
23152 (enable_warning_as_error): Call handle_option.
23153 * opts.h (set_option): Update declaration.
23154 (handle_option): Declare.
62e59133 23155 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3734d960
MLI
23156 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
23157 * c-opts.c (set_Wimplicit): Delete.
23158 (c_family_lang_mask): New static constant.
23159 (c_common_handle_option): Add argument kind. Use handle_option
23160 instead of set_Wimplicit.
23161 (c_common_post_options): warn_implicit and warn_implicit_int
23162 are disabled by default.
23163 * c-common.c (warn_implicit): Do not define here.
23164 * c-common.h (warn_implicit): Do not declare here.
23165 (c_common_handle_option): Update declaration.
23166 * lto-opts.c (lto_reissue_options): Update call to set_option.
23167
2b90475a
RG
231682010-05-06 Richard Guenther <rguenther@suse.de>
23169
23170 PR tree-optimization/43571
23171 * domwalk.c (walk_dominator_tree): Walk the dominator
23172 sons in more optimal order.
23173
e3bdfed6
RG
231742010-05-06 Richard Guenther <rguenther@suse.de>
23175
23176 PR tree-optimization/43934
23177 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
23178 (stmt_cost): Likewise.
23179 (extract_true_false_args_from_phi): New helper.
23180 (determine_max_movement): For PHI nodes verify we can hoist them
23181 and compute their cost.
23182 (determine_invariantness_stmt): Handle PHI nodes.
23183 (move_computations_stmt): Likewise. Hoist PHI nodes in
23184 if-converted form using COND_EXPRs.
62e59133 23185 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
e3bdfed6
RG
23186 (tree_ssa_lim): Likewise.
23187 * tree-flow.h (tree_ssa_lim): Adjust prototype.
23188 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
23189
a81b065a
RG
231902010-05-06 Richard Guenther <rguenther@suse.de>
23191
23192 PR tree-optimization/43987
23193 * tree-ssa-structalias.c (could_have_pointers): For possibly
23194 address-taken variables force pointers to be recorded.
23195 (create_variable_info_for_1): Likewise.
23196 (push_fields_onto_fieldstack): Pass in wheter all fields
23197 must have pointers.
23198 (find_func_aliases): Query types instead of vars whether
23199 they contain pointers where appropriate.
23200
369451ec
JH
232012010-05-06 Jan Hubicka <jh@suse.cz>
23202
23203 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
23204 (record_reference, mark_address, mark_load, mark_store): Record
23205 references.
23206 (record_references_in_initializer): Update call of record_references.
23207 (rebuild_cgraph_edges): Remove all references before rebuiding.
23208 * cgraph.c (cgraph_create_node): Clear ref list.
23209 (cgraph_remove_node): Remove references.
23210 (dump_cgraph_node): Dump references.
23211 (cgraph_clone_node): Clone references.
23212 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
23213 (struct cgraph_node, varpool_node): Add ref_lst.
23214 * ipa-ref.c: New file.
23215 * ipa-ref.h: New file.
23216 * ipa-ref-inline.h: New file.
23217 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
23218 (referenced_from_other_partition_p): New function.
23219 (lto_output_varpool_node): Take set arugment; call
23220 referenced_from_other_partition.
23221 (lto_output_ref): New.
23222 (add_references): New.
23223 (output_refs): New.
62e59133 23224 (output_cgraph): Compute boundary based on references; output refs.
369451ec
JH
23225 (output_varpool): Accept cgraph_node_set argument.
23226 (input_ref): New.
23227 (input_refs): New.
23228 (input_cgraph): Call input_refs.
23229 * lto-section-in.c (lto_section_name): Add refs.
ade52657 23230 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
369451ec
JH
23231 (ipa-ref.o): New file.
23232 * varpool.c (varpool_node): Clear ipa ref list.
23233 (varpool_remove_node): Remove references.
23234 (dump_varpool_node): Dump references.
23235 (varpool_assemble_decl): Only compile finalized ones.
23236 (varpool_extra_name_alias): Initialize ref list.
23237 * lto-streamer.c (lto-get_section_name): Add .refs section.
23238 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
23239 (referenced_from_other_partition_p): Declared.
23240
7d8930a0
IR
232412010-05-06 Ira Rosen <irar@il.ibm.com>
23242
23243 PR tree-optimization/43901
23244 * tree-vect-stmts.c (vectorizable_call): Assert that vector
23245 type is not NULL if it's transformation phase, and return
23246 FALSE if it's analysis.
62e59133
UB
23247 (vectorizable_conversion, vectorizable_operation,
23248 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
7d8930a0 23249
a1c4f19f
AP
232502010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
23251
23252 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
23253 Delete.
23254 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
23255 New define.
23256 * config/mips/mips-protos.h
23257 (mips_small_register_classes_for_mode_p): Delete prototype.
23258
93b338c3
BS
232592010-05-06 Bernd Schmidt <bernds@codesourcery.com>
23260
23261 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
23262 * config/arm/arm.c (multiple_operation_profitable_p,
23263 compute_offset_order): New static functions.
23264 (load_multiple_sequence, store_multiple_sequence): Use them.
23265 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
23266 memory offsets, not register numbers.
23267 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
23268
50701474
SB
232692010-05-05 Steven Bosscher <steven@gcc.gnu.org>
23270
62e59133 23271 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
50701474
SB
23272 (get_pending_sizes, put_pending_size, put_pending_sizes):
23273 Update the uses of pending_sizes.
23274 * c-decl.c (store_parm_decls): Likewise.
23275 * c-tree.h (struct c_arg_info): Likewise.
23276 * tree.h: Update the prototype for get_pending_sizes and
23277 put_pending_sizes.
23278
564a129d
JM
232792010-05-05 Jason Merrill <jason@redhat.com>
23280
0f559c16
JM
23281 PR debug/43370
23282 * c-common.c (handle_aligned_attribute): Respect
23283 ATTR_FLAG_TYPE_IN_PLACE.
23284
564a129d
JM
23285 PR testsuite/43758
23286 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
23287 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
23288 (TARGET_INITIALIZER): Use it.
23289 * c-common.c (attribute_takes_identifier_p): Call it.
23290 * c-common.h: Update prototype.
23291 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
23292 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
23293
58c13acc
JJ
232942010-05-05 Jakub Jelinek <jakub@redhat.com>
23295
23296 PR debug/43950
23297 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
23298 DW_ID_down_case for Fortran compilation units.
23299
5b042919
JH
233002010-05-05 Jan Hubicka <jh@suse.cz>
23301
23302 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
23303 handle aliases.
23304
ca361dec
EB
233052010-05-05 Eric Botcazou <ebotcazou@adacore.com>
23306
23307 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
23308 a variable-sized RESULT_DECL.
23309
fa6aeae1
MK
233102010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
23311
23312 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
23313
6d729f28
JM
233142010-05-05 Jason Merrill <jason@redhat.com>
23315
23316 PR c++/43787
23317 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
23318 returns GS_OK.
23319 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
23320
e972a1d3
AO
233212010-05-05 Alexandre Oliva <aoliva@redhat.com>
23322 Jakub Jelinek <jakub@redhat.com>
23323
23324 PR debug/43478
23325 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
23326 (dead_debug_init, dead_debug_finish): New functions.
23327 (dead_debug_add, dead_debug_insert_before): Likewise.
23328 (df_note_bb_compute): Initialize a dead_debug object, add dead
23329 debug uses to it, insert debug bind insns before death insns,
23330 reset debug insns that refer to pending uses at the end.
23331 * rtl.h (make_debug_expr_from_rtl): New prototype.
23332 * varasm.c (make_debug_expr_from_rtl): New function.
23333
2f41ecf5
JH
233342010-05-05 Jan Hubicka <jh@suse.cz>
23335
23336 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
62e59133
UB
23337 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
23338 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
23339 lto_varpool_encoder_deref, lto_varpool_encoder_size,
2f41ecf5
JH
23340 lto_varpool_encoder_encode_initializer_p,
23341 lto_set_varpool_encoder_encode_initializer): New functions.
23342 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
23343 call output_varpool.
23344 (input_varpool_node): Do not always set analyzed.
23345 (input_cgraph_1): Return vector of cgraph nodes.
23346 (input_varpool_1): Return vector of varpools.
23347 (input_cgraph): Free the vectors.
23348 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
23349 output only initializers needed.
23350 (lto_output): Only call output_cgraph.
23351 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
23352 * lto-section-out.c (lto_new_out_decl_state): Initialize
23353 state->varpool_node_encoder.
23354 * lto-streamer.h (lto_varpool_encoder_d): New.
62e59133 23355 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
2f41ecf5
JH
23356 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
23357 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
23358 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
23359 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
23360 Declare.
23361 (output_varpool, input_varpool): Remove declarations.
23362
9e0546ef
JH
233632010-05-05 Jan Hubicka <jh@suse.cz>
23364
23365 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
23366 with body can prevail.
23367
233682010-05-05 Jan Hubicka <jh@suse.cz>
23369
23370 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
23371 size.
23372
0277fabf
LB
233732010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
23374
62e59133 23375 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
0277fabf
LB
23376
23377 * gengtype.h (erro_at_line): Constify pos argument.
23378
23379 * gengtype.c: Include hashtab.h.
23380 (enum gc_used): Document GC_MAYBE_POINTED_TO.
23381 (error_at_line): Constify pos argument.
23382 (do_typedef): Initialize p->opt field.
23383 (get_file_gtfilename): Fix comment typo.
23384 (struct walk_type_data): Constify line field.
23385 (get_output_file_for_structure): New function.
23386 (write_local_func_for_structure): Constify orig_s argument.
23387 Use get_output_file_for_structure.
23388 (write_func_for_structure): Use get_output_file_for_structure.
23389 (INDENT): New define.
23390 (dump_pair, dump_type, dump_type_list, dump_typekind)
23391 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
23392 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
23393 functions.
23394 (seen_types): New variable.
23395 (main): New variable do_dump. Process "-d" command line option.
23396 Call dump_everything if dump requested.
23397
dbb2a2cb
JJ
233982010-05-05 Jakub Jelinek <jakub@redhat.com>
23399
23400 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
23401 in a temporary instead of invoking the macro multiple times.
23402 (track_expr_p): Likewise.
23403
f4a4b582 234042010-05-04 Neil Vachharajani <nvachhar@google.com>
650cfcab
NV
23405
23406 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
23407 per new semantics.
23408 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
23409 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
23410 conditions for printing notes.
23411 * common.opt (-Wcoverage-mismatch): Allow negative, default to
23412 true, update documentation.
23413 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
650cfcab 23414
97e3c923
JJ
234152010-05-04 Jakub Jelinek <jakub@redhat.com>
23416
23417 PR c/43981
23418 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
23419 on dimen.
23420
ade6a9ac
L
234212010-05-04 H.J. Lu <hongjiu.lu@intel.com>
23422
23423 PR target/43799
62e59133 23424 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
ade6a9ac
L
23425 (*sse_prologue_save_insn1): Likewise.
23426 (SSE prologue save splitter): Likewise.
23427
7ef5e86c
EB
234282010-05-04 Eric Botcazou <ebotcazou@adacore.com>
23429
23430 * tree.c (free_lang_data_in_one_sizepos): New inline function.
23431 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
23432 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
23433 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
23434 all decls. Call it on DECL_FIELD_OFFSET of fields.
23435 (find_decls_types_r): Follow DECL_VALUE_EXPR.
23436 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
23437
6cbd3b6a
MJ
234382010-05-04 Martin Jambor <mjambor@suse.cz>
23439
23440 * tree-sra.c (build_access_from_expr_1): The first parameter type
23441 changed to simple tree.
23442 (build_access_from_expr): Likewise, gsi parameter was eliminated.
23443 (scan_assign_result): Renamed to assignment_mod_result, enum elements
23444 renamed as well.
23445 (build_accesses_from_assign): Removed all parameters except for a
23446 simple gimple statement. Now returns a simple bool.
23447 (scan_function): All non-analysis parts moved to separate functions
23448 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
23449 parameters and updated both callers.
23450 (sra_modify_expr): Removed parameter data.
23451 (sra_modify_function_body): New function.
23452 (perform_intra_sra): Call sra_modify_function_body to modify the
23453 function body.
23454 (replace_removed_params_ssa_names): Parameter data changed into
23455 adjustments vector.
23456 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
23457 changed the parameter dont_convert to convert with the opposite
23458 meaning.
23459 (sra_ipa_modify_assign): Parameter data changed into adjustments
23460 vector, return value changed to bool.
23461 (ipa_sra_modify_function_body): New function.
23462 (sra_ipa_reset_debug_stmts): Updated a comment.
23463 (modify_function): Use ipa_sra_modify_function_body to modify function
23464 body.
23465
2147c71c
L
234662010-05-04 H.J. Lu <hongjiu.lu@intel.com>
23467
23468 PR middle-end/43671
23469 * alias.c (true_dependence): Handle the same VALUE in x and mem.
23470 (canon_true_dependence): Likewise.
23471 (write_dependence_p): Likewise.
23472
85912441
JH
234732010-05-04 Jan Hubicka <jh@suse.cz>
23474
23475 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
23476 * cgraphbuild.c: Include ipa-utils.h
23477 (record_reference_ctx): New struct.
23478 (record_reference): Simplify to work on initializers; not statements.
23479 (mark_address, mark_load, mark_store): New.
23480 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
23481 walk PHI nodes too.
23482 (record_references_in_initializer): Update use of record_reference.
23483 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
23484 walk PHI nodes too.
23485
688a10c2
JH
234862010-05-04 Jan Hubicka <jh@suse.cz>
23487
23488 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
23489 node will be removed anyway.
23490 (lto_varpool_replace_node): Allow also unanalyzed nodes;
23491 relink aliases of node into prevailing node.
23492 * varpool.c (varpool_remove_node): Remove aliases properly;
23493 when removing node, remove all its aliases too; remove DECL_INITIAL
23494 of removed node; ggc_free the varpool node.
23495
27c2cfa6
RG
234962010-05-04 Richard Guenther <rguenther@suse.de>
23497
23498 PR tree-optimization/43879
23499 * tree-ssa-structalias.c (alias_get_name): Use
23500 DECL_ASSEMBLER_NAME if available.
23501 (create_function_info_for): Return the varinfo node.
23502 (ipa_pta_execute): Associate same-body aliases and extra names
23503 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
23504
9c265c4d
KK
235052010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
23506
62e59133 23507 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
9c265c4d 23508
a5c011cd
MP
235092010-05-04 Mikael Pettersson <mikpe@it.uu.se>
23510
23511 PR bootstrap/43964
23512 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
23513 only if HONOR_REG_ALLOC_ORDER is not defined.
23514
622d360e
RG
235152010-05-04 Richard Guenther <rguenther@suse.de>
23516
23517 PR tree-optimization/43949
23518 * tree-vrp.c (extract_range_from_binary_expr): Only handle
23519 TRUNC_MOD_EXPR.
23520
cbb4feb3
JM
235212010-04-26 Jason Merrill <jason@redhat.com>
23522
23523 * c.opt (-fstrict-enums): New.
23524 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
23525
f4a4b582 235262010-05-03 David Ung <davidu@mips.com>
67e67979
DU
23527 James E. Wilson <wilson@codesourcery.com>
23528
e492f63b 23529 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
67e67979
DU
23530 emit the trap instruction before the divide for TUNE_74K.
23531
42db504c
SB
235322010-05-03 Steven Bosscher <steven@gcc.gnu.org>
23533
23534 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
23535 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
23536 based on the above, for new target hook.
23537
23538 * hooks.c (hook_bool_mode_true): New generic hook.
23539 * hooks.h (hook_bool_mode_true): Add prototype.
23540
23541 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
23542 target hook.
23543 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
23544 target hook, set to hook_bool_mode_false.
23545 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
23546 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
23547 with targetm.small_register_classes_for_mode_p.
23548 (find_reusable_reload): Likewise.
23549 (combine_reloads): Likewise.
23550 * reload1.c (reload_as_needed): Likewise.
23551 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
23552 * ifcvt.c (noce_process_if_block, check_cond_move_block,
23553 dead_or_predicable): Likewise.
23554 * regmove.c (optimize_reg_copy_1): Likewise.
23555 * calls.c (prepare_call_address): Likewise.
23556 (precompute_register_parameters): Likewise.
23557
23558 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
23559 hook definition.
23560 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
23561 implementation of the hook that considers all register classes
23562 small except for SH64.
23563 (sh_override_options): Use the new hook.
23564 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
23565 Add prototype.
23566
23567 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
23568 hook definition.
23569 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
23570 implementation of the hook that considers all register classes
23571 small for THUMB1.
23572 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
23573 Add prototype.
23574
23575 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
23576 hook definition.
23577 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
23578 implementation of the hook that considers all register classes
23579 small for MIPS16.
23580 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
23581 Add prototype.
23582
23583 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
23584 hook definition.
23585 * config/m32c/m32c.h: Likewise.
23586 * config/pdp11/pdp11.h: Likewise.
23587 * config/avr/avr.h: Likewise.
23588 * config/xtensa/xtensa.h: Likewise.
23589 * config/m68hc11/m68hc11.h: Likewise.
23590 * config/mn10300/mn10300.h: Likewise.
23591 * config/mcore/mcore.h: Likewise.
23592 * config/h8300/h8300.h: Likewise.
23593 * config/bfin/bfin.h: Likewise.
23594
23595 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
23596 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
23597
e6693cfa
AS
235982010-05-03 Anatoly Sokolov <aesok@post.ru>
23599
23600 * double-int.h (tree_to_double_int): Remove macro.
23601 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
23602 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
23603 (tree_to_double_int): New function.
23604 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
23605 Move ...
23606 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
23607
8eb7bc3c
RG
236082010-05-03 Richard Guenther <rguenther@suse.de>
23609
23610 PR tree-optimization/43971
23611 * tree-ssa-structalias.c (get_constraint_for_1): Fix
23612 constraints in the !flag_delete_null_pointer_checks case.
23613
c4e26da1
JJ
236142010-05-03 Jakub Jelinek <jakub@redhat.com>
23615
23616 PR debug/43972
23617 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
23618 result mode matches original rtl mode.
23619
2dfccd83
DK
236202010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
23621
2385a470 23622 PR target/43888
2dfccd83
DK
23623 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
23624
18fdef20
UB
236252010-05-02 Uros Bizjak <ubizjak@gmail.com>
23626
23627 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
23628 when processing flag options.
23629
7c393241
UB
236302010-05-02 Uros Bizjak <ubizjak@gmail.com>
23631
23632 * gcov-iov.c (main): Change format string placeholder
23633 from %#08x to 0x%08x.
23634 * genchecksum.c (dosum): Change format string placeholder
23635 from %#02x to 0x%02x.
23636
52c307ba
RG
236372010-05-02 Richard Guenther <rguenther@suse.de>
23638
23639 PR tree-optimization/43879
7c393241 23640 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
52c307ba 23641
4896c7b8
BH
236422010-05-02 Bruno Haible <bruno@clisp.org>
23643
23644 * doc/extend.texi (Function Attributes): Fix a typo.
23645
34a47f6f
UB
236462010-05-02 Uros Bizjak <ubizjak@gmail.com>
23647
23648 Revert:
23649 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
23650 placeholder from 0x%x to %#x.
23651 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
7c393241
UB
23652 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
23653 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
23654 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
23655 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
23656 * config/i386/i386.c (ix86_target_string): Ditto.
34a47f6f 23657 * config/i386/i386.c (output_pic_addr_const): Ditto.
7c393241 23658 (print_operand): Ditto.
34a47f6f 23659
35c59d9c
UB
236602010-05-02 Uros Bizjak <ubizjak@gmail.com>
23661
23662 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
23663 placeholder from 0x%x to %#x.
23664 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
23665 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
23666 (ASM_OUTPUT_DEBUG_DATA): Ditto.
23667 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
23668 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
23669 * optc-gen.awk: Ditto.
23670 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
23671 (HOST_WIDE_INT_PRINT_HEX): Ditto.
23672 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
23673 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
35c59d9c 23674
82f81f18
AS
236752010-05-01 Anatoly Sokolov <aesok@post.ru>
23676
23677 * target.h (struct calls): Add function_value_regno_p field.
23678 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
23679 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
23680 * targhooks.c (default_function_value_regno_p): New function.
23681 * targhooks.h (default_function_value_regno_p): Declare function.
23682 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
23683 * builtins.c. (apply_result_size): (Ditto.).
23684 * combine.c. (likely_spilled_retval_p): (Ditto.).
23685 * mode-switching.c. Include 'target.h'.
23686 (create_pre_exit): Use function_value_regno_p hook.
23687 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
23688 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
23689 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
23690
23691 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
23692 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
23693 (ix86_function_value_regno_p): Declare as static, change argument
23694 type to const unsigned int.
23695 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
23696
bab4d587
RG
236972010-05-01 Richard Guenther <rguenther@suse.de>
23698
23699 PR tree-optimization/43949
23700 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
23701 types.
23702 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
23703
3e93ff81
AS
237042010-05-01 Anatoly Sokolov <aesok@post.ru>
23705
23706 * rtl.h (CONST_DOUBLE_P): Define.
23707 (rtx_to_double_int): Declare.
23708 * emit-rtl.c (rtx_to_double_int): New function.
23709 * dwarf2out.c (insert_double): New function.
23710 (loc_descriptor, add_const_value_attribute): Clean up, use
23711 rtx_to_double_int and insert_double functions.
23712
bcbc9564
JW
237132010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
23714
23715 * doc/extend.texi (Inline): Add missing return keyword to examples.
23716 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
23717 "command-line".
23718
ce276b61
EB
237192010-04-30 Eric Botcazou <ebotcazou@adacore.com>
23720
23721 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
23722 the variable part of the offset as well. Use highest_pow2_factor for
23723 all alignment checks.
23724
82677400
RB
237252010-04-30 Richard Guenther <rguenther@suse.de>
23726
23727 PR tree-optimization/43879
23728 * tree-ssa-structalias.c (type_could_have_pointers): Functions
23729 can have pointers.
23730
cd71491e
JH
237312010-04-30 Jan Hubicka <jh@suse.cz>
23732
82677400
RB
23733 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
23734 varpool.
cd71491e
JH
23735 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
23736
ace72c88
JH
237372010-04-30 Jan Hubicka <jh@suse.cz>
23738
82677400
RB
23739 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
23740 New.
ace72c88
JH
23741 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
23742 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
23743 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
23744 cgraph_node_set_needs_ltrans_p): Remove.
23745
b6feb796
SB
237462010-04-30 Steven Bosscher <steven@gcc.gnu.org>
23747
23748 * sdbout.c: Include vec.h, do not include varray.h.
23749 (deferred_global_decls, sdbout_global_decl,
23750 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
23751 * toplev.c: Do not include varray.h.
23752 (dump_memory_report): Do not dump VARRAY statistics.
23753 * gengtype.c (open_base_file): Ignore varray.h.
23754 * Makefile.in: Update for abovementioned changes.
23755 Remove all traces of varray.c and varray.h.
23756 * varray.c: Remove file.
23757 * varray.h: Remove file.
23758
05575e07
JH
237592010-04-30 Jan Hubicka <jh@suse.cz>
23760
23761 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
23762 references.
23763
9c6e0798
JH
237642010-04-30 Jan Hubicka <jh@suse.cz>
23765
23766 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
23767 needed.
23768
47d8a903
RG
237692010-04-30 Richard Guenther <rguenther@suse.de>
23770
23771 * tree-ssa-structalias.c (get_constraint_for_1): Generate
23772 constraints for CONSTRUCTOR.
23773
b6050cb7
RG
237742010-04-30 Richard Guenther <rguenther@suse.de>
23775
23776 PR lto/43946
23777 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
23778 first after all lowering passes.
23779
9aae8d16
SB
237802010-04-30 Steven Bosscher <steven@gcc.gnu.org>
23781
23782 * toplev.c: Include varray.h for statistics dumping.
23783 * tree.h: Do not declare varray_head_tag.
23784 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
23785 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
23786 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
23787 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
23788 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
23789 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
23790 c-common.c, c-common.h, reg-stack.c, basic-block.h,
23791 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
23792 include varray.h.
23793 * Makefile.in: Update for abovementioned changes.
23794
a07ecd2b
JJ
237952010-04-30 Jakub Jelinek <jakub@redhat.com>
23796
23797 PR debug/43942
23798 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
23799
41700fc3
HS
238002010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
23801
23802 * config/picochip/picochip.c (picochip_legitimize_address): Define.
23803 Use this function to do machine-specific conversion.
23804 (picochip_legitimize_reload_address): Likewise.
23805 (picochip_legitimate_address_p): Check valid base register only if
23806 strict.
23807 (picochip_check_conditional_copy): Check for modw only if opnd is
23808 register.
23809 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
23810 to call the function in c.
23811 * config/picochip/picochip-protos.h
23812 (picochip_legitimize_reload_address): Define.
23813 * config/picochip/picochip.md (supported_compare1): Define.
23814
8b4765bf
JH
238152010-04-30 Jan Hubicka <jh@suse.cz>
23816
23817 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
23818 (cgraph_global_info): Remove inlined.
23819 (LTO_cgraph_tag_names): Remove.
23820 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
23821 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
23822 simplify cgraph tags and document.
23823 (lto_output_node): Use only LTO_cgraph_unavail_node and
23824 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
35c59d9c 23825 for_functions_valid, global info, process and output flags.
8b4765bf 23826 (input_overwrite_node): Initialize estimated stack size and
35c59d9c 23827 estimated growth. Do not read flags we no longer store.
8b4765bf
JH
23828 (input_node): Likewise do not read info no longer stored.
23829 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
23830 flag.
23831
4be68d9a
RG
238322010-04-30 Richard Guenther <rguenther@suse.de>
23833
23834 PR tree-optimization/43879
23835 * tree-ssa-structalias.c (get_constraint_for_1): Properly
23836 handle non-zero initializers.
23837
06468254
RG
238382010-04-30 Richard Guenther <rguenther@suse.de>
23839
23840 * builtins.c (fold_builtin_1): Delete free (0).
23841
8b4765bf 238422010-04-29 Jan Hubicka <jh@suse.cz>
49ba8180
JH
23843
23844 * gengtype.c (open_base_files): Add lto-streamer.h
23845 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
23846 (pass_ipa_cp): GGC collect.
23847 * toplev. (compile_file): Do not output symbols.
23848 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
23849 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
23850 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
23851 * lto-section-in.c: Include ggc.h
23852 (lto_new_in_decl_state): Alloc in GGC.
23853 (lto_delete_in_decl_state): Likewise.
35c59d9c
UB
23854 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
23855 Collect.
49ba8180 23856
5a733826
BS
238572010-04-29 Bernd Schmidt <bernds@codesourcery.com>
23858
23859 PR target/42895
23860 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
23861 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
23862 (HONOR_REG_ALLOC_ORDER): Describe new macro.
23863 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
23864 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
23865 account only if HONOR_REG_ALLOC_ORDER is not defined.
23866 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
23867 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
35c59d9c
UB
23868
238692010-04-29 Jon Grant <04@jguk.org>
23870
7c6d86cc
JG
23871 * collect2.c (vflag): Change type from int to bool.
23872 (debug): Likewise.
23873 (helpflag): New global bool.
35c59d9c
UB
23874 (main): Set vflag and debug with boolean, not integer truth values.
23875 Accept new "--help" option and output usage text if found.
7c6d86cc
JG
23876 * collect2.h (vflag): Update prototype.
23877 (debug): Likewise.
35c59d9c 23878
55040b34
L
238792010-04-29 H.J. Lu <hongjiu.lu@intel.com>
23880
716a3481 23881 PR bootstrap/43936
35c59d9c 23882 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
55040b34 23883
46e70c4e
RG
238842010-04-29 Richard Guenther <rguenther@suse.de>
23885
23886 PR bootstrap/43935
23887 * plugin.h (invoke_plugin_callbacks): Annotate arguments
23888 with ATTRIBUTE_UNUSED.
23889
0d0539f0
L
238902010-04-29 H.J. Lu <hongjiu.lu@intel.com>
23891
23892 PR target/43921
23893 * config/i386/i386.c (get_some_local_dynamic_name): Replace
23894 INSN_P with NONDEBUG_INSN_P.
23895 (distance_non_agu_define): Likewise.
23896 (distance_agu_use): Likewise.
23897
8e5f0b49
BS
238982010-04-29 Bernd Schmidt <bernds@codesourcery.com>
23899
f4a4b582 23900 From Dominique d'Humieres <dominiq@lps.ens.fr>
8e5f0b49
BS
23901 PR bootstrap/43858
23902 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
23903 test_set.
23904
35c59d9c 239052010-04-29 Brian Hackett <bhackett1024@gmail.com>
efda3807
BH
23906
23907 * plugin.h (invoke_plugin_callbacks): New inline function.
23908 * plugin.c (flag_plugin_added): New global flag.
23909 (add_new_plugin): Initialize above flag.
23910 (invoke_plugin_callbacks): Rename to ...
23911 (invoke_plugin_callbacks_full): ... this.
23912
2942c502
JH
239132010-04-28 Jan Hubicka <jh@suse.cz>
23914
23915 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
23916 (lto_varpool_replace_node): New.
23917 (lto_symtab_resolve_symbols): Resolve varpool nodes.
23918 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
23919 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
23920 * cgraph.h (varpool_node_ptr): New type.
23921 (varpool_node_ptr): New vector.
23922 (varpool_node_set_def): New structure.
23923 (varpool_node_set): New type.
23924 (varpool_node_set): New vector.
23925 (varpool_node_set_element_def): New structure.
23926 (varpool_node_set_element, const_varpool_node_set_element): New types.
23927 (varpool_node_set_iterator): New type.
23928 (varpool_node): Add prev pointers, add used_from_other_partition,
23929 in_other_partition.
23930 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
23931 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
23932 varpool_get_node, varpool_remove_node): Declare.
23933 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
23934 varpool_node_set_size): New inlines.
23935 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
23936 * tree-pass.h (varpool_node_set_def): Forward declare.
23937 (ipa_opt_pass_d): Summary writting takes vnode sets too.
23938 (ipa_write_optimization_summaries): Update prototype.
23939 * ipa-cp.c (ipcp_write_summary): Update.
23940 * ipa-reference.c (ipa_reference_write_summary): Update.
23941 * lto-cgraph.c (lto_output_varpool_node): New static function.
23942 (output_varpool): New function.
23943 (input_varpool_node): New static function.
23944 (input_varpool_1): New function.
23945 (input_cgraph): Input varpool.
23946 * ipa-pure-const.c (pure_const_write_summary): Update.
23947 * lto-streamer-out.c (lto_output): Update, output varpool too.
23948 (write_global_stream): Kill WPA hack.
23949 (produce_asm_for_decls): Update.
23950 (output_alias_pair_p): Handle variables.
23951 (output_unreferenced_globals): Output only needed partition of varpool.
23952 * ipa-inline.c (inline_write_summary): Update.
35c59d9c
UB
23953 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
23954 cgraph.
2942c502
JH
23955 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
23956 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
23957 varpool_node_set_new, varpool_node_set_add,
23958 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
23959 debug_varpool_node_set): New functions.
23960 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
23961 (execute_one_pass): Process new decls too.
23962 (ipa_write_summaries_2): Pass around vsets.
23963 (ipa_write_summaries_1): Likewise.
23964 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
23965 to add.
23966 (ipa_write_optimization_summaries_1): Pass around vsets.
23967 (ipa_write_optimization_summaries): Likewise.
23968 * varpool.c (varpool_get_node): New.
23969 (varpool_node): Update doubly linked lists.
23970 (varpool_remove_node): New.
23971 (dump_varpool_node): More dumping.
23972 (varpool_enqueue_needed_node): Update doubly linked lists.
23973 (decide_is_variable_needed): Kill ltrans hack.
23974 (varpool_finalize_decl): Kill lto hack.
23975 (varpool_assemble_decl): Skip decls in other partitions.
23976 (varpool_assemble_pending_decls): Update doubly linkes lists.
23977 (varpool_empty_needed_queue): Likewise.
23978 (varpool_extra_name_alias): Likewise.
23979 * lto-streamer.c (lto_get_section_name): Add vars section.
23980 * lto-streamer.h (lto_section_type): Update.
23981 (output_varpool, input_varpool): Declare.
23982
da7f2697
MS
239832010-04-28 Mike Stump <mikestump@comcast.net>
23984
74ca3393 23985 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
da7f2697 23986
91eace2b
EB
239872010-04-28 Eric Botcazou <ebotcazou@adacore.com>
23988
23989 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
23990 record or union type with RECORD_OR_UNION_TYPE_P predicate.
23991 (lto_input_ts_type_tree_pointers): Likewise.
23992 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
23993 (lto_output_ts_type_tree_pointers): Likewise.
23994
8478130d
EB
239952010-04-28 Eric Botcazou <ebotcazou@adacore.com>
23996
23997 Uniquization of constants at the Tree level
20225a9b 23998 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
8478130d
EB
23999 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
24000 bit to the end.
24001 (tree_output_constant_def): Declare.
20225a9b 24002 * gimplify.c (gimplify_init_constructor): When using block copy, first
8478130d 24003 uniquize the constant constructor on the RHS.
20225a9b
EB
24004 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
24005 DECL_IN_CONSTANT_POOL flag.
8478130d 24006 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
20225a9b
EB
24007 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
24008 constant pool.
8478130d
EB
24009 (assemble_variable): Deal with symbols belonging to the tree constant
24010 pool.
24011 (get_constant_section): Add ALIGN parameter and simplify.
24012 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
24013 (assemble_constant_contents): Use the expression of the VAR_DECL.
24014 (output_constant_def_contents): Use the alignment of the VAR_DECL.
24015 (tree_output_constant_def): New global function.
24016 (mark_constant): Use the expression of the VAR_DECL.
20225a9b
EB
24017 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
24018 its expression.
8478130d
EB
24019 (output_object_block): Likewise and assemble the expression.
24020
331c7fcd
EB
240212010-04-28 Eric Botcazou <ebotcazou@adacore.com>
24022
24023 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
24024 hash_tree, eq_tree): New tree hash table.
24025 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
24026 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
24027 lto_orig_address_remove): Reimplement.
24028
34f97b94
XDL
240292010-04-28 Xinliang David Li <davidxl@google.com>
24030
24031 PR c/42643
24032 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
24033 (compute_uninit_opnds_pos): New function.
24034 (is_non_loop_exit_postdominating): New function.
24035 (compute_control_dep_chain): New function.
24036 (find_pdom): New function.
24037 (convert_control_dep_chain_into_preds): New function.
24038 (find_predicates): New function.
24039 (find_control_equiv_block): New function.
24040 (collect_phi_def_edges): New function.
24041 (find_def_preds): New function.
24042 (find_dom): New function.
24043 (dump_predicates): New function.
24044 (get_cmp_code): New function.
24045 (is_value_included_in): New function.
24046 (find_matching_predicate_in_rest_chains): New function.
24047 (use_pred_not_overlap_with_undef_path_pred): New function.
24048 (is_use_properly_guarded): New function.
24049 (normalize_cond_1): New function.
24050 (is_and_or_or): New function.
24051 (normalize_cond): New function.
24052 (is_gcond_subset_of): New function.
24053 (is_subset_of_any): New function.
24054 (is_or_set_subset_of): New function.
24055 (is_and_set_subset_of): New function.
24056 (is_norm_cond_subset_of): New function.
24057 (is_pred_expr_subset_of): New function.
24058 (is_pred_chain_subset_of): New function.
24059 (is_included_in): New function.
24060 (is_superset_of): New function.
24061 (find_uninit_use): New function.
24062 (warn_uninitialized_phi): New function.
24063 (compute_possibly_undefined_names): New function.
24064 (ssa_undefined_value_p): New function.
24065 (execute_late_warn_uninitialized): New function.
24066 * tree-ssa.c (ssa_undefined_value_p): Removed.
24067 (warn_uninit): Changed to extern.
24068 (warn_uninitialized_phi): Removed.
24069 (warn_uninitialized_vars): Changed to extern.
24070 (execute_late_warn_uninitialized): Removed
24071 * tree-flow.h: Add new prototypes.
24072 * timevar.def: Add new time variable.
24073 * Makefile.in: Add new build file.
24074
85fac79c
UB
240752010-04-28 Uros Bizjak <ubizjak@gmail.com>
24076
24077 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
24078 type if available.
24079
902a51a1
RO
240802010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24081
24082 PR target/22224
24083 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
24084
e33c6cd6
MJ
240852010-04-28 Martin Jambor <mjambor@suse.cz>
24086
24087 * cgraph.h (struct cgraph_node): New field indirect_calls.
24088 (struct cgraph_indirect_call_info): New type.
24089 (struct cgraph_edge): Removed field indirect_call. New fields
24090 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
24091 (cgraph_create_indirect_edge): Declare.
24092 (cgraph_make_edge_direct): Likewise.
24093 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
24094 * ipa-prop.h (struct ipa_param_call_note): Removed.
24095 (struct ipa_node_params): Removed field param_calls.
24096 (ipa_create_all_structures_for_iinln): Declare.
24097 * cgraph.c: Described indirect edges and uids in initial comment.
24098 (cgraph_add_edge_to_call_site_hash): New function.
24099 (cgraph_edge): Search also among the indirect edges, use
24100 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
24101 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
24102 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
24103 site hash.
24104 (initialize_inline_failed): Assign a reason to indirect edges.
24105 (cgraph_create_edge_1): New function.
24106 (cgraph_create_edge): Moved some functionality to
24107 cgraph_create_edge_1.
24108 (cgraph_create_indirect_edge): New function.
24109 (cgraph_edge_remove_callee): Add an assert checking for
24110 non-indirectness.
24111 (cgraph_edge_remove_caller): Special-case indirect edges.
24112 (cgraph_remove_edge): Likewise.
24113 (cgraph_set_edge_callee): New function.
24114 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
24115 (cgraph_make_edge_direct): New function.
24116 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
24117 the declaration of the call statement matches.
24118 (cgraph_node_remove_callees): Special-case indirect edges.
24119 (cgraph_clone_edge): Likewise.
24120 (cgraph_clone_node): Clone also the indirect edges.
24121 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
24122 indirect_call, dump count of indirect_calls edges.
24123 * ipa-prop.c (iinlining_processed_edges): New variable.
24124 (ipa_note_param_call): Create indirect edges instead of
24125 creating notes. New parameter node.
24126 (ipa_analyze_call_uses): New parameter node, pass it on to
24127 ipa_note_param_call.
24128 (ipa_analyze_stmt_uses): Likewise.
24129 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
24130 (print_edge_addition_message): Work on edges rather than on notes.
24131 (update_call_notes_after_inlining): Likewise, renamed to
24132 update_indirect_edges_after_inlining.
24133 (ipa_create_all_structures_for_iinln): New function.
24134 (ipa_free_node_params_substructures): Do not free notes.
24135 (ipa_edge_duplication_hook): Propagate bits within
24136 iinlining_processed_edges bitmap.
24137 (ipa_node_duplication_hook): Do not duplicate notes.
24138 (free_all_ipa_structures_after_ipa_cp): Renamed to
24139 ipa_free_all_structures_after_ipa_cp.
24140 (free_all_ipa_structures_after_iinln): Renamed to
62e59133 24141 ipa_free_all_structures_after_iinln.
e33c6cd6
MJ
24142 (ipa_write_param_call_note): Removed.
24143 (ipa_read_param_call_note): Removed.
24144 (ipa_write_indirect_edge_info): New function.
24145 (ipa_read_indirect_edge_info): Likewise.
24146 (ipa_write_node_info): Do not stream notes, do stream information
24147 in indirect edges.
24148 (ipa_read_node_info): Likewise.
24149 (lto_ipa_fixup_call_notes): Removed.
24150 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
24151 * ipa-inline.c (pass_ipa_inline): Likewise.
24152 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
24153 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
24154 * tree-inline.c (copy_bb): Removed an unnecessary double check for
24155 is_gimple_call.
24156 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
24157 edges.
24158 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
24159 (output_cgraph): Stream also indirect edges.
24160 (lto_output_edge): Added capability to stream indirect edges.
24161 (input_edge): Likewise.
24162 (input_cgraph_1): Likewise.
f3d1b157
MJ
24163 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
24164 of indirect edges.
e33c6cd6 24165
18abb35e
RG
241662010-04-28 Richard Guenther <rguenther@suse.de>
24167
24168 PR tree-optimization/43879
24169 PR tree-optimization/43909
24170 * tree-ssa-structalias.c (struct variable_info): Add
24171 only_restrict_pointers flag.
24172 (new_var_info): Initialize it. Increment stats.total_vars here.
62e59133 24173 (create_function_info_for): Do not increment stats.total_vars here.
18abb35e
RG
24174 (get_function_part_constraint): Fix build with C++.
24175 (insert_into_field_list): Remove.
24176 (push_fields_onto_fieldstack): Properly merge fields.
24177 (create_variable_info_for): Split and simplify.
24178 (create_variable_info_for_1): New piece.
24179 (intra_create_variable_infos): Properly make restrict constraints
24180 from parameters.
24181
c718820a
RG
241822010-04-28 Richard Guenther <rguenther@suse.de>
24183
24184 PR c++/43880
35c59d9c 24185 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
c718820a 24186
5dc16b19 241872010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
f4a4b582 24188 Jan Hubicka <hubicka@ucw.cz>
5dc16b19
MLI
24189
24190 * doc/invoke.texi (-Wsuggest-attribute=const,
24191 -Wsuggest-attribute=pure): Document.
24192 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
24193 (function_always_visible_to_compiler_p,
24194 suggest_attribute, warn_function_pure, warn_function_const):
24195 New functions.
24196 (check_call): Improve debug info.
24197 (analyze_function): Do not check availability.
24198 (add_new_function): Check availability.
24199 (propagate): Output warnings.
24200 (skip_function_for_local_pure_const): New function.
24201 (local_pure_const): Use it; output warnings.
24202 * common.opt (Wsuggest-attribute=const,
24203 Wsuggest-attribute=pure): New.
24204
78b41ae2
JJ
242052010-04-27 Jakub Jelinek <jakub@redhat.com>
24206
24207 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
24208 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
24209 or DW_CFA_def_cfa_offset{,_sf}.
24210
62107106
EB
242112010-04-27 Eric Botcazou <ebotcazou@adacore.com>
24212
24213 * tree.h: Fix truncated long macros.
24214
ad211091
KT
242152010-04-27 Kai Tietz <kai.tietz@onevision.com>
24216
24217 * collect2.c (TARGET_64BIT): Redefine to target's default.
24218 * tlink.c: Likewise.
24219 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
24220 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
24221 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
24222 for underscoring __USER_LABEL_PREFIX__.
24223 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
24224 (SUB_LINK_ENTRY32): New.
24225 (SUB_LINK_ENTRY64): New.
85fac79c 24226 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
ad211091
KT
24227 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
24228 (SUB_LINK_ENTRY64): New.
24229 (SUB_LINK_ENTRY): New.
24230 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
24231 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
24232 x64 target is choosen.
24233 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
24234 * configure: Regenerated.
24235 * configure.ac (leading-mingw64-underscores): Option added.
24236
e65bb9be
JH
242372010-04-27 Jan Hubicka <jh@suse.cz>
24238
24239 * doc/invoke.texi (-fipa-profile): Document.
24240 * opts.c (decode_options): Enable ipa-profile at -O1.
24241 * timevar.def (TV_IPA_PROFILE): Define.
24242 * common.opt (fipa-profile): Add.
62107106
EB
24243 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
24244 flag for clones.
e65bb9be
JH
24245 (cgraph_propagate_frequency): Handle only local ones.
24246 * tree-pass.h (pass_ipa_profile): Declare.
24247 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
24248 (pass_ipa_profile): Use TV_IPA_PROFILE.
24249 * ipa.c (ipa_profile): New function.
24250 (gate_ipa_profile): Likewise.
24251 (pass_ipa_profile): New global variable.
24252 * passes.c (pass_ipa_profile): New.
24253
8606c81d
NF
242542010-04-27 Nathan Froyd <froydnj@codesourcery.com>
24255
24256 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
24257
78eaf7bf
MJ
242582010-04-27 Martin Jambor <mjambor@suse.cz>
24259
24260 PR middle-end/43812
24261 * ipa.c (dissolve_same_comdat_group_list): New function.
24262 (function_and_variable_visibility): Call
24263 dissolve_same_comdat_group_list when comdat group contains external or
24264 newly local nodes.
24265 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
24266 lists are circular and that they contain only DECL_ONE_ONLY nodes.
24267
5b56d3bb
EB
242682010-04-27 Eric Botcazou <ebotcazou@adacore.com>
24269
24270 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
24271 (const_hash_1) <VECTOR_CST>: New case.
24272 (compare_constant) <VECTOR_CST>: Likewise.
24273 <ADDR_EXPR>: Deal with LABEL_REFs.
24274 (copy_constant) <VECTOR_CST>: New case.
24275
fa5f5e27
JH
242762010-04-27 Jan Hubicka <jh@suse.cz>
24277
24278 * cgraph.c (cgraph_propagate_frequency): New function.
24279 * cgraph.h (cgraph_propagate_frequency): Declare.
24280 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
24281 cgraph_propagate_frequency.
24282
934f5b42
JJ
242832010-04-27 Jakub Jelinek <jakub@redhat.com>
24284
24285 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
24286
cb751cbd
BS
242872010-04-27 Bernd Schmidt <bernds@codesourcery.com>
24288
24289 PR target/40657
24290 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
24291 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
24292 here to determine which regs to push and how much stack to reserve.
24293
a5027830
JZ
242942010-04-27 Jie Zhang <jie@codesourcery.com>
24295
24296 * doc/gimple.texi (gimple_statement_with_ops): Remove
24297 addresses_taken field.
24298 (gimple_statement_with_memory_ops): Likewise.
24299
d89488ec
JH
243002010-04-27 Jan Hubicka <jh@suse.cz>
24301
24302 * tree-inline.c (eni_inlining_weights): Remove.
24303 (estimate_num_insns): Special case more builtins.
24304
637f1455 243052010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
85fac79c 24306
637f1455
SZ
24307 PR c/32207
24308 * c-typeck.c (build_binary_op): Move forward check for comparison
24309 pointer with null pointer constant and adjust the diagnostic message.
24310
f0423078
DK
243112010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
24312
24313 PR lto/42776
24314 * configure.ac (gcc_cv_as_section_has_align): Set if installed
24315 binutils supports extended .section directive needed by LTO, or
24316 warn if older binutils found.
24317 (LTO_BINARY_READER): New AC_SUBST'd variable.
24318 (LTO_USE_LIBELF): Likewise.
eed023cc 24319 * config.gcc (lto_binary_reader): New target-specific configure
f0423078 24320 variable.
eed023cc 24321 * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
f0423078
DK
24322 (LTO_USE_LIBELF): Likewise.
24323 * configure: Regenerate.
24324
24325 * collect2.c (is_elf): Rename from this ...
24326 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
24327 object files in addition to ELF-formatted ones.
24328 (scan_prog_file): Caller updated. Also allow for LTO info marker
24329 symbol to be prefixed or not by an extra underscore.
24330
24331 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
24332 * config/i386/winnt.c: Also #include lto-streamer.h
24333 (i386_pe_asm_named_section): Specify 1-byte section alignment for
24334 LTO named sections.
24335 (i386_pe_asm_output_aligned_decl_common): Add comment.
24336 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
24337
68e87fc9
HPN
243382010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
24339
45c384e3 24340 PR target/43889
68e87fc9
HPN
24341 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
24342 Add missing earlyclobber for second alternative.
24343
823ff7b4
BS
243442010-04-26 Bernd Schmidt <bernds@codesourcery.com>
24345
24346 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
24347 bits for artificial defs at the top of the block.
24348 * fwprop.c (single_def_use_enter_block): Don't call it.
24349
f4a4b582 243502010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
9ec69d2e
JH
24351
24352 PR 43715
eed023cc 24353 * configure.ac: Use "$gcc_cv_nm -g" on darwin
9ec69d2e
JH
24354 instead of "$gcc_cv_objdump -T".
24355 Use "-undefined dynamic_lookup" on darwin.
eed023cc 24356 * configure: Regenerate.
9ec69d2e 24357
b83a701b
JJ
243582010-04-26 Jakub Jelinek <jakub@redhat.com>
24359
24360 PR c/43893
24361 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
24362
8415f317
NF
243632010-04-26 Nathan Froyd <froydnj@codesourcery.com>
24364
24365 * c-parser.c (struct c_token): Move location field up.
24366 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
24367 (struct c_declspecs): Convert typespec_word, storage_class, and
24368 default_int_p into bitfields.
24369 (struct c_declarator): Move loc field up.
24370
448f65db
NF
243712010-04-26 Nathan Froyd <froydnj@codesourcery.com>
24372
24373 * cfgloop.h (struct loop): Move can_be_parallel field up.
24374 * ipa-prop.h (struct ip_node_params): Move bitfields up.
24375 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
24376 down.
24377 (struct iv_cand): Convert pos field into a bitfield.
24378 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
24379 field up.
24380 (struct _stmt_vec_info): Shuffle fields for better packing.
24381
736865e1
EB
243822010-04-26 Eric Botcazou <ebotcazou@adacore.com>
24383
24384 * varasm.c (IN_NAMED_SECTION): Remove guard.
24385 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
24386 (IN_NAMED_SECTION_P): ...this.
24387 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
24388 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
24389
06ec59e6
EB
243902010-04-26 Eric Botcazou <ebotcazou@adacore.com>
24391
24392 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
24393 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
24394 of shadowing it. Fix comments.
24395
5fefcf92
JH
243962010-04-26 Jan Hubicka <jh@suse.cz>
24397
24398 * cgraph.c (cgraph_create_node): Set node frequency to normal.
24399 (cgraph_clone_node): Copy function frequency.
24400 * cgraph.h (node_frequency): New enum
24401 (struct cgraph_node): Add.
24402 * final.c (rest_of_clean_state): Update.
24403 * lto-cgraph.c (lto_output_node): Output node frequency.
24404 (input_overwrite_node): Input node frequency.
24405 * tre-ssa-loop-ivopts (computation_cost): Update.
06ec59e6
EB
24406 * lto-streamer-out.c (output_function): Do not output function
24407 frequency.
24408 * predict.c (maybe_hot_frequency_p): Update and handle functions
24409 executed once.
5fefcf92
JH
24410 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
24411 attribute lookup.
24412 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
06ec59e6
EB
24413 (compute_function_frequency): Set noreturn functions to be executed
24414 once.
5fefcf92
JH
24415 (choose_function_section): Update.
24416 * lto-streamer-in.c (input_function): Do not input function frequency.
06ec59e6
EB
24417 * function.c (allocate_struct_function): Do not initialize function
24418 frequency.
5fefcf92
JH
24419 * function.h (function_frequency): Remove.
24420 (struct function): Remove function frequency.
24421 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
24422 (try_update): Update.
24423 * tree-inline.c (initialize_cfun): Do not update function frequency.
24424 * passes.c (pass_init_dump_file): Update.
24425 * i386.c (ix86_compute_frame_layout): Update.
24426 (ix86_pad_returns): Update.
24427
330af32c
JZ
244282010-04-26 Jie Zhang <jie@codesourcery.com>
24429
24430 PR tree-optimization/43833
24431 * tree-vrp.c (range_int_cst_p): New.
24432 (range_int_cst_singleton_p): New.
24433 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
24434 when both operands are constants. Use range_int_cst_p in
24435 BIT_IOR_EXPR case.
24436
ae2b0888
JH
244372010-04-26 Jan Hubicka <jh@suse.cz>
24438
24439 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
24440
98b2dfbb
RG
244412010-04-26 Richard Guenther <rguenther@suse.de>
24442
24443 PR lto/43080
24444 * gimple.c (gimple_decl_printable_name): Deal gracefully
24445 with a NULL DECL_NAME.
24446
1ae3075b
RG
244472010-04-26 Richard Guenther <rguenther@suse.de>
24448
24449 PR lto/42425
24450 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
24451 if emitting debug information and it is either a function
24452 or a namespace decl.
24453
4b5caab7
IR
244542010-04-26 Ira Rosen <irar@il.ibm.com>
24455
85fac79c
UB
24456 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
24457 determine if the statement is vectorizable, and a macro to access it.
24458 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
24459 Skip statements that can't be vectorized. If the analysis fails,
24460 mark the statement as unvectorizable if vectorizing basic block.
4b5caab7 24461 (vect_compute_data_refs_alignment): Likewise.
85fac79c 24462 (vect_verify_datarefs_alignment): Skip statements marked as
4b5caab7 24463 unvectorizable. Add print.
85fac79c
UB
24464 (vect_analyze_group_access): Skip statements that can't be
24465 vectorized. If the analysis fails, mark the statement as
4b5caab7 24466 unvectorizable if vectorizing basic block.
85fac79c
UB
24467 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
24468 * tree-vect-stmts.c (vectorizable_store): Fix the number of
4b5caab7
IR
24469 generated stmts for SLP.
24470 (new_stmt_vec_info): Initialize the new field.
85fac79c 24471 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4b5caab7
IR
24472 statements marked as unvectorizable.
24473
2778d766
JM
244742010-04-25 Joseph Myers <joseph@codesourcery.com>
24475
24476 * c-common.c (flag_isoc1x): New.
24477 (flag_isoc99): Update comment.
24478 * c-common.h (flag_isoc1x): New.
24479 (flag_isoc99): Update comment.
24480 * c-cppbuiltin.c (builtin_define_float_constants): Also define
24481 __<type>_DECIMAL_DIG__.
24482 * c-opts.c (set_std_c1x): New.
24483 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
24484 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
24485 * c.opt (-std=c1x, -std=gnu1x): New options.
24486 * doc/cpp.texi: Mention -std=c1x.
24487 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
24488 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
24489 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
24490 * doc/standards.texi: Mention C1X.
24491 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
24492 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
24493 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
24494 Define for C1X.
24495
3d416346
UB
244962010-04-25 Uros Bizjak <ubizjak@gmail.com>
24497
24498 * config/i386/gmon-sol2.c (_mcleanup): Change format string
24499 placeholder from 0x%x to %#x.
24500 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
24501 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
24502 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
24503 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
24504 * config/i386/i386.c (ix86_target_string): Ditto.
24505 (output_pic_addr_const): Ditto.
24506 (print_operand): Ditto.
24507
910ed7dc
PB
245082010-04-25 Paolo Bonzini <bonzini@gnu.org>
24509
24510 * combine.c (find_split_point): Add third argument. Use it
24511 to find nested multiply-accumulate instructions. Adjust calls.
24512 (try_combine): Adjust call to find_split_point.
24513
423b2799
GP
245142010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
24515
24516 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
24517
27d0d96a
BS
245182010-04-24 Bernd Schmidt <bernds@codesourcery.com>
24519
24520 PR tree-optimization/41442
24521 * fold-const.c (merge_truthop_with_opposite_arm): New function.
24522 (fold_binary_loc): Call it.
24523
c7d0de89
MLI
245242010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
24525
3d416346 24526 * toplev.c (general_init): Set default for fdiagnostics-show-option.
c7d0de89 24527 * opts.c (common_handle_option): Allow disabling it.
3d416346
UB
24528 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
24529
915f5921
EB
245302010-04-23 Eric Botcazou <ebotcazou@adacore.com>
24531
24532 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
24533 between modes if both types are integral.
24534
4e708ff7
RG
245352010-04-23 Richard Guenther <rguenther@suse.de>
24536
24537 PR tree-optimization/43572
24538 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
24539
8fd8a06f
RG
245402010-04-23 Richard Guenther <rguenther@suse.de>
24541
24542 PR lto/43455
24543 * tree-inline.c (tree_can_inline_p): Also check compatibility
24544 of return types.
24545
77620011
MJ
245462010-04-23 Martin Jambor <mjambor@suse.cz>
24547
24548 PR tree-optimization/43846
24549 * tree-sra.c (struct access): New flag grp_assignment_read.
24550 (build_accesses_from_assign): Set grp_assignment_read.
24551 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
24552 (enum mark_read_status): New type.
24553 (analyze_access_subtree): Propagate grp_assignment_read, create
24554 accesses also if both direct_read and root->grp_assignment_read.
24555
5c20baf1
MJ
245562010-04-23 Martin Jambor <mjambor@suse.cz>
24557
24558 PR middle-end/43835
24559 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
24560 function does not have type attributes.
24561
c67f69a3
RG
245622010-04-23 Richard Guenther <rguenther@suse.de>
24563
24564 PR lto/42653
24565 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
24566 of FUNCTION_DECLs.
24567
086058c2
LB
245682010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
24569
24570 * sese.h (create_if_region_on_edge): Remove.
24571
24572 * sese.c (create_if_region_on_edge): Make static.
24573
24574 * tree-inline.c: Do not include ggc.h.
24575
24576 * expr.c: Do not include ggc.h.
24577
24578 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
24579 dependencies.
24580
fc9c984d
KK
245812010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
24582
24583 PR target/43744
24584 * config/sh/sh.c (find_barrier): Don't emit a constant pool
24585 in the middle of insns for casesi_worker_2.
24586
cf42f095
DE
245872010-04-22 David Edelsohn <edelsohn@gnu.org>
24588
24589 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
24590
245912010-04-22 Ira Rosen <irar@il.ibm.com>
74500b3e 24592
5bdd895c 24593 PR tree-optimization/43842
d5dceab8 24594 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
74500b3e
IR
24595 loop unrolling in update of exit phis. Fix comment.
24596 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
d5dceab8 24597 least two reduction statements in the loop before starting SLP
74500b3e
IR
24598 analysis.
24599
d5f4a527
NC
246002010-04-22 Nick Clifton <nickc@redhat.com>
24601
24602 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
24603
44741f03
AM
246042010-04-22 Alexander Monakov <amonakov@ispras.ru>
24605
24606 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
24607 to simplify a + ~a.
24608
f873b205
LB
246092010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
24610
24611 * tree-parloops.c (loop_parallel_p): New argument
24612 parloop_obstack. Pass it down.
24613 (parallelize_loops): New variable parloop_obstack. Initialize it,
24614 pass it down, free it.
24615
24616 * tree-loop-linear.c (linear_transform_loops): Pass down
24617 lambda_obstack.
24618
24619 * tree-data-ref.h (lambda_compute_access_matrices): New argument
24620 of type struct obstack *.
24621
24622 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
24623 scratch_obstack. Initialize it, pass down, free it.
24624
24625 * lambda.h (lambda_loop_new): Remove.
24626 (lambda_matrix_new, lambda_matrix_inverse)
24627 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
24628 argument of type struct obstack *.
24629
24630 * lambda-trans.c (lambda_trans_matrix_new): New argument
24631 lambda_obstack. Pass it down, use obstack allocation for ret.
24632 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
24633 it down.
24634
24635 * lambda-mat.c (lambda_matrix_get_column)
24636 (lambda_matrix_project_to_null): Remove.
24637 (lambda_matrix_new): New argument lambda_obstack. Use obstack
24638 allocation for mat.
24639 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
24640 lambda_obstack.
24641
24642 * lambda-code.c (lambda_loop_new): New function.
24643 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
24644 (lambda_compute_auxillary_space, lambda_compute_target_space)
24645 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
24646 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
24647 (build_access_matrix): New argument lambda_obstack. Use obstack
24648 allocation for am.
24649 (lambda_compute_step_signs, lambda_compute_access_matrices): New
24650 argument lambda_obstack. Pass it down.
24651
b99279f3
BS
246522010-04-22 Bernd Schmidt <bernds@codesourcery.com>
24653
24654 * optabs.h (expand_widening_mult): Declare.
24655
b3be2694
RG
246562010-04-22 Richard Guenther <rguenther@suse.de>
24657
24658 PR tree-optimization/43845
24659 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
24660 lookup the CALL_EXPR function and arguments.
24661
038eab67
NC
246622010-04-22 Nick Clifton <nickc@redhat.com>
24663
24664 * config/stormy16/stormy16.c
d5dceab8 24665 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
038eab67
NC
24666 * config/stormy16/stormy16.h: Tidy up formatting.
24667 (DONT_USE_BUILTIN_SETJMP): Remove definition.
24668 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
24669 (ineqbranchsi): Delete pattern.
24670 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
24671 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
24672 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
24673 stormy16-lib2-ucmpsi2.c.
24674
907deb1a
BS
246752010-04-22 Bernd Schmidt <bernds@codesourcery.com>
24676
24677 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
24678 df_simulate_find_noclobber_defs as appropriate. Keep track of an
24679 extra set merge_set_noclobber, and use it to relax the final test
24680 slightly.
24681 * df.h (df_simulate_find_noclobber_defs): Declare.
24682 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
24683 conditional defs.
24684 (df_simulate_find_noclobber_defs): New function.
24685
6a0447ba
UB
246862010-04-22 Uros Bizjak <ubizjak@gmail.com>
24687
24688 * config/i386/i386.md: Use {} around multi-line preparation statements.
24689
a1e3b3d9
LB
246902010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
24691
24692 * c-tree.h (push_init_level, pop_init_level, set_init_index)
24693 (process_init_element): New argument of type struct obstack *.
24694
24695 * c-typeck.c (push_init_level, pop_init_level, set_designator)
24696 (set_init_index, set_init_label, set_nonincremental_init)
24697 (set_nonincremental_init_from_string, find_init_member)
24698 (output_init_element, output_pending_init_elements)
24699 (process_init_element): New argument braced_init_obstack. Pass it
24700 down.
24701 (push_range_stack, add_pending_init): New argument
24702 braced_init_obstack. Use obstack allocation.
24703
24704 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
24705 braced_init_obstack. Pass it down.
24706 (c_parser_braced_init): New variables ret, braced_init_obstack.
24707 Initialize obstack, pass it down and finally free it.
24708
5b58b39b
BS
247092010-04-22 Bernd Schmidt <bernds@codesourcery.com>
24710
24711 PR middle-end/29274
5b58b39b
BS
24712 * tree-pass.h (pass_optimize_widening_mul): Declare.
24713 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
24714 gate_optimize_widening_mul): New static functions.
24715 (pass_optimize_widening_mul): New.
3d416346 24716 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
5b58b39b
BS
24717 <case MULT_EXPR>: Remove support for widening multiplies.
24718 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
24719 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
24720 simplify_gen_unary rather than directly building extensions.
24721 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
24722 WIDEN_MULT_EXPR.
24723 * expmed.c (expand_widening_mult): New function.
24724 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
24725
bc58d7e1
JH
247262010-04-21 Jan Hubicka <jh@suse.cz>
24727
24728 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
24729 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
24730 * lto-wpa-fixup.c: Remove.
24731 * Makefile.in (lto-wpa-fixup.o): Remove.
24732 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
24733 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
24734 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
24735
e792884f
JH
247362010-04-21 Jan Hubicka <jh@suse.cz>
24737
24738 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
24739 add write_optimization_summary, read_optimization_summary.
24740 (ipa_write_summaries_of_cgraph_node_set): Remove.
24741 (ipa_write_optimization_summaries): Declare.
24742 (ipa_read_optimization_summaries): Declare.
24743 * ipa-cp.c (pass_ipa_cp): Update.
24744 * ipa-reference.c (pass_ipa_reference): Update.
24745 * ipa-pure-const.c (pass_ipa_pure_const): Update.
24746 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
24747 Update.
24748 * ipa-inline.c (pass_ipa_inline): Update.
24749 * ipa.c (pass_ipa_whole_program): Update.
24750 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
24751 * passes.c (ipa_write_summaries_1): Do not test wpa.
24752 (ipa_write_optimization_summaries_1): New.
24753 (ipa_write_optimization_summaries): New.
24754 (ipa_read_summaries): Do not test ltrans.
24755 (ipa_read_optimization_summaries_1): New.
24756 (ipa_read_optimization_summaries): New.
24757
ecd03d10
JH
247582010-04-21 Jan Hubicka <jh@suse.cz>
24759
24760 * lto-cgraph.c (lto_output_node): Do not output comdat groups
24761 for boundary nodes.
24762 (output_cgraph): Do not arrange comdat groups for boundary nodes.
24763
71a810c3
JJ
247642010-04-21 Jakub Jelinek <jakub@redhat.com>
24765
24766 PR debug/40040
24767 * dwarf2out.c (add_name_and_src_coords_attributes): Add
24768 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
24769
dd6d1ad7
JH
247702010-04-21 Jan Hubicka <jh@suse.cz>
24771
24772 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
24773
c9945504
JH
247742010-04-21 Jan Hubicka <jh@suse.cz>
24775
24776 * varpool.c (decide_is_variable_needed): Variable is always needed
24777 during ltrans.
24778
e7cfce71
JH
247792010-04-21 Jan Hubicka <jh@suse.cz>
24780
24781 * opts.c (decode_options): Enable pure-const pass for whopr.
24782
0115e6c7
JH
247832010-04-21 Jan Hubicka <jh@suse.cz>
24784
24785 * cgraph.c (dump_cgraph_node): Dump also assembler name.
24786 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
24787 at WPA dumping.
24788 (cgraph_decide_inlining): Do not expect callee to be removed in all
24789 cases.
24790
96c2a0d6
EW
247912010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
24792
24793 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
24794
656ef6bb
UB
247952010-04-21 Uros Bizjak <ubizjak@gmail.com>
24796
24797 * config/i386/i386.md (x86_shrd): Add athlon_decode and
24798 amdfam10_decode attributes.
24799
78db7d92
JJ
248002010-04-21 Jakub Jelinek <jakub@redhat.com>
24801
24802 PR middle-end/43570
24803 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
24804 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
24805 (lower_copyprivate_clauses): Use private var in outer
24806 context instead of original var. Make sure the types
24807 are correct for VLAs.
24808
11152c95
RG
248092010-04-21 Richard Guenther <rguenther@suse.de>
24810
24811 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
24812 to non-pointer objects.
24813
8f65940d
JJ
248142010-04-21 Jakub Jelinek <jakub@redhat.com>
24815
0f2f44c0
JJ
24816 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
24817 last chain entry if it starts with the still current label.
24818 (add_location_or_const_value_attribute): Check that
6a0447ba 24819 loc_list->first->next is NULL instead of comparing ->first with ->last.
0f2f44c0
JJ
24820 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
24821 to add_var_loc_to_decl.
24822
8f65940d 24823 * dwarf2out.c (output_call_frame_info): For dw_cie_version
6a0447ba 24824 >= 4 add also address size and segment size fields into CIE header.
8f65940d
JJ
24825
24826 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
24827 long as address size is the same as sizeof (void *) and
24828 segment size is 0.
24829 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
24830 address size or segment size is unexpected, return DW_EH_PE_omit.
24831 (classify_object_over_fdes): If get_cie_encoding returned
24832 DW_EH_PE_omit, return -1.
24833 (init_object): If classify_object_over_fdes returned -1,
24834 pretend there were no FDEs at all.
24835
2d2d5a91
UB
248362010-04-21 Uros Bizjak <ubizjak@gmail.com>
24837
24838 * config/i386/i386.md (bswap<mode>2): Macroize expander from
24839 bswap{si,di}2 using SWI48 mode iterator.
24840 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
24841 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
24842 set modrm attribute of bswap insn to 0 and remove length attribute.
24843 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
24844 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
24845 set mode attribute to <MODE> and remove length attribute.
24846
4811db8d
JW
248472010-04-20 James E. Wilson <wilson@codesourcery.com>
24848
24849 PR rtl-optimization/43520
24850 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
24851 zero available registers.
24852
3c642f92
KG
248532010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24854
24855 * builtins.c (fold_builtin_cproj): Fold more cases.
24856
43272bf5
KG
248572010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24858
24859 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
24860 (fold_builtin_1): Fold builtin cproj.
24861 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
24862 Use ATTR_CONST_NOTHROW_LIST.
24863
e96ccb30
UB
248642010-04-20 Uros Bizjak <ubizjak@gmail.com>
24865
24866 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
24867 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
24868 ffsi2_no_cmove for !TARGET_CMOVE.
24869 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
24870 (ffssi2): Remove expander.
24871 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
24872 mode iterator.
24873 (ctz<mode>2): Ditto from ctz{si,di}2.
24874 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
24875 mode iterator.
24876 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
24877 mode iterator.
24878
4c0ab69d
JJ
248792010-04-20 Jakub Jelinek <jakub@redhat.com>
24880
24881 * dwarf2out.c (AT_linkage_name): Define.
24882 (clone_as_declaration): Handle DW_AT_linkage_name.
24883 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
24884 of DW_AT_MIPS_linkage_name.
24885 (move_linkage_attr): Likewise.
24886 (dwarf2out_finish): Likewise.
24887
94e85e0a
XDL
248882010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
24889
24890 PR middle-end/41952
e96ccb30 24891 * fold-const.c (fold_comparison): New folding rule.
94e85e0a 24892
4c0ab69d 248932010-04-20 Anatoly Sokolov <aesok@post.ru>
54fb1ae0
AS
24894
24895 * double-int.h (double_int_setbit): Declare.
24896 * double-int.c (double_int_setbit): New function.
24897 * rtl.h (immed_double_int_const): Declare.
24898 * emit-rtl.c (immed_double_int_const): New function.
24899 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
24900 and immed_double_int_const functions.
24901 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
a691bb08 24902 expand_copysign_bit): (Ditto.).
54fb1ae0
AS
24903 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
24904 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
24905 * dojump.c (prefer_and_bit_test): (Ditto.).
24906 * expr.c (convert_modes, reduce_to_bit_field_precision,
24907 const_vector_from_tree): (Ditto.).
24908 * expmed.c (mask_rtx, lshift_value): (Ditto.).
24909
a837268b
JH
249102010-04-20 Jan Hubicka <jh@suse.cz>
24911
24912 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
24913 (dump_cgraph_node): Dump new flags.
e96ccb30
UB
24914 * cgraph.h (struct cgraph_node): Add flags
24915 reachable_from_other_partition and in_other_partition.
24916 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
24917 other partition can not be removed.
24918 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
24919 the other partition must be output; silence sanity checking on
24920 leaking functions bodies from other paritition.
a837268b
JH
24921 * lto-cgraph.c (reachable_from_other_partition_p): New function.
24922 (lto_output_node): Output new flags; do not sanity check that inline
24923 clones are output; drop lto_forced_extern_inline_p code; do not mock
24924 visibility flags at partition boundaries.
24925 (add_node_to): New function.
24926 (output_cgraph): Use it to sort functions so masters appear before
24927 clones.
24928 (input_overwrite_node): Input new flags.
24929 * passes.c (ipa_write_summaries): Do not call
24930 lto_new_extern_inline_states.
74ca3393
EB
24931 * lto-section-out.c (forced_extern_inline,
24932 lto_new_extern_inline_states lto_delete_extern_inline_states,
24933 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
a837268b
JH
24934 * lto-streamer.h (lto_new_extern_inline_states,
24935 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
24936 lto_forced_extern_inline_p): Kill.
24937
3c323b52
RG
249382010-04-20 Richard Guenther <rguenther@suse.de>
24939
24940 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
24941 from vars that can have pointers.
24942 (process_constraint): Dump useless constraints.
24943
b28ae58f
RG
249442010-04-20 Richard Guenther <rguenther@suse.de>
24945
e96ccb30 24946 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
b28ae58f
RG
24947 (dump_sa_points_to_info): Remove asserts.
24948 (init_base_vars): nothing_id isn't an escape point nor does it
24949 have pointers.
24950
1197ce8e
JJ
249512010-04-20 Jakub Jelinek <jakub@redhat.com>
24952
24953 * tree.h (TYPE_REF_IS_RVALUE): Define.
24954 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
24955 should_move_die_to_comdat, prune_unused_types_walk): Handle
24956 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
24957 (modified_type_die, gen_reference_type_die): Emit
24958 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
24959 if TYPE_REF_IS_RVALUE and -gdwarf-4.
24960
72e2cf16
AK
249612010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24962
24963 PR target/43635
24964 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
24965 calls for -fpic -m31 if they have been sibcall optimized.
24966
810d71d0
JW
249672010-04-19 James E. Wilson <wilson@codesourcery.com>
24968
4a863f3a
JW
24969 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
24970 ar.lc fixed and call-used.
24971
810d71d0
JW
24972 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
24973
3ee2243c
JH
249742010-04-19 Jan Hubicka <jh@suse.cz>
24975
24976 * opts.c (decode_options): Disable whpr incompatible passes.
24977 * lto/lto.c (lto_1_to_1_map): Skip clones.
24978 (read_cgraph_and_symbols): Do not mark everything as needed.
24979 (do_whole_program_analysis): Do map only after optimizing;
24980 set proper cgraph_state; use passmanager.
24981
576319a7
DD
249822010-04-19 DJ Delorie <dj@redhat.com>
24983
24984 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
24985 POINTER_PLUS_EXPR and fix them.
24986
578ad141
EW
249872010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
24988
24989 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
24990 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
24991 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
24992 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
24993 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
24994 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
24995 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
24996 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
24997 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
24998 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
24999 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
25000
d321bd2d
EB
250012010-04-19 Eric Botcazou <ebotcazou@adacore.com>
25002
25003 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
25004 (check_cond_move_block): Likewise.
25005 (cond_move_process_if_block): Likewise.
25006 (noce_find_if_block): Improve formatting.
25007 (find_if_header): Pass 0 to memset and tweak conditions.
25008 (cond_exec_find_if_block): Fix long lines and tweak conditions.
25009
74e27d0d
JJ
250102010-04-19 Jakub Jelinek <jakub@redhat.com>
25011
e96ccb30
UB
25012 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
25013 for -gdwarf-4.
74e27d0d 25014
fd2e4e99
JJ
25015 PR middle-end/43337
25016 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
25017 with non-local decl doesn't need chain.
25018
ec995732
VM
250192010-04-19 Vladimir Makarov <vmakarov@redhat.com>
25020
25021 * ira-color.c (allocno_reload_assign): Avoid accumulating
25022 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
25023
acd63801
MJ
250242010-04-19 Martin Jambor <mjambor@suse.cz>
25025
25026 * gimple.h (create_tmp_reg): Declare.
25027 * gimplify.c (create_tmp_reg): New function.
25028 (gimplify_return_expr): Use create_tmp_reg.
25029 (gimplify_omp_atomic): Likewise.
25030 (gimple_regimplify_operands): Likewise.
25031 * tree-dfa.c (make_rename_temp): Likewise.
25032 * tree-predcom.c (predcom_tmp_var): Likewise.
25033 (reassociate_to_the_same_stmt): Likewise.
25034 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
25035 (get_replaced_param_substitute): Likewise.
25036 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
25037 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
25038 * tree-ssa-pre.c (get_representative_for): Likewise.
25039 (create_expression_by_pieces): Likewise.
25040 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
25041 (create_tailcall_accumulator): Likewise.
25042
0b6e2868
MJ
250432010-04-19 Martin Jambor <mjambor@suse.cz>
25044
25045 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
25046 new_stmt.
25047 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
25048
1936a7d4
RG
250492010-04-19 Richard Guenther <rguenther@suse.de>
25050
25051 PR tree-optimization/43796
25052 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
25053 from SCEV in the lattice.
25054 (vrp_visit_phi_node): Dump change.
25055
479881c3
RG
250562010-04-19 Richard Guenther <rguenther@suse.de>
25057
25058 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
25059 * configure: Re-generated.
25060
d53bed0b
RG
250612010-04-19 Richard Guenther <rguenther@suse.de>
25062
25063 PR tree-optimization/43783
25064 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
25065 constant ARRAY_REF operands two and three if possible.
25066
90f775a9
UB
250672010-04-19 Uros Bizjak <ubizjak@gmail.com>
25068
25069 PR target/43766
25070 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
25071
8d9b7be5
JZ
250722010-04-19 Jie Zhang <jie@codesourcery.com>
25073
25074 PR target/43662
90f775a9 25075 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8d9b7be5 25076
d5dceab8 250772010-04-19 Ira Rosen <irar@il.ibm.com>
b5aeb3bb
IR
25078
25079 PR tree-optimization/37027
e96ccb30 25080 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
b5aeb3bb
IR
25081 and macro to access it.
25082 (vectorizable_reduction): Add argument.
25083 (vect_get_slp_defs): Likewise.
25084 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
25085 statements for possible use in SLP.
25086 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
25087 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
25088 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
25089 add new argument.
25090 (vectorizable_reduction): Likewise.
e96ccb30 25091 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
b5aeb3bb
IR
25092 vect_get_slp_defs.
25093 (vectorizable_type_demotion, vectorizable_type_promotion,
25094 vectorizable_store): Likewise.
25095 (vect_analyze_stmt): Update call to vectorizable_reduction.
25096 (vect_transform_stmt): Likewise.
25097 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
25098 (vect_build_slp_tree): Fix indentation. Check that there are no loads
25099 from different interleaving chains in same node.
25100 (vect_slp_rearrange_stmts): New function.
e96ccb30 25101 (vect_supported_load_permutation_p): Allow load permutations for
b5aeb3bb
IR
25102 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
25103 inside SLP nodes if necessary.
25104 (vect_analyze_slp_instance): Handle reductions.
25105 (vect_analyze_slp): Try to build SLP instances originating from groups
25106 of reductions.
25107 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
25108 (vect_get_constant_vectors): Create initial vectors for reductions
25109 according to reduction code. Add new argument.
e96ccb30 25110 (vect_get_slp_defs): Add new argument, pass it to
b5aeb3bb
IR
25111 vect_get_constant_vectors.
25112 (vect_schedule_slp_instance): Remove SLP tree root statements.
25113
5a2fa9e8
JJ
251142010-04-19 Jakub Jelinek <jakub@redhat.com>
25115
25116 * tree.h (ENUM_IS_SCOPED): Define.
25117 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
25118 for ENUM_IS_SCOPED enums.
25119
3b9e5d95
EB
251202010-04-18 Eric Botcazou <ebotcazou@adacore.com>
25121
25122 * fold-const.c (fold_comparison): Use ssizetype.
25123 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
25124 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
25125 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
25126 * tree-object-size.c (compute_object_sizes): Use size_type_node.
25127
25128 * tree.h (initialize_sizetypes): Remove parameter.
25129 (build_common_tree_nodes): Remove second parameter.
25130 * stor-layout.c (initialize_sizetypes): Remove parameter.
25131 Always create an unsigned type.
25132 (set_sizetype): Assert that the passed type is unsigned and simplify.
25133 * tree.c (build_common_tree_nodes): Remove second parameter.
25134 Adjust call to initialize_sizetypes.
25135 * c-decl.c (c_init_decl_processing): Remove second argument in call to
25136 build_common_tree_nodes.
25137
b3c35965
MK
251382010-04-18 Matthias Klose <doko@ubuntu.com>
25139
25140 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
25141
d5dceab8 251422010-04-18 Ira Rosen <irar@il.ibm.com>
59eefaa6
IR
25143
25144 PR tree-optimization/43771
25145 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
25146 load permutation doesn't have gaps.
25147
07b3ef2e
JH
251482010-04-18 Jan Hubicka <jh@suse.cz>
25149
25150 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
25151 (sse_prologue_save_insn expander): Use new pattern.
25152 (sse_prologue_save_insn1): New pattern and splitter.
25153 (sse_prologue_save_insn): Update to deal also with 64bit aligned
25154 blocks.
90f775a9
UB
25155 * i386.c (setup_incoming_varargs_64): Do not compute jump
25156 destination here.
07b3ef2e 25157 (ix86_gimplify_va_arg): Update alignment needed.
90f775a9 25158 (ix86_local_alignment): Do not align all local arrays to 128bit.
07b3ef2e 25159
6a8cd100
JH
251602010-04-17 Jan Hubicka <jh@suse.cz>
25161
25162 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
25163
9e315505
RE
251642010-04-17 Richard Earnshaw <rearnsha@arm.com>
25165
25166 * arm.md (negdi2): Remove redundant code to force values into a
25167 register.
25168
6f0668cf
RE
251692010-04-17 Richard Earnshaw <rearnsha@arm.com>
25170
25171 * arm/bpabi.S: Add EABI alignment attributes to objects.
25172 * arm/bpabi-v6m.S: Likewise.
25173 * arm/crti.asm: Likewise.
25174 * arm/crtn.asm: Likewise.
25175 * arm/lib1funcs.asm: Likewise.
25176 * arm/libunwind.S: Likewise.
25177
1b78f575
RE
251782010-04-17 Richard Earnshaw <rearnsha@arm.com>
25179
25180 * arm-protos.h (tune_params): New structure.
25181 * arm.c (current_tune): New variable.
25182 (arm_constant_limit): Delete.
25183 (struct processors): Add pointer to the tune parameters.
25184 (arm_slowmul_tune): New tuning option.
25185 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
25186 (all_cores): Adjust to pick up the tuning model.
25187 (arm_constant_limit): New function.
25188 (arm_override_options): Select the appropriate tuning model. Delete
25189 initialization of arm_const_limit.
25190 (arm_split_constant): Use the new constant-limit model.
25191 (arm_rtx_costs): Pick up the current tuning model.
25192 * arm.md (is_strongarm, is_xscale): Delete.
25193 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
25194 for Xscale variant architectures.
25195 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
25196
80d56d04
RR
251972010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
25198
1b78f575
RE
25199 * config/arm/arm.c (arm_gen_constant): Remove unused variable
25200 can_shift.
80d56d04
RR
25201 (arm_rtx_costs_1): Remove unused variable extra_cost.
25202 (arm_unwind_emit_set): Use variable offset.
25203 (thumb1_output_casesi): Remove unused variable flags.
25204
6190446b
JL
252052010-04-16 Jeff Law <law@redhat.com>
25206
25207 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
016f9d9d
JL
25208 needing assignment rather than doing a two-phase assignment. Remove
25209 unused variable 'm'.
6190446b 25210
24f8d71e
JJ
252112010-04-16 Jakub Jelinek <jakub@redhat.com>
25212
25213 PR bootstrap/43767
25214 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
25215
f1665f5c
DK
252162010-04-16 Doug Kwan <dougkwan@google.com>
25217
25218 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
25219 (next_operand_entry_id): New static variable.
25220 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
25221 (add_to_ops_vec): Assigned unique ID to operand entry.
3d25c396 25222 (struct oecount_s): New field ID.
f1665f5c
DK
25223 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
25224 (undistribute_ops_list): Assign unique IDs to oecounts.
25225 (init_reassoc): reset next_operand_entry_id.
25226
f638261a
DK
252272010-04-16 Doug Kwan <dougkwan@google.com>
25228
25229 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
25230 missing left parenthesis.
e96ccb30 25231
4a81b412
UB
252322010-04-16 Uros Bizjak <ubizjak@gmail.com>
25233
25234 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
25235 *btdi_rex64 using SWI48 mode iterator.
25236 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
25237 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
25238 *jcc_btdi_mask_rex64.
25239
9d4d1f8e
AS
252402010-04-16 Anatoly Sokolov <aesok@post.ru>
25241
25242 * double-int.h (tree_to_double_int): Convert to macro.
25243 * double-int.c (tree_to_double_int): Remove.
25244
835eb810
JJ
252452010-04-16 Jakub Jelinek <jakub@redhat.com>
25246
25247 PR debug/43762
25248 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
25249 with want_address 2 and in case a single element list might be
25250 possible, call it again with want_address 0.
25251
252522010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
db624ecb 25253
0f6b820c
KP
25254 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
25255 case 'W' print operands for HI mode.
25256 * config/h8300/h8300.h (Y0, Y2) : New constraints.
25257 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
25258 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
25259 * config/h8300/predicate.md (bit_register_indirect_operand): New.
25260
a7494d9e
KP
25261 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
25262
e96ccb30 25263 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8cb81753
KP
25264 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
25265 #xx:3 and #xx:4 mode.
25266
60744089
KP
25267 * config/h8300/h8300.md (inverted load with HImode dest): Add
25268 support for H8300SX.
25269
db624ecb
KP
25270 * config/h8300/predicate.md (bit_operand): Allow immediate values that
25271 satisfy 'U' constraint.
25272
8ccb78f2
RO
252732010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25274
e96ccb30 25275 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8ccb78f2
RO
25276 * configure: Regenerate.
25277 * config.in: Regenerate.
25278 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
25279 works.
25280
bc9c331d
RG
252812010-04-16 Richard Guenther <rguenther@suse.de>
25282
25283 * tree.h (struct tree_decl_minimal): Move pt_uid ...
25284 (struct tree_decl_common): ... here.
25285 (DECL_PT_UID): Adjust.
25286 (SET_DECL_PT_UID): Likewise.
25287 (DECL_PT_UID_SET_P): Likewise.
25288
12de6355
RG
252892010-04-16 Richard Guenther <rguenther@suse.de>
25290
25291 PR tree-optimization/43572
25292 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
25293 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
25294 * tree-flow.h (is_call_clobbered): Remove.
25295 * tree-flow-inline.h (is_call_clobbered): Likewise.
25296 * tree-dfa.c (dump_variable): Do not dump call clobber state.
25297 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
25298 (execute_return_slot_opt): Adjust.
25299 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
25300 check for call clobbered vars here.
25301 (find_tail_calls): Move tailcall verification to the
25302 proper place.
25303
6ab643b5
DN
253042010-04-16 Diego Novillo <dnovillo@google.com>
25305
e96ccb30 25306 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
6ab643b5 25307
f0c6475a
BS
253082010-04-16 Bernd Schmidt <bernds@codesourcery.com>
25309
25310 PR target/40603
25311 * config/arm/arm.md (cbranchqi4): New pattern.
25312 * config/arm/predicates.md (const0_operand,
25313 cbranchqi4_comparison_operator): New predicates.
25314
f0107145
RG
253152010-04-16 Richard Guenther <rguenther@suse.de>
25316
25317 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
25318 (dump_gimple_stmt): Likewise.
25319
f0c6475a 253202010-04-16 Bernd Schmidt <bernds@codesourcery.com>
6ddfdb0f
BS
25321
25322 * recog.h (struct recog_data): New field is_operator.
25323 (struct insn_operand_data): New field is_operator.
25324 * recog.c (extract_insn): Set recog_data.is_operator.
25325 * genoutput.c (output_operand_data): Emit code to set the
25326 is_operator field.
25327 * reload.c (find_reloads): Use it rather than testing for an
25328 empty constraint string.
25329
6ea007e4
BS
25330 PR target/41514
25331 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
25332 If the previous insn is a cbranchsi4_insn with the same arguments,
25333 omit the compare instruction.
25334
3302cfa1
BS
25335 * config/arm/arm.md (addsi3_cbranch): If destination is a high
25336 register, inputs must be low registers and we need a low register
25337 scratch. Handle alternative 2 like alternative 3.
25338
5312b066
JJ
253392010-04-16 Jakub Jelinek <jakub@redhat.com>
25340
25341 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
25342 don't call get_addr on both. If one expression is a VALUE and
25343 the other a REG, check VALUE's locs if the REG isn't among them.
25344
7a296495
CB
253452010-04-16 Christian Bruel <christian.bruel@st.com>
25346
25347 * config/sh/sh.h (sh_frame_pointer_required): New function.
25348 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
25349 (flag_omit_frame_pointer) Set.
25350 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
25351 (rounded_frame_size): Adjust size with outgoing_args_size.
25352 (sh_set_return_address): Must return from stack pointer.
eed023cc 25353 * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
7a296495
CB
25354 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
25355 (ACCUMULATE_OUTGOING_ARGS): Define.
25356 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
eed023cc 25357 * config/sh/sh.opt (maccumulate-outgoing-args): New option.
7a296495 25358
7140f0f9
KK
253592010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
25360
25361 PR target/43471
25362 * config/sh/sh.c (sh_legitimize_reload_address): Use
25363 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
25364 Remove a unneeded check for offset_base.
25365
bafaef55
L
253662010-04-15 H.J. Lu <hongjiu.lu@intel.com>
25367
25368 * configure: Regenerated.
25369
e8de8fea
AK
253702010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
25371
25372 * config/s390/s390.c (s390_call_save_register_used): Switch back
25373 to HARD_REGNO_NREGS.
25374
038a39d1
RG
253752010-04-15 Richard Guenther <rguenther@suse.de>
25376
25377 * alias.c (alias_set_subset_of): Handle alias-set zero
25378 child properly.
25379
28907f9a
MS
253802010-04-15 Mark Shinwell <shinwell@codesourcery.com>
25381 Julian Brown <julian@codesourcery.com>
25382
25383 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
25384 alternatives according to use of high and low regs.
25385 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
25386 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
25387 optimizing for size on Thumb-2.
25388
3f56ef8b
TS
253892010-04-15 Thomas Schwinge <tschwinge@gnu.org>
25390
25391 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
25392
25a6a873
RG
253932010-04-15 Richard Guenther <rguenther@suse.de>
25394
25395 * tree-ssa-structalias.c (struct variable_info): Add
25396 is_fn_info flag.
25397 (new_var_info): Initialize it.
25398 (dump_constraints): Support printing last added constraints.
25399 (debug_constraints): Adjust.
25400 (dump_constraint_graph): Likewise.
25401 (make_heapvar_for): Check for NULL cfun.
25402 (get_function_part_constraint): New function.
25403 (get_fi_for_callee): Likewise.
25404 (find_func_aliases): Properly implement IPA PTA constraints.
25405 (process_ipa_clobber): New function.
25406 (find_func_clobbers): Likewise.
25407 (insert_into_field_list_sorted): Remove.
25408 (create_function_info_for): Properly allocate vars for IPA mode.
25409 Do not use insert_into_field_list_sorted.
25410 (create_variable_info_for): Properly generate constraints for
25411 global vars in IPA mode.
25412 (dump_solution_for_var): Always dump the solution.
25413 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
25414 (find_what_var_points_to): Adjust.
25415 (pt_solution_set): Change.
25416 (pt_solution_ior_into): New function.
25417 (pt_solution_empty_p): Export.
25418 (pt_solution_includes_global): Adjust.
25419 (pt_solution_includes_1): Likewise.
25420 (pt_solutions_intersect_1): Likewise.
25421 (dump_sa_points_to_info): Check some invariants.
25422 (solve_constraints): Move constraint dumping ...
25423 (compute_points_to_sets): ... here.
25424 (ipa_pta_execute): ... and here.
25425 (compute_may_aliases): Do not re-compute points-to info
25426 locally if IPA info is available.
25427 (ipa_escaped_pt): New global var.
25428 (ipa_pta_execute): Properly implement IPA PTA.
25429 * tree-into-ssa.c (dump_decl_set): Support dumping
25430 decls not in referenced-vars.
25431 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
25432 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
25433 (dump_points_to_solution): Likewise.
25434 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
25435 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
e96ccb30 25436 (remap_gimple_stmt): Reset call clobber/use information if necessary.
25a6a873
RG
25437 (copy_decl_to_var): Copy DECL_PT_UID.
25438 (copy_result_decl_to_var): Likewise.
25439 * tree.c (make_node_stat): Initialize DECL_PT_UID.
25440 (copy_node_stat): Copy it.
25441 * tree.h (DECL_PT_UID): New macro.
25442 (SET_DECL_PT_UID): Likewise.
25443 (DECL_PT_UID_SET_P): Likewise.
25444 (struct tree_decl_minimal): Add pt_uid member.
25445 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
25446 (pt_solution_empty_p): Declare.
25447 (pt_solution_set): Adjust.
25448 (ipa_escaped_pt): Declare.
25449 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
25450 * gimple-pretty-print.c (pp_points_to_solution): New function.
25451 (dump_gimple_call): Dump call clobber/use information.
25452 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
25453 * tree-pass.h (TDF_ALIAS): New dump option.
25454 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
25455 * doc/invoke.texi (-fipa-pta): Update documentation.
25456
cbdd87d4
RG
254572010-04-15 Richard Guenther <rguenther@suse.de>
25458
25459 * Makefile.in (OBJS-common): Add gimple-fold.o.
25460 (gimple-fold.o): New rule.
25461 * tree.h (maybe_fold_offset_to_reference,
25462 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
25463 prototypes ...
25464 * gimple.h: ... here.
25465 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
25466 may_propagate_address_into_dereference): Move prototypes ...
25467 * gimple.h: ... here.
25468 * tree-ssa-ccp.c (get_symbol_constant_value,
25469 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
25470 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
25471 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
25472 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
25473 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
25474 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
25475 gimplify_and_update_call_from_tree): Move ...
25476 * gimple-fold.c: ... here. New file.
25477 (ccp_fold_builtin): Rename to ...
25478 (gimple_fold_builtin): ... this.
25479 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
25480
330db1e3
RG
254812010-04-15 Richard Guenther <rguenther@suse.de>
25482
25483 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
25484 fit_double_type, force_fit_type_double, add_double_with_sign,
25485 neg_double, mul_double_with_sign, lshift_double, rshift_double,
25486 lrotate_double, rrotate_double, div_and_round_double): Move ...
25487 * double-int.c: ... here.
25488 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
25489 add_double, neg_double, mul_double_with_sign, mul_double,
25490 lshift_double, rshift_double, lrotate_double, rrotate_double,
25491 div_and_round_double): Move prototypes ...
25492 * double-int.h: ... here.
25493
f0c6475a 254942010-04-15 Bernd Schmidt <bernds@codesourcery.com>
077668e3
BS
25495
25496 PR target/43742
25497 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
25498 matching constraints to ensure inputs match the output.
25499
fa66fc40
KK
255002010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
25501
25502 PR target/43742
25503 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
e96ccb30 25504 in an input-only operand.
fa66fc40 25505
2bd1333d
AS
255062010-04-15 Anatoly Sokolov <aesok@post.ru>
25507
25508 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
25509 (double_int_not, double_int_lshift, double_int_rshift): Declare.
25510 (double_int_negative_p): Convert to static inline function.
74ca3393 25511 * double-int.c (double_int_lshift, double_int_lshift): New functions.
2bd1333d 25512 (double_int_negative_p): Remove.
e96ccb30 25513 * tree.h (lshift_double, rshift_double):
2bd1333d
AS
25514 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
25515 * fold-const.c (fold_convert_const_int_from_real,
25516 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
25517 (lshift_double): Change type of arith argument to bool.
25518 (rshift_double): Change type of arith argument to bool. Correct
25519 comment.
25520 * expmed.c (mask_rtx, lshift_value): (Ditto.).
25521
f0c6475a 255222010-04-14 Bernd Schmidt <bernds@codesourcery.com>
e96ccb30 25523
31ce8a53
BS
25524 PR target/21803
25525 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
25526 at the start and end of the then/else blocks, and omit them from the
25527 conversion.
25528 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
25529 argument; all callers changed. Pass zero to old_insns_match_p instead.
25530 (flow_find_head_matching_sequence): New function.
25531 (old_insns_match_p): Check REG_EH_REGION notes for calls.
25532 * basic-block.h (flow_find_cross_jump,
25533 flow_find_head_matching_sequence): Declare functions.
25534
943f82e7
JM
255352010-04-14 Jason Merrill <jason@redhat.com>
25536
25537 PR c++/36625
25538 * c-common.c (attribute_takes_identifier_p): New fn.
25539 * c-common.h: Declare it.
25540
feeb8c52
UB
255412010-04-14 Uros Bizjak <ubizjak@gmail.com>
25542
25543 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
25544 splitter condition.
25545 (*udivmod<mode>4): Ditto.
25546
4a5528cc
UB
255472010-04-14 Uros Bizjak <ubizjak@gmail.com>
25548
25549 * config/i386/i386.md (maxmin_int): Rename code attribute from
25550 maxminiprefix and update all users.
25551 (maxmin_float): Ditto from maxminfprefix.
25552 (logic): Ditto from logicprefix.
25553 (absneg_mnemonic): Ditto from absnegprefix.
25554 * config/i386/mmx.md: Update all users of maxminiprefix,
4a81b412 25555 maxminfprefix and logicprefix for rename.
4a5528cc
UB
25556 * config/i386/sse.md: Ditto.
25557 * config/i386/sync.md (sync_<code><mode>): Update for
25558 logicprefix rename.
25559
289fcbbd
MLI
255602010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
25561
25562 PR 42966
25563 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
25564 warnings converted to errors.
25565
d58770e7
UB
255662010-04-14 Uros Bizjak <ubizjak@gmail.com>
25567
25568 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
25569 used insn_type variable.
25570 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
25571 to avoid set-but-not-used warning.
25572
a3f1cee4
UB
255732010-04-14 Uros Bizjak <ubizjak@gmail.com>
25574
25575 * df-core.c (df_ref_debug): Change format string placeholder
25576 from 0x%x to %#x.
25577 * dwarf2asm.c (dw2_asm_output_data_raw,
25578 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
25579 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
25580 * dwarf2out.c (output_cfi, output_cfi_directive,
25581 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
25582 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
25583 Ditto.
25584 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
25585 * print-rtl.c (print_rtx): Ditto.
25586
3eb4dbe3
MM
255872010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
25588
25589 PR middle-end/42694
25590 * builtins.c (expand_builtin_pow_root): New function to expand pow
25591 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
25592 series of sqrt and cbrt calls under -ffast-math.
25593 (expand_builtin_pow): Call it.
25594
fc249fe5
MM
255952010-04-14 Michael Matz <matz@suse.de>
25596
25597 PR tree-optimization/42963
25598 * tree-cfg.c (touched_switch_bbs): New static variable.
25599 (group_case_labels_stmt): New function broken out from ...
25600 (group_case_labels): ... here, use the above.
25601 (start_recording_case_labels): Allocate touched_switch_bbs.
25602 (end_recording_case_labels): Deallocate it, call
25603 group_case_labels_stmt.
25604 (gimple_redirect_edge_and_branch): Remember index of affected BB.
25605
0fcbf3ed
UB
256062010-04-14 Uros Bizjak <ubizjak@gmail.com>
25607
25608 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
25609 from insn template.
25610
3f529c2c
UB
256112010-04-14 Uros Bizjak <ubizjak@gmail.com>
25612
25613 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
25614
1ce18dc8
JH
256152010-04-13 Jan Hubicka <jh@suse.cz>
25616
25617 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
25618 of optimized out static functions.
25619 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
25620 cost computation. Also sanity check for overflows.
25621 (update_caller_keys): Update cgraph_edge_badness call; properly
25622 update fibheap and sanity check that it is up to date.
25623 (add_new_edges_to_heap): Update cgraph_edge_badness.
25624 (cgraph_decide_inlining_of_small_function): Likewise;
25625 add sanity checking that badness in heap is up to date;
25626 improve dumping of reason; Update badness of calls to the
25627 offline copy of function currently inlined; dump badness
25628 of functions not inlined because of unit growth limits.
25629
9e9ef331
EB
256302010-04-13 Eric Botcazou <ebotcazou@adacore.com>
25631
25632 PR middle-end/32628
25633 * c-common.c (pointer_int_sum): Disregard overflow that occured only
25634 because of sign-extension change when converting to sizetype here...
25635 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
25636
25637 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
25638 the folding to constants. Remove redundant final conversion.
25639 (fold_binary) <associate>: Do not associate if the re-association of
25640 constants alone overflows.
25641 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
25642 to the end of the list.
25643 (multiple_of_p) <COND_EXPR>: New case.
25644
9db94baa
MLI
256452010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
25646
25647 * opt-functions.awk (opt_sanitized_name): New.
25648 (opt_enum): New.
25649 * optc-gen.awk: Use it
25650 * opth-gen.awk: Use it.
25651
0f2ffb9a
MJ
256522010-04-13 Martin Jambor <mjambor@suse.cz>
25653
25654 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
25655 (sra_modify_assign): Delete stmts loading dead data even if racc has no
25656 children. Call replace_uses_with_default_def_ssa_name to handle
25657 SSA_NAES on lhs.
25658
f78b86c0
MM
256592010-04-13 Michael Matz <matz@suse.de>
25660
25661 PR middle-end/43730
25662 * builtins.c (expand_builtin_interclass_mathfn): Also create
25663 a register if the predicate doesn't match.
25664
0e6229c2
DN
256652010-04-13 Diego Novillo <dnovillo@google.com>
25666
25667 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
25668 * c-pch.c: Include timevar.h.
25669 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
3f529c2c 25670 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
0e6229c2 25671 * ggc-common.c: Include timevar.h.
3f529c2c 25672 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
0e6229c2
DN
25673 * timevar.def (TV_PCH_SAVE): Define.
25674 (TV_PCH_CPP_SAVE): Define.
25675 (TV_PCH_PTR_REALLOC): Define.
25676 (TV_PCH_PTR_SORT): Define.
25677 (TV_PCH_RESTORE): Define.
25678 (TV_PCH_CPP_RESTORE): Define.
25679
143597ff
MM
256802010-04-13 Michael Matz <matz@suse.de>
25681
25682 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
25683 into MINUS_EXPRs.
25684 (can_reassociate_p): New function.
25685 (break_up_subtract_bb, reassociate_bb): Use it.
25686
54c5ec4f
RG
256872010-04-13 Richard Guenther <rguenther@suse.de>
25688
25689 PR bootstrap/43737
25690 * builtins.c (c_readstr): Fix assert.
25691
719938ae
UB
256922010-04-13 Uros Bizjak <ubizjak@gmail.com>
25693
25694 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
25695 when generating cltd insn.
25696
25697 (*ashl<mode>3_1): Remove special handling for register operand 2.
25698 (*ashlsi3_1_zext): Ditto.
25699 (*ashlhi3_1): Ditto.
25700 (*ashlhi3_1_lea): Ditto.
25701 (*ashlqi3_1): Ditto.
25702 (*ashlqi3_1_lea): Ditto.
25703 (*<shiftrt_insn><mode>3_1): Ditto.
25704 (*<shiftrt_insn>si3_1_zext): Ditto.
25705 (*<shiftrt_insn>qi3_1_slp): Ditto.
25706 (*<rotate_insn><mode>3_1): Ditto.
25707 (*<rotate_insn>si3_1_zext): Ditto.
25708 (*<rotate_insn>qi3_1_slp): Ditto.
25709
3e8542ca
RG
257102010-04-13 Richard Guenther <rguenther@suse.de>
25711
25712 * tree-ssa-structalias.c (callused_id): Remove.
25713 (call_stmt_vars): New.
25714 (get_call_vi): Likewise.
25715 (lookup_call_use_vi): Likewise.
25716 (lookup_call_clobber_vi): Likewise.
25717 (get_call_use_vi): Likewise.
25718 (get_call_clobber_vi): Likewise.
25719 (make_transitive_closure_constraints): Likewise.
25720 (handle_const_call): Adjust to do per-call call-used handling.
25721 (handle_pure_call): Likewise.
25722 (find_what_var_points_to): Remove general callused handling.
25723 (init_base_vars): Likewise.
25724 (init_alias_vars): Initialize call_stmt_vars.
25725 (compute_points_to_sets): Process call-used and call-clobbered
25726 vars for call statements.
25727 (delete_points_to_sets): Free call_stmt_vars.
25728
777e1f09
RG
257292010-04-13 Richard Guenther <rguenther@suse.de>
25730
25731 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
25732 Only add RW dependence for dependence distance zero.
25733 Adjust maximal vectorization factor according to dependences.
25734 Move alignment handling ...
25735 (vect_find_same_alignment_drs): ... here. New function.
25736 (vect_analyze_data_ref_dependences): Adjust.
25737 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
25738 (vect_analyze_data_refs): Adjust minimal vectorization factor
25739 according to data references.
25740 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
25741 dependences before determining the vectorization factor.
25742 Analyze alignment after determining the vectorization factor.
25743 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
25744 dependences before alignment.
25745 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
25746 Adjust prototype.
25747 (vect_analyze_data_refs): Likewise.
25748 (MAX_VECTORIZATION_FACTOR): New define.
25749
1a710808
DS
257502010-04-13 Duncan Sands <baldrick@free.fr>
25751
25752 * except.h (lang_eh_type_covers): Remove.
25753 * except.c (lang_eh_type_covers): Likewise.
25754
9602b6a1 257552010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3f529c2c
UB
25756 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
25757
eed023cc
EB
25758 * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
25759 * config/s390/s390.c: Replace UNTIS_PER_WORD with
3f529c2c 25760 UNITS_PER_LONG where it is ABI relevant.
9602b6a1
AK
25761 (s390_return_addr_rtx): Likewise.
25762 (s390_back_chain_rtx): Likewise.
25763 (s390_frame_area): Likewise.
25764 (s390_frame_info): Likewise.
25765 (s390_initial_elimination_offset): Likewise.
25766 (save_gprs): Likewise.
25767 (s390_emit_prologue): Likewise.
25768 (s390_emit_epilogue): Likewise.
25769 (s390_function_arg_advance): Likewise.
25770 (s390_function_arg): Likewise.
25771 (s390_va_start): Likewise.
25772 (s390_gimplify_va_arg): Likewise.
25773 (s390_function_profiler): Likewise.
25774 (s390_optimize_prologue): Likewise.
25775 (s390_rtx_costs): Likewise.
25776 (s390_secondary_reload): Likewise.
25777 (s390_promote_function_mode): Likewise.
25778 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
25779 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
25780 registers available.
25781 (s390_unwind_word_mode): New function.
25782 (s390_function_value): Split 64 bit values into register pair if
25783 used as return value.
25784 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
25785 function call parameters. Handle parallels.
25786 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
25787 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
25788 (DWARF_CIE_DATA_ALIGNMENT): New macro.
25789 (s390_expand_setmem): Remove unused variable src_addr.
eed023cc 25790 * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
3f529c2c 25791 deal with 64 bit registers.
eed023cc 25792 * config/s390/s390.h: Define __zarch__ predefined macro.
9602b6a1
AK
25793 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
25794 (UNITS_PER_LONG): New macro.
25795 * libjava/include/s390-signal.h: Define extended ucontext
25796 structure containing the upper halfs of the 64 bit registers.
25797
3b123595
SB
257982010-04-13 Simon Baldwin <simonb@google.com>
25799
25800 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
25801
cb3d597d
EB
258022010-04-13 Eric Botcazou <ebotcazou@adacore.com>
25803
25804 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
25805 rvalue on the RHS if the LHS is of a non-renamable type.
25806 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
25807
4adbd5dd
MK
258082010-04-13 Matthias Klose <doko@ubuntu.com>
25809
25810 * gcc.c (cc1_options): Handle -iplugindir before processing
25811 the cc1 spec. Only add -iplugindir once.
25812 (cpp_unique_options): Add -iplugindir option if -fplugin* options
25813 found.
25814 * common.opt (iplugindir): Remove `Separate' property, initialize.
25815 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
25816 option.
25817 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
25818 (distclean): Remove plugin dir.
25819 * doc/invoke.texi: Document -iplugindir.
25820
258212010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
25822
25823 * doc/plugins.texi (Loading Plugins): Document short
25824 -fplugin=foo option.
25825 (Plugin API): Mention default_plugin_dir_name function.
25826
25827 * gcc.c (find_file_spec_function): Add new declaration.
25828 (static_spec_func): Use it for "find-file".
25829 (find_file_spec_function): Add new function.
25830 (cc1_options): Add -iplugindir option if -fplugin* options found.
25831
25832 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
25833
25834 * plugin.c (add_new_plugin): Updated comment, and handle short
25835 plugin name.
25836 (default_plugin_dir_name): Added new function.
25837
719938ae 25838 * common.opt (iplugindir): New option to set the plugin directory.
4adbd5dd 25839
e0db9cc6
UB
258402010-04-12 Uros Bizjak <ubizjak@gmail.com>
25841
25842 * config/i386/i386.md (any_rotate): New code iterator.
25843 (rotate_insn): New code attribute.
25844 (rotate): Ditto.
25845 (SWIM124): New mode iterator.
25846 (<rotate_insn>ti3): New expander.
25847 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
25848 any_rotate code iterator.
25849 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
25850 using any_rotate code iterator and SWIM124 mode iterator.
25851 (ix86_rotlti3): New insn_and_split pattern.
25852 (ix86_rotrti3): Ditto.
25853 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
25854 ix86_rotl{di,ti}3 patterns.
25855 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
25856 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
25857 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
25858 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
25859 code iterator and SWI mode iterator.
25860 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
25861 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
25862 code iterator.
25863 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
25864 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
25865 (bswap rotatert splitter): Add splitter.
25866 (bswap splitter): Macroize splitter using any_rotate code iterator.
25867 Add insn predicate to split only for TARGET_USE_XCHGB or when
25868 optimizing function for size.
25869
077c8ada
SE
258702010-04-12 Steve Ellcey <sje@cup.hp.com>
25871
25872 * config/pa/pa.c (emit_move_sequence): Remove use of
25873 deleted variable flag_argument_noalias.
25874
c7392d11
RO
258752010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25876
25877 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
25878 configurations.
25879 Add to unsupported targets list.
25880 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
25881 sparc*-sun-solaris2.[567]* from target lists.
25882 * configure: Regenerate.
25883 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
25884 removal.
25885 Remove Solaris 7 patch references.
25886 (Specific, sparc-sun-solaris2.7): Removed.
25887 (sparc-sun-solaris2*): Update Solaris 7 example.
25888 (sparc64-*-solaris2*): Likewise.
25889
8c200350
RO
258902010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25891
25892 * config.build (alpha*-dec-osf4*): Remove.
25893 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
25894 of obsolete configurations.
25895 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
25896 support.
25897 * config/alpha/t-osf4: Renamed to ...
25898 * config/alpha/t-osf5: ... this.
25899 * config/alpha/osf.h: Renamed to ...
25900 * config/alpha/osf5.h: ... this.
25901 Merged old osf5.h contents.
25902 Update comments.
25903 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
25904 (EXTRA_SPECS): Removed.
25905 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
25906 reflect removal of Tru64 UNIX V4.0/V5.0 support.
25907 Document that.
25908
887204da
RO
259092010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
25910
25911 * doc/contrib.texi (Contributors, Rainer Orth): Update.
25912
c1b8e139
KT
259132010-04-12 Kai Tietz <kai.tietz@onevision.com>
25914
25915 PR/43702
25916 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
25917 __thiscall convention.
25918
b38bccca
SE
259192010-04-12 Steve Ellcey <sje@cup.hp.com>
25920
25921 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
25922 orig_base.
25923 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
25924
fc2f1f53
SE
259252010-04-12 Steve Ellcey <sje@cup.hp.com>
25926
25927 * function.c (assign_parms_initialize_all): Add unused attribute
25928 to fntype.
25929
d086d311
RG
259302010-04-12 Richard Guenther <rguenther@suse.de>
25931
25932 * gsstruct.def (GSS_CALL): New.
25933 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
25934 * gimple.h: Include tree-ssa-alias.h.
25935 (struct gimple_statement_call): New.
25936 (union gimple_statement_struct_d): Add gimple_call member.
25937 (gimple_call_reset_alias_info): Declare.
25938 (gimple_call_use_set): New function.
25939 (gimple_call_clobber_set): Likewise.
25940 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
25941 * gimple.c (gimple_call_reset_alias_info): New function.
25942 (gimple_build_call_1): Call it.
25943 * lto-streamer-in.c (input_gimple_stmt): Likewise.
25944 * tree-inline.c (remap_gimple_stmt): Likewise.
25945 (expand_call_inline): Remove callused handling.
25946 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
25947 * tree-dfa.c (dump_variable): Likewise.
25948 * tree-parloops.c (parallelize_loops): Likewise.
25949 * tree-ssa.c (init_tree_ssa): Likewise.
25950 (delete_tree_ssa): Likewise.
25951 * tree-flow-inline.h (is_call_used): Remove.
25952 * tree-flow.h (struct gimple_df): Remove callused member.
25953 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
25954 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
25955 (ref_maybe_used_by_call_p_1): Simplify.
25956 (call_may_clobber_ref_p_1): Likewise.
25957 * tree-ssa-structalias.c (compute_points_to_sets): Set
25958 the call stmt used and clobbered sets.
25959 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
25960 (find_tail_calls): Verify the tail call.
25961
af961c7f
RG
259622010-04-12 Richard Guenther <rguenther@suse.de>
25963
25964 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
25965 single-iteration always-inline inlining.
25966 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
e0db9cc6 25967 (cgraph_decide_inlining): Do not handle always-inline specially.
af961c7f
RG
25968 (try_inline): Remove always-inline cycle detection special case.
25969 Do not recurse on always-inlines.
25970 (cgraph_early_inlining): Do not iterate if not optimizing.
25971 (cgraph_gate_early_inlining): remove.
25972 (pass_early_inline): Run unconditionally.
25973 (gate_cgraph_decide_inlining): New function.
25974 (pass_ipa_inline): Use it. Do not run the IPA inliner if
25975 not inlining or optimizing.
25976 (cgraph_decide_inlining_of_small_functions): Also consider
25977 always-inline functions.
25978 (cgraph_default_inline_p): Return true for nodes which should
25979 disregard inline limits.
25980 (estimate_function_body_sizes): Assume zero size and time for
25981 nodes which are marked as disregarding inline limits.
25982 (cgraph_decide_recursive_inlining): Do not perform recursive
25983 inlining on always-inline nodes.
25984
fa8351f8
JJ
259852010-04-12 Jakub Jelinek <jakub@redhat.com>
25986
25987 PR bootstrap/43699
25988 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
25989 for exprs satisfying handled_component_p.
25990
675c873b
EB
259912010-04-12 Eric Botcazou <ebotcazou@adacore.com>
25992
25993 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
25994 non-constant aggregate elements.
25995
25996 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
25997 is a real initialization.
25998
c4712597
SZ
259992010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
26000
26001 PR c/36774
26002 * c-decl.c (start_function): Move forward check for nested function.
26003
6f50eb9c
KK
260042010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
26005
26006 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
26007 * config/sh/sh.c: Include reload.h.
26008 (sh_legitimize_reload_address): New.
26009 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
26010 sh_legitimize_reload_address.
26011
c11c09f9
KP
260122010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
26013
26014 * config/sh/sh.md (*movqi_pop): New insn pattern.
26015 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
26016
d72ebc16
UB
260172010-04-11 Uros Bizjak <ubizjak@gmail.com>
26018
26019 * config/i386/i386.md (any_shiftrt): New code iterator.
26020 (shiftrt_insn): New code attribute.
26021 (shiftrt): Ditto.
e0db9cc6
UB
26022 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
26023 using any_shiftrt code iterator.
d72ebc16 26024 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
e0db9cc6 26025 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
d72ebc16
UB
26026 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
26027 pattern from corresponding peephole2 patterns.
e0db9cc6
UB
26028 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
26029 using any_shiftrt code iterator.
26030 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
26031 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
26032 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
26033 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
26034 *{ashr,lshr}<mode>3_cmp_zext.
26035 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
d72ebc16 26036
59caab22
UB
260372010-04-11 Uros Bizjak <ubizjak@gmail.com>
26038
26039 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
26040 scratch register.
26041 (*lshr<mode>3_cconly): Ditto.
26042
9200ac72
UB
260432010-04-11 Uros Bizjak <ubizjak@gmail.com>
26044
26045 * config/i386/i386.md (lshr<mode>3): Macroize expander from
26046 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
26047 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
26048 pattern from *lshr{di,ti}3_1 and corresponding splitters using
26049 DWI mode iterator.
26050 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
26051 from corresponding peephole2 patterns.
26052 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
26053 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
26054 and *lshrdi3_1_rex64 using SWI mode iterator.
d72ebc16 26055 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
9200ac72
UB
26056 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
26057 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
26058 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
26059 and *lshrdi3_cmp_rex64 using SWI mode iterator.
26060 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
26061 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
26062 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
26063 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
26064 SWI mode iterator.
26065
27431d88
UB
260662010-04-10 Uros Bizjak <ubizjak@gmail.com>
26067
26068 * config/i386/i386.md (ashr<mode>3): Macroize expander from
26069 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
26070 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
26071 pattern from *ashr{di,ti}3_1 and corresponding splitters using
26072 DWI mode iterator.
26073 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
26074 from corresponding peephole2 patterns.
26075 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
26076 (ashrsi3_cvt): Rename from ashrsi3_31.
26077 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
26078 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
26079 and x86_64_shift_adj_3 using SWI48 mode iterator.
26080 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
e0db9cc6
UB
26081 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
26082 and *ashrdi3_1_rex64 using SWI mode iterator.
d72ebc16 26083 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
27431d88
UB
26084 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
26085 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
26086 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
26087 and *ashrdi3_cmp_rex64 using SWI mode iterator.
26088 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
26089 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
26090 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
26091 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
26092 SWI mode iterator.
59caab22 26093 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
27431d88 26094 * config/i386/i386.c (ix86_split_ashr): Update for renamed
9200ac72 26095 x86_shift<mode>_adj_3 expanders.
27431d88 26096
85c9bcd4
WG
260972010-04-10 Wei Guozhi <carrot@google.com>
26098
26099 PR target/42601
26100 * config/arm/arm.c (arm_pic_static_addr): New function.
26101 (legitimize_pic_address): Call arm_pic_static_addr when it detects
26102 a static symbol.
26103 (arm_output_addr_const_extra): Output expression for new pattern.
26104 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
26105
f0c6475a 261062010-04-10 Bernd Schmidt <bernds@codesourcery.com>
979740a0
BS
26107
26108 * ira-costs.c (record_reg_classes): Ignore alternatives that are
26109 not enabled.
4143fd36
BS
26110
26111 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
26112 * web.c: Include "insn-config.h" and "recog.h".
26113 (union_match_dups): New function.
26114 (web_main): Call it.
26115 (union_defs): Don't try to recognize match_dups.
26116
52c1d580
BS
26117 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
26118 if doing so would replace the entire pattern.
26119
ef0f4a03
UB
261202010-04-09 Uros Bizjak <ubizjak@gmail.com>
26121
26122 PR target/43707
26123 PR target/43709
26124 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
26125 and splitter pattern. Change splitter operand 1 predicate to
26126 nonmemory_operand.
26127
add5d998
MJ
261282010-04-09 Martin Jambor <mjambor@suse.cz>
26129
26130 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
26131 lattices are addresses of CONST_DECLs with the same initial value.
26132 (ipcp_print_all_lattices): Print values of CONST_DECLs.
26133 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
26134
43ba743c 261352010-04-09 Eric Botcazou <ebotcazou@adacore.com>
f0c6475a 26136 Bernd Schmidt <bernds@codesourcery.com>
43ba743c
EB
26137
26138 * loop-invariant.c (replace_uses): New static function.
26139 (move_invariant_reg): Use it to ensure we can replace the uses.
26140
261412010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
c3fd7b4d 26142
27431d88
UB
26143 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
26144 function template.
43ba743c 26145 (picochip_override_options): Enable section anchors only above -O1.
c3fd7b4d
HS
26146 (picochip_reorg): Fixed a couple of build warnings.
26147
fcf52686
RO
261482010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26149
26150 * configure.ac (plugin -rdynamic test): Log result.
26151 * configure: Regenerate.
26152 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
26153 (RDYNAMIC_SPEC): Define.
26154 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
26155
55c4f715
RO
261562010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26157
26158 * configure.ac: Determine Sun ld version numbers.
26159 (comdat_group): Restrict GNU ld version checks to gld.
26160 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
26161 (enable_comdat): Support --enable-comdat.
26162 * configure: Regenerate.
26163 * doc/install.texi (Configuration): Document --enable-comdat.
26164
62e08523
RO
261652010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26166
ef0f4a03 26167 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
62e08523
RO
26168 * config/sol2-gld.h: ... here.
26169 * config.gcc (sparc*-*-solaris2*): Reflect this.
26170 (i[34567]86-*-solaris2*): Use it.
26171
034288ef
SE
261722010-04-09 Steve Ellcey <sje@cup.hp.com>
26173
26174 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
26175 setup_clocks_p.
26176 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
26177
d0b8780d
MLI
261782010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
26179
26180 PR 42965
26181 * diagnostic.c (diagnostic_initialize): Initialize
26182 some_warnings_are_errors.
26183 (diagnostic_finish): New.
26184 (diagnostic_action_after_output): Call it before exiting.
26185 (diagnostic_report_diagnostic): Do not print message here. Set
26186 some_warnings_are_errors.
26187 * diagnostic.h (diagnostic_context): Delete
26188 issue_warnings_are_errors_message. Add some_warnings_are_errors.
26189 (diagnostic_finish): Declare.
26190 * toplev.c (toplev_main): Call it before exit.
26191
93e9807a
JM
261922010-04-09 Jason Merrill <jason@redhat.com>
26193
cb6addf4
JM
26194 PR c++/42623
26195 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
26196 for incomplete type.
26197
93e9807a
JM
26198 PR c++/41788
26199 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
26200 based on a warning flag.
26201
74367220
RG
262022010-04-09 Richard Guenther <rguenther@suse.de>
26203
43ba743c 26204 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
74367220 26205
8351bca7
IS
262062010-04-09 Iain Sandoe <iains@gcc.gnu.org>
26207
26208 PR bootstrap/43684
ef0f4a03 26209 * varasm.c (default_assemble_visibility): Wrap vars that are
8351bca7 26210 set, but unused, by targets without GAS.
ade52657 26211 * config/rs6000/rs6000.c (paired_emit_vector_compare):
8351bca7
IS
26212 Remove set, but unused, vars.
26213 (rs6000_legitimize_tls_address): Likewise.
26214 (altivec_expand_dst_builtin): Likewise.
26215 * config/darwin.c (machopic_classify_symbol): Likewise.
26216 (machopic_indirection_name): Likewise.
ef0f4a03 26217
014753cc
UB
262182010-04-09 Uros Bizjak <ubizjak@gmail.com>
26219
26220 * config/i386/i386.md (DWI): New mode iterator.
26221 (S): New mode attribute.
26222 (shift_operand): Ditto.
26223 (shift_immediate_operand): Ditto.
26224 (ashl_input_operand): Ditto.
26225 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
26226 using SDWIM mode iterator.
26227 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
26228 pattern from *ashl{di,ti}3_1 and corresponding splitters using
26229 DWI mode iterator.
26230 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
26231 from corresponding peephole2 patterns.
26232 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
26233 and x86_64_shift_adj_1 using SWI48 mode iterator.
26234 (x86_shift<mode>_adj_2): Ditto.
26235 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
26236 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
26237 using SWI48 mode iterator.
26238 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
26239 *ashldi3_cmp_rex64 using SWI mode iterator.
26240 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
26241 *ashldi3_cconly_rex64 using SWI mode iterator.
26242 * config/i386/i386.c (ix86_split_ashl): Update for renamed
26243 x86_shift<mode>_adj_{1,2}.
26244 (ix86_split_ashr): Ditto.
26245 (ix86_split_lshr): Ditto.
26246
88dd7150
RG
262472010-04-09 Richard Guenther <rguenther@suse.de>
26248
26249 * target.h (builtin_conversion): Pass in input and output types.
26250 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
26251 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
26252 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
26253 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
26254
26255 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
26256 Handle AVX modes.
26257 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
26258
3f2060fd
RG
262592010-04-09 Richard Guenther <rguenther@suse.de>
26260
26261 PR target/43152
26262 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
26263
b690cc0f
RG
262642010-04-09 Richard Guenther <rguenther@suse.de>
26265
26266 * tree-vectorizer.h (struct _stmt_vec_info): Document
26267 that vectype is the type of the LHS.
59caab22 26268 (supportable_widening_operation, supportable_narrowing_operation):
b690cc0f
RG
26269 Get both input and output vector types as arguments.
26270 (vect_is_simple_use_1): Declare.
26271 (get_same_sized_vectype): Likewise.
26272 * tree-vect-loop.c (vect_determine_vectorization_factor):
26273 Set STMT_VINFO_VECTYPE to the vector type of the def.
26274 (vectorizable_reduction): Adjust.
26275 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
26276 Adjust. Specify the output vector type.
26277 (vect_pattern_recog_1): Adjust.
26278 * tree-vect-stmts.c (get_same_sized_vectype): New function.
26279 (vectorizable_call): Adjust.
26280 (vectorizable_conversion): Likewise.
26281 (vectorizable_operation): Likewise.
26282 (vectorizable_type_demotion): Likewise.
26283 (vectorizable_type_promotion): Likewise.
26284 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
26285 the def.
26286 (vect_is_simple_use_1): New function.
26287 (supportable_widening_operation): Get both input and output
26288 vector types.
26289 (supportable_narrowing_operation): Likewise.
26290 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
26291
3e65f251
KT
262922010-04-09 Kai Tietz <kai.tietz@onevision.com>
26293
26294 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
26295 __thiscall and _thiscall as predefined macros.
26296 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
26297 thiscall attribute handling.
26298 (ix86_comp_type_attributes): Likewise.
26299 (ix86_function_regparm): Likewise.
26300 (ix86_return_pops_args): Likewise.
26301 (init_cumulative_args): Likewise.
26302 (find_drap_reg): Likewise.
26303 (ix86_static_chain): Likewise.
26304 (x86_this_parameter): Likewise.
26305 (x86_output_mi_thunk): Likewise.
26306 (ix86_attribute_table): Add description for thiscall attribute.
014753cc 26307 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3e65f251 26308 * doc/extend.texi: Add documentation for thiscall.
27431d88 26309
dc8d2739
MLI
263102010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
26311
26312 PR c++/28584
26313 * c.opt (Wint-to-pointer-cast): Available in C++.
26314 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
26315
d47d0a8d
EB
263162010-04-08 Eric Botcazou <ebotcazou@adacore.com>
26317
26318 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
26319 * calls.c (expand_call): Pass the function type to aggregate_value_p.
26320 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
26321 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
26322 function type instead. Reorder and simplify checks.
26323
26324 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
26325
dc5ee869
JY
263262010-04-08 Jing Yu <jingyu@google.com>
26327 Zdenek Dvorak <ook@ucw.cz>
26328
26329 PR tree-optimization/42720
26330 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
014753cc
UB
26331 loop unswitch conditions here from ...
26332 (tree_unswitch_single_loop): ... here.
dc5ee869 26333
98c07c54
SP
263342010-04-08 Sebastian Pop <sebastian.pop@amd.com>
26335
26336 * tree-if-conv.c: Fix comments and simplify logic.
26337
6cbcfa9d
SP
263382010-04-08 Sebastian Pop <sebastian.pop@amd.com>
26339
26340 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
26341 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
26342 (main_tree_if_conversion): Update call to tree_if_conversion.
26343
1401cf37
MLI
263442010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
26345
26346 PR 42485
26347 * doc/invoke.texi (-b,-V): Delete.
26348 * doc/tm.texi: Do not mention -b.
26349 * gcc.c (display_help): Delete -b and -V.
26350 (process_command): Delete -b and -V.
26351 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6cbcfa9d 26352
40ac4f73 263532010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
27431d88 26354 Wolfgang Gellerich <gellerich@de.ibm.com>
40ac4f73 26355
014753cc
UB
26356 Implement target hook for loop unrolling
26357 * target.h (loop_unroll_adjust): Add a new target hook function.
26358 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
26359 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
26360 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
26361 (s390_loop_unroll_adjust): Implement the new target hook for s390.
26362 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
26363 target hook.
26364 (decide_unroll_stupid): Likewise.
40ac4f73 26365
07c60ef7
RO
263662010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26367
26368 PR target/43643
26369 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
26370
dd178909
RO
263712010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26372
26373 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
26374 (Specific, *-*-solaris2*): Likewise.
26375 Don't prefer Sun as over GNU as.
26376
cc6ae6a1
WG
263772010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
26378
c46a5e28
EB
26379 * config/s390/s390.c (override_options): Adjust the z10 defaults
26380 for max-unroll-times, max-completely-peeled-insns
26381 and max-completely-peel-times.
cc6ae6a1 26382
adfa3cd3
AK
263832010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
26384
26385 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
26386 instructions for z10.
26387 (s390_expand_setmem): Likewise.
26388 (s390_expand_cmpmem): Likewise.
26389
84ae6d7b
RG
263902010-04-08 Richard Guenther <rguenther@suse.de>
26391
26392 PR tree-optimization/43679
26393 * tree-ssa-pre.c (eliminate): Only propagate copies.
26394
5a905a2b
JJ
263952010-04-08 Jakub Jelinek <jakub@redhat.com>
26396
26397 PR bootstrap/43681
26398 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
26399 set but not used variable warning.
26400
7548c1be
WG
264012010-04-08 Wei Guozhi <carrot@google.com>
26402
26403 PR target/41653
26404 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
26405 (arm_size_rtx_costs): Call the new function when optimized for size.
26406
aa847cc8
JJ
264072010-04-08 Jakub Jelinek <jakub@redhat.com>
26408
26409 PR debug/43670
26410 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
26411 op0 is not a MEM, just return NULL instead of assertion
26412 failure.
26413 (discover_nonconstant_array_refs): Don't walk debug stmts.
26414
1dcc82c2
DK
264152010-04-08 Doug Kwan <dougkwan@google.com>
26416
26417 * configure.ac: Recognize gold and do not use its version number
26418 to test ld features.
26419 * configure: Regenerate.
26420
b0aef8a8
MK
264212010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
26422
26423 PR middle-end/40815
26424 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
26425 (negate_value): Move code to push elements to broken_up_substracts ...
26426 (eliminate_plus_minus_pair): ... here. Push operands that have no
26427 negative pair to plus_negates.
26428 (repropagate_negates, init_reassoc, fini_reassoc): Update.
26429
7a50adb7
RW
264302010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26431
2d413304
RW
26432 * doc/install.texi (Configuration): Move description of
26433 --enable-lto, --with-libelf*, --enable-gold from Java section to
26434 general section.
26435
7a50adb7
RW
26436 * doc/generic.texi (Working with declarations)
26437 (Function Properties, C and C++ Trees): Fix typos.
26438 * doc/sourcebuild.texi (Top Level): Likewise.
26439
60d3aec4
JJ
264402010-04-07 Jakub Jelinek <jakub@redhat.com>
26441
ebfbbdc5
JJ
26442 PR c/18624
26443 * tree.h (DECL_READ_P): Define.
26444 (struct tree_decl_common): Add decl_read_flag.
26445 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
26446 a set but not used warning.
26447 (merge_decls): Merge DECL_READ_P flag.
26448 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
26449 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
26450 * c-common.c (handle_used_attribute, handle_unused_attribute):
26451 Likewise.
26452 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
26453 New prototypes.
26454 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
26455 New functions.
26456 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
26457 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
26458 c_parser_binary_expression, c_parser_cast_expression,
26459 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
26460 Call default_function_array_read_conversion instead of
26461 default_function_array_conversion where needed.
26462 (c_parser_unary_expression, c_parser_conditional_expression,
26463 c_parser_postfix_expression_after_primary, c_parser_initelt):
26464 Likewise. Call mark_exp_read where needed.
26465 (c_parser_statement_after_labels, c_parser_asm_operands,
26466 c_parser_typeof_specifier, c_parser_sizeof_expression,
26467 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
26468 where needed.
26469 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
26470 New.
26471 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
26472 (warn_unused_but_set_parameter): Default to warn_unused
26473 && extra_warnings.
26474 * doc/invoke.texi: Document -Wunused-but-set-variable and
26475 -Wunused-but-set-parameter.
26476
60d3aec4
JJ
26477 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
26478 used count variable.
26479 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
26480 when operandN variables aren't used in the body of the expander
26481 or splitter.
26482 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
26483 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
26484 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
26485 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
26486 FOR_EACH_IMM_USE_ON_STMT): Likewise.
26487 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
26488 * tree.c (PROCESS_ARG): Likewise.
26489
87cf0651
SB
264902010-04-07 Simon Baldwin <simonb@google.com>
26491
26492 * diagnostic.h (diagnostic_override_option_index): New macro to
26493 set a diagnostic's option_index.
26494 * c-tree.h (c_cpp_error): Add warning reason argument.
26495 * opts.c (_warning_as_error_callback): New.
26496 (register_warning_as_error_callback): Store callback for
26497 warnings enabled via enable_warning_as_error.
26498 (enable_warning_as_error): Call callback, minor code tidy.
26499 * opts.h (register_warning_as_error_callback): Declare.
26500 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
26501 response to -Werror=.
26502 (c_common_init_options): Register warning_as_error_callback in opts.c.
26503 * common.opt: Add -Wno-cpp option.
26504 * c-common.c (struct reason_option_codes_t): Map cpp warning
26505 reason codes to gcc option indexes.
26506 * (c_option_controlling_cpp_error): New function, lookup the gcc
26507 option index for a cpp warning reason code.
26508 * (c_cpp_error): Add warning reason argument, call
26509 c_option_controlling_cpp_error for diagnostic_override_option_index.
26510 * doc/invoke.texi: Document -Wno-cpp.
26511
2ea9dc64
RG
265122010-04-07 Richard Guenther <rguenther@suse.de>
26513
26514 * ipa-reference.c (mark_load): Use get_base_address.
26515 (mark_store): Likewise.
26516
26517 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
26518 inserting GIMPLE_NOPs into the IL.
26519 * tree-ssa-structalias.c (get_constraint_for_component_ref):
26520 Explicitly strip handled components and indirect references.
59caab22 26521
2ea9dc64
RG
26522 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
26523 folding address expressions.
26524 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
26525 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
26526 operand_equal_p to compare decls.
26527 (ptr_deref_may_alias_decl_p): Likewise.
26528 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
26529 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
26530 Handle reversed comparison ops.
26531 * tree-sra.c (asm_visit_addr): Use get_base_address.
014753cc 26532 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2ea9dc64
RG
26533 * ipa-reference.c (mark_address): Use get_base_address.
26534
95d938ee
RG
265352010-04-07 Richard Guenther <rguenther@suse.de>
26536
26537 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
26538 Propagate constants everywhere.
26539
1a299ae4
JJ
265402010-04-07 Jakub Jelinek <jakub@redhat.com>
26541
26542 PR debug/43516
26543 * tree.c (MAX_INT_CACHED_PREC): Define.
26544 (nonstandard_integer_type_cache): New array.
26545 (build_nonstandard_integer_type): Cache results for precision
26546 <= MAX_INT_CACHED_PREC.
26547
0d3c82d6
RG
265482010-04-07 Richard Guenther <rguenther@suse.de>
26549
26550 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
26551 -fargument-noalias-global, -fargument-noalias-anything): Remove.
26552 * common.opt: Likewise.
014753cc
UB
26553 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
26554 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
0d3c82d6
RG
26555 (nonoverlapping_memrefs_p): Likewise.
26556 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
26557 * opts.c (common_handle_option): Handle OPT_fargument_alias,
26558 OPT_fargument_noalias, OPT_fargument_noalias_anything and
26559 OPT_fargument_noalias_global for backward compatibility.
26560
12bd5a1e
RG
265612010-04-07 Richard Guenther <rguenther@suse.de>
26562
26563 PR tree-optimization/43270
014753cc 26564 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
12bd5a1e
RG
26565 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
26566 * tree-ssa-pre.c (phi_translate_1): Adjust.
26567 (fully_constant_expression): Split out vn_reference handling to ...
26568 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
26569 Fold reads from constant strings.
26570 (vn_reference_lookup): Handle fully constant references.
26571 (vn_reference_lookup_pieces): Likewise.
26572 * Makefile.in (expmed.o-warn): Add -Wno-error.
26573
a7752396
MJ
265742010-04-07 Martin Jambor <mjambor@suse.cz>
26575
26576 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
26577
6392bea6
IS
265782010-04-07 Iain Sandoe <iains@gcc.gnu.org>
26579
26580 PR driver/41594
26581 * gcc.c: Add -static-libstdc++ to list of recognized options.
26582
9af27220
RO
265832010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26584
014753cc 26585 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9af27220 26586
83a416b0
RG
265872010-04-07 Richard Guenther <rguenther@suse.de>
26588
26589 PR middle-end/42617
014753cc
UB
26590 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
26591 bases build simple mem attributes to retain points-to information.
83a416b0 26592
366f945f
RG
265932010-04-07 Richard Guenther <rguenther@suse.de>
26594
26595 PR middle-end/42617
26596 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
26597 preserve points-to related information.
26598
56c47f22
RG
265992010-04-07 Richard Guenther <rguenther@suse.de>
26600
26601 PR middle-end/42617
26602 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
26603 discard plain indirect references.
014753cc 26604 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
56c47f22
RG
26605 * tree.c (tree_nop_conversion): Likewise.
26606
a42f1217
DS
266072010-04-07 Dodji Seketeli <dodji@redhat.com>
26608
26609 PR debug/43628
26610 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
26611
b97b2634
KT
266122010-04-06 Kai Tietz <kai.tietz@onevision.com>
26613
26614 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
26615 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
26616
62ef2431
SP
266172010-04-07 Sebastian Pop <sebastian.pop@amd.com>
26618
26619 * tree-if-conv.c: Fix indentation and comments.
26620
baaa8e96
SP
266212010-04-07 Sebastian Pop <sebastian.pop@amd.com>
26622
26623 * tree-if-conv.c: Sort static functions in topological order.
26624
b6779d81
SP
266252010-04-07 Sebastian Pop <sebastian.pop@amd.com>
26626
26627 * tree-if-conv.c: Fix indentation and comments.
26628
9310a3e2
SP
266292010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26630
26631 PR middle-end/43519
26632 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
014753cc
UB
26633 lang_hooks.types.type_for_size instead of
26634 build_nonstandard_integer_type.
9310a3e2
SP
26635 When converting an unsigned type to signed, double its precision.
26636 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
26637 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
014753cc
UB
26638 (graphite_create_new_loop_guard): When ub + 1 wraps around,
26639 use lb <= ub.
9310a3e2
SP
26640
266412010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26642
26643 PR middle-end/43519
26644 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
26645 POINTER_PLUS_EXPR for pointer types.
26646
266472010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26648
26649 PR middle-end/43519
26650 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
26651 * graphite-clast-to-gimple.c: Include langhooks.h.
26652 (max_signed_precision_type): New.
26653 (max_precision_type): Takes two types as arguments.
26654 (precision_for_value): New.
26655 (precision_for_interval): New.
26656 (gcc_type_for_interval): New.
26657 (gcc_type_for_value): New.
26658 (gcc_type_for_clast_term): New.
26659 (gcc_type_for_clast_red): New.
26660 (gcc_type_for_clast_bin): New.
26661 (gcc_type_for_clast_expr): Split up into several functions.
26662 (gcc_type_for_clast_eq): Rewritten.
26663 (compute_bounds_for_level): New.
26664 (compute_type_for_level_1): New.
26665 (compute_type_for_level): New.
26666 (gcc_type_for_cloog_iv): Removed.
26667 (gcc_type_for_iv_of_clast_loop): Rewritten.
26668 (graphite_create_new_loop): Compute the lower and upper bound types
26669 with gcc_type_for_clast_expr.
26670 (graphite_create_new_loop_guard): Same.
26671 (find_cloog_iv_in_expr): Removed.
26672 (compute_cloog_iv_types_1): Removed.
26673 (compute_cloog_iv_types): Removed.
26674 (gloog): Do not call compute_cloog_iv_types.
26675 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
26676 GBB_CLOOG_IV_TYPES.
26677 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
26678 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
26679 (GBB_CLOOG_IV_TYPES): Removed.
26680
266812010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26682
26683 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
26684 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
26685 (detect_commutative_reduction): Same.
26686
a3b9e73c
SP
266872010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26688
26689 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
26690 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
26691 argument.
26692 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
26693 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
26694 (rewrite_commutative_reductions_out_of_ssa): Same.
26695 * passes.c (execute_function_todo): Call verify_ssa for every pass
26696 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
26697 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
26698 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
26699 with an extra argument.
26700 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
26701 verify_ssa only when the extra argument is true.
26702 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
26703 with an extra argument.
26704 (tree_transform_and_unroll_loop): Same.
26705
98b6e9dd
SP
267062010-04-06 Sebastian Pop <sebastian.pop@amd.com>
26707
26708 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
26709 for all the passes of the LNO having LOOP_CLOSED_SSA.
26710 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
26711 * tree-loop-distribution.c (pass_loop_distribution): Same.
26712 * tree-pass.h (TODO_verify_loops): Removed.
26713 * tree-ssa-loop.c (pass_tree_loop_init): Same.
26714 (pass_lim): Same.
26715 (pass_tree_unswitch): Same.
26716 (pass_predcom): Same.
26717 (pass_vectorize): Same.
26718 (pass_linear_transform): Same.
26719 (pass_graphite_transforms): Same.
26720 (pass_iv_canon): Same.
26721 (pass_complete_unroll): Same.
26722 (pass_complete_unrolli): Same.
26723 (pass_parallelize_loops): Same.
26724 (pass_loop_prefetch): Same.
26725 (pass_iv_optimize): Same.
26726
c86a3947
CF
267272010-04-06 Changpeng Fang <changpeng.fang@amd.com>
26728
26729 PR middle-end/32824
26730 * passes.c (init_optimization_passes): Move pass_lim before
26731 pass_copy_prop and pass_dce_loop.
26732
37794981
JJ
267332010-04-06 Jakub Jelinek <jakub@redhat.com>
26734
26735 PR target/43667
26736 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
26737 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
26738 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
26739 MULTI_* defines for 4 argument vpermil2p* builtins.
26740
d079b87f
UB
267412010-04-06 Uros Bizjak <ubizjak@gmail.com>
26742
26743 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
26744 * config/i386/i386.c (x86_maybe_negate_const_int): New.
26745 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
26746 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
26747 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
26748 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
26749 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
26750 Use x86_maybe_negate_const_int to output insn mnemonic.
26751 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
26752 check from instruction predicate. Update comments.
26753 * config/i386/sync.md (sync_add<mode>): Use
26754 x86_maybe_negate_const_int to output insn mnemonic.
b1a0b3b4 26755
d079b87f
UB
267562010-04-06 Jan Hubicka <jh@suse.cz>
26757
26758 PR tree-optimization/42906
26759 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
26760 IGNORE_SELF argument. Set visited_control_parents for fully
26761 processed BBs.
b1a0b3b4
JH
26762 (find_obviously_necessary_stmts): Update call of
26763 mark_control_dependent_edges_necessary.
d079b87f 26764 (propagate_necessity): Likewise. Handle PHI edges more curefully.
b1a0b3b4 26765
6593d123
UB
267662010-04-06 Uros Bizjak <ubizjak@gmail.com>
26767
26768 * config/i386/i386.md: Remove comment about 'e' and 'E'
26769 operand modifier.
26770
56186ac2
RG
267712010-04-06 Richard Guenther <rguenther@suse.de>
26772
26773 PR tree-optimization/43627
26774 * tree-vrp.c (extract_range_from_unary_expr): Widenings
26775 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
26776 not varying.
26777
7d11d368
JJ
267782010-04-06 Jakub Jelinek <jakub@redhat.com>
26779
d3bccded
JJ
26780 * BASE-VER: Change to 4.6.0.
26781
7d11d368
JJ
26782 PR target/43638
26783 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
26784 handling.
26785
eb12d0ae
RG
267862010-04-06 Richard Guenther <rguenther@suse.de>
26787
26788 PR middle-end/43661
26789 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
26790
53b79425
RW
267912010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26792
26793 * doc/invoke.texi (Optimize Options): Document that LTO
26794 won't remove object access purely due to incompatible
26795 declarations.
26796
7e0ec110
MK
267972010-04-04 Matthias Klose <doko@ubuntu.com>
26798
26799 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
26800 Initialize variable.
26801
2b22e382
RG
268022010-04-03 Richard Guenther <rguenther@suse.de>
26803
26804 PR middle-end/42509
26805 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
26806 require a non-NULL MEM_OFFSET.
26807
c75c517d
SB
268082010-04-02 Steven Bosscher <steven@gcc.gnu.org>
26809
d079b87f 26810 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
c75c517d
SB
26811 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
26812 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
26813 config/alpha/predicates.md, config/arm/arm.md,
26814 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
26815 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
26816 config/darwin9.h, config/darwin.c, config/darwin.h,
26817 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
26818 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
26819 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
26820 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
26821 config/mips/mips.md, config/mn10300/mn10300.c,
26822 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
26823 config/rs6000/aix.h, config/rs6000/dfp.md,
26824 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
26825 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
26826 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
26827 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
26828 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
26829 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
26830 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
26831 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
26832 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
26833 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
26834 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
26835 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
26836 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
26837 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
26838 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
26839 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
26840 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
26841 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
26842 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
26843 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
26844 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
26845 opt-functions.awk, opth-gen.awk, params.def, passes.c,
26846 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
26847 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
26848 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
26849 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
26850 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
26851 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
26852 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
26853 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
26854 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
26855 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
26856 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
26857 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
26858 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
26859 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
26860
4d9e8446
RW
268612010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26862
26863 PR other/43620
26864 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
26865 * aclocal.m4: Regenerate.
26866
1cdaa211
RG
268672010-04-02 Richard Guenther <rguenther@suse.de>
26868
26869 PR tree-optimization/43629
26870 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
26871 if we have seen a constant value.
26872
d33da5cd
JM
268732010-04-02 Joseph Myers <joseph@codesourcery.com>
26874
014753cc 26875 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
d33da5cd 26876
2e5505a4
RE
268772010-04-02 Richard Earnshaw <rearnsha@arm.com>
26878
26879 PR target/43469
d079b87f 26880 * arm.c (legitimize_tls_address): Adjust call to
2e5505a4
RE
26881 gen_tls_load_dot_plus_four.
26882 (arm_note_pic_base): New function.
26883 (arm_cannot_copy_insn_p): Use it.
26884 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
26885 constraint.
26886
bdfbd9df
RW
268872010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26888
26889 PR bootstrap/43531
26890
26891 Revert:
26892 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
26893
26894 * Makefile.in ($(out_object_file)): Depend on
26895 gt-$(basename $(notdir $(out_file))).h.
26896
f4a4b582 268972010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
2bc40daa 26898
014753cc 26899 * config.gcc (lm32-*-rtems*): Add t-lm32.
2bc40daa 26900
f4a4b582 269012010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
2bc40daa 26902
014753cc
UB
26903 * config.gcc: Add lm32-*-rtems*.
26904 * config/lm32/rtems.h: New file.
2bc40daa 26905
abfb38d7
DK
269062010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
26907
26908 PR target/42609
26909 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
26910
2f43d500
JJ
269112010-04-01 Jakub Jelinek <jakub@redhat.com>
26912
26913 * dwarf2out.c (output_compilation_unit_header): For
26914 -gdwarf-4 use version 4 instead of version 3.
26915 (output_line_info): For version 4 and above emit additional
26916 maximum ops per insn header field.
26917 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
26918
26919 * dwarf2out.c (is_c_family, is_java): Remove.
26920 (lower_bound_default): New function.
26921 (add_bound_info, gen_descr_array_type_die): Use it.
26922
777351a5
DS
269232010-04-01 Dodji Seketeli <dodji@redhat.com>
26924
26925 PR debug/43325
26926 * dwarf2out.c (gen_variable_die): Allow debug info for variable
26927 re-declaration when it happens in a function.
26928
6544865a
AH
269292010-04-01 Aldy Hernandez <aldyh@redhat.com>
26930
26931 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
26932 (cgraph_remove_function_insertion_hook): Same.
26933 (cgraph_call_function_insertion_hooks): Same.
26934
5e9fb3db
RG
269352010-04-01 Richard Guenther <rguenther@suse.de>
26936
26937 PR middle-end/43614
26938 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
26939 and TREE_THIS_VOLATILE.
26940 (copy_ref_info): Likewise.
26941 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
26942 * tree.c (build6_stat): Ignore side-effects of all but arg5
26943 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
26944 TARGET_MEM_REF.
26945
eb258d7f
RG
269462010-04-01 Richard Guenther <rguenther@suse.de>
26947
26948 PR tree-optimization/43607
26949 * ipa-type-escape.c (check_call): Do not access non-existing
26950 arguments.
26951
aa8bfcad
RG
269522010-04-01 Richard Guenther <rguenther@suse.de>
26953
26954 PR middle-end/43602
26955 Revert
f4a4b582
EB
26956 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
26957 Jack Howarth <howarth@bromo.med.uc.edu>
aa8bfcad
RG
26958
26959 * tree-profile.c (tree_init_ic_make_global_vars): Make static
26960 variables TLS.
26961
8c5cfa89
RO
269622010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26963
26964 * doc/install.texi (Prerequisites): Document libelf usability on
26965 IRIX 5/6 and Solaris 2.
26966 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
26967 Update GNU as, GNU ld requirements.
26968 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
26969 Document Sun Studio compiler download.
26970 Update and simplify as, ld recommendations.
26971 (Specific, *-*-solaris2.7): Note obsoletion, removal.
26972
ddcc3550
RO
269732010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26974
9af27220 26975 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
ddcc3550
RO
26976 with_tune_32 to pentium4.
26977
93234e58
UB
269782010-04-01 Uros Bizjak <ubizjak@gmail.com>
26979
26980 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
26981
ef369ad8
RO
269822010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26983
26984 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
26985 obsoletion, removal.
26986 Update IDO URL.
26987 Document GNU as requirement.
26988 Update configure requirements.
014753cc 26989 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
ef369ad8
RO
26990 Recomment IRIX 6.5.18+.
26991 Document IDF/IDL requirement.
26992 Document GNU as requirement.
26993 Document GNU ld bootstrap failure.
26994 Remove freeware.sgi.com reference.
26995
92d80770
RO
269962010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
26997
26998 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
26999 UNIX V4.0, V5.0 obsoletion, removal.
27000 Remove --with-gc=simple reference.
27001 Update VM requirements during bootstrap.
27002 Remove -oldas bootstrap description.
27003 Update binutils reference.
27004 Remove comparison failure note.
27005
25d635d9
SP
270062010-03-31 Richard Guenther <rguenther@suse.de>
27007 Zdenek Dvorak <ook@ucw.cz>
27008 Sebastian Pop <sebastian.pop@amd.com>
27009
27010 PR middle-end/43464
27011 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
27012 with multiple arguments.
27013 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
27014
270152010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27016
27017 * graphite-dependences.c (print_pddr): Call print_pdr with an
27018 extra argument.
27019 * graphite-poly.c (debug_pdr): Add an extra argument for the
27020 verbosity level.
27021 (print_pdr): Same.
27022 (print_pbb_domain): Same.
27023 (print_pbb): Same.
27024 (print_scop_context): Same.
27025 (print_scop): Same.
27026 (print_cloog): Same.
27027 (debug_pbb_domain): Same.
27028 (debug_pbb): Same.
27029 (print_pdrs): Same.
27030 (debug_pdrs): Same.
27031 (debug_scop_context): Same.
27032 (debug_scop): Same.
27033 (debug_cloog): Same.
27034 (print_scop_params): Same.
27035 (debug_scop_params): Same.
27036 (print_iteration_domain): Same.
27037 (print_iteration_domains): Same.
27038 (debug_iteration_domain): Same.
27039 (debug_iteration_domains): Same.
27040 (print_scattering_function): Same.
27041 (print_scattering_functions): Same.
27042 (debug_scattering_function): Same.
27043 (debug_scattering_functions): Same.
27044 * graphite-poly.h (debug_pdr): Update declaration.
27045 (print_pdr): Same.
27046 (print_pbb_domain): Same.
27047 (print_pbb): Same.
27048 (print_scop_context): Same.
27049 (print_scop): Same.
27050 (print_cloog): Same.
27051 (debug_pbb_domain): Same.
27052 (debug_pbb): Same.
27053 (print_pdrs): Same.
27054 (debug_pdrs): Same.
27055 (debug_scop_context): Same.
27056 (debug_scop): Same.
27057 (debug_cloog): Same.
27058 (print_scop_params): Same.
27059 (debug_scop_params): Same.
27060 (print_iteration_domain): Same.
27061 (print_iteration_domains): Same.
27062 (debug_iteration_domain): Same.
27063 (debug_iteration_domains): Same.
27064 (print_scattering_function): Same.
27065 (print_scattering_functions): Same.
27066 (debug_scattering_function): Same.
27067 (debug_scattering_functions): Same.
27068
270692010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27070
27071 * graphite-poly.c (print_scattering_function_1): New.
27072 (print_scattering_function): Call it.
27073 (print_scop_params): Remove spaces at the end of lines.
27074 (print_cloog): New.
27075 (debug_cloog): New.
27076 * graphite-poly.h (print_cloog): Declared.
27077 (debug_cloog): Declared.
27078
270792010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27080
27081 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
27082 in loop->header.
27083 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
27084 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
27085 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
27086 to switch between adding the IV bump in loop->latch or in loop->header.
27087
270882010-03-31 Sebastian Pop <sebastian.pop@amd.com>
27089
27090 * graphite-poly.c (print_scattering_function): Pretty print following
27091 the scoplib format.
27092 (print_pdr): Same.
27093 (print_pbb_domain): Same.
27094 (dump_gbb_cases): Same.
27095 (dump_gbb_conditions): Same.
27096 (print_pdrs): Same.
27097 (print_pbb): Same.
27098 (print_scop_params): Same.
27099 (print_scop_context): Same.
27100 (print_scop): Same.
27101 (print_pbb_body): New.
27102 (lst_indent_to): New.
27103 (print_lst): Start new lines with a #.
27104 * graphite-poly.h (pbb_bb): New.
27105 (pbb_index): Use pbb_bb.
27106 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
27107 disjuncts.
27108 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
27109
2080bd29
JJ
271102010-03-31 Jakub Jelinek <jakub@redhat.com>
27111
290d8971
JJ
27112 * dwarf2out.c (size_of_die): For -gdwarf-4 use
27113 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
27114 and 0 instead of 1 for dw_val_class_flag.
27115 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
27116 dw_val_class_range_list, dw_val_class_loc_list,
27117 dw_val_class_lineptr and dw_val_class_macptr, use
27118 DW_FORM_flag_present for dw_val_class_flag and
27119 DW_FORM_exprloc for dw_val_class_loc.
27120 (output_die): For -gdwarf-4 print dw_val_class_loc
27121 size as uleb128 instead of 1 or 2 bytes and don't print
27122 anything for dw_val_class_flag.
27123
109f4af3
JJ
27124 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
27125 instead of cselib_lookup following by tweaking locs->setting_insn.
27126
2080bd29
JJ
27127 PR bootstrap/43596
27128 * cselib.c (cselib_process_insn): Clear cselib_current_insn
27129 even before returning from label, setjmp call or volatile asm
27130 handling.
27131
33283dad
RG
271322010-03-31 Richard Guenther <rguenther@suse.de>
27133
27134 PR middle-end/43600
27135 * cgraphunit.c (cgraph_output_in_order): Do not allocate
27136 temporary data on stack.
27137
a0c21029
RO
271382010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27139
27140 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
27141 (PUSHSECTION_ASM_OP): Remove.
27142 (POPSECTION_ASM_OP): Remove.
27143 (PUSHSECTION_FORMAT): Remove.
27144 * config/sol2.h (PUSHSECTION_FORMAT): Define.
27145 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
27146 * config/sol2.c (solaris_output_init_fini): Use it.
27147
a3f410a2
JZ
271482010-03-31 Jie Zhang <jie@codesourcery.com>
27149
27150 PR 43574
27151 * opt-functions.awk (var_type_struct): Use signed char type
27152 for simple variables.
27153
f0c01ffd
RO
271542010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27155
27156 * config/sol2.c: Include output.h.
27157 (solaris_assemble_visibility): New function.
27158 * config/t-sol2 (sol2.o): Add output.h dependency.
27159 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
27160 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
27161 Redefine.
27162
132b4e82
JJ
271632010-03-31 Jakub Jelinek <jakub@redhat.com>
27164
d8d55ac0
JJ
27165 PR target/43580
27166 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
27167 V2SImode or XFmode on PRE_DEC.
27168
132b4e82
JJ
27169 PR debug/43557
27170 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
27171 BLKmode.
27172
dc12b70e
JZ
271732010-03-31 Jie Zhang <jie@codesourcery.com>
27174
27175 PR 43562
27176 * reload.h (caller_save_initialized_p): Declare.
27177 * toplev.c (backend_init_target): Don't call
93234e58 27178 init_caller_save but set caller_save_initialized_p to false.
dc12b70e
JZ
27179 * caller-save.c (caller_save_initialized_p): Define.
27180 (init_caller_save): Check caller_save_initialized_p.
27181 * ira.c (ira): Call init_caller_save if flag_caller_saves.
27182
4a2f22ff
RO
271832010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27184
27185 PR target/39048
27186 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
27187 and soft-fp/t-softfp to tmake_file.
27188 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
27189 (LIBGCC2_TF_CEXT): Define.
27190 (TF_SIZE): Define.
27191
5847e8da
AO
271922010-03-30 Alexandre Oliva <aoliva@redhat.com>
27193
27194 PR debug/42977
27195 * cselib.c (n_useless_values): Document handling of debug locs.
27196 (n_useless_debug_values, n_debug_values): New variables.
27197 (new_elt_loc_list): Don't add to debug values, keep count.
27198 (promote_debug_loc): New.
27199 (cselib_reset_table): Zero new variables.
27200 (entry_and_rtx_equal_p): Promote debug locs.
27201 (discard_useless_locs): Increment n_useless_debug_values for
27202 debug values.
27203 (remove_useless_values): Adjust n_useless_values and n_debug_values
27204 with n_useless_debug_values.
27205 (add_mem_for_addr): Promote debug locs.
27206 (cselib_lookup_mem): Likewise.
27207 (cselib_lookup_addr): Renamed to...
93234e58 27208 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
5847e8da
AO
27209 (cselib_log_lookup): ... this. Turn into...
27210 (cselib_lookup_addr): ... new wrapper.
27211 (cselib_lookup_from_insn): New.
27212 (cselib_invalidate_regno): Increment n_useless_debug_values for
27213 debug values.
27214 (cselib_invalidate_mem): Likewise.
27215 (cselib_process_insn): Take n_deleted and n_debug_values into
27216 account to guard remove_useless_value call.
27217 (cselib_finish): Zero n_useless_debug_values.
27218 * cselib.h (cselib_lookup_from_insn): Declare.
27219 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
27220 (sched_analyze_2): Likewise.
27221
03a5f060
JJ
272222010-03-30 Jakub Jelinek <jakub@redhat.com>
27223
e9e00885
JJ
27224 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
27225 functions.
27226 (adjust_mems): Replace narrowing SUBREG of expression containing
27227 just PLUS, MINUS, MULT and ASHIFT of registers and constants
27228 with operations in the narrower mode.
27229
03a5f060 27230 PR debug/43593
93234e58
UB
27231 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
27232 regs_invalidated_by_call instead all call_used_reg_set registers.
03a5f060 27233
8533c9d8
SP
272342010-03-30 Sebastian Pop <sebastian.pop@amd.com>
27235
27236 PR middle-end/43430
27237 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
27238 pointer comparisons with types_compatible_p.
27239 * tree-vect-stmts.c (vectorizable_call): Same.
27240 (vectorizable_condition): Same.
27241
a3e7e012
AK
272422010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27243
27244 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
27245 stack check if the mask would be zero.
27246
f4a4b582
EB
272472010-03-30 Seongbae Park <seongbae.park@gmail.com>
27248 Jack Howarth <howarth@bromo.med.uc.edu>
40ae6799
SP
27249
27250 * tree-profile.c (tree_init_ic_make_global_vars): Make static
27251 variables TLS.
27252
2bcba94b
JM
272532010-03-30 Joseph Myers <joseph@codesourcery.com>
27254
27255 PR other/25232
27256 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
27257 and __unordtf2.
27258 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
27259 Include ___unordxf2 and ___unordtf2.
27260 * config/i386/libgcc-glibc.ver: Do not define inheritance from
27261 GCC_4.4.0 here.
27262
15baf7f8
TG
272632010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
27264
27265 * config/lm32/t-lm32: New file.
27266 * config.gcc: Use the above file when targetting lm32.
27267
fba48836
DS
272682010-03-28 Duncan Sands <baldrick@free.fr>
27269
93234e58 27270 * Makefile.in (PLUGIN_HEADERS): Add except.h.
fba48836 27271
49a71bc8
SP
272722010-03-29 Sebastian Pop <sebastian.pop@amd.com>
27273
27274 PR middle-end/43431
27275 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
27276 Improve vectorization cost model diagnostic.
27277
22a8be9e
SP
272782010-03-29 Sebastian Pop <sebastian.pop@amd.com>
27279
27280 PR middle-end/43436
27281 * tree-vect-data-refs.c (vect_analyze_data_refs): When
27282 compute_data_dependences_for_loop returns false, early exit
27283 and output an extra diagnostic for the failed data reference
27284 analysis.
27285
58adb739
RG
272862010-03-29 Richard Guenther <rguenther@suse.de>
27287
27288 PR tree-optimization/43560
93234e58
UB
27289 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
27290 (can_sm_ref_p): Treat stores to readonly locations as trapping.
58adb739 27291
3b34d92c
JZ
272922010-03-29 Jie Zhang <jie@codesourcery.com>
27293
27294 PR 43564
27295 * toplev.c (process_options): Set optimization_default_node
27296 and optimization_current_node.
27297 * opts.c (decode_options): Don't set optimization_default_node
27298 and optimization_current_node.
27299
090f6087
RC
273002010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
27301
27302 * config/rtems.h: Abandon -qrtems_debug.
27303
88cc1e04
JH
273042010-03-28 Jan Hubicka <jh@suse.cz>
27305
27306 PR tree-optimization/43505
27307 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
27308 map should not be copied.
27309
b932b8b1
JDA
273102010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27311
27312 PR middle-end/41674
27313 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
27314 cdtors, set DECL_PRESERVE_P.
27315 * ipa.c (cgraph_externally_visible_p): Return true if declaration
27316 should be preseved.
27317
fb6807b8
UB
273182010-03-27 Uros Bizjak <ubizjak@gmail.com>
27319
27320 PR tree-optimization/43528
27321 * stor-layout.c (place_field): Check that constant fits into
27322 unsigned HWI when skipping calculation of MS bitfield layout.
27323
a9deb256
JH
273242010-03-27 Jan Hubicka <jh@suse.cz>
27325
27326 PR middle-end/43391
27327 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
27328 notice_global_symbol work.
27329
5a9c8a1b
JJ
273302010-03-27 Jakub Jelinek <jakub@redhat.com>
27331
27332 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
27333 instead of dwarf2out_decl.
27334 (struct var_loc_node): Remove section_label field.
27335 (dwarf2out_function_decl): New function.
27336 (dwarf2out_var_location): Don't set section_label field.
27337 (dwarf2out_begin_function): Don't empty decl_loc_table here.
27338
62f7fd21
MM
273392010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
27340
27341 PR tree-optimization/43544
27342 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
27343 First argument for builtin vectorized function hook is now a
27344 tree to be able to distinguish between machine specific and
27345 standard builtins.
27346 * targhooks.c (default_builtin_vectorized_function): Ditto.
27347 * targhooks.h (default_builtin_vectorized_function): Ditto.
27348 * target.h (struct gcc_target): Ditto.
27349 * tree-vect-stmts.c (vectorizable_function): Ditto.
27350 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
27351 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
27352 Ditto.
27353
10e76c1a
JM
273542010-03-26 Joseph Myers <joseph@codesourcery.com>
27355
27356 PR c/43381
27357 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
27358 nested binding iff it is a FUNCTION_DECL.
27359 (store_parm_decls_newstyle): Pass nested=true to bind for
27360 FUNCTION_DECLs amongst parameters.
27361
89245ef2
JJ
273622010-03-26 Jakub Jelinek <jakub@redhat.com>
27363
2155f963
JJ
27364 * var-tracking.c (vt_expand_loc_callback): Don't run
27365 cselib_expand_value_rtx_cb in dummy mode if
27366 cselib_dummy_expand_value_rtx_cb returned false.
27367
e80691a0
JJ
27368 * var-tracking.c (emit_note_insn_var_location): For one part
27369 notes with offset 0, don't add EXPR_LIST around the location.
27370 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
27371 add_location_or_const_value_attribute): Adjust for that change.
27372
89245ef2
JJ
27373 PR debug/43540
27374 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
27375 into first operand and location into second.
27376 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
27377 dw_cfi_oprnd_loc for DW_CFA_expression.
27378 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
27379 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
27380 assume first argument is regnum and second argument is location.
27381
c5e43cc4
UB
273822010-03-26 Uros Bizjak <ubizjak@gmail.com>
27383
27384 PR target/42113
27385 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
27386 of scratch register to DImode. Split to DImode comparison operator.
27387 Use SImode subreg of scratch register in the multiplication.
27388 (*cmp_sadd_sidi): Ditto.
27389 (*cmp_ssub_si): Ditto.
27390 (*cmp_ssub_sidi): Ditto.
27391
fb04bb84
UB
273922010-03-26 Uros Bizjak <ubizjak@gmail.com>
27393
27394 PR target/43524
27395 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
27396 Remove invalid assert and wrong comment.
27397
6ca5d1f6
JJ
273982010-03-26 Jakub Jelinek <jakub@redhat.com>
27399
27400 PR debug/43516
27401 * flags.h (final_insns_dump_p): New extern.
27402 * final.c (final_insns_dump_p): New variable.
27403 (rest_of_clean_state): Set it before -fdump-final-insns=
27404 dumping, clear afterwards.
27405 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
27406 MEM_ALIAS_SET on MEMs.
27407
46bc665f
DM
274082010-03-26 David S. Miller <davem@davemloft.net>
27409
27410 * configure.ac: Fix sparc GOTDATA_OP bug check.
27411 * configure: Rebuild.
27412
9fa195b8
AM
274132010-03-26 Alan Modra <amodra@gmail.com>
27414
27415 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
27416
9b7e6950
RO
274172010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27418
27419 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
27420 TLS_SECTION_ASM_FLAG.
27421
d53c73e0
JJ
274222010-03-25 Jakub Jelinek <jakub@redhat.com>
27423
935ec2c9
JJ
27424 PR bootstrap/43511
27425 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
27426 Clear first_function_block_is_cold.
27427
d53c73e0
JJ
27428 PR c/43385
27429 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
27430 argument if the argument is truth_value_p.
27431
871c9abb
MM
274322010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
27433
fb04bb84 27434 * config/rs6000/constraints.md: Update copyright year for my changes.
94ad7adc 27435
871c9abb
MM
27436 PR target/43484
27437 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
27438 used in reg+reg addressing, swap registers.
27439
81ef7e24
JJ
274402010-03-24 Jakub Jelinek <jakub@redhat.com>
27441
6d217c32
JJ
27442 PR debug/43293
27443 * target.h (struct gcc_target): Add code_end hook.
27444 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
27445 if not yet defined.
27446 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
27447 * toplev.c (compile_file): Call targetm.asm_out.code_end
27448 hook before unwind info/debug info output.
27449 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
27450 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
27451 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
27452 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
27453 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
27454 * config/i386/i386.c (ix86_file_end): Renamed to...
27455 (ix86_code_end): ... this. Make static. Don't call
27456 file_end_indicate_exec_stack. Emit unwind info using
27457 final_start_function/final_end_function.
27458 (darwin_x86_file_end): Remove.
27459 (TARGET_ASM_CODE_END): Define.
27460 * config/i386/i386.h (TARGET_ASM_FILE_END,
27461 NEED_INDICATE_EXEC_STACK): Don't define.
27462 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
27463 (TARGET_ASM_FILE_END): Define to darwin_file_end.
27464 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
27465 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
27466
81ef7e24
JJ
27467 PR target/43498
27468 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
27469 at the beginning and final_end_function at the end.
27470 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
27471
f1c26cad
RO
274722010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27473
27474 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
27475 and Sun as TLS syntax.
27476 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
27477 * configure: Regenerate.
27478 * config.in: Regenerate.
27479 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
27480 (default_elf_asm_named_section): Use it.
27481 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
27482 (i386_output_dwarf_dtprel): Likewise.
27483 (output_addr_const_extra): Likewise.
27484 (output_pic_addr_const): Lowercase @GOTTPOFF.
27485 (output_addr_const_extra): Likewise.
27486 (output_pic_addr_const): Lowercase @GOTNTPOFF.
27487 (output_addr_const_extra): Likewise.
27488 (output_pic_addr_const): Lowercase @INDNTPOFF.
27489 (output_addr_const_extra): Likewise.
27490 (output_pic_addr_const): Lowercase @NTPOFF.
27491 (output_addr_const_extra): Likewise.
27492 (output_pic_addr_const): Lowercase @TPOFF.
27493 (output_addr_const_extra): Likewise.
fb04bb84 27494 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
f1c26cad
RO
27495 (*tls_global_dynamic_64): Likewise.
27496 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
27497 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
27498
27499 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
27500 (ASM_OUTPUT_TLS_COMMON): Use it.
27501 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
27502
27503 PR target/38118
fb04bb84 27504 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
f1c26cad
RO
27505 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
27506 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
27507 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
27508 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
27509 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
27510
d2af65b9
RO
275112010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27512
27513 * config/i386/i386.c (override_options): Don't accept
27514 -mtls-dialect=sun any longer.
27515 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
27516 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
27517 (*tls_local_dynamic_base_32_sun): Likewise.
27518 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
27519
d0ed412a
JJ
275202010-03-24 Jakub Jelinek <jakub@redhat.com>
27521
1db0ea00
JJ
27522 PR debug/43508
27523 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
27524 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
27525
3a6191b1
JJ
27526 PR debug/43479
27527 * ira.c (adjust_cleared_regs): New function.
27528 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
27529
d0ed412a
JJ
27530 PR debug/19192
27531 PR debug/43479
27532 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
27533 from gimple_block.
27534 * expr.c (expand_expr_real): Restore previous
27535 curr_insn_source_location and curr_insn_block after
27536 expand_expr_real_1 call.
27537 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
27538 instead of expand_expr_real_1.
27539
478ab26d
VM
275402010-03-23 Vladimir Makarov <vmakarov@redhat.com>
27541
27542 PR rtl-optimization/43413
27543 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
27544 hard regs too.
27545
67b476d1
JW
275462010-03-22 James E. Wilson <wilson@codesourcery.com>
27547
27548 PR target/43348
27549 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
fb04bb84 27550 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
67b476d1 27551
99eaa2e7
L
275522010-03-22 H.J. Lu <hongjiu.lu@intel.com>
27553
fb04bb84
UB
27554 * config/i386/i386.c (ix86_target_string): Add -mfma.
27555 Fix a typo in comment.
99eaa2e7 27556
212066e6
MS
275572010-03-22 Mike Stump <mikestump@comcast.net>
27558
27559 PR target/23071
27560 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
27561 Don't overly align based upon packed packed fields.
27562
ce30e6fd
JM
275632010-03-22 Jason Merrill <jason@redhat.com>
27564
27565 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
27566 Use () rather than [], and move before the element type.
27567
3a1ef68a
RO
275682010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27569
27570 * doc/configfiles.texi (Configuration Files): Removed
27571 fixinc/Makefile*, intl/Makefile.*.
fb04bb84
UB
27572 * doc/makefile.texi: Fixed markup. Abstract from version
27573 control system used.
eed023cc 27574 (Makefile): Removed obsolete java/parse.y example.
3a1ef68a
RO
27575 * doc/sourcebuild.texi: Likewise.
27576 (Top Level): Added config, gnattools, libdecnumber, libgcc,
fb04bb84 27577 libgomp, libssp. Removed fastjar.
3a1ef68a
RO
27578 (Miscellaneous Docs): Clarify location.
27579 Added COPYING3, COPYING3.LIB.
fb04bb84 27580 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3a1ef68a 27581
7f5441df
RO
275822010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27583
27584 PR target/38085
27585 * config/i386/i386.c (x86_function_profiler)
27586 [!NO_PROFILE_COUNTERS]: Fix typo.
27587 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
27588 instead of callq.
27589
d4f3924a 275902010-03-22 Janis Johnson <janis187@us.ibm.com>
f4a4b582 27591 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
d4f3924a
JJ
27592
27593 * doc/sourcebuild.texi (Test Directives): Split into six
27594 subsections, with most of the current text in new subsections
27595 Directives, Selectors, and Final Actions.
27596 (Directives): Split list of test directives into multiple
27597 subsubsections.
27598 (Selectors): Describe use and syntax of selectors.
27599 (Effective-Target Keywords): Describe all existing keywords.
27600 (Add Options): Describe features for dg-add-options.
27601 (Require Support): Describe variants of dg-require-support.
27602 (Final Actions): Describe commands to use in dg-final.
27603
047550e9
MM
276042010-03-22 Michael Matz <matz@suse.de>
27605
27606 PR middle-end/43475
27607 * recog.c (validate_replace_rtx_group): Replace also in
27608 REG_EQUAL and REG_EQUIV notes.
27609
6d7971b8
RG
276102010-03-22 Richard Guenther <rguenther@suse.de>
27611
27612 PR tree-optimization/43390
27613 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
27614 sure vector extracts are type correct.
27615
6af84c85
RG
276162010-03-22 Richard Guenther <rguenther@suse.de>
27617
27618 PR middle-end/40106
27619 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
27620 x * sqrt (x) even when optimizing for size if the target
27621 has native support for sqrt.
27622
539eb459
JJ
276232010-03-22 Jakub Jelinek <jakub@redhat.com>
27624
be36dd85
JJ
27625 * varasm.c (make_decl_rtl_for_debug): Also clear
27626 flag_mudflap for the duration of make_decl_rtl call.
27627
539eb459
JJ
27628 PR debug/43443
27629 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
27630 locs from preserved VALUEs.
27631
19c1be39
JDA
276322010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
27633
27634 PR middle-end/42718
27635 * pa.md (movmemsi): Set align to one if zero.
27636 (movmemdi): Likewise.
27637
f8b68ed3
RE
276382010-03-21 Richard Earnshaw <rearnsha@arm.com>
27639
27640 PR target/42321
27641 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
27642 with their corresponding prologue pushes.
27643
941ce52b
AP
276442010-03-20 Andrew Pinski <pinskia@gmail.com>
27645
27646 PR target/43156
27647 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
27648 at the begining or end.
27649 (spu_expand_epilogue): Likewise.
27650
d491d2af
RG
276512010-03-20 Richard Guenther <rguenther@suse.de>
27652
27653 PR rtl-optimization/43438
27654 * combine.c (make_extraction): Properly zero-/sign-extend an
27655 extraction of the low part of a CONST_INT. Also handle
27656 CONST_DOUBLE.
27657
4dd9ee92
MS
276582010-03-19 Mike Stump <mikestump@comcast.net>
27659
27660 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
27661 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
27662 (override_options): Use SUBTARGET32_DEFAULT_CPU.
27663
e49a760f
AP
276642010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
27665
6644642e 27666 PR c/43211
fb04bb84
UB
27667 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
27668 an error.
e49a760f 27669
f0c6475a 276702010-03-19 Bernd Schmidt <bernds@codesourcery.com>
002b2dee
BS
27671
27672 PR rtl-optimization/42258
27673 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
27674 use that may match DEF.
27675
c99102b8
BS
27676 PR target/40697
27677 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
27678 the cost of loading the constant rather than assuming
27679 COSTS_N_INSNS (1).
27680 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
27681 outer code is AND, do the same tests as the andsi3 expander and
27682 return COSTS_N_INSNS (1) if and is cheap.
fdb2c684
BS
27683
27684 * optabs.c (avoid_expensive_constant): Fix formatting.
27685
f9ceed32
MM
276862010-03-19 Michael Matz <matz@suse.de>
27687
27688 PR c++/43116
27689 * attribs.c (decl_attributes): When rebuilding a function pointer
27690 type use the same qualifiers as the original pointer type.
27691
3795eae6
MJ
276922010-03-19 Martin Jambor <mjambor@suse.cz>
27693
27694 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
27695 and is_gimple_ip_invariant_address.
27696
ae0bef88
RR
276972010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27698
27699 Revert
27700 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27701
27702 * config/arm/arm.c (arm_override_options): Turn off
27703 flag_dwarf2_cfi_asm for AAPCS variants.
27704
9abf5d7b
RR
277052010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
27706
27707 PR target/43399
27708 * config/arm/arm.c (emit_multi_reg_push): Update comments.
27709 Use PRE_MODIFY instead of PRE_DEC.
27710 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
27711 (vfp_emit_fstmd): Likewise.
27712
8a0b1aa4
MM
277132010-03-19 Michael Matz <matz@suse.de>
27714
27715 PR target/43305
27716 * builtins.c (expand_builtin_interclass_mathfn,
27717 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
27718 if that fails.
27719
3e999e7b
RG
277202010-03-19 Richard Guenther <rguenther@suse.de>
27721
27722 PR tree-optimization/43415
27723 * tree-ssa-pre.c (phi_translate): Split out worker to ...
27724 (phi_translate_1): ... this.
27725 (phi_translate): Move all caching here. Cache all NARY
27726 and REFERENCE translations.
27727
9fd52c6c
DM
277282010-03-19 David S. Miller <davem@davemloft.net>
27729
27730 With help from Eric Botcazou.
27731 * config/sparc/sparc.c: Include dwarf2out.h.
27732 (emit_pic_helper): Delete.
27733 (pic_helper_symbol_name): Delete.
27734 (pic_helper_emitted_p): Delete.
27735 (pic_helper_needed): New.
27736 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
27737 (get_pc_thunk_name): New.
27738 (load_pic_register): Remove 'delay_pic_helper' arg. Use
27739 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
27740 Set pic_helper_needed to true. Don't call emit_pic_helper.
27741 (sparc_expand_prologue): Update load_pic_register call.
27742 (sparc_output_mi_thunk): Likewise.
27743 (sparc_file_end): Emit a hidden comdat symbol for the PIC
27744 thunk if possible. Output CFI information as needed.
27745
f4a4b582
EB
277462010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
27747 Jack Howarth <howarth@bromo.med.uc.edu>
b6010cab
FXC
27748
27749 PR target/36399
48019e3d 27750 * config/i386/i386.h: Fix ABI on darwin x86-32.
b6010cab 27751
b1aa0655
AH
277522010-03-18 Aldy Hernandez <aldyh@redhat.com>
27753
27754 * tree.h: Declare make_decl_rtl_for_debug.
27755 * varasm.c (make_decl_rtl_for_debug): New.
27756 * dwarf2out.c (rtl_for_decl_location): Call it.
27757 * cfgexpand.c (expand_debug_expr): Call it.
27758
f0c12fcc
JJ
277592010-03-18 Jakub Jelinek <jakub@redhat.com>
27760
9a05b749
JJ
27761 PR bootstrap/43399
27762 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
27763 mem_mode.
27764
f0c12fcc
JJ
27765 PR bootstrap/43403
27766 * var-tracking.c (vt_init_cfa_base): Do nothing if
fb04bb84 27767 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
f0c12fcc 27768
e999b0c9
AO
277692010-03-18 Alexandre Oliva <aoliva@redhat.com>
27770
27771 PR debug/42873
27772 * var-tracking.c (canonicalize_vars_star): New.
27773 (dataflow_post_merge_adjust): Use it.
27774
5644a3d0
JJ
277752010-03-18 Jakub Jelinek <jakub@redhat.com>
27776
27777 PR debug/43058
27778 * var-tracking.c (non_suitable_const): New function.
27779 (add_uses): For DEBUG_INSNs with constants, don't record any
27780 value, instead just the constant value itself.
27781 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
27782 is not VAR_LOC_UNKNOWN_P, set var to the constant.
27783 (emit_notes_in_bb): Likewise.
27784 (emit_note_insn_var_location): For onepart variables if
27785 cur_loc is a VOIDmode constant, use DECL_MODE.
27786
8132a837
MJ
277872010-03-18 Martin Jambor <mjambor@suse.cz>
27788
27789 PR middle-end/42450
27790 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
27791 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
27792 all non-clones. Moved call redirection...
fb04bb84 27793 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
8132a837
MJ
27794 (cgraph_materialize_all_clones): Dispose of all
27795 combined_args_to_skip bitmaps.
27796 (verify_cgraph_node): Do not check for edges pointing to wrong
27797 nodes in inline clones.
27798 * tree-inline.c (copy_bb): Call
27799 cgraph_redirect_edge_call_stmt_to_callee.
27800 * ipa.c (cgraph_remove_unreachable_nodes): Call
27801 cgraph_node_remove_callees even when there are used clones.
27802
7893d7ac
L
278032010-03-18 H.J. Lu <hongjiu.lu@intel.com>
27804
27805 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
27806
cdfedab1
L
278072010-03-18 H.J. Lu <hongjiu.lu@intel.com>
27808
27809 PR target/43383
27810 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
27811 for 32bit.
27812
c21372c4
MM
278132010-03-18 Michael Matz <matz@suse.de>
27814
27815 PR middle-end/43419
27816 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
27817 into sqrt(x) if we need to preserve signed zeros.
27818
82fa5f8a
L
278192010-03-18 Steven Bosscher <steven@gcc.gnu.org>
27820 Eric Botcazou <ebotcazou@adacore.com>
27821
27822 PR rtl-optimization/43360
27823 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
27824 note if we don't know its invariant status.
27825
eb45755f
MM
278262010-03-18 Michael Matz <matz@suse.de>
27827
27828 PR tree-optimization/43402
27829 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
27830 PHI chains of ssa names registered for update.
27831
60936b22
PB
278322010-03-17 Peter Bergner <bergner@vnet.ibm.com>
27833
27834 PR target/42427
27835 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
27836 non-offsettable and pre_modify update addressing.
27837 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
27838 and "2" alternatives "#".
27839 (*movdd_softfloat32): Make all alternatives "#";
27840 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
27841 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
27842 (*movdf_softfloat32): Make all alternatives "#";
27843 (movdi): Use the new DIFD mode iterator to create a common splitter
27844 for movdi, movdf and movdd patterns.
27845
316fc112
SZ
278462010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
27847
27848 * common.opt (dumpdir): Remove redundant tab.
27849
ec24771f
MJ
278502010-03-17 Martin Jambor <mjambor@suse.cz>
27851
27852 PR tree-optimization/43347
27853 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
27854 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
27855
e33c42db
BS
278562010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
27857
27858 PR rtl-optimization/42216
27859 * regrename.c (create_new_chain): New function, broken out from...
27860 (scan_rtx_reg): ... here. Call it. Handle the case where we are
27861 appending a use to an empty chain.
27862 (build_def_use): Remove previous changes that convert OP_INOUT to
27863 OP_OUT operands; instead detect the case where an OP_INOUT operand
fb04bb84 27864 uses a previously untracked register and create an empty chain for it.
e33c42db 27865
4c4177dc
RW
278662010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
27867
27868 * doc/extend.texi (Function Attributes): Rewrite unfinished
27869 sentence in ms_abi documentation.
27870
60ac9511
AM
278712010-03-17 Alan Modra <amodra@gmail.com>
27872
27873 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
27874 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
27875 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
27876 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
27877
e19d1f06
RH
278782010-03-16 Richard Henderson <rth@redhat.com>
27879
27880 PR middle-end/43365
27881 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
27882 (lower_try_finally): Save and restore eh_seq around the expansion
27883 of the try-finally.
27884
c36fed0c
AH
278852010-03-16 Aldy Hernandez <aldyh@redhat.com>
27886
27887 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
27888 statements before splitting block.
27889
f4a4b582 278902010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17a7cb4e
RO
27891
27892 * doc/sourcebuild.texi (Testsuites): Fix markup.
27893 Use pathnames relative to gcc/testsuite.
27894 (Test Directives): Move description of how timeout is determined.
27895 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
27896 (C Tests): Correct gcc.misc-tests directory.
27897 Framework tests now live in gcc.test-framework.
27898
7686fb74
RG
278992010-03-16 Richard Guenther <rguenther@suse.de>
27900
27901 PR middle-end/43379
fb04bb84
UB
27902 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
27903 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7686fb74 27904
7a181764
AH
279052010-03-16 Aldy Hernandez <aldyh@redhat.com>
27906 Alexandre Oliva <aoliva@redhat.com>
27907
27908 PR tree-optimization/42917
27909 * lambda-code.c (remove_iv): Skip debug statements.
27910 (lambda_loopnest_to_gcc_loopnest): Likewise.
27911 (not_interesting_stmt): Debug statements are not interesting.
27912
457eeaae
JJ
279132010-03-16 Jakub Jelinek <jakub@redhat.com>
27914
27915 PR debug/43051
27916 PR debug/43092
27917 * cselib.c (cselib_preserve_constants,
27918 cfa_base_preserved_val): New static variables.
27919 (preserve_only_constants): New function.
27920 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
fb04bb84 27921 clear its REG_VALUES. If cselib_preserve_constants, don't
457eeaae
JJ
27922 empty the whole hash table, but preserve there VALUEs with constants,
27923 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
27924 (cselib_preserve_cfa_base_value): New function.
27925 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
27926 (cselib_init): Change argument to int bitfield. Set
27927 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
27928 is in it.
27929 (cselib_finish): Clear cselib_preserve_constants and
27930 cfa_base_preserved_val.
27931 * cselib.h (enum cselib_record_what): New enum.
27932 (cselib_init): Change argument to int.
27933 (cselib_preserve_cfa_base_value): New prototype.
27934 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
27935 * dse.c (dse_step1): Likewise.
27936 * cfgcleanup.c (thread_jump): Likewise.
27937 * sched-deps.c (sched_analyze): Likewise.
27938 * gcse.c (local_cprop_pass): Likewise.
27939 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
27940 If FN is non-NULL, call the callback always and whenever it returns
27941 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
27942 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
27943 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
27944 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
27945 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
27946 * var-tracking.c: Include recog.h.
27947 (bb_stack_adjust_offset): Remove.
27948 (vt_stack_adjustments): Don't call it, instead just gather the
27949 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
27950 (adjust_stack_reference): Remove.
27951 (compute_cfa_pointer): New function.
27952 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
27953 (struct adjust_mem_data): New type.
27954 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
27955 functions.
27956 (get_address_mode): New function.
27957 (replace_expr_with_values): Use it.
27958 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
27959 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
27960 (adjust_sets): Remove.
27961 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
27962 Use get_address_mode.
27963 (get_adjusted_src): Remove.
27964 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
27965 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
27966 (add_with_sets): Don't call adjust_sets.
27967 (fp_setter, vt_init_cfa_base): New functions.
27968 (vt_initialize): Change return type to bool. Move most of pool etc.
27969 initialization to the beginning of the function from end. Pass
27970 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
27971 If !frame_pointer_needed, call vt_stack_adjustment before mos
27972 vector is filled, call vt_init_cfa_base if argp/framep has been
27973 eliminated to sp. If frame_pointer_needed and argp/framep has
27974 been eliminated to hard frame pointer, set
27975 hard_frame_pointer_adjustment and call vt_init_cfa_base after
27976 encountering fp setter in the prologue. For MO_ADJUST, call
27977 log_op_type before pusing the op into mos vector, not afterwards.
27978 Call adjust_insn before cselib_process_insn/add_with_sets,
27979 call cancel_changes (0) afterwards.
27980 (variable_tracking_main_1): Adjust for vt_initialize calling
27981 vt_stack_adjustments and returning whether it succeeded or not.
27982
7dee65d8
AH
279832010-03-15 Aldy Hernandez <aldyh@redhat.com>
27984
27985 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
27986 debug statements.
27987
6019a098
JJ
279882010-03-15 Jakub Jelinek <jakub@redhat.com>
27989
27990 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
27991 has been set.
27992 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
27993 drap_reg has not been set.
27994
c2172338
MM
279952010-03-15 Michael Matz <matz@suse.de>
27996
27997 PR middle-end/43300
27998 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
27999 use it to expand block copies.
28000 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
28001 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
28002 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
28003
610b64e2
RG
280042010-03-15 Richard Guenther <rguenther@suse.de>
28005
28006 PR tree-optimization/43367
28007 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
28008 elimination check.
28009
610de68d
RB
280102010-03-15 Richard Guenther <rguenther@suse.de>
28011
28012 PR tree-optimization/43317
28013 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
28014
932e2e64
MJ
280152010-03-15 Martin Jambor <mjambor@suse.cz>
28016
610de68d 28017 PR tree-optimization/43141
932e2e64
MJ
28018 * tree-sra.c (create_abstract_origin): New function.
28019 (modify_function): Call create_abstract_origin.
28020
c8c520dd
CD
280212010-03-15 Chris Demetriou <cgd@google.com>
28022
28023 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
28024 wasn't copied.
28025
7f931500
SP
280262010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28027
28028 PR middle-end/43354
28029 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
28030 call insert_out_of_ssa_copy for default definitions.
28031
280322010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28033
28034 * graphite-clast-to-gimple.c (my_long_long): Defined.
28035 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
28036 * graphite-sese-to-poly.c (my_long_long): Defined.
28037 (scop_ivs_can_be_represented): Use it.
28038
280392010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28040
28041 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
28042 graphite-max-bbs-per-function, and loop-block-tile-size.
28043 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
28044 with "maximum".
28045 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
28046
280472010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28048
28049 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
28050 forward declaration.
28051 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
28052 (add_upper_bounds_from_estimated_nit): New.
28053 (build_loop_iteration_domains): Use it.
28054
280552010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28056
28057 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
28058
280592010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28060
28061 PR middle-end/43306
28062 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
28063 should be an INTEGER_CST. Also handle CASE_CONVERT.
28064
280652010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28066
28067 * graphite.c (graphite_initialize): To bound the number of bbs per
28068 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
28069 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
28070 * doc/invoke.texi: Document it.
28071
280722010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28073
28074 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
28075 * graphite-sese-to-poly.h (build_poly_scop): Same.
28076
280772010-03-13 Sebastian Pop <sebastian.pop@amd.com>
28078
28079 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
28080 the number of parameters in the scop. Use as an upper bound
28081 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
28082 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
28083 * doc/invoke.texi: Document it.
28084
929769f4
JQ
280852010-03-13 Jerry Quinn <jlquinn@optonline.net>
28086
28087 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
28088 * doc/c-tree.texi: Remove.
28089 * doc/generic.texi: Merge c-tree.texi here.
28090 * doc/gccint.texi (Trees): Remove menu entry.
28091 (c-tree.texi): Remove @include.
28092 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
28093 * doc/languages.texi (Reading RTL): Ditto.
28094
9c8cab44
SE
280952010-03-12 Steve Ellcey <sje@cup.hp.com>
28096
28097 PR target/42869
28098 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
28099
08f9d725
MM
281002010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
28101
28102 PR middle-end/42431
eed023cc 28103 * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
08f9d725
MM
28104 code added to work around reload clobbering CONST insns.
28105
70235ab9
JJ
281062010-03-12 Jakub Jelinek <jakub@redhat.com>
28107
0de3e43f
JJ
28108 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
28109 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
28110 (cselib_preserve_only_values): Remove retain argument, don't
28111 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
28112 * cselib.h (cselib_preserve_only_values): Remove retain argument.
28113 * var-tracking.c (micro_operation): Move insn field before union.
28114 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
28115 (struct variable_tracking_info_def): Remove n_mos field, change
28116 mos into a vector of micro_operations.
28117 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
28118 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
28119 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
28120 changing into a vector.
28121 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
28122 come before all other uops generated by add_stores.
28123 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
28124 argument removal.
28125 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
28126 a vector. Run just one pass over the bbs instead of separate counting
28127 and computation phase.
28128 (vt_finalize): Free VTI (bb)->mos vector instead of array.
28129
70235ab9
JJ
28130 PR debug/43329
28131 * tree-inline.c (remap_decls): Put old_var rather than origin_var
28132 into *nonlocalized_list vector.
28133 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
28134 even if origin is non-NULL.
28135 (gen_variable_die): Likewise.
28136 (process_scope_var): Don't change origin.
28137 (gen_decl_die): Likewise.
28138 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
28139 before adding new edges instead of after it, fix moving over
28140 debug stmts.
28141
7ac22e17
DM
281422010-03-11 David S. Miller <davem@davemloft.net>
28143
77514c73
UB
28144 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
28145 of four.
7ac22e17
DM
28146 * configure: Rebuild.
28147
0e0a1359
MJ
281482010-03-11 Martin Jambor <mjambor@suse.cz>
28149
28150 PR tree-optimization/43257
28151 * tree.c (assign_assembler_name_if_neeeded): New function.
28152 (free_lang_data_in_cgraph): Assembler name assignment moved to the
28153 above new function.
28154 * tree.h (assign_assembler_name_if_neeeded): Declare.
28155 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
28156 the function if needed.
28157
1d9edd01
CD
281582010-03-11 Chris Demetriou <cgd@google.com>
28159
28160 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
28161 include/stdint-gcc.h, and include/stdint.h world-readable.
28162
ff0a0c1d
RG
281632010-03-11 Richard Guenther <rguenther@suse.de>
28164
28165 PR tree-optimization/43255
28166 * tree-vrp.c (process_assert_insertions_for): Do not insert
28167 asserts for trivial conditions.
28168
b509e1fc
AK
281692010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28170
28171 PR tree-optimization/43280
77514c73
UB
28172 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
28173 generation. Move calculation of size out of the if branch.
b509e1fc
AK
28174 (find_bswap): Modify compare number generation.
28175
108ba00b
RG
281762010-03-11 Richard Guenther <rguenther@suse.de>
28177
28178 PR lto/43200
28179 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
28180 (input_gimple_stmt): Fixup handled component types during
28181 operand read. Also fix up decls in ADDR_EXPRs.
28182
f37f5bb9
EB
281832010-03-10 Eric Botcazou <ebotcazou@adacore.com>
28184
28185 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
28186 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
28187
e9fecf0e
JH
281882010-03-10 Jan Hubicka <jh@suse.cz>
28189
28190 PR c/43288
28191 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
28192 * varasm.c (get_variable_section): Don't do that here...
28193 (make_decl_rtl): ... and here.
28194 (do_assemble_alias): Produce decl RTL.
28195 (assemble_alias): Likewise.
28196
23f39b37
JJ
281972010-03-10 Jakub Jelinek <jakub@redhat.com>
28198
28199 PR debug/43290
28200 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
28201 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
28202 of fde->vdrap_reg.
28203 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
28204 (based_loc_descr): Only express drap or vdrap regno based expressions
28205 using DW_OP_fbreg when not optimizing.
28206 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
28207 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
28208 REG_CFA_SET_VDRAP note.
28209
6edd8198
AM
282102010-03-10 Alexander Monakov <amonakov@ispras.ru>
28211
28212 PR tree-optimization/43236
28213 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
28214 error in calculation of base address in reverse iteration case.
28215 (generate_builtin): Take number of latch executions if the statement
28216 is in the latch.
28217
9f698956
AB
282182010-03-10 Andrey Belevantsev <abel@ispras.ru>
28219
28220 PR middle-end/42859
28221 * tree-eh.c: Include pointer-set.h.
28222 (lower_eh_dispatch): Filter out duplicate case labels and
28223 remove the unneeded edge when the label is unused. Return
28224 true when some edges are removed.
28225 (execute_lower_eh_dispatch): When any lowering resulted in
28226 removing an edge, also delete unreachable blocks.
28227
ff4f03c3
JJ
282282010-03-10 Jakub Jelinek <jakub@redhat.com>
28229
28230 PR bootstrap/43287
28231 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
28232 UNSPEC_MACHOPIC_OFFSET.
28233
7b0f476d
AS
282342010-03-09 Andreas Schwab <schwab@linux-m68k.org>
28235
28236 PR target/43294
28237 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
28238 (m68k_delegitimize_address): New function.
28239
3b7998ea
JJ
282402010-03-09 Jakub Jelinek <jakub@redhat.com>
28241
eb1fcdaa
JJ
28242 PR debug/43299
28243 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
28244
69b89883
JJ
28245 PR debug/43299
28246 * var-tracking.c (adjust_sets): New function.
28247 (count_with_sets, add_with_sets): Use it.
28248 (get_adjusted_src): New inline function.
28249 (add_stores): Use it.
28250
3b7998ea
JJ
28251 PR debug/43304
28252 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
28253 call cselib_dummy_expand_value_rtx_cb instead of
28254 cselib_expand_value_rtx_cb.
bded9b70
JJ
28255
28256 PR debug/43293
28257 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
28258 * config/i386/i386.c: Include debug.h and dwarf2out.h.
28259 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
28260 and .cfi_endproc around the pic thunks.
28261 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
28262 all queued unwind info register saves are saved before the call.
28263 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
28264 considered as sp-=4 for unwind info and the pop as sp+=4 which
28265 also clobbers dest, but doesn't actually restore it.
4398467a
JJ
28266
28267 PR debug/43290
28268 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
28269 RTX_FRAME_RELATED_P.
28270
81ad4ac0
JZ
282712010-03-09 Jie Zhang <jie@codesourcery.com>
28272
28273 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
28274 whitespaces in output template.
28275
dc344e87
JZ
282762010-03-09 Jie Zhang <jie@codesourcery.com>
28277
28278 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
28279 out array boundary.
28280
ff12d3a6
JJ
282812010-03-08 Jakub Jelinek <jakub@redhat.com>
28282
28283 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
28284 builtins.exp in a separate job.
28285
b58543c3
SP
282862010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28287
28288 * graphite-sese-to-poly.c (add_param_constraints): Use
28289 lower_bound_in_type and upper_bound_in_type.
28290
282912010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28292
28293 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
28294 instead of unsigned_type_node.
28295
282962010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28297 Reza Yazdani <reza.yazdani@amd.com>
28298
28299 PR middle-end/43065
28300 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
28301 on pointer type parameters.
28302
283032010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
28304
28305 PR middle-end/42644
28306 PR middle-end/42130
28307 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
28308 handle conversions from pointer to integers.
28309 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
77514c73 28310 induction variable, to be able to work with code generated by CLooG.
b58543c3
SP
28311 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
28312 (build_poly_scop): Bail out if we cannot codegen a loop.
28313
283142010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
28315
28316 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
28317 code generation with gloog_error.
28318
283192010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28320
28321 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
28322 Call fold_convert on all the returned values.
77514c73
UB
28323 (expand_scalar_variables_expr): Pass to
28324 expand_scalar_variables_ssa_name the type of the resulting expression.
b58543c3
SP
28325
283262010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28327
28328 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
77514c73
UB
28329 ppl_min_for_le_pointset.
28330 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
b58543c3
SP
28331 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
28332
283332010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28334
28335 * graphite-dependences.c (map_into_dep_poly): Removed.
28336 (dependence_polyhedron_1): Use combine_context_id_scat.
28337
283382010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28339
28340 * graphite-poly.h (struct poly_scattering): Add layout documentation.
28341 (struct poly_bb): Same.
28342 (combine_context_id_scat): New.
28343
283442010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28345
28346 PR middle-end/42326
28347 * sese.c (name_defined_in_loop_p): Return false for default
28348 definitions.
28349
283502010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28351
28352 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
28353 and clean up the logic.
28354
283552010-03-08 Sebastian Pop <sebastian.pop@amd.com>
28356
28357 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
28358 early return.
28359
1feb8238
JJ
283602010-03-08 Jakub Jelinek <jakub@redhat.com>
28361
28362 * var-tracking.c (remove_cselib_value_chains): Define only for
28363 ENABLE_CHECKING.
28364 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
28365 delete_slot_part, emit_notes_for_differences_1): Don't call
28366 remove_cselib_value_chains here.
28367 (set_slot_part, emit_notes_for_differences_2): Don't call
28368 add_cselib_value_chains here.
28369 (preserved_values): New vector.
28370 (preserve_value): New function.
28371 (add_uses, add_stores, vt_add_function_parameters): Use it
28372 instead of cselib_preserve_value.
28373 (changed_values_stack): New vector.
28374 (check_changed_vars_0): New function.
28375 (check_changed_vars_1, check_changed_vars_2): Use it.
28376 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
28377 changed_values_stack VALUEs.
28378 (vt_emit_notes): For all preserved_values call
28379 add_cselib_value_chains. If ENABLE_CHECKING call
28380 remove_cselib_value_chains before verifying value_chains is empty.
28381 Initialize and free changed_values_stack.
28382 (vt_initialize): Initialize preserved_values.
28383 (vt_finalize): Free preserved_values.
28384
cc788fcc
RG
283852010-03-08 Richard Guenther <rguenther@suse.de>
28386
28387 PR tree-optimization/43269
28388 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
28389 region detection.
28390
69c103c7
MJ
283912010-03-08 Martin Jambor <mjambor@suse.cz>
28392
28393 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
28394 (ipa_is_param_called): Removed.
28395 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
28396 (ipa_print_node_params): Do not print the called flag.
28397 (ipa_write_node_info): Do not stream the called flag.
28398 (ipa_read_node_info): Likewise.
28399
864ddef7
JJ
284002010-03-07 Jakub Jelinek <jakub@redhat.com>
28401
28402 PR debug/43176
28403 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
28404 * cselib.c (struct expand_value_data): Add dummy field.
28405 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
28406 dummy to false.
28407 (cselib_dummy_expand_value_rtx_cb): New function.
28408 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
28409 any rtl.
28410 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
28411 * var-tracking.c: Include pointer-set.h.
28412 (variable): Change n_var_parts to char from int. Add
28413 cur_loc_changed and in_changed_variables fields.
28414 (variable_canonicalize): Remove.
28415 (shared_var_p): New inline function.
28416 (unshare_variable): Maintain cur_loc_changed and
28417 in_changed_variables fields. If var was in changed_variables,
28418 replace it there with new_var. Just copy cur_loc instead of
28419 resetting it to something else.
28420 (variable_union): Don't recompute cur_loc. Use shared_var_p.
28421 (dataflow_set_union): Don't call variable_canonicalize.
28422 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
28423 of their DEBUG_EXPR_TREE_DECLs.
28424 (canonicalize_loc_order_check): Verify that cur_loc is NULL
28425 and in_changed_variables and cur_loc_changed is false.
28426 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
28427 and cur_loc_changed. Don't update cur_loc here.
28428 (variable_merge_over_src): Don't call variable_canonicalize.
28429 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
28430 removing loc that is equal to cur_loc, clear cur_loc,
28431 set cur_loc_changed and ensure variable_was_changed is called.
28432 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
28433 compare pointers in cur_loc check, if it is equal to loc,
28434 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
28435 (variable_different_p): Remove compare_current_location argument,
28436 don't compare cur_loc.
28437 (dataflow_set_different_1): Adjust variable_different_p caller.
28438 (variable_was_changed): If dv had some var in changed_variables
28439 already, reset in_changed_variables flag for it and propagate
28440 cur_loc_changed over to the new variable. On empty var
28441 always set cur_loc_changed. Set in_changed_variables on whatever
28442 var is added to changed_variables.
28443 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
28444 Use shared_var_p. When removing loc that is equal to cur_loc,
28445 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
28446 end, don't set it to something else, just call variable_was_changed.
28447 (delete_slot_part): Use shared_var_p. When cur_loc equals to
28448 loc being removed, clear cur_loc and set cur_loc_changed.
28449 Set cur_loc_changed if all locations have been removed.
28450 (struct expand_loc_callback_data): New type.
28451 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
28452 allocated. Always create SUBREGs if simplify_subreg failed.
28453 Prefer to use cur_loc, when that fails and still in
28454 changed_variables (and seen first time) recompute it. Set
28455 cur_loc_changed of variables which had to change cur_loc and
28456 compute elcd->cur_loc_changed if any of the subexpressions used
28457 had to change cur_loc.
28458 (vt_expand_loc): Adjust to pass arguments in
28459 expand_loc_callback_data structure.
28460 (vt_expand_loc_dummy): New function.
28461 (emitted_notes): New variable.
28462 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
28463 that weren't used for any other decl in current
28464 emit_notes_for_changes call call vt_expand_loc_dummy to update
28465 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
28466 first loc_chain location if NULL before. Always use just
28467 cur_loc instead of first loc_chain location. When cur_loc_changed
28468 is false, when not --enable-checking=rtl just don't emit any note.
28469 When rtl checking, compute the note and assert it is the same
28470 as previous note. Clear cur_loc_changed and in_changed_variables
28471 at the end before removing from changed_variables.
28472 (check_changed_vars_3): New function.
28473 (emit_notes_for_changes): Traverse changed_vars to call
28474 check_changed_vars_3 on each changed var.
28475 (emit_notes_for_differences_1): Clear cur_loc_changed and
28476 in_changed_variables. Recompute cur_loc of new_var.
77514c73 28477 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
864ddef7
JJ
28478 (vt_emit_notes): Initialize and destroy emitted_notes.
28479
c4137918
BS
284802010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
28481
28482 PR rtl-optimization/42220
28483 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
28484 Use verify_reg_tracked to determine if we should use OP_OUT rather
28485 than OP_INOUT.
28486 (build_def_use): If we see an in-out operand for a register that we
28487 know nothing about, treat is an output if possible, fail the block if
28488 not.
28489
cd6549e8
AO
284902010-03-06 Alexandre Oliva <aoliva@redhat.com>
28491
28492 PR debug/42897
28493 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
28494 permanently.
28495
aba09491
AO
284962010-03-06 Alexandre Oliva <aoliva@redhat.com>
28497
28498 PR debug/42897
28499 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
28500 uses of relevant DEFs that are dead outside the loop too.
28501
f4a4b582 285022010-03-06 Alexandre Oliva <aoliva@redhat.com>
60d7a09b
AO
28503
28504 * var-tracking.c (dataflow_set_merge): Swap src and src2.
28505 Reverted:
28506 2010-01-13 Jakub Jelinek <jakub@redhat.com>
28507 PR debug/41371
28508 * var-tracking.c (values_to_unmark): New variable.
28509 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
28510 values_to_unmark vector. Moved body to...
28511 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
28512 instead queue it into values_to_unmark vector.
28513 (vt_find_locations): Free values_to_unmark vector.
28514
eeb971c9
EB
285152010-03-05 Eric Botcazou <ebotcazou@adacore.com>
28516
28517 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
28518 (site.exp): Export them when plugins are enabled.
28519
ccc5b640
SP
285202010-03-05 Sebastian Pop <sebastian.pop@amd.com>
28521
28522 PR middle-end/42326
28523 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
28524 that contain scevs.
28525 (chrec_fold_multiply): Same.
28526
3e23fb2e
AP
285272010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
28528
28529 PR c/43248
28530 * c-decl.c (build_compound_literal): Return early if init is
28531 an error_mark_node.
28532
76f76cd0
MJ
285332010-03-04 Martin Jambor <mjambor@suse.cz>
28534
28535 PR tree-optimization/43164
28536 PR tree-optimization/43191
28537 * tree-sra.c (type_consists_of_records_p): Reject records with
28538 zero-size bit-fields at the end.
28539
b2d244d1
MS
285402010-03-04 Mike Stump <mikestump@comcast.net>
28541
28542 * Makefile.in (TAGS): Remove *.y.
28543
9ca87236
RB
285442010-03-04 Richard Guenther <rguenther@suse.de>
28545
28546 PR tree-optimization/40761
28547 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
28548 in reverse order.
28549 (my_rev_post_order_compute): New function.
28550 (init_pre): Call it.
28551
572ae476
CF
285522010-03-04 Changpeng Fang <changpeng.fang@amd.com>
28553
8c0386a4 28554 PR middle-end/43209
9ca87236
RB
28555 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
28556 decrease the cost of an IV candidate when the cost is infinite.
572ae476 28557
f8723eb6
RW
285582010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28559
28560 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
28561 Use '3DNow!' for the extension of that name, ensure normal space
28562 after the string.
28563 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
28564
d8a60d24
JL
285652010-03-03 Jeff Law <law@redhat.com>
28566
28567 * PR middle-end/32693
28568 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
28569 than gen_rtx_SUBREG.
28570 (extract_bit_field_1): Likewise.
28571
8ec49cff
JJ
285722010-03-03 Janis Johnson <janis187@us.ibm.com>
28573
28574 * doc/sourcebuild.texi (Test directives): Document that arguments
28575 include-opts and exclude-opts are now optional for dg-skip-if,
28576 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
28577
2c71ac78
JM
285782010-03-03 Jason Merrill <jason@redhat.com>
28579
28580 PR c++/12909
28581 * cgraph.h (varpool_node): Add extra_name field.
28582 * varpool.c (varpool_extra_name_alias): New.
28583 (varpool_assemble_decl): Emit extra name aliases.
28584 (varpool_mark_needed_node): Look past an extra name alias.
1d5053d6
JM
28585 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
28586 * lto-streamer-in.c (lto_input_tree): Read it.
28587 * lto-streamer-out.c (output_unreferenced_globals): Write it.
2c71ac78 28588
2587aa3b
EB
285892010-03-03 Eric Botcazou <ebotcazou@adacore.com>
28590
28591 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
28592 (sparc*-*-solaris2*): ...this.
28593
db51bb34
JJ
285942010-03-03 Jakub Jelinek <jakub@redhat.com>
28595
7ece48b1
JJ
28596 PR debug/43229
28597 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
28598 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
28599 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
28600 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
28601
0508bed7
JJ
28602 PR debug/43237
28603 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
28604 fallthrough to default handling, just with want_address 0 instead of 2.
28605 For single element lists, add_AT_loc directly, otherwise create an
28606 artificial variable DIE and stick location list to it.
28607
db51bb34
JJ
28608 PR debug/43177
28609 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
28610 (VAL_EXPR_HAS_REVERSE): Define.
28611 (reverse_op): New function.
28612 (add_stores): For reversible operations add an extra MO_VAL_USE.
28613
7428bc26
JM
286142010-03-02 Jason Merrill <jason@redhat.com>
28615
28616 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
28617
d1ced155
EB
286182010-03-02 Eric Botcazou <ebotcazou@adacore.com>
28619
28620 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
28621 (sparc64-*-linux*): Likewise.
28622 (sparc64-*-solaris2*): Include assembler files before linker ones.
28623 (sparc-*-solaris2*): Simplify and reorder to match previous case.
28624 * config/sparc/gas.h: Delete.
28625 * config/sparc/sol2-64.h: Add copyright notice.
28626 * config/sparc/sol2-gas-bi.h: Likewise.
28627 * config/sparc/sol2-gld.h: Likewise.
28628 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
28629 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
28630 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
28631 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
28632 (sparc_elf_asm_named_section): Rename into...
28633 (sparc_solaris_elf_asm_named_section): ...this. Always define.
28634
02d43000
UB
286352010-03-02 Uros Bizjak <ubizjak@gmail.com>
28636
28637 * config/alpha/alpha.c (override_options): Fix -mtune error message.
28638
f6c86fab
JL
286392010-03-02 Jeff Law <law@redhat.com>
28640
4e222e63 28641 PR middle-end/42431
f6c86fab
JL
28642 * reload1.c (rtx_p, substitute_stack): Declare.
28643 (substitute): Record addresses of changed rtxs.
28644 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
28645 Restore the original rtx when complete.
28646 (reload): Free subsitute_stack when complete.
28647
500cdcb0
JJ
286482010-03-02 Janis Johnson <janis187@us.ibm.com>
28649
28650 * doc/gccint.texi (menu): Add Testsuites as a chapter.
28651 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
28652 new chapter.
28653 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
28654 LTO Testing, gcov Testing, profopt Testing, compat Testing,
28655 Torture Tests): Change from subsection to section.
28656
d9a6979d
JJ
286572010-03-02 Jakub Jelinek <jakub@redhat.com>
28658 Steven Bosscher <steven@gcc.gnu.org>
28659
02d43000
UB
28660 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
28661 instead of bb.
d9a6979d 28662
61226dc8
SP
286632010-03-02 Reza Yazdani <reza.yazdani@amd.com>
28664
28665 PR middle-end/42640
28666 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
28667 the assignment from the new induction variable to the assignment
28668 of the value from the original loop PHI function.
28669
15e7a617
JJ
286702010-03-01 Janis Johnson <janis187@us.ibm.com>
28671 Daniel Jacobowitz <dan@codesourcery.com>
28672
28673 * doc/sourcebuild.texi (Test directives): Clarify options to
28674 dg-skip-if.
28675
eb2573ee
RO
286762010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28677
28678 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
28679 Disable cfi directives unless GCC and gas agree on using read-only
28680 .eh_frame sections for 64-bit.
28681 * configure: Regenerate.
28682
12f9ddbc
RG
286832010-03-01 Richard Guenther <rguenther@suse.de>
28684
28685 PR tree-optimization/43220
28686 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
28687 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
28688
f0c10f0f 286892010-03-01 Richard Guenther <rguenther@suse.de>
02d43000 28690 Martin Jambor <mjambor@suse.cz>
f0c10f0f
RG
28691
28692 PR middle-end/41250
28693 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
28694 gimplified parameters.
28695
c40b5400
CB
286962010-03-01 Christian Bruel <christian.bruel@st.com>
28697
28698 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
61226dc8 28699
3c775d2d
L
287002010-03-01 H.J. Lu <hongjiu.lu@intel.com>
28701
28702 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
28703
434c8f4b
RG
287042010-03-01 Richard Guenther <rguenther@suse.de>
28705
28706 PR middle-end/43213
28707 * expr.c (expand_assignment): Use the alias-oracle to tell
28708 if the rhs aliases the result decl.
28709
291c0a12
RO
287102010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28711
28712 PR pch/14940
28713 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
28714 to sol_gt_pch_get_address.
28715 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
28716 64-bit, SPARC and x86.
28717 (sol_gt_pch_get_address): New function.
28718
61226dc8 287192010-03-01 Marco Poletti <poletti.marco@gmail.com>
894e2652
SZ
28720
28721 * toplev.h (inform_n, error_n): Declare.
28722 * diagnostic.c (inform_n, error_n): New function.
28723
6c6366f6
JJ
287242010-03-01 Jakub Jelinek <jakub@redhat.com>
28725
28726 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
28727 has no rtl yet when processing local_decls, queue it and recheck
28728 if deferred stack allocation hasn't assigned it rtl.
28729
826159e5
KK
287302010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
28731
28732 * config/sh/sh.c (unspec_bbr_uid): New.
28733 (gen_block_redirect): Use it instead of INSN_UID.
28734 (gen_far_branch): Likewise.
28735
746ecbcd
L
287362010-02-28 H.J. Lu <hongjiu.lu@intel.com>
28737
28738 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
28739 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
28740
02a9370c
RW
287412010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
28742
28743 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
28744 (Warning Options): -Wno-conversion-null is valid for
28745 Objective-C++ as well.
28746 * doc/tm.texi (Named Address Spaces): Likewise.
28747 * doc/plugins.texi (Plugins): Replace TABs with spaces.
28748 * doc/tree-ssa.texi (Tree SSA): Likewise.
28749
91ad7e13
L
287502010-02-27 H.J. Lu <hongjiu.lu@intel.com>
28751
28752 PR bootstrap/43202
28753 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
28754 by default. Don't set the default arch for
28755 i[34567]86-*-darwin*|x86_64-*-darwin*.
28756
55c4eeaa
L
287572010-02-27 H.J. Lu <hongjiu.lu@intel.com>
28758
28759 PR bootstrap/43202
28760 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
28761 default. Set the default 32bit/64bit archs with $with_arch
28762 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
28763
30bc1dca
RG
287642010-02-27 Richard Guenther <rguenther@suse.de>
28765
28766 PR tree-optimization/43186
28767 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
28768 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
28769 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
28770 unroller iterations.
28771
c6b9174f
L
287722010-02-27 H.J. Lu <hongjiu.lu@intel.com>
28773
28774 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
28775 required and i[34567]86-*-* targets don't support 64bit ISA.
28776
2743db69
EB
287772010-02-26 Eric Botcazou <ebotcazou@adacore.com>
28778
28779 PR ada/43096
28780 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
28781 the same alias set.
28782
4d16c0dc
L
287832010-02-26 H.J. Lu <hongjiu.lu@intel.com>
28784
28785 * config.gcc: Set the default arch at least to Prescott for
28786 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
28787 if SSE math is enabled.
28788
0e94b750
MLI
287892010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
28790
28791 * diagnostic.c (diagnostic_initialize): Update.
28792 (diagnostic_report_diagnostic): Test inhibit_notes_p for
28793 informative notes.
28794 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
28795 (diagnostic_inhibit_notes): New.
28796 * toplev.c (process_options): inhibit notes with -fcompare-debug.
28797
7e1542b9
MLI
287982010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
28799
28800 PR c/20631
28801 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
28802 * doc/standards.texi: Likewise.
28803 * doc/extend.texi: Likewise.
28804 * doc/trouble.texi: Likewise.
61226dc8 28805 * doc/cppopts.texi: Likewise.
7e1542b9
MLI
28806 * doc/install.texi: Likewise.
28807 * c.opt (std=c90,std=gnu90): New options.
28808 * c-opts.c (c_common_handle_option): Handle them.
28809
0b901e4c
MLI
288102010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
28811
28812 PR c/24577
28813 * c-decl.c (undeclared_variable): Use an informative note.
28814
37530014
RG
288152010-02-26 Richard Guenther <rguenther@suse.de>
28816
28817 PR tree-optimization/43186
28818 * gimple.h (gimple_fold): Remove.
28819 * gimple.c (gimple_fold): Remove. Inline into single user ...
28820 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
28821 Try harder for conditions.
28822
095c7b3c
JJ
288232010-02-26 Jakub Jelinek <jakub@redhat.com>
28824
28825 PR debug/43190
28826 * function.c (used_types_insert): Don't skip through named pointer
28827 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
28828 and it is different from the main variant's type.
28829
a1e205cf
NC
288302010-02-26 Nick Clifton <nickc@redhat.com>
28831
28832 * config/rx/rx.md (sminsi3): Remove bogus alternative.
28833
a3af5e26
L
288342010-02-26 H.J. Lu <hongjiu.lu@intel.com>
28835
28836 * config.gcc: Support --with-fpmath=sse for x86.
28837
28838 * config/i386/ssemath.h: New.
28839
28840 * doc/install.texi (--with-fpmath=sse): Documented.
28841
2f816591
RG
288422010-02-26 Richard Guenther <rguenther@suse.de>
28843
28844 PR tree-optimization/43188
28845 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
28846 vector types of over-aligned element type.
28847
7ce321b3
L
288482010-02-26 Uros Bizjak <ubizjak@gmail.com>
28849
28850 PR target/43175
28851 * config/i386/i386.c (expand_vec_perm_blend): Use correct
02d43000 28852 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
7ce321b3 28853
b55b184a
JK
288542010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
28855
28856 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
28857
e7140c8d
JJ
288582010-02-26 Jakub Jelinek <jakub@redhat.com>
28859
6764d92c
JJ
28860 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
28861 * var-tracking.c: Include diagnostic.h.
28862 (debug_dv): New function.
28863 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
28864
5a309965
JJ
28865 PR debug/43160
28866 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
28867 (add_value_chain, add_value_chains, remove_value_chain,
28868 remove_value_chains): Handle DEBUG_EXPRs.
28869 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
28870
e7140c8d
JJ
28871 PR debug/43161
28872 * regcprop.c (struct queued_debug_insn_change): New type.
28873 (struct value_data_entry): Add debug_insn_changes field.
28874 (struct value_data): Add n_debug_insn_changes field.
28875 (debug_insn_changes_pool): New variable.
28876 (free_debug_insn_changes, apply_debug_insn_changes,
28877 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
28878 (kill_value_one_regno): Call free_debug_insn_changes if needed.
28879 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
28880 fields.
28881 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
28882 changes for them.
28883 (copyprop_hardreg_forward_1): Don't call apply_change_group for
28884 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
28885 changes, call cprop_find_used_regs via note_stores.
28886 (copyprop_hardreg_forward): When copying vd from predecessor
28887 which has any queued DEBUG_INSN changes, make sure the pointers are
28888 cleared. At the end call df_analyze and then if there are any
28889 DEBUG_INSN changes queued at the end of some basic block for still
28890 live registers, apply them.
28891 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
28892
894b386f
UB
288932010-02-25 Uros Bizjak <ubizjak@gmail.com>
28894
28895 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
28896 (arm*-*-*): Ditto.
28897
3fd77630
L
288982010-02-25 H.J. Lu <hongjiu.lu@intel.com>
28899
28900 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
28901 targets. Set the default with_cpu/with_arch from arch/cpu.
28902 Allow x86-64 and native for with_cpu/with_arch.
28903
4b9c6075
NB
289042010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
28905
28906 * ebitmap.c: Change calls to verify_popcount with calls to
28907 sbitmap_verify_popcount.
28908 (ebitmap_clear_bit): Fixed map->cacheindex test and
28909 map>cache update when bit clearing results in an empty
28910 element.
28911
2fcd8e02
MM
289122010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28913
28914 PR target/43154
28915 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
28916 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
28917 and support both V2DF and V2DI modes.
28918 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
28919 support both V2DF and V2DI modes.
28920 (general): Delete trailing whitespace from a few patterns.
28921
28922 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28923 V2DF/V2DI interleave high/low builtins.
28924
28925 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
28926 new VSX builtins.
28927
28928 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
28929 interleave high/low functions.
28930
f61ae065
GP
289312010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
28932
28933 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
28934 #pragma extern_prefix.
28935
7d5d39bb
JJ
289362010-02-25 Jakub Jelinek <jakub@redhat.com>
28937
06796564
JJ
28938 PR debug/43166
28939 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
28940 BLKmode, assert op0 is a MEM and just adjust its mode.
28941
7d5d39bb
JJ
28942 PR debug/43165
28943 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
28944 if bitpos isn't multiple of mode's bitsize.
28945
124e0d27
MLI
289462010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
28947
28948 * c.opt (-ftemplate-depth=): New.
28949 (-ftemplate-depth-): Deprecate.
28950 * optc-gen.awk: Handle -ftemplate-depth=.
28951 * opth-gen.awk: Likewise.
28952 * c-opts.c (c_common_handle_option): Likewise.
02d43000 28953 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
124e0d27 28954
0e7750a0
JM
289552010-02-24 Jason Merrill <jason@redhat.com>
28956
28957 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
28958
c26238f4
RO
289592010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28960
28961 * cfg.c (alloc_aux_for_block): Remove inline.
28962 (alloc_aux_for_edge): Likewise.
28963
bef64e0f
RO
289642010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28965
28966 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
28967
68ba2afe
RO
289682010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
28969
28970 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
28971 * config/i386/sol2-gas.h: New file.
28972 * config.gcc (i[34567]86-*-solaris2*): Use it.
28973
2d2e923f
MLI
289742010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
28975
28976 PR c/43128
28977 * c-typeck.c (ep_convert_and_check): New.
28978 (build_conditional_expr): Use it.
28979 (build_binary_op): Likewise.
28980
2e957792
JJ
289812010-02-24 Jakub Jelinek <jakub@redhat.com>
28982
a46368b2
JJ
28983 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
28984
2e957792
JJ
28985 PR debug/43150
28986 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
28987 bounds even for -O+.
28988 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
28989 expr needs to have DECL_NAME set.
28990
12a54f54
NC
289912010-02-24 Nick Clifton <nickc@redhat.com>
28992
28993 * config/mep/mep.c: Include gimple.h.
28994 (mep_function_uses_sp): Delete unused function.
28995 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
28996 parameters. Use unsigned integers to count args. Return a
28997 NULL_RTX instead of an error_mark_node. Toidy up formatting.
28998
8f40ad50
JJ
289992010-02-23 Jakub Jelinek <jakub@redhat.com>
29000
29001 PR target/43107
29002 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
29003 greater or equal to nelt instead of 2 * nelt.
29004 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
29005 with nelt - 1.
29006
a3b20e90
JM
290072010-02-23 Jason Merrill <jason@redhat.com>
29008
3adcf52c
JM
29009 PR debug/42800
29010 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
29011 in cfun->local_decls even if they have register types.
29012
a3b20e90
JM
29013 PR c++/42837
29014 * stor-layout.c (place_field): Don't warn about unnecessary
29015 DECL_PACKED if the type is packed.
29016
5ead99fa
JJ
290172010-02-23 Jakub Jelinek <jakub@redhat.com>
29018
29019 PR target/43139
29020 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
29021 GOTOFF relocs, even when the base reg isn't pic pointer.
29022
2a8e30fb
MM
290232010-02-23 Michael Matz <matz@suse.de>
29024
29025 PR debug/43077
29026 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
29027 (expand_gimple_basic_block): Generate and use debug temps if there
29028 are debug uses left after the last real use of TERed ssa names.
29029 Unlink debug immediate uses when they are expanded.
29030
38170f34
MLI
290312010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
29032
29033 PR 43123
29034 * config/i386/i386.c (override_options): Reorganise to provide
29035 better error messages.
29036
0f9c8f56
SP
290372010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29038
29039 PR middle-end/43083
29040 * graphite-scop-detection.c (create_single_exit_edge): Move
29041 the call to find_single_exit_edge to....
29042 (create_sese_edges): ...here. Don't handle multiple edges
29043 exiting the function.
29044 (build_graphite_scops): Don't handle multiple edges
29045 exiting the function.
29046
290472010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29048
29049 PR middle-end/43097
29050 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
29051 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
29052
290532010-02-22 Sebastian Pop <sebastian.pop@amd.com>
29054
29055 PR middle-end/43026
29056 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
29057
a98c2819
MLI
290582010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
29059
29060 PR c++/43126
29061 * c-typeck.c (convert_arguments): Print declaration location.
29062 * c-common.c (validate_nargs): Rename as
29063 builtin_function_validate_nargs.
29064 (check_builtin_function_arguments): Update.
29065
ea2edf88
RG
290662010-02-22 Richard Guenther <rguenther@suse.de>
29067
29068 PR lto/43045
29069 * tree-inline.c (declare_return_variable): Use the type of
29070 the call stmt lhs if available.
29071
669887fc
DS
290722010-02-22 Duncan Sands <baldrick@free.fr>
29073
29074 * passes.c (register_pass): Always consider all pass lists when
29075 ref_pass_instance_number is zero.
29076
9efc83f4
RG
290772010-02-22 Richard Guenther <rguenther@suse.de>
29078
29079 PR tree-optimization/42749
29080 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
29081 parameter. Do arithmetic in the original type.
29082 (update_accumulator_with_ops): Likewise.
29083 (adjust_accumulator_values): Adjust.
29084
0a88561f
AK
290852010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29086
29087 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
29088 (QI to BLKmode splitter): New splitter.
29089
5c91eb02
L
290902010-02-22 H.J. Lu <hongjiu.lu@intel.com>
29091
29092 * config/i386/i386.c (initial_ix86_tune_features): Turn on
29093 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
29094
69e3b47f
RG
290952010-02-22 Richard Guenther <rguenther@suse.de>
29096
29097 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
5c91eb02 29098
45df0e43
HPN
290992010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
29100
29101 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
29102 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
29103 ($(T)crti.o, $(T)crtn.o): Remove rules.
29104
72bd130e
TB
291052010-02-21 Tobias Burnus <burnus@net-b.de>
29106
29107 PR fortran/35259
29108 * doc/invoke.texi (-fassociative-math): Document that this
29109 option is automatically enabled for Fortran.
29110
878ee0ab
DM
291112010-02-20 David S. Miller <davem@davemloft.net>
29112
29113 * configure.ac: Test if linker and assembler properly support
29114 GOTDATA_OP relocations.
29115 * configure: Rebuild.
29116 * config.in: Likewise.
29117 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
29118 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
29119 (movsi_high_pic): Likewise.
29120 (movdi_lo_sum_pic): Likewise.
29121 (movdi_high_pic): Likewise.
29122 (movsi_pic_gotdata_op): New pattern.
29123 (movdi_pic_gotdata_op): Likewise.
29124 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
29125 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
02d43000 29126
78c201a4
UB
291272010-02-20 Uros Bizjak <ubizjak@gmail.com>
29128
29129 PR target/43067
29130 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
29131 attribute to ssemul.
29132 (xop_mulv2div2di3_high): Ditto.
29133
17251338
MLI
291342010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
29135
29136 PR c++/35669
29137 * c.opt (Wconversion-null): New option.
29138 * doc/invoke.texi (Wconversion-null): Document.
29139
e7a84854
MLI
291402010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
29141
29142 * common.opt (Wlarger-than-): Add Undocumented.
78c201a4 29143
f233f7ed
MS
291442010-02-19 Mike Stump <mikestump@comcast.net>
29145
29146 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
29147
d88900d7
JM
291482010-02-19 Jason Merrill <jason@redhat.com>
29149
29150 PR target/40332
29151 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
29152 * configure: Likewise.
29153
715a4e08
AM
291542010-02-20 Alan Modra <amodra@gmail.com>
29155
29156 PR middle-end/42344
29157 * cgraph.h (cgraph_make_decl_local): Declare.
29158 * cgraph.c (cgraph_make_decl_local): New function.
29159 (cgraph_make_node_local): Use it.
29160 * cgraphunit.c (cgraph_function_versioning): Likewise.
29161 * ipa.c (function_and_variable_visibility): Likewise.
29162
ad3b056c
JJ
291632010-02-19 Jakub Jelinek <jakub@redhat.com>
29164
29165 PR bootstrap/43121
29166 * except.c (sjlj_emit_function_enter): Don't call
29167 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
29168 directly.
29169 * rtl.h (add_reg_br_prob_note): Remove prototype.
29170
58076e21
MLI
291712010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
29172
29173 PR 41779
29174 * c-common.c (conversion_warning): Remove widening conversions
29175 before checking the conversion of integers to reals.
29176
b42186f1
MS
291772010-02-19 Mike Stump <mikestump@comcast.net>
29178
c387e067
MS
29179 PR middle-end/43125
29180 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
29181
b42186f1
MS
29182 PR objc/43061
29183 * cgraphunit.c (process_function_and_variable_attributes): Check
29184 DECL_PRESERVE_P instead of looking up attribute "used".
29185 * ipa-pure-const.c (check_decl): Likewise.
29186 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
29187 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
29188 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
29189 instead of attribute "used".
29190 * config/sol2-c.c (solaris_pragma_init): Likewise.
29191 (solaris_pragma_fini): Likewise.
29192
8ac074e8
JJ
291932010-02-19 Jakub Jelinek <jakub@redhat.com>
29194
25c0cad4
JJ
29195 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
29196 Use XCNEW instead of xcalloc.
29197 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
29198 XNEW instead of xmalloc.
29199 (get_fields): Use XNEWVEC instead of xmalloc.
29200
e19bcb67
JJ
29201 PR debug/43084
29202 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
29203 populate vars array.
29204 (create_new_general_access): For debug stmts just reset value.
29205 (get_stmt_accesses): For accesses within debug stmts just record them
29206 using add_access_to_acc_sites instead of preventing the peeling or
29207 counting them as accesses.
29208
8ac074e8
JJ
29209 PR middle-end/42233
29210 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
29211
c7da0354
RG
292122010-02-19 Richard Guenther <rguenther@suse.de>
29213
29214 PR tree-optimization/42916
29215 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
29216 instructions.
29217
e5dfb95f
AS
292182010-02-19 Andreas Schwab <schwab@linux-m68k.org>
29219
29220 * configure.ac: Replace all uses of changequote in macro arguments
29221 with proper quoting.
29222
2bdd49f4
JJ
292232010-02-19 Jakub Jelinek <jakub@redhat.com>
29224
29225 PR middle-end/42233
29226 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
29227
604d0dbc
RG
292282010-02-19 Richard Guenther <rguenther@suse.de>
29229
29230 PR tree-optimization/42944
29231 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
29232 test for aliasing with errno.
29233
554cf330
JJ
292342010-02-19 Jakub Jelinek <jakub@redhat.com>
29235
40e90eac
JJ
29236 PR middle-end/42233
29237 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
29238 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
29239 * dojump.c: Include output.h.
29240 (inv): New inline function.
29241 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
29242 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
29243 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
29244 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
29245 argument, pass it down to other calls.
29246 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
29247 add REG_BR_PROB note to the conditional jump.
29248 * cfgexpand.c (add_reg_br_prob_note): Removed.
29249 (expand_gimple_cond): Don't call it, add the probability
29250 as last argument to jumpif_1/jumpifnot_1.
29251 * Makefile.in (dojump.o): Depend on output.h.
29252 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
29253 callers.
29254 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
29255 * stmt.c (do_jump_if_equal): Likewise.
29256 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
29257 * loop-unswitch.c (compare_and_jump_seq): Likewise.
29258 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
29259 Likewise.
29260 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
29261 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
29262 jumpifnot_1 callers.
29263 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
29264 callers.
29265 (store_expr): Adjust jumpifnot caller.
29266 (store_constructor): Adjust jumpif caller.
29267
554cf330
JJ
29268 PR middle-end/42233
29269 * gimplify.c (gimple_boolify): For __builtin_expect call
29270 gimple_boolify also on its first argument.
29271
1a242e3c
UB
292722010-02-18 Uros Bizjak <ubizjak@gmail.com>
29273
29274 * configure.ac (gnu-unique-object): Wrap regexps using [] in
29275 changequote block.
29276 (__stack_chk_fail): Ditto. Remove quadrigraphs.
29277 * configure: Regenerated.
29278
86866b28
UW
292792010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
29280
29281 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
29282 lang_hooks.types_compatible_p instead of comptypes.
29283
f4a4b582 292842010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8168ccc0
SH
29285
29286 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
29287 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
29288 if __prefer_thumb__ is defined.
29289
746e119f
MJ
292902010-02-18 Martin Jambor <mjambor@suse.cz>
29291
29292 PR tree-optimization/43066
29293 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
29294 array with zero-sized element type.
29295
82cf0c8c
JJ
292962010-02-18 Jakub Jelinek <jakub@redhat.com>
29297
29298 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
29299 rtx, allocate struct var_loc_node here and return it to the
29300 caller, and only if it is actually needed.
29301 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
29302 move it earlier and return immediately if it returns NULL.
29303
ccb265d6
MP
293042010-02-17 Mikael Pettersson <mikpe@it.uu.se>
29305
29306 * config/sparc/gas.h: New file. Restore
29307 TARGET_ASM_NAMED_SECTION to its ELF default.
29308 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
29309 check !HAVE_GNU_AS.
29310 * config/sparc/sparc.c (sparc_elf_asm_named_section):
29311 Likewise. Add ATTRIBUTE_UNUSED to prototype.
29312 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
29313 after sparc/sysv4.h.
29314
a30f3def
DK
293152010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
29316
29317 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
29318
2f6c5b27
SB
293192010-02-17 Steven Bosscher <steven@gcc.gnu.org>
29320
29321 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
29322 patterns from predicated pattern.
29323
b5e33e04
UB
293242010-02-17 Uros Bizjak <ubizjak@gmail.com>
29325
29326 PR target/43103
29327 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
29328 for insn mnemonic suffix.
29329
a95740b3
RG
293302010-02-17 Richard Guenther <rguenther@suse.de>
29331
29332 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
29333 to loop PHI nodes.
29334
169e464e
JJ
293352010-02-17 Jakub Jelinek <jakub@redhat.com>
29336
29337 PR debug/42918
29338 * caller-save.c (save_call_clobbered_regs): If BB ends with
29339 a DEBUG_INSN, move any notes in between last real insn and the last
29340 DEBUG_INSN after the last DEBUG_INSN.
29341
5498b6d2
JR
293422010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
29343
29344 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
29345 Fix return type. Fix argument type. Explain meaning of return value.
29346
b09bae68
RG
293472010-02-16 Richard Guenther <rguenther@suse.de>
29348
29349 PR tree-optimization/41043
a691bb08 29350 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
b09bae68
RG
29351 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
29352 statements ...
29353 (vrp_visit_phi_node): ... but only for loop PHI nodes.
29354
d5dceab8 293552010-02-16 Ira Rosen <irar@il.ibm.com>
99f51320
IR
29356
29357 PR tree-optimization/43074
29358 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
29359 * tree-vect-loop.c (vect_analyze_loop_operations): Add
29360 vectorizable cycles in hybrid SLP check.
29361 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
29362
f47e08d9
RG
293632010-02-16 Richard Guenther <rguenther@suse.de>
29364
b5e33e04 29365 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
f47e08d9
RG
29366 (true_dependence): If memrefs_conflict_p computes must-alias
29367 trust it. Move TBAA check after offset-based disambiguation.
29368 (canon_true_dependence): Likewise.
29369
ec8c3978
JJ
293702010-02-16 Alexandre Oliva <aoliva@redhat.com>
29371
29372 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
29373 * doc/invoke.texi: Document it.
29374 * var-tracking.c: Include toplev.h and params.h.
29375 (vt_find_locations): Return bool indicating success. Compute
29376 hash sizes unconditionally. Check new parameter, report.
29377 (variable_tracking_main_1): Check vt_find_locations results and
29378 retry. Renamed from...
29379 (variable_tracking_main): ... this. New wrapper to preserve
29380 flag_var_tracking_assignments.
29381 * Makefile.in (var-tracking.o): Adjust dependencies.
29382
f4a4b582
EB
293832010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
29384 Jakub Jelinek <jakub@redhat.com>
3bf6b403
JH
29385
29386 PR target/42854
29387 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
29388 if weak_import attribute is present.
29389 * config/darwin.c (machopic_select_section): Likewise.
29390
a934eb2d
JR
293912010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
29392
29393 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
29394 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
29395 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
29396 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
29397
74ca3393
EB
29398 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
29399 types.
a934eb2d
JR
29400
29401 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
29402 Fix argument types.
29403
29404 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
29405 Rewrite text to refer to the names.
29406
02edd2f6
SP
294072010-02-15 Sebastian Pop <sebastian.pop@amd.com>
29408
29409 * config/i386/i386-builtin-types.def
29410 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
29411 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
29412 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
29413 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
29414 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
29415 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
29416 IX86_BUILTIN_VPERMIL2PS256.
29417 (MULTI_ARG_4_DF2_DI_I): Defined.
29418 (MULTI_ARG_4_DF2_DI_I1): Defined.
29419 (MULTI_ARG_4_SF2_SI_I): Defined.
29420 (MULTI_ARG_4_SF2_SI_I1): Defined.
29421 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
29422 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
29423 __builtin_ia32_vpermil2ps256.
29424 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
29425 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
29426 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
29427 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
29428 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
29429 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
29430 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
29431 CODE_FOR_xop_vpermil2v8sf3.
29432 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
29433 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
29434 * config/i386/xopintrin.h (_mm_permute2_pd): New.
29435 (_mm256_permute2_pd): New.
29436 (_mm_permute2_ps): New.
29437 (_mm256_permute2_ps): New.
29438
ac447f25
NC
294392010-02-15 Nick Clifton <nickc@redhat.com>
29440
d079b87f 29441 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
ac447f25
NC
29442 boolean parameters. Use emit_jump_insn when emitting a pop
29443 instruction containing a return insn.
b5e33e04
UB
29444 (push): Use 'true' rather than '1' as second parameter to F.
29445 (h8300_expand_prologue): Likewise.
29446 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
29447 (h8300_expand_epilogue): Likewise.
ac447f25 29448
313333a6
RG
294492010-02-15 Richard Guenther <rguenther@suse.de>
29450
29451 PR middle-end/43068
29452 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
29453 if that is zero.
29454
653958e8
NC
294552010-02-15 Nick Clifton <nickc@redhat.com>
29456
29457 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
29458 delta.
29459
0f667308
MP
294602010-02-14 Marco Poletti <poletti.marco@gmail.com>
29461
29462 * intl.c (fake_ngettext): New function.
29463 * intl.h (fake_ngettext): Declare.
29464 (ngettext): Define macro.
29465 * collect2.c (notice_translated): New function.
29466 (main): Use notice_translated and ngettext.
29467 * collect2.h (notice_translated): Declare.
29468
912eb5a4
SB
294692010-02-14 Steven Bosscher <steven@gcc.gnu.org>
29470
29471 * reorg.c (delete_computation): Comment fixes.
29472 * caller-save.c (setup_save_areas): Idem.
29473 * sel-sched-dump.c (dump_lv_set): Idem.
29474 * rtl.def: Idem.
29475
244e6c5c
AK
294762010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29477
29478 * config/s390/s390.c (s390_sched_init): New function.
29479 (TARGET_SCHED_INIT): Target hook defined.
29480
9ab99933
DK
294812010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
29482 Jack Howarth <howarth@bromo.med.uc.edu>
f4a4b582 29483 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9ab99933
DK
29484
29485 PR target/42982
29486 Partial revert of unintended change in fix for PR41605.
29487 * config/darwin.h: Fix typo.
29488 * config/darwin9.h: Same.
29489
ed5bdeb6
JJ
294902010-02-11 Jakub Jelinek <jakub@redhat.com>
29491
29492 * c-pch.c (pch_init): Clear v.
29493
f432760f
SP
294942010-02-11 Sebastian Pop <sebastian.pop@amd.com>
29495
29496 PR middle-end/42930
29497 * graphite-scop-detection.c (graphite_can_represent_scev): Call
29498 graphite_can_represent_init for MULT_EXPR.
29499
295002010-02-11 Sebastian Pop <sebastian.pop@amd.com>
29501
29502 PR middle-end/42914
29503 PR middle-end/42530
29504 * graphite-sese-to-poly.c (remove_phi): New.
29505 (translate_scalar_reduction_to_array): Call remove_phi.
29506
295072010-02-11 Sebastian Pop <sebastian.pop@amd.com>
29508
29509 PR middle-end/42771
29510 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
29511 * graphite-clast-to-gimple.h (gloog): Update declaration.
29512 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
29513 * graphite-poly.h (struct poly_bb): Add missing comments.
29514 (struct scop): Add poly_scop_p field.
29515 (POLY_SCOP_P): New.
29516 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
29517 * graphite.c (graphite_transform_loops): Build the polyhedral
29518 representation for each scop before code generation.
29519 * sese.c (rename_variables_in_operand): Removed.
29520 (rename_variables_in_expr): Return the renamed expression.
29521 (rename_sese_parameters): New.
29522 * sese.h (rename_sese_parameters): Declared.
29523
6d892147
RG
295242010-02-11 Richard Guenther <rguenther@suse.de>
29525
29526 PR tree-optimization/42998
29527 * tree-ssa-pre.c (create_expression_by_pieces): Treat
29528 POINTER_PLUS_EXPR properly.
29529
04eadb13
SP
295302010-02-11 Sebastian Pop <sebastian.pop@amd.com>
29531 Changpeng Fang <changpeng.fang@amd.com>
29532
29533 PR middle-end/40886
29534 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
29535 the cost of an IV candidate when the IV is used in a test against zero.
29536
29537 * gcc.dg/tree-ssa/ivopts-3.c: New.
29538
91753e21
RG
295392010-02-11 Richard Guenther <rguenther@suse.de>
29540
29541 PR lto/41664
29542 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
29543 pointer-vs-decl case by swapping refs. Handle some cases
29544 of pointer-vs-decl disambiguations more conservatively.
29545 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
29546 to false after expanding.
29547
f68df07c
RG
295482010-02-11 Richard Guenther <rguenther@suse.de>
29549
29550 PR driver/43021
29551 * gcc.c (process_command): Handle LTO file@offset case more
29552 appropriately.
29553
d2d36740
JJ
295542010-02-11 Jakub Jelinek <jakub@redhat.com>
29555
8f6aedba
JJ
29556 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
29557 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
29558 of DEBUG_INSNs.
29559 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
29560
d2d36740
JJ
29561 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
29562 if MEM's mode size isn't DWARF2_ADDR_SIZE.
29563 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
29564 Optimize eq/ne comparisons when both arguments are known to be
29565 zero-extended.
29566 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
29567 Don't mask operands unnecessarily if they are known to be already
29568 zero-extended.
29569
56592e03
VM
295702010-02-10 Vladimir Makarov <vmakarov@redhat.com>
29571
29572 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
29573 instead of loop.
29574
5418fe84
RG
295752010-02-10 Richard Guenther <rguenther@suse.de>
29576
29577 PR tree-optimization/43017
29578 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
29579 for wrapping signed arithmetic.
29580
92e8e53a
JJ
295812010-02-10 Jakub Jelinek <jakub@redhat.com>
29582
29583 PR debug/43010
29584 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
29585 if no debug info should be emitted for it.
29586
bd55b817
KK
295872010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
29588
29589 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
29590 note when flag_exceptions is set.
29591
2ab43a52
DS
295922010-02-10 Duncan Sands <baldrick@free.fr>
29593
29594 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
29595
d977cb9c
RG
295962010-02-10 Richard Guenther <rguenther@suse.de>
29597
29598 PR c/43007
29599 * tree.c (get_unwidened): Handle constants.
29600 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
29601
563cb662
MJ
296022010-02-10 Martin Jambor <mjambor@suse.cz>
29603
29604 PR lto/42985
29605 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
29606 check for variable argument counts independently.
29607
9e3c399e
CB
296082010-02-10 Christian Bruel <christian.bruel@st.com>
29609
29610 PR target/42841
29611 * config/sh/sh.c (find_barrier): Increase length for non delayed
29612 conditional branches.
01305d24 29613
e938feb4
CB
296142010-02-10 Christian Bruel <christian.bruel@st.com>
29615
29616 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
01305d24 29617
cbb1ab10
JJ
296182010-02-10 Jakub Jelinek <jakub@redhat.com>
29619
29620 * builtins.c (set_builtin_user_assembler_name): Also handle
29621 ffs if int is smaller than word.
29622
b09495c1
VM
296232010-02-09 Vladimir Makarov <vmakarov@redhat.com>
29624
29625 PR middle-end/42973
29626 * ira-conflicts.c (get_dup): Remove.
29627 (process_reg_shuffles): Add new parameter. Use it as an
29628 additional guard for copy generation.
29629 (add_insn_allocno_copies): Rewrite.
29630
57257f0d
AM
296312010-02-09 Alexander Monakov <amonakov@ispras.ru>
29632
29633 * common.opt (fsched2-use-traces): Preserved for backward
29634 compatibility.
29635 * doc/invoke.texi: Remove the documentation about option
29636 -fsched2-use-traces.
29637 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
29638 flag_sched2_use_traces.
29639 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
29640 the backward compatibility flag section.
29641
72d182d3
RG
296422010-02-09 Richard Guenther <rguenther@suse.de>
29643
29644 PR tree-optimization/43008
29645 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
29646 make HEAP variables initialized from global memory if they
29647 are not known builtin functions.
29648 (find_func_aliases): Adjust.
29649
9605a606
RG
296502010-02-09 Richard Guenther <rguenther@suse.de>
29651
29652 PR tree-optimization/43000
29653 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
29654 arithmetic manually.
29655
8d9eca14
JJ
296562010-02-08 Jakub Jelinek <jakub@redhat.com>
29657
29658 PR tree-optimization/42931
29659 * tree-loop-linear.c (try_interchange_loops): Don't call
29660 double_int_mul if estimated_loop_iterations failed.
29661
d3545524
MJ
296622010-02-08 Martin Jambor <mjambor@suse.cz>
29663
29664 PR middle-end/42898
29665 * tree-sra.c (build_accesses_from_assign): Do not mark in
29666 should_scalarize_away_bitmap if stmt has volatile ops.
29667 (sra_modify_assign): Do not process assigns piecemeal if if stmt
29668 has volatile ops.
29669
8a9a2486
JR
296702010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
29671
29672 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
29673
7bf25dd6
AN
296742010-02-07 Adam Nemet <adambnmet@gmail.com>
29675
29676 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
29677 before the pattern.
29678
a46edbff
AP
296792010-02-07 Andrew Pinski <pinskia@gmail.com>
29680
29681 PR middle-end/42946
29682 * df-core.c (df_finish_pass): Change type of saved_flags to int.
29683
86da963e
SP
296842010-02-07 Sebastian Pop <sebastian.pop@amd.com>
29685
29686 PR middle-end/42988
29687 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
29688 to unknown_dependence.
29689 (graphite_legal_transform_dr): Handle the unknown_dependence.
29690 (graphite_carried_dependence_level_k): Same.
29691
296922010-02-07 Sebastian Pop <sebastian.pop@amd.com>
29693
29694 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
29695
997ac87b
RG
296962010-02-07 Richard Guenther <rguenther@suse.de>
29697
29698 PR middle-end/42991
29699 * expr.c (get_inner_reference): Always initialize *pbitsize.
29700
cb6b911a
RG
297012010-02-07 Richard Guenther <rguenther@suse.de>
29702
29703 PR middle-end/42956
29704 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
29705 new ARRAY_REFs on variable size element or minimal index arrays.
29706 Complete.
29707 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
29708 gimple_fold_indirect_ref.
29709
b761dbe6
RE
297102010-02-06 Richard Earnshaw <rearnsha@arm.com>
29711
29712 PR target/42957
29713 * arm.c (arm_override_options): Just return if the user has specified
29714 an invalid fpu name.
29715
b2469a9b
JM
297162010-02-03 Jason Merrill <jason@redhat.com>
29717
29718 PR c++/42870
29719 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
29720 i386_pe_maybe_record_exported_symbol.
29721
1f65437d
SE
297222010-02-05 Steve Ellcey <sje@cup.hp.com>
29723
29724 PR target/42924
29725 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
29726 (pa_delegitimize_address): New function.
29727
126edba2
OS
297282010-02-05 Ozkan Sezer <sezeroz@gmail.com>
29729
29730 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
29731 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
29732
532df904
RG
297332010-02-05 Richard Guenther <rguenther@suse.de>
29734
29735 PR lto/42762
29736 * lto-streamer-in.c (get_resolution): Deal with references
29737 to undefined functions.
29738
5c95f07b
RG
297392010-02-05 Richard Guenther <rguenther@suse.de>
29740
b5e33e04 29741 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
5c95f07b
RG
29742 (fold_const_aggregate_ref): Likewise.
29743 (ccp_fold_stmt): Substitute loads.
29744 (maybe_fold_reference): Verify types before substituting.
29745 Unshare properly.
29746 (fold_gimple_assign): Unshare properly.
b5e33e04 29747 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
5c95f07b 29748
64aa00b1
NF
297492010-02-05 Nathan Froyd <froydnj@codesourcery.com>
29750
29751 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
29752 for rs6000_gen_cell_microcode.
29753
b0f19292
RG
297542010-02-04 Richard Guenther <rguenther@suse.de>
29755
29756 PR rtl-optimization/42952
29757 * dse.c (const_or_frame_p): Remove MEM handling.
29758
f7eb48b5
NC
297592010-02-04 Nick Clifton <nickc@redhat.com>
29760
29761 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
29762 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
29763 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
29764 (mn10300_asm_output_mi_thunk): New function.
29765 (mn10300_can_output_mu_thunk): New function.
29766 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
29767 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
29768 (FUNCTION_ARG): Delete incorrect comment.
29769
2aac1924
JM
297702010-02-03 Jason Merrill <jason@redhat.com>
29771
29772 PR c++/40138
29773 * fold-const.c (operand_equal_p): Handle erroneous types.
29774
3e5f930f 297752010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
07738b87
KP
29776
29777 * config/h8300/h8300.md (can_delay): Fix attibute condition.
29778
a7f3e500
VM
297792010-02-03 Vladimir Makarov <vmakarov@redhat.com>
29780
3e5f930f 29781 PR rtl-optimization/42941
a7f3e500
VM
29782 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
29783 of xmalloc.
29784
59d49708
JM
297852010-02-03 Jason Merrill <jason@redhat.com>
29786
29787 PR c++/35652
29788 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
29789
5440c0e7
AO
297902010-02-03 Alexandre Oliva <aoliva@redhat.com>
29791
29792 PR debug/42896
02d43000 29793 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
5440c0e7
AO
29794 (cselib_reset_table): Renamed from...
29795 (cselib_reset_table_with_next_value): ... this.
29796 (cselib_get_next_uid): Renamed from...
29797 (cselib_get_next_unknown_value): ... this.
29798 * cselib.c (next_uid): Renamed from...
29799 (next_unknown_value): ... this.
29800 (cselib_clear_table): Adjust.
29801 (cselib_reset_table): Adjust. Renamed from...
29802 (cselib_reset_table_with_next_value): ... this.
29803 (cselib_get_next_uid): Adjust. Renamed from...
29804 (cselib_get_next_unknown_value): ... this.
29805 (get_value_hash): Use hash.
29806 (cselib_hash_rtx): Likewise.
29807 (new_cselib_val): Adjust. Set and dump uid.
29808 (cselib_lookup_mem): Pass next_uid as hash.
29809 (cselib_subst_to_values): Likewise.
29810 (cselib_log_lookup): Dump uid.
29811 (cselib_lookup): Pass next_uid as hash. Adjust.
29812 (cselib_process_insn): Adjust.
29813 (cselib_init): Initialize next_uid.
29814 (cselib_finish): Adjust.
29815 (dump_cselib_table): Likewise.
29816 * dse.c (canon_address): Dump value uid.
29817 * print-rtl.c (print_rtx): Print value uid.
29818 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
29819 (dvuid): New type.
29820 (dv_uid): New function, sort of renamed from...
29821 (dv_htab_hash): ... this, reimplemented in terms of it and...
29822 (dv_uid2hash): ... this. New.
29823 (variable_htab_eq): Drop excess assertions.
29824 (tie_break_pointers): Removed.
29825 (canon_value_cmp): Compare uids.
29826 (variable_post_merge_New_vals): Print uids.
29827 (vt_add_function_parameters): Adjust.
29828 (vt_initialize): Reset table. Adjust.
29829
e3c70387
RG
298302010-02-03 Richard Guenther <rguenther@suse.de>
29831
29832 PR tree-optimization/42944
b5e33e04 29833 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
e3c70387
RG
29834 (call_may_clobber_ref_p_1): Likewise. Properly handle
29835 malloc and calloc clobbering errno.
29836
4cad6dba
SB
298372010-02-03 Steven Bosscher <steven@gcc.gnu.org>
29838
29839 * doc/invoke.texi: Fix name of sched1 dump.
29840
29841 * opts.c (decode_options): Set flag_tree_switch_conversion
29842 only conditionally on optimize >= 2.
29843
29844 * gcse.c: Assorted comment fixes in pass description.
29845
693ee8cf
AG
298462010-02-03 Anthony Green <green@moxielogic.com>
29847
29848 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
29849 nop padding in order to maintain alignment of storage location of
29850 target function address.
29851 (moxie_trampoline_init): Store target function address at newly
29852 aligned location.
29853 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
29854 to 32.
29855 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
29856
bf8e3b77
RG
298572010-02-03 Richard Guenther <rguenther@suse.de>
29858
29859 PR middle-end/42927
29860 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
29861
bde17fdc
RO
298622010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29863
29864 * config.gcc: Reenable check for obsolete targets.
29865 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
29866 mips-sgi-irix6.[0-4]*.
29867
c9c27b72
NC
298682010-02-02 Nick Clifton <nickc@redhat.com>
29869
29870 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
29871 constant size of 4 as being the same as 0.
29872 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
29873 can take values in the range 0..4.
29874
fc15bd03
JH
298752010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
29876
29877 PR java/41991
29878 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
29879 as _darwin10_Unwind_FindEnclosingFunction().
29880 * libgcc-libsystem.ver: New.
29881
6eeea7a7
VM
298822010-02-01 Vladimir Makarov <vmakarov@redhat.com>
29883
29884 PR target/41399
29885 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
29886 implicitly set registers.
29887
87d05b44
RE
298882010-02-01 Richard Earnshaw <rearnsha@arm.com>
29889
29890 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
29891 (arm_override_options): Allow automatic selection of the thread
29892 pointer register if thumb2.
29893 (legitimize_pic_address): Improve code sequences for Thumb2.
29894 (arm_call_tls_get_addr): Likewise.
29895 (legitimize_tls_address): Likewise.
29896 * arm.md (pic_load_addr_arm): Delete. Replace with ...
29897 (pic_load_addr_32bit): ... this. New named pattern.
29898 * thumb2.md (pic_load_addr_thumb2): Delete.
29899 (pic_load_dot_plus_four): Delete.
29900 (tls_load_dot_plus_four): New named pattern.
29901
cb717ac4
RO
299022010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29903
29904 PR libgomp/29986
29905 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
29906 Document fix for TLS bug.
29907
44f89620
RG
299082010-01-31 Richard Guenther <rguenther@suse.de>
29909
29910 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
29911 conservatively correct.
29912
747b0aed
JDA
299132010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29914
29915 PR target/42850
29916 Revert:
29917 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
29918
29919 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
29920
362c6d2f
KG
299212010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
29922
29923 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
29924
8370a62a
KT
299252010-01-31 Kai Tietz <kai.tietz@onevision.com>
29926
29927 * config.gcc: Adjust order of makefile fragments for mingw targets.
29928
61c7cbf8
RG
299292010-01-31 Richard Guenther <rguenther@suse.de>
29930
29931 PR middle-end/42898
29932 * gimplify.c (gimplify_init_constructor): For volatile LHS
29933 initialize a temporary.
29934
b0a69d20
MK
299352010-01-31 Matthias Klose <doko@ubuntu.com>
29936
29937 * configure.ac: Fix __stack_chk_fail check for cross builds configured
29938 --with-headers
29939 * configure: Regenerate.
29940
55eb4dab
EB
299412010-01-29 Eric Botcazou <ebotcazou@adacore.com>
29942
29943 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
29944 the same alias set and their sizes different constantness.
29945 (aliasing_component_refs_p): Revert 2009-10-24 change.
29946
f9e06dbc
RO
299472010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29948
29949 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
29950 unused.
29951
eb6b98c7
RG
299522010-01-29 Richard Guenther <rguenther@suse.de>
29953
29954 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
29955 Assert we successfully updated the call.
29956
c23cd1d6
JJ
299572010-01-29 Jakub Jelinek <jakub@redhat.com>
29958
29959 PR rtl-optimization/42889
29960 * df.h (df_set_bb_dirty_nonlr): New prototype.
29961 * df-core.c (df_set_bb_dirty_nonlr): New function.
29962 * df-scan.c (df_insn_rescan): Call it instead of
29963 df_set_bb_dirty for DEBUG_INSNs.
29964
38bc76da
RG
299652010-01-29 Richard Guenther <rguenther@suse.de>
29966
29967 PR middle-end/37448
29968 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
29969 quadratic behavior in most cases.
29970
d819472d
UB
299712010-01-28 Uros Bizjak <ubizjak@gmail.com>
29972
29973 PR target/42891
29974 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
29975 in the call to gen_x86_movsicc_0_m1.
29976
3ed7d068
RG
299772010-01-28 Richard Guenther <rguenther@suse.de>
29978
29979 PR tree-optimization/42871
01305d24 29980 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
3ed7d068 29981
830bc550
RG
299822010-01-28 Richard Guenther <rguenther@suse.de>
29983
29984 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
29985 into call arguments.
29986
28e5ca15
RB
299872010-01-28 Richard Guenther <rguenther@suse.de>
29988
29989 PR middle-end/42883
29990 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
29991 the forwarder if the destination is an EH landing pad.
29992
299932010-01-28 Razya Ladelsky <razya@il.ibm.com>
8adfe01d 29994
d819472d 29995 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
8adfe01d
RL
29996 block list passed to gimple_duplicate_sese_tail.
29997 (parallelize_loops): Avoid parallelization when the function
29998 has_nonlocal_label.
29999 Avoid parallelization when the preheader is IRREDUCIBLE.
30000 Try to optimize when estimated_loop_iterations_int is unresolved.
30001 Add the loop's location to the dump file.
28e5ca15 30002 * tree-cfg.c (add_phi_args_after_redirect): Remove.
8adfe01d
RL
30003 (gimple_duplicate_sese_tail): Remove the check for the latch.
30004 Redirect nexits to the exit block.
30005 Remove handling of the incoming edges to the latch.
30006 Redirect the backedge from the copied latch to the exit bb.
30007
3d952fb7
MM
300082010-01-28 Michael Matz <matz@suse.de>
30009
30010 PR target/42881
30011 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
30012 Wrap force_reg into a sequence, emit it before user.
30013
4fc2b1aa
ST
300142010-01-28 Stephen Thomas <stephen.thomas@arm.com>
30015
30016 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
30017 (arm_rev): New.
30018 (arm_legacy_rev): Likewise.
30019 (thumb_legacy_rev): Likewise.
30020
0f277ad4
JJ
300212010-01-27 Jakub Jelinek <jakub@redhat.com>
30022
30023 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
30024 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
30025 on MEM's address failed, try avoid_constant_pool_reference and
30026 recurse if it returned something different.
30027 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
30028 address, try avoid_constant_pool_reference and recurse if it
30029 returned something different.
30030 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
30031 address and avoid_constant_pool_reference returned something
30032 different, don't set have_address.
30033
fb4cbb9f
AO
300342010-01-27 Alexandre Oliva <aoliva@redhat.com>
30035
30036 PR debug/42861
30037 * var-tracking.c (val_store): Add modified argument, obey it.
30038 Adjust callers.
30039 (count_uses): Move down logging of main.
30040 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
30041 don't need resolution.
30042 (emit_notes_in_bb): Likewise.
30043
e87da263
RG
300442010-01-27 Richard Guenther <rguenther@suse.de>
30045
30046 PR middle-end/42878
30047 * tree-inline.c (remap_decl): Delay remapping of SSA name
30048 default definitions until we need them.
30049
c6d99cad
JJ
300502010-01-27 Jakub Jelinek <jakub@redhat.com>
30051
9a78eb71
JJ
30052 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
30053 (rs6000_delegitimize_address): New function.
30054
e8d8f497
JJ
30055 * config/s390/s390.c (s390_delegitimize_address): Call
30056 delegitimize_mem_from_attrs.
30057
c6d99cad
JJ
30058 PR middle-end/42874
30059 * tree-inline.c (cannot_copy_type_1): Removed.
30060 (copy_forbidden): Don't forbid copying of functions containing
30061 records/unions with variable length fields.
30062
4f6fee0f
CB
300632010-01-27 Christian Bruel <christian.bruel@st.com>
30064
30065 Revert:
30066 PR target/42841
30067 * config/sh/sh.c (find_barrier): Increase length for non delayed
30068 conditional branches.
d819472d 30069
cdf6bfb7
MK
300702010-01-27 Matthias Klose <doko@ubuntu.com>
30071
30072 * configure.ac (gnu-unique-object): Fix ldd version check.
30073 * configure: Regenerate.
30074
31b21739
RO
300752010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30076
30077 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
30078 HAVE_GNU_AS value.
30079 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
30080 Test for HAVE_GNU_AS value.
30081
dc4f0670
RO
300822010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
30083
30084 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
30085 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
30086 INT64_TYPE): Define.
30087 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
30088 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
30089 INT_LEAST64_TYPE): Define.
30090 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
30091 UINT_LEAST64_TYPE): Define.
30092 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
30093 INT_FAST64_TYPE): Define.
30094 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
30095 UINT_FAST64_TYPE): Define.
30096 (INTMAX_TYPE, UINTMAX_TYPE): Define.
30097 (INTPTR_TYPE, UINTPTR_TYPE): Define.
30098 (SIG_ATOMIC_TYPE): Define.
30099
a099f7d4
RG
301002010-01-26 Richard Guenther <rguenther@suse.de>
30101
30102 * df-scan.c (df_scan_set_bb_info): Remove assert.
30103 (df_insn_rescan_debug_internal): Merge asserts.
30104 (df_install_ref): Likewise.
30105 (df_mark_reg): Use bitmap_set_range.
30106 (df_hard_reg_used_p): Remove assert.
30107 (df_hard_reg_used_count): Likewise.
30108
0d9b0371
RG
301092010-01-26 Richard Guenther <rguenther@suse.de>
30110
30111 PR rtl-optimization/42685
30112 * web.c (web_main): Ignore DEBUG_INSNs.
30113
7a241624
JR
301142010-01-26 Joern Rennecke <amylaar@spamcop.net>
30115
30116 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
30117
30118 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
30119 Fix types of fndecl and arglist parameters.
30120
3333cd50
RG
301212010-01-26 Richard Guenther <rguenther@suse.de>
30122
30123 PR middle-end/42806
30124 * tree-eh.c (unsplit_eh): Skip debug insns.
30125
7f657dde
RG
301262010-01-26 Richard Guenther <rguenther@suse.de>
30127
30128 PR tree-optimization/42250
30129 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
30130
057dd91d
JJ
301312010-01-26 Jakub Jelinek <jakub@redhat.com>
30132
30133 PR fortran/42866
30134 * omp-low.c (expand_omp_sections): Only use single_pred if
30135 l2_bb is single_pred_p.
30136
69b18163
CB
301372010-01-25 Christian Bruel <christian.bruel@st.com>
30138
30139 PR target/42841
30140 * config/sh/sh.c (find_barrier): Increase length for non delayed
30141 conditional branches.
30142 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
30143
00f88f07
DM
301442010-01-24 David S. Miller <davem@davemloft.net>
30145
31b21739 30146 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
00f88f07 30147 define if not using GAS.
31b21739 30148 * config/sparc/sparc.c (sparc_elf_asm_named_section):
00f88f07
DM
30149 Likewise. Delete SECTION_MERGE code, which is only applicable
30150 when using GAS.
30151
d147cbd9
MM
301522010-01-24 Mark Mitchell <mark@codesourcery.com>
30153
30154 PR c++/42748
30155 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
30156 mangling of va_list in system headers.
30157
a90352a0
TM
301582010-01-23 Toon Moene <toon@moene.org>
30159
30160 * tree-predcom.c (combine_chains): Return NULL, not false.
30161
e96d7dd7
JR
301622010-01-23 Joern Rennecke <amylaar@spamcop.net>
30163
30164 * tree-loop-distribution.c (distribute_loop): Fix declaration and
30165 initialization of variable res to agree with return type.
30166
65c0a517
SE
301672010-01-22 Steve Ellcey <sje@cup.hp.com>
30168
30169 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
30170 * tree-sra.c: Add include of expr.h.
30171
c47987fa
JJ
301722010-01-22 Jakub Jelinek <jakub@redhat.com>
30173
30174 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
30175 insert the debug stmt on the single non-EH edge from the stmt.
30176
002cda0a
RH
301772010-01-22 Richard Henderson <rth@redhat.com>
30178
30179 PR tree-opt/42833
30180 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
30181 the RHS until after generate_subtree_copies has insertted its
30182 code before the current statement.
30183
728d406c
JR
301842010-01-22 Joern Rennecke <amylaar@spamcop.net>
30185
30186 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
30187
45bbb86d
JR
30188 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
30189
7744b697
MJ
301902010-01-21 Martin Jambor <mjambor@suse.cz>
30191
30192 PR tree-optimization/42585
30193 * tree-sra.c (struct access): New field grp_total_scalarization.
30194 (dump_access): Dump the new field.
30195 (should_scalarize_away_bitmap): New variable.
30196 (cannot_scalarize_away_bitmap): Likewise.
30197 (sra_initialize): Allocate new bitmaps.
30198 (sra_deinitialize): Free new bitmaps.
30199 (create_access_1): New function.
30200 (create_access): Parts moved to create_access_1.
30201 (type_consists_of_records_p): New function.
30202 (completely_scalarize_record): Likewise.
30203 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
30204 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
30205 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
30206 access.
30207 (analyze_all_variable_accesses): Completely scalarize small eligible
30208 records.
30209
fff08961
MJ
302102010-01-21 Martin Jambor <mjambor@suse.cz>
30211
30212 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
30213
a288b143
AH
302142010-01-21 Andrew Haley <aph@redhat.com>
30215
d819472d
UB
30216 * gcc.c (process_command): Move lang_specific_driver before
30217 setting cc_libexec_prefix.
a288b143 30218
4e62a017
RG
302192010-01-21 Richard Guenther <rguenther@suse.de>
30220
30221 PR middle-end/19988
30222 * fold-const.c (negate_expr_p): Pretend only negative
30223 real constants are easily negatable.
30224
ebf0bf7f
JJ
302252010-01-20 Janis Johnson <janis187@us.ibm.com>
30226 Jason Merrill <jason@redhat.com>
30227
30228 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
30229 (TYPE_TRANSPARENT_AGGR): this, for union and record.
30230 * calls.c (initialize argument_information): Handle it.
30231 * c-common.c (handle_transparent_union_attribute): Use new name.
30232 * c-decl.c (finish_struct): Ditto.
30233 * c-typeck.c (type_lists_compatible_p): Ditto.
30234 (convert_for_assignment): Use new name and also handle record.
30235 * function.c (aggregate_value_p): Handle it.
30236 (pass_by_reference): Ditto.
30237 (assign_parm_data_types): Ditto.
30238 * print-tree.c (print_node): Ditto.
30239 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
30240 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
30241 * tree.c (first_field): New fn.
30242
907c6efd
DK
302432010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
30244
30245 PR target/42818
30246 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
30247 even when linking statically, for now.
30248
f827f659
AO
302492010-01-20 Alexandre Oliva <aoliva@redhat.com>
30250
30251 PR debug/42715
30252 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
30253 without a cselib val.
30254 (count_uses): Accept MO_VAL_SET with no val on stores.
30255 (add_stores): Likewise.
30256
a85caf9e
JJ
302572010-01-20 Jakub Jelinek <jakub@redhat.com>
30258
30259 * var-tracking.c (check_value_val): Add a compile time assertion.
30260 (dv_is_decl_p): Simplify.
30261 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
30262 gcc_assert if ENABLE_CHECKING.
30263
4a4d4c08
AO
302642010-01-20 Alexandre Oliva <aoliva@redhat.com>
30265
30266 PR debug/42782
30267 * var-tracking.c: Include tree-flow.h.
30268 (mem_dies_at_call): New.
30269 (dataflow_set_preserve_mem_locs): Use it.
30270 (dataflow_set_remove_mem_locs): Likewise.
30271 (dump_var): Renamed from dump_variable. Adjust all callers.
30272 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
30273 * Makefile.in (var-tracking.o): Adjust deps.
30274
50e87e30
JR
302752010-01-20 Joern Rennecke <amylaar@spamcop.net>
30276
30277 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
30278
e9a8afaa
RG
302792010-01-20 Richard Guenther <rguenther@suse.de>
30280
30281 PR tree-optimization/42717
30282 * tree-ssa-dce.c (get_live_post_dom): Remove.
30283 (forward_edge_to_pdom): Take an arbitrary edge to copy
30284 degenerate PHI args from.
30285 (remove_dead_stmt): Use the first post-dominator even if it
30286 does not contain live statements as redirection destination.
30287
be2fd187
RG
302882010-01-20 Richard Guenther <rguenther@suse.de>
30289
30290 * tree-inline.c (estimate_num_insns): Handle EH builtins.
30291
1124098b
JJ
302922010-01-20 Jakub Jelinek <jakub@redhat.com>
30293
30294 * sel-sched.c (create_speculation_check): Remove set but not used
30295 variable twin.
30296 (try_transformation_cache): Remove set but not used variable ds.
30297 (calculate_privileged_insns): Remove set but not used variables
30298 cur_insn and min_spec_insn.
30299 (find_best_expr): Remove set but not used variable avail_n.
30300 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
30301 variable e.
30302 * cgraphunit.c (assemble_thunk): Remove set but not used variable
30303 false_label.
30304 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
30305 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
30306 new_scop_exit_edge.
30307
83a5ef25
FW
303082010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
30309
30310 PR bootstrap/42786
30311 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
30312 cpu types. Add support for *-sse3 cpu types.
30313 (x86_64-*-*): Ditto.
30314
b5c0899b
JJ
303152010-01-20 Jakub Jelinek <jakub@redhat.com>
30316
30317 PR middle-end/42803
30318 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
30319 argument, call initializer_constant_valid_p_1 instead of
30320 initializer_constant_valid_p, pass CACHE to it, return NULL
30321 immediately if first call returns NULL.
30322 (initializer_constant_valid_p_1): New function.
30323 (initializer_constant_valid_p): Use it.
30324
5f8f3f94
TQ
303252010-01-20 Thomas Quinot <quinot@adacore.com>
30326
30327 * tree.def (PLACEHOLDER_EXPR): Fix comment.
30328
80c35b40
JJ
303292010-01-20 Jakub Jelinek <jakub@redhat.com>
30330
30331 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
30332 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
30333 (loc_list_from_tree): Don't handle unsigned division. Handle
30334 signed modulo using DW_OP_{over,over,div,mul,minus}.
30335 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
30336 modulo instead of signed.
30337
c72ea086
DD
303382010-01-20 DJ Delorie <dj@redhat.com>
30339
30340 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
30341 (Fpa): Pass it
30342 (h8300_emit_stack_adjustment): Propogate it.
30343 (push): Pass it.
30344 (h8300_expand_prologue): Likewise.
30345 (h8300_expand_epilogue): Likewise.
30346
b61b1f17
MM
303472010-01-19 Michael Matz <matz@suse.de>
30348
30349 PR tree-optimization/41783
30350 * tree-data-ref.c (toplevel): Include flags.h.
30351 (dump_data_dependence_relation): Also dump the inputs if the
30352 result will be unknown.
30353 (split_constant_offset_1): Look through some conversions.
30354 * tree-predcom.c (determine_roots_comp): Restart a new chain if
30355 the offset from last element is too large.
30356 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
30357 (reassociate_to_the_same_stmt): Handle vector registers.
30358 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
30359 (e.g. conversions).
31b21739 30360 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
b61b1f17
MM
30361 wide_prolog_niters argument, emit widening instructions.
30362 (vect_do_peeling_for_alignment): Adjust caller, use widened
30363 variant of the iteration cound.
30364 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
30365
b3d7e191
RR
303662010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30367
b61b1f17
MM
30368 PR target/38697
30369 * config/arm/neon-testgen.m (emit_automatics): New parameter
b3d7e191
RR
30370 features. Adjust for Fixed_return_reg feature.
30371 (test_intrinsic): Call emit_automatics with new feature.
b61b1f17 30372 * config/arm/neon.ml: Update copyright years.
b3d7e191
RR
30373 (features): New Fixed_return_reg feature.
30374 (ops): Update feature for Vget_low.
30375
2178b0f9
JJ
303762010-01-19 Jakub Jelinek <jakub@redhat.com>
30377
d6600130
JJ
30378 PR tree-optimization/42719
30379 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
30380 stmt uses.
30381
2178b0f9
JJ
30382 PR debug/42728
30383 * fwprop.c (all_uses_available_at): Return false if def_set dest
30384 is a REG that is used in def_insn.
30385
ab7e224a
JR
303862010-01-19 Joern Rennecke <amylaar@spamcop.net>
30387
30388 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
30389
30390 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
30391 Add argument names.
30392
30393 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
30394
f7154d49
JR
30395 * target.h (struct gcc_target) <secondary_reload>: Change type
30396 of last argument to secondary_reload_info *.
30397
f249b405
UB
303982010-01-18 Uros Bizjak <ubizjak@gmail.com>
30399
30400 PR target/42774
30401 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
30402 memory references with unaligned offsets. Remove CQImode handling.
30403 (unaligned_memory_operand): Return 1 for memory references with
30404 unaligned offsets. Remove CQImode handling.
30405
e23817b3
RG
304062010-01-18 Richard Guenther <rguenther@suse.de>
30407
30408 PR middle-end/39954
30409 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
30410 builtin calls.
30411
1cfd38be
RG
304122010-01-18 Richard Guenther <rguenther@suse.de>
30413
30414 PR tree-optimization/42781
30415 * tree-ssa-structalias.c (find_what_var_points_to): Skip
b5e33e04 30416 restrict processing only if the original variable was artificial.
1cfd38be 30417
72392b81
JR
304182010-01-18 Joern Rennecke <amylaar@spamcop.net>
30419
30420 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
30421 find number of popped argument bytes.
30422
30423 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
30424 Fix the text that describes the return value for invalid insns.
30425
30426 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
30427
30428 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
30429 Clarify what 'cost of the -dependence' is. Fix quoting.
30430
0678ade0
JR
30431 * toplev.c (default_get_pch_validity): Rename argument to "sz".
30432 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
30433
e5165811
JJ
304342010-01-17 Jakub Jelinek <jakub@redhat.com>
30435
30436 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
30437 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
30438
3b3f318a
RG
304392010-01-17 Richard Guenther <rguenther@suse.de>
30440
30441 PR middle-end/42248
30442 * function.c (split_complex_args): Take a VEC to modify.
30443 (assign_parms_augmented_arg_list): Build a VEC instead of
30444 a chain of PARM_DECLs.
30445 (assign_parms_unsplit_complex): Take a VEC of arguments.
30446 Do not fixup unmodified parms.
30447 (assign_parms): Deal with the VEC.
30448 (gimplify_parameters): Likewise.
30449
8eacd016
RG
304502010-01-17 Richard Guenther <rguenther@suse.de>
30451
30452 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
30453 node existence check.
30454 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
30455 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
30456 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
30457 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
30458 (gimple_execute_on_growing_pred): Likewise.
30459
9adf0570
RG
304602010-01-17 Richard Guenther <rguenther@suse.de>
30461
30462 PR tree-optimization/42773
30463 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
30464 (compute_antic_aux): Likewise.
30465 (compute_partial_antic_aux): Likewise.
30466
a90110c3
JZ
304672010-01-17 Jie Zhang <jie.zhang@analog.com>
30468
30469 PR debug/42767
30470 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
30471 and US_TRUNCATE.
30472
914d25dc
JR
304732010-01-17 Joern Rennecke <amylaar@spamcop.net>
30474
30475 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
30476 appearance.
30477
30478 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
30479 Fix markup for strict argument.
30480
30481 (TARGET_SCHED_REORDER2): Fix argument types.
30482
30483 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
30484 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
30485
30486 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
30487 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
30488
30489 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
30490 Add argument name.
30491
30492 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
30493 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
30494 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
30495 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
30496 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
30497
30498 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
30499
30500 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
30501
30502 (TARGET_ASM_RELOC_RW_MASK): Add return type.
30503 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
30504
30505 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
30506
30507 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
30508 Use prototype.
30509
30510 (TARGET_ASM_NAMED_SECTION): Fix argument list.
30511
30512 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
30513 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
30514
30515 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
30516
30517 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
30518
30519 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
30520 referring to it. Fix language.
30521
30522 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
30523
30524 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
30525
30526 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
30527
30528 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
30529
30530 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
30531 '@var{stream}. Remove stray 'and'.
30532
30533 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
30534
30535 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
30536
30537 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
30538
31b21739 30539 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
914d25dc
JR
30540 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
30541
30542 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
30543 Fix description of return value.
30544 Rename argument "sz" to "len."
30545
30546 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
30547 Clarify meaning of 'true' return value.
30548
30549 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
30550
30551 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
30552 rep_mode versus mode_rep.
30553
30554 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
30555
30556 (TARGET_BUILTIN_DECL): Fix name.
30557
30558 (TARGET_COMMUTATIVE_P): Fix type of first argument.
30559
30560 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
30561
30562 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
30563
30564 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
30565
30566 (TARGET_RELAXED_ORDERING): Use @deftypevr.
30567
30568 (TARGET_GET_DRAP_RTX): Note that this is a hook.
30569 Clarify language.
30570
5eb7ce91
JR
30571 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
30572 Rename argument tm_fn to md_fn.
30573
d2143a2f
JR
30574 (TARGET_OPTION_PRINT): Fix argument list.
30575
8f7fd2da
HJ
305762010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
30577
30578 PR target/42664
30579 * config/i386/i386.c (ix86_fixup_binary_operands):
30580 Revert FMA4 fixup of operands.
30581
2fdb618d
RW
305822010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30583
30584 PR gcc/42525
30585 * Makefile.in (write_entries_to_file, install-plugin):
30586 Use \012 instead of \n with tr.
30587
636cf8b1
RS
305882010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
30589
30590 * configure.ac (HAVE_AS_REF): New C macro.
30591 * configure: Regenerate.
30592 * config.in: Likewise.
30593 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
30594 if HAVE_AS_REF.
30595 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
30596 if HAVE_AS_REF.
30597
b6fd8800
JR
305982010-01-16 Joern Rennecke <amylaar@spamcop.net>
30599
30600 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
30601
30602 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
30603
30604 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
30605
30606 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
30607
30608 (TARGET_IN_SMALL_DATA_P): Fix argument type.
30609
30610 (TARGET_BINDS_LOCAL_P): Fix argument type.
30611
30612 (TARGET_ASM_FILE_END): Use prototype.
30613
30614 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
30615
30616 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
30617
30618 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
30619
30620 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
30621
30622 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
30623 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
30624
30625 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
30626 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
30627
30628 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
30629 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
30630 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
30631 (TARGET_ADDR_SPACE_CONVERT): Likewise.
30632
30633 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
30634
30635 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
30636
30637 (TARGET_INIT_BUILTINS): Use prototype.
30638
30639 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
30640 Put 'const char *' in braces. Fix parameter types.
30641 (TARGET_INVALID_CONVERSION): Fix parameter types.
30642 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
30643 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
30644
30645 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
30646 Fix argument type.
30647
30648 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
30649
30650 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
30651
9ddb66ef
JR
306522010-01-15 Joern Rennecke <amylaar@spamcop.net>
30653
30654 * doc/tm.texi (TARGET_HELP): Fix return type.
30655
30656 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
30657 in braces. Fix argument types.
30658
30659 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
30660
30661 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
30662
30663 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
30664
30665 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
30666 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
30667
30668 (TARGET_MANGLE_TYPE): Fix argument types.
30669
30670 (TARGET_IRA_COVER_CLASSES): Use prototype.
30671
30672 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
30673
30674 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
30675
30676 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
30677
30678 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
30679
30680 (TARGET_CALLEE_COPIES): Fix argument types.
30681
30682 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
30683
30684 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
30685
30686 (TARGET_FUNCTION_VALUE): Fix argument types.
30687
30688 (TARGET_RETURN_IN_MSB): Fix argument type.
30689
30690 (TARGET_RETURN_IN_MEMORY): Fix argument types.
30691
30692 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
30693
30694 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
30695
30696 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
30697 agree with return type.
30698
30699 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
30700
4a62494d
JY
307012010-01-15 Jing Yu <jingyu@google.com>
30702
30703 PR rtl-optimization/42691
30704 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
30705 a pseudo to a constant and are merged, and adjust comments.
30706
a1b5171b
EB
307072010-01-15 Eric Botcazou <ebotcazou@adacore.com>
30708
30709 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
30710
1197e789
RG
307112010-01-15 Richard Guenther <rguenther@suse.de>
30712
30713 PR middle-end/42739
30714 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
30715 labels of computed or non-local gotos to the destination.
30716 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
30717 landing pad label is the first label.
30718
cbe80ff8
RG
307192010-01-15 Richard Guenther <rguenther@suse.de>
30720
30721 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
30722
c919858d
MM
307232010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
30724
30725 PR target/42747
30726 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
30727 to allow generation of the xssqrtdp instruction on power7.
30728 (sqrtdf2_fpr): Ditto.
30729
5b1cbe14
JJ
307302010-01-14 Jakub Jelinek <jakub@redhat.com>
30731
ef5d1181
JJ
30732 PR middle-end/42674
30733 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
30734 functions with noreturn attribute.
30735
5b1cbe14
JJ
30736 PR c++/42608
30737 * varasm.c (declare_weak): Add weak attribute to decl if it
30738 doesn't have one already.
30739 (assemble_external): Only add decls to weak_decls if they also
30740 have weak attribute.
30741
7d2a8452
AO
307422010-01-14 Alexandre Oliva <aoliva@redhat.com>
30743
30744 * var-tracking.c (var_reg_delete): Don't delete the association
30745 between REGs and values or one-part variables if the register
30746 isn't clobbered.
30747
d17af147
JJ
307482010-01-14 Jakub Jelinek <jakub@redhat.com>
30749
30750 PR debug/42657
30751 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
30752 because its first operand is a non-localized variable.
30753
2f3cdcf5
MJ
307542010-01-14 Martin Jambor <mjambor@suse.cz>
30755
30756 PR tree-optimization/42706
30757 * tree-sra.c (encountered_recursive_call): New variable.
30758 (encountered_unchangable_recursive_call): Likewise.
30759 (sra_initialize): Initialize both new variables.
30760 (callsite_has_enough_arguments_p): New function.
30761 (scan_function): Call decl and flags check only for IPA-SRA, check
30762 whether there is a recursive call and whether it has enough arguments.
30763 (all_callers_have_enough_arguments_p): New function.
30764 (convert_callers): Look for recursive calls only when
30765 encountered_recursive_call is set.
30766 (ipa_early_sra): Bail out either if
30767 !all_callers_have_enough_arguments_p or
30768 encountered_unchangable_recursive_call.
30769
c02e2d5c
AM
307702010-01-14 Alexander Monakov <amonakov@ispras.ru>
30771
30772 * sel-sched.c: Add 2010 to copyright years.
30773 * sel-sched-ir.c: Likewise.
30774 * sel-sched-ir.h: Likewise.
30775
92e97cdd
MJ
307762010-01-14 Martin Jambor <mjambor@suse.cz>
30777
30778 PR tree-optimization/42714
30779 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
30780 constructors specially.
30781
a0463099
AK
307822010-01-14 Andi Kleen <ak@linux.intel.com>
30783
30784 * config/i386/drivers-i386.c (detect_caches_intel):
30785 Add l2sizekb parameter and fill in.
30786 (host_detect_local_cpu): Add l2sizekb, fill in.
30787 Add Atom small cache heuristic.
30788
307892010-01-14 Andi Kleen <ak@linux.intel.com>
30790
30791 * config/i386/drivers-i386.c (detect_caches_cpuid4):
30792 Add level3 parameter and fill in.
30793 (detect_caches_intel): Handle level3 cache.
30794
307952010-01-14 Andi Kleen <ak@linux.intel.com>
30796
30797 * config/i386/drivers-i386.c (host_detect_local_cpu):
30798 Fix core duo detection.
30799
308002010-01-14 Andi Kleen <ak@linux.intel.com>
30801
30802 * config/i386/drivers-i386.c (host_detect_local_cpu):
30803 Fix Atom detection.
30804
dd6739e3
AM
308052010-01-14 Alexander Monakov <amonakov@ispras.ru>
30806
30807 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
30808 (rs6000_variable_issue_1): this. Use...
30809 (rs6000_variable_issue): here. Reimplement. Print debug info.
30810
7898b93b
AM
308112010-01-14 Alexander Monakov <amonakov@ispras.ru>
30812
a0463099
AK
30813 * sel-sched-ir.c (sel_restore_other_notes): Rename to
30814 sel_restore_notes. Update all callers. Call reemit_notes
30815 for all insns.
7898b93b 30816
65b659ff
AB
308172010-01-14 Andrey Belevantsev <abel@ispras.ru>
30818
30819 PR rtl-optimization/42246
30820 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
30821 loops.
30822
c6486552
AB
308232010-01-14 Andrey Belevantsev <abel@ispras.ru>
30824
30825 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
30826 all successors is the same as number of successors in current region.
30827
f07013eb
AM
308282010-01-14 Alexander Monakov <amonakov@ispras.ru>
30829
30830 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
30831 to rename is not separable. Otherwise check that its LHS is not NULL.
30832
a9ced68b
AM
308332010-01-14 Alexander Monakov <amonakov@ispras.ru>
30834
30835 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
30836
0c94f956
AM
308372010-01-14 Alexander Monakov <amonakov@ispras.ru>
30838
30839 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
30840 available registers when failed to discover LHS register class.
30841 Fix indentation. Update comment.
30842
136e01a3
AB
308432010-01-14 Andrey Belevantsev <abel@ispras.ru>
30844 Alexander Monakov <amonakov@ispras.ru>
30845
30846 PR rtl-optimization/42389
30847 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
30848 to can_issue_more.
30849 (advance_state_on_fence): Likewise.
30850 (sel_target_adjust_priority): Print debug output only when
30851 sched_verbose >= 4, not 2.
30852 (get_expr_cost): Do not issue all unique insns on the next cycle.
30853 (fill_insns): Initialize can_issue_more from the value saved
30854 with the fence.
30855 * sel-sched-ir.c (flist_add): New parameter issue_more.
30856 Init FENCE_ISSUE_MORE with it.
30857 (merge_fences): Likewise.
30858 (init_fences): Update call to flist_add.
30859 (add_to_fences, add_clean_fence_to_fences)
30860 (add_dirty_fence_to_fences): Likewise.
30861 (move_fence_to_fences): Update call to merge_fences.
30862 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
30863 sched groups.
30864 * sel-sched-ir.h (struct _fence): New field issue_more.
30865 (FENCE_ISSUE_MORE): New accessor macro.
30866
762bffba
AB
308672010-01-14 Andrey Belevantsev <abel@ispras.ru>
30868
30869 PR rtl-optimization/42388
30870 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
30871 that have no predecessors nor successors. Do not call move_bb_info
30872 for empty blocks outside of current region.
30873
14f30b87
AM
308742010-01-14 Alexander Monakov <amonakov@ispras.ru>
30875
30876 PR rtl-optimization/42294
30877 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
30878 * sel-sched.c (move_exprs_to_boundary): Transitively add all
30879 originators' originators.
30880
8ec4d0ad
AM
308812010-01-14 Alexander Monakov <amonakov@ispras.ru>
30882
30883 PR rtl-optimization/39453
30884 PR rtl-optimization/42246
30885 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
30886 for pipelining_p.
30887 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
30888
b59ab570
AM
308892010-01-14 Andrey Belevantsev <abel@ispras.ru>
30890 Alexander Monakov <amonakov@ispras.ru>
30891
30892 PR middle-end/42245
30893 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
30894 (maybe_tidy_empty_bb): ... here. Make static. Add new
30895 argument. Update all callers.
30896 (tidy_control_flow): ... and here. Recompute topological order
30897 of basic blocks in region if necessary.
30898 (sel_redirect_edge_and_branch): Change return type. Return true
30899 if topological order might have been invalidated.
30900 (purge_empty_blocks): Export and move from...
30901 * sel-sched.c (purge_empty_blocks): ... here.
30902 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
c02e2d5c 30903 (maybe_tidy_empty_bb): Delete prototype.
b59ab570
AM
30904 (purge_empty_blocks): Declare.
30905
f4a4b582 309062010-01-14 Andrey Belevantsev <abel@ispras.ru>
0666ff4e 30907
b59ab570 30908 PR rtl-optimization/42249
0666ff4e
AB
30909 * sel-sched.c (try_replace_dest_reg): When chosen register
30910 and original register is the same, do not bail out early, but
30911 still check all original insns for validity of replacing destination
30912 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
30913 in this case.
30914
5f8d5023
JJ
309152010-01-14 Jakub Jelinek <jakub@redhat.com>
30916
30917 PR c/42721
a0463099 30918 Port from no-undefined-overflow branch:
5f8d5023
JJ
30919 2009-03-09 Richard Guenther <rguenther@suse.de>
30920
a0463099 30921 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
5f8d5023 30922
429c98c9
RG
309232010-01-14 Richard Guenther <rguenther@suse.de>
30924
30925 PR lto/42665
b5e33e04 30926 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
429c98c9 30927
cd481d83
IR
309282010-01-14 Ira Rosen <irar@il.ibm.com>
30929
30930 PR tree-optimization/42709
30931 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
30932 as scalar type in creation of constant vector operand.
30933
453897b4
RW
309342010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
30935
30936 PR testsuite/42414
30937 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
30938 (check-parallel-%): Match `testsuite' directory component only
30939 at the end.
30940
5bc69b92
SZ
309412010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
30942
30943 PR translation/39521
30944 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
30945 strings with _().
30946
5db959b6
RG
309472010-01-13 Richard Guenther <rguenther@suse.de>
30948
30949 PR tree-optimization/42730
30950 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
30951 offset zero.
30952
9540f5ef
SE
309532010-01-13 Steve Ellcey <sje@cup.hp.com>
30954
30955 PR target/pr42542
30956 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
30957 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
30958 them signed.
30959
84fb8ff5
BS
309602010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
30961
30962 * config/bfin/libgcc-bfin.ver: Regenerate based on current
30963 libgcc-std.ver. Add entries for ___smulsi3_highpart and
30964 ___umulsi3_highpart.
30965
6cca15ea
BS
30966 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
30967 rather than schedule_insns if the pass is enabled.
30968
19656178
MJ
309692010-01-13 Martin Jambor <mjambor@suse.cz>
30970
30971 PR tree-optimization/42704
30972 * tree-sra.c (sra_modify_assign): Do not delete assignments to
30973 SSA_NAMEs.
30974
6dc93b16
MJ
309752010-01-13 Martin Jambor <mjambor@suse.cz>
30976
30977 PR tree-optimization/42703
30978 * tree-sra.c (analyze_access_subtree): Check that we can build a
30979 reference to the original data within the aggregate.
30980
1d21a8e5
RG
309812010-01-13 Richard Guenther <rguenther@suse.de>
30982
30983 PR tree-optimization/42705
b5e33e04 30984 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
1d21a8e5 30985
48f30f62
RG
309862010-01-13 Richard Guenther <rguenther@suse.de>
30987
30988 PR middle-end/42716
30989 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
30990
9e73c690
JJ
309912010-01-13 Jakub Jelinek <jakub@redhat.com>
30992
30993 PR debug/41371
30994 * var-tracking.c (values_to_unmark): New variable.
30995 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
30996 values_to_unmark vector. Moved body to...
30997 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
30998 instead queue it into values_to_unmark vector.
30999 (vt_find_locations): Free values_to_unmark vector.
31000
dc2f28c5
WG
310012010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
31002
31003 * config/s390/s390.c (override_options): Set
31004 default of max-pending-list-length to 256
31005
688a482d
RG
310062010-01-13 Richard Guenther <rguenther@suse.de>
31007
31008 PR lto/42678
31009 * tree-pass.h (PROP_gimple_lcx): New.
31010 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
31011 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
31012 before the final cleanup_eh.
31013 (dump_properties): Dump PROP_gimple_lcx.
31014 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
31015 (tree_lower_complex_O0): Remove.
31016 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
31017 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
31018 tree_lower_complex, schedule TODO_update_ssa.
31019 * lto-streamer-out.c (output_function): Stream the functions
31020 properties.
31021 * lto-streamer-in.c (input_function): Likewise.
31022 (lto_read_body): Do not override them here.
31023
e616f54d
JM
310242010-01-12 Joseph Myers <joseph@codesourcery.com>
31025
31026 PR c/42708
31027 * c-typeck.c (build_c_cast): Fold value cast to union type before
31028 wrapping it in a CONSTRUCTOR.
31029
b4ab701f
JJ
310302010-01-12 Jakub Jelinek <jakub@redhat.com>
31031
31032 PR rtl-optimization/42699
31033 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
31034 involved.
31035
4dde664f
RO
310362010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31037
31038 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
31039 SUBTARGET_WARN_UNUSED_SPEC): Move ...
31040 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
31041 SUBTARGET_WARN_UNUSED_SPEC): ... here
31042 * config/mips/iris5.h (LIBGCC_SPEC): Define.
31043
24fe19c3
JB
310442010-01-12 Julian Brown <julian@codesourcery.com>
31045
a0463099 31046 * config/arm/neon-schedgen.ml (Utils): Don't try to
24fe19c3 31047 open missing module.
a0463099 31048 (find_with_result): New.
24fe19c3 31049
082ab5ff
JJ
310502010-01-12 Jakub Jelinek <jakub@redhat.com>
31051
4942b76b
JJ
31052 PR debug/42662
31053 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
31054 sharing when canonicalizing ({lt,ge}u (plus a b) b).
31055
082ab5ff
JJ
31056 PR tree-optimization/42645
31057 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
31058 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
31059 decl_map, set processing_debug_stmt to -1 and return name without
31060 any remapping.
31061
977f7997
DK
310622010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
31063
31064 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
31065 binutils version, and reword target configuration description.
31066
2685baa1
AH
310672010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
31068
a0463099 31069 * config/avr/avr.h (LINKER_NAME): Remove.
2685baa1 31070
3767f512
JJ
310712010-01-11 Janis Johnson <janis187@us.ibm.com>
31072
31073 PR target/42416
31074 * config/rs6000/rs6000.c (rs6000_override_options): On targets
31075 that support VSX, warn for -mno-altivec if vsx is not disabled,
31076 and disable vsx.
31077
f94e1d66
JM
310782010-01-11 Joseph Myers <joseph@codesourcery.com>
31079 Shujing Zhao <pearly.zhao@oracle.com>
a0463099 31080
f94e1d66
JM
31081 PR translation/42469
31082 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
31083 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
31084 character between option name and help text.
31085 * c.opt (imultilib): Likewise.
31086
06bfe1d0
RAE
310872010-01-10 Rafael Avila de Espindola <espindola@google.com>
31088
31089 * lto-streamer-out.c (output_unreferenced_globals): Output static
31090 variables.
31091
c21f33b6
SB
310922010-01-10 Steven Bosscher <steven@gcc.gnu.org>
31093
31094 PR rtl-optimization/42621
31095 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
31096 optimizing for size.
31097 (duplicate_computed_gotos): Remove now-redundant check.
31098
30ce157e
SE
310992010-01-10 Steve Ellcey <sje@cup.hp.com>
31100
31101 PR target/37454
31102 * configure.ac: Save and restore LDFLAGS and LIBS
31103 * configure: Regenerate.
31104
ab996409
RG
311052010-01-10 Richard Guenther <rguenther@suse.de>
31106
31107 PR middle-end/42667
31108 * builtins.c (fold_builtin_strlen): Add type argument and
31109 convert the resulting length to it.
31110 (fold_builtin_1): Adjust.
31111
7234a615
JJ
311122010-01-09 Jakub Jelinek <jakub@redhat.com>
31113
31114 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
31115 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
31116 1 insn.
31117 (num_insns_constant_wide): Adjust for that change.
31118
994ae26c
AO
311192010-01-09 Alexandre Oliva <aoliva@redhat.com>
31120
31121 PR debug/42631
31122 * web.c (union_defs): Add used argument, to combine uses of
31123 uninitialized regs.
31124 (entry_register): Adjust type and tests of used argument.
31125 (web_main): Widen used for new use. Pass it to union_defs.
31126 * df.h (union_defs): Adjust prototype.
31127
60c48e4c
AO
311282010-01-09 Alexandre Oliva <aoliva@redhat.com>
31129
31130 PR debug/42630
31131 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
31132 uses in new incoming argument. Free body.
31133 (reset_debug_uses_in_loop): New.
31134 (analyze_insn_to_expand_var): Call the latter if the former found
31135 anything. Fix whitespace. Reject invalid dest overlaps before
31136 going through all insns in the loop.
31137
bb956f3e
AO
311382010-01-09 Alexandre Oliva <aoliva@redhat.com>
31139
31140 PR debug/42629
31141 * haifa-sched.c (dying_use_p): Debug insns don't count.
31142
5de8da9b
AO
311432010-01-09 Alexandre Oliva <aoliva@redhat.com>
31144
31145 PR middle-end/42363
31146 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
31147 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
31148 (verify_gimple_call): Reject LHS in noreturn calls.
31149
684f25f4
AO
311502010-01-09 Alexandre Oliva <aoliva@redhat.com>
31151
31152 PR debug/42604
31153 PR debug/42395
31154 * tree-vect-loop-manip.c (adjust_info): New type.
31155 (adjust_vec): New pointer to vector.
31156 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
31157 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
31158 (slpeel_update_phis_for_duplicate_loop): Use them.
31159 (slpeel_update_phi_nodes_for_guard1): Likewise.
31160 (slpeel_update_phi_nodes_for_guard2): Likewise.
31161 (slpeel_tree_peel_loop_to_edge): Likewise.
31162 (vect_update_ivs_after_vectorizer): Likewise.
31163
0e00563c
AO
311642010-01-09 Alexandre Oliva <aoliva@redhat.com>
31165
31166 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
31167 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
31168
0ce659eb
AO
311692010-01-09 Alexandre Oliva <aoliva@redhat.com>
31170
31171 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
31172 bogus uninitialized warning.
31173
73c865fa
RG
311742010-01-09 Richard Guenther <rguenther@suse.de>
31175
31176 PR middle-end/42512
31177 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
31178 the evolution is compatible with the initial condition.
31179
bd5c3aa5
JJ
311802010-01-09 Jakub Jelinek <jakub@redhat.com>
31181
31182 * gcc.c (process_command): Update copyright notice dates.
31183 * gcov.c (print_version): Likewise.
31184 * gcov-dump.c (print_version): Likewise.
31185 * mips-tfile.c (main): Likewise.
31186 * mips-tdump.c (main): Likewise.
31187
58f0ea2f
AH
311882010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
31189
31190 PR target/41885
2685baa1 31191 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
58f0ea2f
AH
31192 (rotlhi3): Delete.
31193 (rotlhi3_8): Delete.
31194 (rotlsi3): Delete.
31195 (rotlsi3_8): Delete.
31196 (rotlsi3_16): Delete.
31197 (rotlsi3_24): Delete.
31198 (rotl<mode>3): New.
31199 (*rotw<mode>3): New.
31200 (*rotb<mode>3): New.
2685baa1 31201 * config/avr/avr.c (avr_rotate_bytes): New function.
a0463099 31202 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
58f0ea2f 31203
601fc26e
SE
312042010-01-08 Steve Ellcey <sje@cup.hp.com>
31205
31206 PR target/37454
31207 * configure.ac: Modify -rdynamic check.
31208 * configure: Regenerate.
31209
6a62ca52
DD
312102010-01-08 DJ Delorie <dj@redhat.com>
31211
31212 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
31213 register popping order.
31214
c59449fa
RG
312152010-01-08 Richard Guenther <rguenther@suse.de>
31216
31217 PR lto/42528
31218 * c.opt (fsigned-char): Also let LTO handle this option.
31219 (funsigned-char): Likewise.
31220
f68a75df
RG
312212010-01-07 Richard Guenther <rguenther@suse.de>
31222
31223 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
31224 (gimple_op): Likewise.
31225 (gimple_op_ptr): Likewise.
31226 (gimple_assign_set_lhs): Remove gcc_assert.
31227 (gimple_assign_set_rhs1): Likewise.
31228 (gimple_assign_set_rhs2): Likewise.
31229 (gimple_call_set_lhs): Likewise.
31230 (gimple_call_set_fn): Likewise.
31231 (gimple_call_set_fndecl): Likewise.
31232 (gimple_call_fndecl): Likewise.
31233 (gimple_call_return_type): Likewise.
31234 (gimple_call_set_chain): Likewise.
31235 (gimple_call_num_args): Likewise.
31236 (gimple_call_set_arg): Likewise.
31237 (gimple_cond_set_code): Likewise.
31238 (gimple_cond_set_lhs): Likewise.
31239 (gimple_cond_set_rhs): Likewise.
31240 (gimple_cond_set_true_label): Likewise.
31241 (gimple_cond_set_false_label): Likewise.
31242 (gimple_label_set_label): Likewise.
31243 (gimple_goto_set_dest): Likewise.
31244 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
31245 (gimple_debug_bind_get_value): Likewise.
31246 (gimple_debug_bind_get_value_ptr): Likewise.
31247 (gimple_debug_bind_set_var): Likewise.
31248 (gimple_debug_bind_set_value): Likewise.
31249 (gimple_debug_bind_reset_value): Likewise.
31250 (gimple_debug_bind_has_value_p): Likewise.
31251 (gimple_return_retval_ptr): Remove gcc_assert.
31252 (gimple_return_retval): Likewise.
31253 (gimple_return_set_retval): Likewise.
31254 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
31255 (safe_referenced_var_iterator): Remove.
31256 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
31257 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
31258 (fill_referenced_var_vec): Remove.
31259 (first_readonly_imm_use): Remove redundant gcc_assert.
31260 (phi_arg_index_from_use): Combine gcc_asserts.
31261 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
31262 (first_imm_use_stmt): Remove redundant gcc_assert.
31263 * tree-cfg.c (verify_gimple_call): Verify function and chain
31264 operands. Verify arguments.
31265 (verify_types_in_gimple_stmt): Verify condition code and labels.
31266
617531d9
RG
312672010-01-07 Richard Guenther <rguenther@suse.de>
31268
31269 PR tree-optimization/42641
31270 * sese.c (rename_map_elt_info): Use the SSA name version, do
31271 not hash pointers.
31272
4139c7ef
JJ
312732010-01-07 Jakub Jelinek <jakub@redhat.com>
31274
31275 PR tree-optimization/42625
31276 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
b5e33e04 31277 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
4139c7ef 31278
01094033
DS
312792010-01-07 Duncan Sands <baldrick@free.fr>
31280
31281 * Makefile.in (PLUGIN_HEADERS): Add version.h.
31282
4b9ed9aa
UB
312832010-01-07 Uros Bizjak <ubizjak@gmail.com>
31284
31285 PR target/42511
31286 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
31287 note itself is not function_invariant_p.
31288
f50f5566
SB
312892009-01-07 Steven Bosscher <steven@gcc.gnu.org>
31290
31291 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
31292 Do not add the DF_NOTE problem.
31293 * store-motion.c (execute_rtl_store_motion): Likewise.
31294
d05fe940
MJ
312952010-01-07 Martin Jambor <mjambor@suse.cz>
31296
31297 PR tree-optimization/42157
31298 * tree-sra.c (compare_access_positions): Stabilize sort if both
31299 accesses have integer types, return zero immediately if they are the
31300 same.
31301
e67271bd
RH
313022010-01-06 Richard Henderson <rth@redhat.com>
31303
31304 PR middle-end/41883
31305 * haifa-sched.c (add_to_note_list): Merge into ...
31306 (concat_note_lists): ... here, and ...
31307 (unlink_other_notes, rm_other_notes): Merge into...
31308 (remove_notes): ... here. Create REG_SAVE_NOTEs for
a0463099 31309 NOTE_INSN_EPILOGUE_BEG.
e67271bd 31310
6209a13e
RG
313112010-01-06 Richard Guenther <rguenther@suse.de>
31312
31313 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
31314 not inline regular functions into always-inline functions.
31315
5f75e477
NC
313162010-01-06 Nick Clifton <nickc@redhat.com>
31317
31318 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
31319 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
31320 used together.
31321 (OVERRIDE_OPTIONS): Delete.
31322 (OPTIMIZATION_OPTIONS): Define.
31323 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
31324 * config/rx/rx.c (rx_handle_option): Issue an error message if
31325 -mcpu=rx200 and -fpu are used together.
31326 (rx_set_optimization_options): New function. Issue an error
31327 message if an optimization attribute attempts to reset the FPU/
31328 math optimization pairing.
31329 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
31330 * config/rx/rx.opt: Set the default to 32-bit doubles.
31331 * config/rx/t-rx: Add multilibs for -nofpu option.
31332 * doc/invoke.texi: Update documentation of RX options.
31333
13de9095
RG
313342010-01-06 Richard Guenther <rguenther@suse.de>
31335
31336 * tree-ssa-pre.c (name_to_id): New global.
31337 (alloc_expression_id): Simplify SSA name handling.
31338 (lookup_expression_id): Likewise.
31339 (init_pre): Zero name_to_id.
31340 (fini_pre): Free it.
31341
786c3fbc
UB
313422010-01-06 Uros Bizjak <ubizjak@gmail.com>
31343
31344 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
31345
fa1a4144
L
313462010-01-05 H.J. Lu <hongjiu.lu@intel.com>
31347
31348 PR target/42542
31349 * config/i386/sse.md (smaxv2di3): New.
31350 (umaxv2di3): Likewise.
31351 (sminv2di3): Likewise.
31352 (uminv2di3): Likewise.
31353
208384fd
EB
313542010-01-05 Eric Botcazou <ebotcazou@adacore.com>
31355
31356 PR target/42564
31357 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
31358 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
31359 (legitimize_tls_address): Likewise.
31360 (sparc_tls_referenced_p): Likewise.
31361 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
31362 and adjust calls to legitimize_pic_address.
31363 (legitimate_constant_p) Use sparc_tls_referenced_p.
31364 (legitimate_pic_operand_p): Likewise.
31365 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
31366 (sparc_tls_symbol_ref_1): Delete.
31367 (sparc_tls_referenced_p): Make static, recognize specific patterns.
31368 (legitimize_tls_address): Make static, handle CONST patterns.
31369 (legitimize_pic_address): Make static, remove unused parameter and
31370 adjust recursive calls.
31371 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
31372 and adjust call to legitimize_pic_address.
31373 (sparc_output_mi_thunk): Likewise.
31374
4b9ed9aa 313752010-01-05 Paolo Bonzini <bonzini@gnu.rg>
43d4b97d
L
31376 H.J. Lu <hongjiu.lu@intel.com>
31377
31378 PR target/42542
31379 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
31380 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
31381 operands to make them signed.
31382
931c6b3e
UB
31383 Revert:
31384 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
31385
31386 PR target/42542
31387 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
31388 GTU to GT for V4SI and V2DI.
31389
31390 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
31391 (umin<mode>3): Removed.
31392 (uminv8hi3): New.
43d4b97d
L
31393 (uminv4si3): Likewise.
31394
9bf4cdf5
MJ
313952010-01-05 Martin Jambor <mjambor@suse.cz>
31396
31397 PR tree-optimization/42462
31398 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
31399 current_function_decl to helper functions and macros.
31400
6a4d4e8a
RO
314012010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
31402
31403 PR bootstrap/41771
31404 * flags.h: Don't include real.h.
31405 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
31406 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
31407 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
31408 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
31409 * dominance.c: Update copyright.
31410 * gimple.c (walk_gimple_op): Remove inline.
31411 * tree-ssa-reassoc.c: Include real.h.
31412 * Makefile.in (FLAGS_H): Remove $(REAL_H).
31413 (tree-ssa-reassoc.o): Depend on $(REAL_H).
31414
105249d1
NC
314152010-01-05 Nick Clifton <nickc@redhat.com>
31416
31417 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
31418 register to push into the stack frame when the accumulator has to
31419 be saved during interrupts.
31420
bc3c12a2
EF
314212010-01-05 Eric Fisher <joefoxreal@gmail.com>
31422
31423 * doc/invoke.texi: Remove the documentation about option
31424 -Wunreachable-code.
31425 * common.opt (Wunreachable-code): Preserved for backward
31426 compatibility.
31427 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
31428 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
31429 the backward compatibility flag section.
31430
1befacc8
RG
314312010-01-05 Richard Guenther <rguenther@suse.de>
31432
31433 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
31434
566f27e4
JJ
314352010-01-05 Jakub Jelinek <jakub@redhat.com>
31436
7604eb4e
JJ
31437 PR other/42611
31438 * cfgexpand.c (expand_one_var): Diagnose too large variables.
31439
566f27e4
JJ
31440 PR tree-optimization/42508
31441 * tree-sra.c (convert_callers): Check for recursive call
31442 by comparing cgraph nodes instead of decls.
31443 (modify_function): Call ipa_modify_formal_parameters also
31444 on all same_body aliases.
31445
31446 * cgraphunit.c (cgraph_materialize_all_clones): Compare
31447 cgraph nodes when checking for same_body aliases.
31448
5f5126d6
RG
314492010-01-05 Richard Guenther <rguenther@suse.de>
31450
31451 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
31452 allocation and lookup.
31453 (get_or_alloc_expr_for_constant): Likewise.
31454 (phi_translate): Sink allocation.
31455
a7d04a53
RG
314562010-01-04 Richard Guenther <rguenther@suse.de>
31457
31458 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
31459 a new entry only if needed.
31460 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
31461 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
31462 hashtable lookup.
31463 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
31464 the result array.
31465 (phi_translate): Handle CONSTANTs early.
31466
caee6ca1
MJ
314672010-01-04 Martin Jambor <mjambor@suse.cz>
31468
31469 PR tree-optimization/42398
31470 * tree-sra.c (struct access): Removed flag grp_different_types.
31471 (dump_access): Do not dump the removed flag.
31472 (sort_and_splice_var_accesses): Do not set the removed flag.
31473 (sra_modify_expr): Check for type compatibility directly.
31474
438789ff
MJ
314752010-01-04 Martin Jambor <mjambor@suse.cz>
31476
31477 PR tree-optimization/42366
31478 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
31479 edges with variable number of parameters.
31480 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
31481 flag instead of asserting it.
31482 (ipa_read_node_info): Read uses_analysis_done flag.
31483
9708c51d
RG
314842010-01-04 Richard Guenther <rguenther@suse.de>
31485
31486 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
31487 iterative_hash_* as intended.
31488 (vn_reference_compute_hash): Likewise. Simplify hashing
31489 SSA names.
31490 (vn_reference_lookup_2): Likewise.
31491 (vn_nary_op_compute_hash): Likewise.
31492 (vn_phi_compute_hash): Likewise.
31493 (expressions_equal_p): Remove strange code.
31494 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
31495 (pre_expr_hash): Likewise. Simplify hashing SSA names.
31496 (bitmap_insert_into_set_1): Take value-id as parameter.
31497 (add_to_value): Pass it.
31498 (bitmap_insert_into_set): Likewise.
31499 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
31500
94b90527
JJ
315012010-01-04 Jakub Jelinek <jakub@redhat.com>
31502
31503 PR driver/42442
31504 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
31505 (do_self_spec): For switches with SWITCH_IGNORE set set also
31506 SWITCH_IGNORE_PERMANENTLY.
31507 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
31508 of SWITCH_IGNORE.
31509
785ca514
RAE
315102010-01-04 Rafael Avila de Espindola <espindola@google.com>
31511
31512 * lto-streamer-out.c (output_unreferenced_globals): Output the full
31513 tree of an unreferenced global var.
31514
22554cf9
L
315152010-01-04 H.J. Lu <hongjiu.lu@intel.com>
31516
31517 PR target/42542
31518 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
31519 GTU to GT for V4SI and V2DI.
31520
31521 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
31522 (umin<mode>3): Removed.
31523 (uminv8hi3): New.
31524 (uminv4si3): Likewise.
31525
7152f51e
L
315262010-01-04 H.J. Lu <hongjiu.lu@intel.com>
31527
31528 PR lto/42581
31529 * collect2.c (main): Turn on trace in collect2 if -v is passed
31530 to gcc with LTO.
31531
f4262155
JQ
315322010-01-03 Jerry Quinn <jlquinn@optonline.net>
31533
31534 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
31535 description of expression operand.
31536
55bcd32b
AJ
315372010-01-03 Andrew Jenner <andrew@codesourcery.com>
31538
31539 * configure.ac: Add install-html to target_list for Make-hooks.
31540 * configure: Regenerate.
31541 * fortran/Make-lang.in (F95_HTMLFILES): New.
31542 (fortran.html): Use it.
31543 (fortran.install-html): New.
31544 * Makefile.in (install-html): Add lang.install-html.
31545 * java/Make-lang.in (JAVA_HTMLFILES): New.
31546 (java.html): Use it.
31547 (java.install-html): New.
31548 * objc/Make-lang.in (objc.install-html): New.
31549 * objcp/Make-lang.in (obj-c++.install-html): New.
31550 * cp/Make-lang.in (c++.install-html): New.
31551 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
31552 * lto/Make-lang.in (lto.install-html): New.
31553
f0d61983
L
315542010-01-03 H.J. Lu <hongjiu.lu@intel.com>
31555
31556 PR lto/42520
31557 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
31558
2ad1dda0
SB
315592009-01-03 Steven Bosscher <steven@gcc.gnu.org>
31560
31561 PR rtl-optimization/41862
31562 * store-motion.c (store_killed_in_insn, compute_store_table,
31563 remove_reachable_equiv_notes, replace_store_insn,
31564 build_store_vectors): Ignore all DEBUG_INSNs.
31565
d7fb0a6d
L
315662010-01-03 H.J. Lu <hongjiu.lu@intel.com>
31567
31568 PR lto/41564
31569 * common.opt: Add dumpdir.
31570
31571 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
31572 isn't specified.
31573 (option_map): Add --dumpdir.
31574
31575 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
31576
31577 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
31578
31579 * opts.c (decode_options): Try dump_dir_name first if
31580 dump_base_name isn't an absolute path.
31581 (common_handle_option): Handle OPT_dumpdir.
31582
31583 * toplev.c (dump_dir_name): New.
31584 (print_switch_values): Also ignore -dumpdir.
31585
31586 * toplev.h (dump_dir_name): New.
31587
ba1ee228
RG
315882010-01-03 Richard Guenther <rguenther@suse.de>
31589
31590 PR tree-optimization/42589
31591 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
31592 double-word expansion of bswap32.
31593
b0de17ef
SB
315942010-01-03 Steven Bosscher <steven@gcc.gnu.org>
31595
31596 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
31597 with BLOCK_FOR_INSN.
31598 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
31599 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
31600 noce_process_if_block): Likewise.
31601 * gcse.c (compute_local_properties, insert_expr_in_table,
31602 insert_set_in_table, canon_list_insert, find_avail_set,
31603 pre_insert_copy_insn): Likewise.
31604
31605 * basic-block.h (BLOCK_NUM): Move from here...
31606 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
31607
a19eb9d2
RG
316082010-01-03 Richard Guenther <rguenther@suse.de>
31609
31610 PR tree-optimization/42438
31611 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
31612 contains_may_not_return_call flag.
31613 (BB_MAY_NOTRETURN): New.
31614 (valid_in_sets): Trapping nary operations are not valid
31615 in blocks that may not return.
b5e33e04 31616 (insert_into_preds_of_block): Remove check for trapping expressions.
a19eb9d2
RG
31617 (compute_avail): Compute also BB_MAY_NOTRETURN.
31618
c41b7b13
GP
316192010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
31620
31621 * doc/invoke.texi: Add 2010 to copyright years.
31622
4900aa61
EB
316232010-01-03 Eric Botcazou <ebotcazou@adacore.com>
31624
31625 * config/sparc/sparc.c: Fix formatting nits.
31626
711a778c 316272010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
77102854 31628 Alexander Monakov <amonakov@ispras.ru>
711a778c
GP
31629
31630 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
31631
1d86f5e9
RG
316322010-01-02 Richard Guenther <rguenther@suse.de>
31633
31634 PR middle-end/42577
31635 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
31636 (simplify_switch_using_ranges): Mark to be removed edges
31637 as non-executable.
31638
91e1a80a
JDA
316392010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31640
b86799ba
JDA
31641 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
31642
91e1a80a
JDA
31643 * collect2.c (scan_libraries): Add missing argument in call to
31644 scan_prog_file.
31645
316462010-01-02 Uros Bizjak <ubizjak@gmail.com>
31647
31648 PR target/42448
31649 * config/alpha/predicates.md (aligned_memory_operand): Return false
31650 for CQImode.
31651 (unaligned_memory_operand): Return true for CQImode.
31652 * config/alpha/alpha.c (get_aligned_mem): Assert that location
31653 doesn not cross aligned SImode word boundary.
31654
316552010-01-02 Anatoly Sokolov <aesok@post.ru>
31656
31657 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
31658 Remove.
31659 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
31660 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
31661
316622010-01-02 Richard Guenther <rguenther@suse.de>
31663
31664 PR lto/41597
31665 * toplev.c (compile_file): Emit LTO marker properly. Change
31666 it to __gnu_lto_v1.
31667 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
5a013dc4 31668
aecd4d81
RG
316692010-01-01 Richard Guenther <rguenther@suse.de>
31670
31671 PR debug/42455
02143d0b 31672 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
aecd4d81 31673
e4a95933
RG
316742010-01-01 Richard Guenther <rguenther@suse.de>
31675
31676 PR c/42570
31677 * c-decl.c (grokdeclarator): For zero-size arrays force
31678 structural equality checks as layout_type does.
31679
0bdf1263
L
316802010-01-01 H.J. Lu <hongjiu.lu@intel.com>
31681
31682 * builtins.c: Update copyright to 2010.
31683
91539475 316842010-01-01 H.J. Lu <hongjiu.lu@intel.com>
8589115b
DK
31685
31686 PR lto/42531
91539475 31687 * lto-streamer-out.c (produce_asm): Revert the last change.
8589115b
DK
31688 (copy_function): Likewise.
31689
91539475
L
31690 * lto-streamer.c (lto_get_section_name): Skip any leading
31691 asterisk in name.
20cdc2be 31692
91539475 316932010-01-01 Richard Guenther <rguenther@suse.de>
cf9eb565 31694
91539475
L
31695 PR middle-end/42559
31696 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
31697 for LABEL_DECLs.
ad41bd84
JM
31698
31699\f
91539475 31700Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
31701
31702Copying and distribution of this file, with or without modification,
31703are permitted in any medium without royalty provided the copyright
31704notice and this notice are preserved.
This page took 5.43891 seconds and 5 git commands to generate.